10 Điều Mà Bạn Nên Biết Về Docker

Ngoc Huynh

Công nghệ container thì không quá xa lạ, nhưng điều đó đã không chấm dứt được việc Docker đang có tác động mạnh đến thế giới.

Nếu bạn đang làm ở một công ty công nghệ thông thin, thì bạn đã được nghe nói về Docker. Thậm chí trong số các công nghệ “hot” nhất hiện nay như Puppet, Hadoop, và MongoDB, thì Docker vẫn nổi bật nhất.

Tuy nhiên, trước khi bạn tải Docker về và cho nó một spin, thì có 10 điều mà bạn nên biết về công nghệ container siêu nổi tiếng này.

1. Docker là một phương thức để đóng gói và sắp xếp phần mềm

Một hệ thống phần mềm hiện đại gồm có nhiều phần như: nhị nguyên (binaries), các thư viện (libraries), các tập tin cấu hình, và phần phụ thuộc. Điều này đủ khó để lắp ghép các bộ phận khác nhau như thế trên một máy đơn lẻ, nhưng nó sẽ đột ngột trở nên phức tạp hơn khi bạn “vận chuyển” phần mềm đó. Một khi bạn vận chuyển phần mềm của bạn, thì bạn cần đưa ra cách để đóng gói tất cả các bộ phận này lại với nhau và đặt chúng vào nơi cần hoạt động. Docker là một công nghệ container mà sẽ giúp việc đóng gói phần mềm dễ dàng hơn, cùng với tất cả các phần phụ thuộc, và chuyển giao nó đến với các lập trình viên, để tổ chức hay sản xuất, hoặc bất cứ nơi đâu mà nó cần hoạt động.

2. Docker không phải là điều gì mới đặc biệt

Docker mới chỉ có mặt trong một thời gian ngắn, nhưng công nghệ container đã có mặt khoảng 10 năm nay. Trong lúc các container đã chứng tỏ được tính hữu ích trong kỷ nguyên mainframe, thì bây giờ Docker đã đánh dấu được sự tiến bộ do sự hợp lưu của các yếu tố, chẳng hạn như sự nổi bật của Linux, sự lan rộng của ảo hóa, và sự xói mòn tầm quan trọng của các hệ điều hành của đám mây.

3. Hầu như mọi người thích Docker

Cho dù nhà cung cấp mà bạn chọn là ai đi nữa, thì điều kỳ lạ là hầu hết họ đều thích Docker. Từ Amazon Web Services cho đến Red Hat, mọi người đều yêu thích Docker.

4. Docker không chỉ dành cho Linux

Nguồn gốc của Docker là ở Linux, nhưng Microsoft đã nắm lấy nó theo một phương thức lớn. Docker phụ thuộc vào các công nghệ của Linux như Linux Containers (LXC) và cgroups và các khả năng của không gian tên và những công nghệ này hiện tại không có ở Windows. Vì vậy Microsoft đang cố gắng để làm cho các container của Docker cũng có thể chạy trên Windows Server. Microsoft đã và đang chạy công nghệ container của riêng mình trên Windows trong khoảng vài năm qua, nhưng công ty đang mở rộng cách tiếp cận tới Docker.

5. Docker cho phép bạn phân bổ số lượng cụ thể của CPU, bộ nhớ và nguồn đĩa cho mỗi quá trình, giống như các máy ảo.

Phần cốt lõi của Docker là cgroups (Control Groups) của Linux cung cấp các phương tiện để giải thích và giới hạn số lượng của CPU, bộ nhớ, mạng lưới và nguồn đĩa mà một container sử dụng. Điều này đem lại một vài lợi ích của sự ảo hóa, như khả năng chia cắt một máy tính thành các khúc dữ liệu nhỏ hơn để bạn không có một quá trình đảm nhận tất cả các máy tính – nhưng nó không nói về tổng chi phí hay chi phí của VMare

6. Docker thì hoạt động nhanh hơn việc khởi động một máy ảo (một phần nghìn giây so với phút)

