Bài viết
Hãy dùng Docker thay vì Kubernetes
Trong giới công nghệ, mọi người gần như ai cũng bàn tán về container và cơ sở hạ tầng dựa trên container. Nhưng công nghệ container này là gì? Và làm thế nào nó giải quyết những vấn đề thách thức mà chúng ta đang đối mặt?

Tôi gọi nó là “server technology”, điều này nghe có vẻ hơi lạ đối với một số người. Container không phải là công nghệ liên quan tới Cloud? Đây là một trong những điều thực sự làm tôi khó chịu. Khi tôi nói về container, nhiều người nghĩ về Kubernetes. Chính vì thế mà để làm rõ trắng đen cũng như giúp các bạn hiểu rõ hơn vì sao nên chọn Docker thay vì Kubernetes, tôi đã viết ra bài này.
Docker là gì?
Tại sao chúng ta cần một công nghệ container? Lý do quan trọng nhất, theo quan điểm của tôi, là bởi vì rất khó quản lý server. Đặc biệt là các Linux server. Bạn cần phải lo về cách chạy một máy chủ trên Internet cũng như cách bảo vệ nó khỏi bị tấn công. Một khi bạn đã làm được điều đó, thì thật sự là một sự lãng phí nếu chỉ sử dụng máy chủ này chỉ cho một mục đích duy nhất. Thay vào đó, chúng ta tận dụng nó cho các microservice.
Nhưng trong năm 2006, Linux đã phát triển một công nghệ rất thú vị được gọi là “cgroups”. cgroups (viết tắt từ control groups) là một tính năng Linux kernel dùng để giới hạn, chiếm và cô lập việc sử dụng tài nguyên (CPU, memory, disk I/O, network, vv) của một tập hợp các processes khác nhau. Đây là công nghệ cốt lõi của các container đang chạy trên một Linux server. Một lần nữa, không dễ sử dụng cgroup nếu bạn không quen thuộc với công nghệ Linux kernel. Vì vậy, đây là một trong những lý do tại sao cgroups không được biết đến nhiều.
Đây cũng chính là công nghệ mà Docker tận dụng. Dự án Docker sẽ cung cấp cho bạn một bộ công cụ tiện dụng để quản lý các cgroup trên Linux server. Nó rất dễ sử dụng đến mức hầu hết mọi người không biết họ đang sử dụng một công nghệ Linux kernel. Docker giúp chúng ta chạy nhiều dịch vụ được bảo mật và độc lập trên một máy chủ.
Song song đó, Docker có một công cụ cốt lõi là “Docker Swarm”. Docker Swarm cho phép bạn kết nối các server khác nhau. Điều này trở nên cực kì quan trọng khi bạn có nhiều hơn một server để quản lý.
Vì vậy, khi chúng ta nói về các container và đặc biệt là về Docker, về cơ bản bạn thật là luôn nói về một công nghệ Linux kernel.
Kubernetes là gì?
Bây giờ, Kubernetes là gì và tại sao chúng ta cần nó? Để hiểu điều này, bạn phải hình dung ra tình huống sau: bạn có hàng nghìn Linux server cần phải chạy. Và bạn không chạy một microservice, nhưng hàng chục ngàn dịch vụ khác nhau. Tôi hy vọng bạn hiện không ở trong tình huống như vậy. Nhưng các công ty như Google và Amazon vẫn phải đối mặt với điều này hàng ngày. Do đó, các công ty này đang nghiên cứu công nghệ để vận hành chúng thật hiệu quả. Về cơ bản, nền tảng điều hành này cũng chỉ là về quản lý các dịch vụ dựa trên các Linux cgroup.
Google đã xuất bản một công nghệ như vậy dưới cái tên Kubernetes. Nhưng các công ty nhỏ với dự án đơn giản không nên sử dụng, mặc dù điều này tất nhiên là có thể nhưng có ai lại dùng dao mổ trâu để giết gà.
Xin đừng hiểu sai – Kubernetes là một công nghệ tuyệt vời nhưng liệu bạn có cần điều này? Vì lý do nào đó, mọi người dường như tin rằng họ cần phải sử dụng công nghệ này cho mọi dự án của riêng họ. Có lẽ là vì muốn được thành công như Google và Amazon.
Tại sao bạn nên sử dụng Docker?
Vì vậy, cuối cùng – tại sao bạn nên sử dụng Docker thay vì Kubernetes. Như tôi đã giải thích trước đây, khi bạn nói về công nghệ container, thì cũng có nghĩa là về công nghệ Linux kernel. Bạn sẽ cần có một chút kinh nghiệm với Linux nếu bạn muốn sử dụng các container trong các dự án của mình. Docker cung cấp một bộ công cụ lý tưởng để xử lý công nghệ đằng sau nó (cgroups). Đấy cũng là một trong những lý do tôi khuyên bạn nên sử dụng Docker.
Mặt khác, dù rằng Kubernetes có một cộng đồng lớn và đang phát triển, nó cũng không giống như với Linux. Kubernetes có mối liên hệ rất mạnh mẽ với các đại gia Internet ngày nay như Google, Amazon và Microsoft. Với Kubernetes, nó gần như là quá dễ dàng để lưu trữ dữ liệu của bạn vào một trong những nền tảng này. Ngay cả khi nó có vẻ hấp dẫn đối với hầu hết các dự án, Docker và Docker Swarm thường là đủ rồi. Vừa đơn giản và minh bạch. Tôi nghĩ tốt hơn hết là chạy server của riêng bạn với công nghệ mà bạn có thể kiểm soát và quản lí.
Ngoài ra, thật dễ dàng để xây dựng một môi trường Docker Swarm vừa nhẹ mà vừa có rất nhiều tính năng thú vị đến từ các management container hiện có. Hãy xem dự án mở “Imixs-Cloud” trên Github.
Dzone
Có thể bạn chưa biết:
- Cách tạo một mã QR Code cài app duy nhất cho tất cả các hệ điều hành smartphone và tablet
- Ưu khuyết điểm của lập trình Mobile với Xamarin
- Cấu trúc và thuật toán Advanced Encryption Standard (Chuẩn mã hóa nâng cao)
- 10 tài nguyên tuyệt vời để học lập trình iOS
- Cách tìm và xem năm sản xuất của iPhone và iPad, Kiểm tra iPhone và iPad còn thời hạn bảo hành hay không?
- Lời giải cho xe trống chiều về – vấn đề nan giải của ngành vận tải Việt Nam
- Tôi yêu Go. Và tôi cũng ghét Go (phần 1)
- URL:Mal là gì? nó nguy hiểm như thế nào?
- Triển khai mạng xã hội cực nhanh và cực đơn giản với nền tảng Jomsocial
- Ngôn ngữ lập trình NIM, Một sự lựa chọn mới cho dân lập trình
- Quyền năng mới thuộc về chiếc điện thoại thông minh và máy tính bảng
- Tặng website tin tức bitcoin, blockchain có sẵn một số dữ liệu
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>