Trong bài đăng trước, chúng ta đã tìm hiểu về container packaging, và vì sao nó được sử dụng phổ biến. Trong bài viết này, ta sẽ xem xét thêm một khía cạnh khác của dịch vụ Cloud Native là quản lý động (dynamic management).
Quản lý động
Quản lý cơ sở hạ tầng động (dynamic infrastructure management), hay còn gọi là cơ sở hạ tầng có thể lập trình (programmable infrastructure), được dùng để tự động hóa các tác vụ của trung tâm dữ liệu. Những tác vụ này hiện nay vẫn đang được thực hiện theo cách truyền thống.
Một số lợi ích của quản lý động bao gồm:
- Giúp cải thiện năng suất của nhóm vận hành;
- Có khả năng phản ứng nhanh và ổn định hơn khi gặp lỗi hoặc sự cố tấn công mạng, từ đó có thể phục hồi tốt hơn;
- Sở hữu nhiều thành phần (components) hơn;
- Có thể quản lý tài nguyên trên hệ thống hiệu quả hơn, giúp tiết kiệm chi phí vận hành.
Quản lý động vận hành dựa trên một công cụ mới có tên bộ điều phối container (container orchestrator).
Điều phối (orchestrator) là gì?
Theo Wikipedia, orchestration là một thuật ngữ dùng để chỉ khả năng sắp xếp tự động, điều chỉnh, phối hợp và quản lý hệ thống máy tính.
Các công cụ điều phối (orchestration tools) đã có từ lâu, và được dùng để kiểm soát các máy ảo (VM) vận hành trên các máy chủ vật lý (physical servers). Hoạt động điều phối trên VM giúp củng cố cho nền tảng cloud hiện đại – Điều phối để các nhà cung cấp dịch vụ đám mây có thể gói (pack) nhiều máy ảo vào các máy chủ lớn, đồng thời quản lý các package hiệu quả hơn. Hoạt động điều phối giúp việc vận hành các nền tảng đám mây tiết kiệm nhiều chi phí.
Tuy nhiên, bộ điều phối container thậm chí có thể làm được nhiều hơn các điều phối VM.
Bộ điều phối container
Các bộ điều phối container mới như Kubernetes, DC/OS, Nomad hoặc Swarm có thể điều khiển từ xa các container vận hành trên bất kỳ bộ máy nào trong cụm (cluster – một bộ tập tin xác định). Cùng với đó, các bộ điều phối có chức năng quản lý động đối với một cụm. Điều phối sẽ tự động phát hiện và khởi động lại các ứng dụng đang gặp lỗi (hay còn gọi là khả năng chịu lỗi – fault tolerance – một đặc tính cho phép hệ thống tiếp tục hoạt động bình thường trong trường hợp hỏng một hoặc nhiều lỗi trong một số thành phần của nó), và đảm bảo sử dụng hiệu quả tài nguyên cụm (hay còn gọi là giải quyết bài toán đóng gói thùng – bin packing).
Ý tưởng của những bộ điều phối (VM hoặc container) bắt nguồn từ mục đích giúp người dùng không cần phải điều khiển riêng lẻ từng máy mà chỉ cần đặt các lệnh, giúp điều phối hoạt động đang diễn ra trên từng máy chủ.
Như đã được đề cập trước đó, các container có dung lượng nhẹ so với máy ảo và có tính tạm thời cao (container có thể chỉ tồn tại trong vài giây hoặc vài phút). Khi có một lượng lớn máy ảo, ta phải phụ thuộc vào bộ điều phối máy ảo để vận hành trung tâm dữ liệu. Trong một trung tâm dữ liệu trong container (containerised data centre), sẽ có nhiều cách sắp xếp dựa theo kích thước container hơn số lượng của container. Do đó, các bộ điều phối container thường đòi hỏi người dùng phải quản lý các container một cách hiệu quả.
Quản lý động có phải chỉ là điều phối?
Hiện tại, quản lý động bao gồm những hoạt động người dùng có thể thực hiện ngay lập tức với bộ điều phối, như là sử dụng tài nguyên tốt hơn và khả năng phục hồi tự động, dù cho các chức năng cơ bản của quản lý động cũng cực kỳ hữu ích. Một số công ty đã cắt giảm 75% hóa đơn cho dịch vụ lưu trữ thông tin (hosting bills) khi sử dụng bộ điều phối container trong sản xuất.
Ngoài ra, bộ điều phối cũng cho phép các bên thứ ba thiết kế các công cụ để kiểm soát các container dưới sự quản lý của điều phối. Trong tương lai, những công cụ này sẽ sở hữu những tính năng hữu ích hơn nữa như cải thiện bảo mật, giảm chi phí lưu trữ và tiêu thụ tài nguyên hiệu quả hơn.
Tự động hóa
Mục đích của quản lý động là tự động hóa các trung tâm dữ liệu. Bộ điều phối container có thể làm được điều đó nhờ vào 3 tính năng vượt trội của container:
- Có định dạng đóng gói ứng dụng tiêu chuẩn;
- Có cơ chế cô lập ứng dụng nhẹ (dẫn đến tốc độ khởi tạo nhanh);
- Có giao diện điều khiển ứng dụng tiêu chuẩn.
Những đặc điểm trên chưa từng xuất hiện trong các kiểu hình được áp dụng phổ biến (trong trường hợp này là container tương thích với Docker). Nhưng với bộ điều phối, các trung tâm dữ liệu có thể được vận hành:
- Ở quy mô lớn hơn;
- Hiệu quả hơn (về nguồn lực);
- Hiệu suất hơn (về nhân lực); và
- An toàn hơn.
Xét về mặt quy mô và lợi nhuận, bộ điều phối đóng vai trò quan trọng trong việc giải quyết các mục tiêu cơ bản, đồng thời bộ điều phối cũng có thể hữu ích trong việc triển khai tự động, cải thiện tốc độ hoặc vận tốc của các tính năng.
Một số điều kiện để ứng dụng quản lý động
Như đã được đề cập phía trên, quản lý động dựa vào các tính năng của container như tốc độ khởi tạo nhanh, được tính theo giây hoặc giây phụ, trong khi với máy ảo, tốc độ được tính bằng phút.
Vấn đề ở đây là, rất nhiều công cụ được thiết kế cho các ứng dụng vận hành trong VM lại chưa thể đáp ứng kịp với các container được quản lý động (dynamically managed containers). Một số loại tường lửa và bộ cân bằng tải (load balancers) không thể xử lý được các ứng dụng chạy và có thể dừng trong vài giây. Vấn đề xảy ra tương tự với các quá trình như nghiên cứu dịch vụ (service discovery) , lưu nhật ký (logging) và giám sát dịch vụ (monitoring services). Hoạt động đầu vào – đầu ra I/O cũng sẽ gây ra rắc rối cho những quy trình hoạt động quá ngắn ngủi.
Cách giải quyết vấn đề trên là sử dụng các công cụ thân thiện với container hơn, nhưng điều đó đòi hỏi các công ty phải chuyển từ sử dụng các công cụ thân thuộc sang các công cụ mới lạ hơn để có thể sử dụng quản lý động. Hơn nữa, xét về container, việc giữ nguyên trạng thái của các công cụ dưới dạng dịch vụ trạng thái được quản lý (managed stateful services), ví dụ như dữ liệu dưới dạng dịch vụ (Databases-as-a-Service), sẽ có ích hơn là đáp ứng các yêu cầu của hoạt động đầu ra- đầu vào I/O nhanh.
Vậy, ta nên chọn Container hay Bộ điều phối (orchestrator)?
Các công ty thường bắt đầu với các container trong quá trình sản xuất, sau đó sẽ chuyển sang sử dụng các bộ điều phối để tiết kiệm chi phí cho dịch vụ lưu trữ online (hosting). Rất nhiều người dùng bắt đầu với container như trang trực tuyến Financial Times hay Cloud666 đã tự viết bộ điều phối riêng. Thế nhưng hiện tại, họ chuyển sang lựa chọn những bộ điều phối có sẵn như Kubernetes khi chúng ngày càng hoàn thiện và chuyên nghiệp hơn.
Vì thế, bước tiếp cận chiến lược Cloud Native đầu tiên luôn là container, và sau đó ta bắt đầu cân nhắc tới bộ điều phối sử dụng? Trên thực tế, chúng không nhất thiết phải đi cùng nhau. Rất nhiều công ty đã lựa chọn bắt đầu với những dịch vụ vi mô (microservices), mà ta có thể tham khảo thêm tại đây.
Về VTI Cloud
VTI Cloud là Đối tác cấp cao (Advanced Consulting Partner) của AWS, với đội ngũ hơn 50+ kỹ sư về giải pháp được chứng nhận bởi AWS. Với mong muốn hỗ trợ khách hàng trong hành trình chuyển đổi số và dịch chuyển lên đám mây AWS, VTI Cloud tự hào là đơn vị tiên phong trong việc tư vấn giải pháp, phát triển phần mềm và triển khai hạ tầng AWS cho khách hàng tại Việt Nam và Nhật Bản.
Xây dựng các kiến trúc an toàn, hiệu suất cao, linh hoạt, và tối ưu chi phí cho khách hàng là nhiệm vụ hàng đầu của VTI Cloud trong sứ mệnh công nghệ hóa doanh nghiệp.
Liên hệ với chúng tôi: Tại đây
Nguồn: Anne Currie từ blog.container-solutions.com