Nếu bạn muốn thực hiện nhiều công việc trên một server đơn lẻ, thì phương pháp truyền thống sẽ chia nhỏ nó thành các máy ảo và sử dụng mỗi VM để thực hiện một công việc. Nhưng các VM thì khởi động quá chậm, bằng chứng là các VM phải khởi động toàn bộ hệ điều hành và mất nhiều phút để thực hiện việc này. Chúng cũng là nguồn chuyên sâu, vì mỗi VM phải thực hiện một phiên bản hệ điều hành đầy đủ. Các container đưa ra một vài trạng thái tương tự nhưng nhanh hơn nhiều, bởi vì việc khởi động một container thì giống như khởi động một quá trình. Các container của Docker cũng cần ít nhiều tạp phí – thật sự không đắt hơn một quá trình.

7. Docker sẽ chưa loại bỏ các VM

Docker thì không phải là sự thay thế tương tự cho các máy ảo bởi vì Docker cần tất cả các container chia sẻ hệ điều hành cơ bản giống nhau. Điều đó có nghĩa là bạn sẽ không thể hoạt động các ứng dụng chạy hệ điều hành Windows và Linux trên cùng một server. Thêm nữa là vì hiện tại các container của Docker vẫn có giá trị, thì chúng cũng đưa ra sự cách ly bảo mật yếu hơn các VM, tạo ra các lựa chọn không thích hợp cho một số loại mô hình multi-tenancy

8. Docker đang được phát triển theo một nhịp độ nhanh

Việc leo lên con tàu Docker thì ít giống với việc lên một động cơ hơi nước, mà nó giống với việc nhảy lên một con tàu lửa cao tốc của Nhật… vì nó sẽ vượt qua bạn ở tốc độ 250 dặm/giờ. Bạn sẽ có cảm giác Docker đang thay đổi như thế nào. Trong khi Docker đã và đang phát triển và ổn định, và là một phần mềm đáng giá, thì nó vẫn không kèm theo sự cam kết hỗ trợ 10 năm mà các công ty mong đợi từ phần mềm này.

9. Docker có sự phát triển mang tính cạnh tranh

Phổ biến như Docker, thì nó không đứng yên trước sự cạnh tranh. Ví dụ: gần đây CoreOS đã phát hành thời điểm chạy Docker cạnh tranh, Rocket và Linux có dự án container LXD của riêng mình. Những đối thủ này và các đối thủ khác dường như làm mài mòn hệ thống sinh thái khép kín của Docker. Trong thế giới của Docker, thì mọi thứ phụ thuộc vào sự đăng ký Docker. Bạn phải lệ thuộc vào sự đăng ký của công ty Docker hoặc chạy một bản sao của Docker trong trung tâm dữ liệu của riêng bạn và không miễn phí.

10. Bạn nên tiến hành với sự cẩn trọng

Với bất kỳ một công nghệ mới nào, thì có lẽ bạn sẽ muốn tìm hiểu trước khi sử dụng Docker. Theo một quan điểm công nghệ, thì có sự định rõ những việc bạn nên làm và không nên làm trong lúc bạn trở nên quen thuộc với các ứng dụng đang thực hiện. Nhưng điều đó không chỉ là lập trình. Như đã nói ở trên, thì cộng đồng của Docker có thể không phù hợp cho bạn. Bạn nên tham gia cộng đồng – tham dự các buổi gặp gỡ, đọc và tham gia vào các danh sách mail, v.v.. – và tự mình quyết định liệu Docker có phải là nơi để bạn đầu tư thời gian của mình hay không

Tuy nhiên, nếu bạn chọn tiếp cận Docker, thì các container luôn ở đây. Các container được làm đơn giản hóa quá nhiều đến nỗi gặp khó khăn trong ngành máy tính hiện tại. Docker dẫn đầu về đóng gói container, và bạn sẽ cần bằng lòng thỏa hiệp với nó. Các thỏa hiệp đó sẽ phụ thuộc vào bạn và trạng thái của cấu trúc hạ tầng của công ty bạn.

Chia sẻ bài viết ngay

Nguồn bài viết : http://www.techrepublic.com/