10 điều bạn nên biết về công nghệ Docker

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.

Công nghệ Docke là gì?

Nếu bạn đang làm ở một công ty công nghệ thông tin, thì có thể bạn đã được giới thiệu về công nghệ Docker. Thậm chí trong số các công nghệ có độ “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 tập hợp từ nhiều phần như: nhị phân (binaries), các thư viện (libraries), các tập tin cấu hình, và các 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 đó.

Ứng dụng của công nghệ Docker

Ứng dụng của công nghệ Docker

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 nhất của các yếu tố, chẳng hạn như sự phát triển của Linux, sự lan rộng của công nghệ ảo hóa, và tầm quan trọng của các hệ điều hành của điện toán đám mây.

3. Hầu như mọi người đều 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 sử dụng Docker.

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

Nguồn gốc của Docker là từ Linux, nhưng Microsoft đã nắm bắt nó và sử dụng theo một phương thức lớn hơ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ư việc công ty đang mở rộng cách tiếp cận tới Docker.

5. Docker cho phép phân bổ số lượng cụ thể CPU, bộ nhớ và đĩa lưu trữ cho mỗi xử lý 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 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 VM (Virtual Machine) 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, nguyên nhân sâu xa là 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 chương trình. Các container của Docker cũng cần ít thao tác – và thật sự không tốn nhiều thời gian hơn một chơơng trình.

7. Docker vẫn sẽ chưa loại bỏ các máy ảo

Docker thì không phải là sự thay thế 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ự bảo mật yếu hơn các máy ảo, và là sự lựa chọn không thích hợp cho một số loại mô hình đa nhiệm.

8. Docker đang phát triển nhanh

Việc leo lên con tàu Docker không 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 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 thể tránh được sự cạnh tranh. Ví dụ: gần đây CoreOS đã được phát hành để cạnh tranh với Docker, Rocket và Linux phát triển 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 ảnh hưởng 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ẽ cần phải tìm hiểu trước khi sử dụng. Theo quan điểm công nghệ, thì có sự định hướng rõ ràng 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 với các ứng dụng đang thực hiện.

Điều đó không chỉ chỉ riêng cho 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à đăng ký nhận 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 để nghiên cứu hay không?

Tuy nhiên, nếu bạn chọn tiếp cận Docker, thì các container luôn sẵn sàng. 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 công nghệ 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.

Theo ITjobs VN

Dịch vụ

  • Thiết kế website

    Khách hàng có thể chọn web theo các mẫu có sẵn để sử dụng, hoặc đưa ra ý tưởng và các yêu cầu để chúng tôi xây dựng và thiết kế web mới cho khách hàng.

  • Hosting & Tên miền

    Cung cấp dịch vụ đăng ký tên miền, đăng ký máy chủ web(hosting) chất lượng cho khách hàng, đảm bảo trang web của bạn tải nhanh hơn và ổn định hơn.

  • Phát triển phần mềm

    Phát triển các phần mềm cùng các giải pháp phục vụ quản lý doanh nghiệp, quản lý bán hàng các phần mềm tiện ích và các ứng dụng phục vụ công việc.

  • Thiết kế đồ họa

    Chúng tôi cung cấp dịch vụ thiết kế đồ họa theo yêu cầu như thiết kế logo, banner, thiết kế các poster quảng cáo và các nội dung đồ họa thẩm mỹ khác.

Tin tức mới