Kubernetes trên Azure
Mô hình phổ biến của các ứng dụng hiện đại là chạy các dịch vụ nhỏ (microservices) được lưu trữ trong các vùng chứa (containers). Vùng chứa là các gói phần mềm nhẹ, độc lập, có thể thực thi được bao gồm mọi thứ cần thiết để chạy một ứng dụng: mã, thời gian chạy, công cụ hệ thống, thư viện hệ thống và cài đặt.
Microsoft Azure cung cấp nhiều lựa chọn về cách chạy vùng chứa. Một trong số đó là Kubernetes, còn được gọi là K8s, một trình điều phối mã nguồn mở cho phép bạn tự động hóa việc triển khai, mở rộng quy mô và quản lý các ứng dụng chứa trong vùng chứa.
Khi chạy Kubernetes trên Azure, có một số tùy chọn để bạn lựa chọn, bao gồm:
- Dịch vụ Azure Kubernetes (AKS)
- Azure Red Hat OpenShift
- Kubernetes hỗ trợ Arc
- Các dịch vụ ứng dụng trên Kubernetes
Hãy xem xét từng tùy chọn này và xem lợi ích của nó.
Dịch vụ Azure Kubernetes
Là trụ cột trung tâm của các hoạt động dựa trên nền tảng đám mây, AKS là một dịch vụ Kubernetes được quản lý, cấp doanh nghiệp. Bởi vì nó là một hệ thống được quản lý hoàn toàn, Azure xử lý các tác vụ quan trọng như theo dõi và bảo trì sức khỏe, trong khi các nhà phát triển có thể tập trung vào mã.
AKS có các phương pháp hay nhất được tích hợp sẵn như thông báo Azure Advisor để giúp tối ưu hóa việc triển khai Kubernetes của bạn với các đề xuất được cá nhân hóa trong thời gian thực. Nó có tính năng bảo mật nhiều lớp trên các hệ điều hành, tính toán tài nguyên, dữ liệu, mạng với cấu hình nhất quán, danh tính, tích hợp bí mật với Azure Key Vault và quản lý chính sách. Ngoài ra, AKS tăng hiệu quả hoạt động với hỗ trợ nâng cấp cụm tự động và khả năng lên lịch hoạt động bảo trì dịch vụ vào giờ thấp điểm.
AKS làm cho việc triển khai một cụm Kubernetes được quản lý trong Azure trở nên đơn giản vì nó làm giảm sự phức tạp và chi phí hoạt động của việc quản lý Kubernetes bằng cách giảm tải phần lớn trách nhiệm đó cho Azure. Khi triển khai một cụm AKS, mặt phẳng quản lý Kubernetes, các nút mặt phẳng điều khiển và nút công nhân được triển khai và định cấu hình cho bạn.
Azure Red Hat OpenShift
Red Hat OpenShift là một nền tảng container Kubernetes doanh nghiệp do Red Hat tạo ra. OpenShift là tất cả về việc chọn một nền tảng để cung cấp năng lượng cho các ứng dụng của bạn ngày nay bằng cách tự động hóa các quy trình và giảm độ phức tạp, cho phép bạn phân phối nhanh chóng mà không gặp trở ngại. Khi chạy Kubernetes trong phiên bản sản xuất, bạn thường cần thêm các dịch vụ bổ sung để có được chức năng cơ bản như xác thực, ghi nhật ký và CI / CD. Đó là những thành phần riêng biệt mà bạn phải tự tích hợp, quản lý và cập nhật. Hơn nữa, khi sử dụng các tính năng mới để xây dựng các ứng dụng hiện đại như Serverless và Service Mesh, điều này đồng nghĩa với việc tích hợp và thử nghiệm nhiều hơn.
Azure Red Hat OpenShift cho phép các nhà phát triển tập trung vào những gì quan trọng. Bạn có thể tận dụng giao diện người dùng nâng cao cho cấu trúc liên kết ứng dụng và các bản dựng trong bảng điều khiển web. Nó cho phép bạn xây dựng, triển khai, cấu hình và trực quan hóa các ứng dụng được chứa và tài nguyên cụm dễ dàng hơn.
Bạn có thể mang mã từ kho lưu trữ Git của mình hoặc hình ảnh vùng chứa hiện có và xây dựng nó bằng cách sử dụng các bản dựng mã nguồn thành hình ảnh (S2I) hoặc triển khai các giải pháp từ danh mục nhà phát triển, chẳng hạn như OpenShift Service Mesh, OpenShift Serverless hoặc Knative.
Azure Red Hat OpenShift cung cấp CI / CD tích hợp sẵn. Bạn có thể tạo các bản dựng, thử nghiệm và triển khai ứng dụng tự động bằng OpenShift Pipelines, một hệ thống CI / CD không máy chủ được thiết kế để tạo và mở rộng một đường ống bằng GitHub Actions hoặc sử dụng các đường ống hiện có.
Kubernetes hỗ trợ Arc
Với Kubernetes hỗ trợ Azure Arc, bạn có thể đính kèm và định cấu hình các cụm Kubernetes nằm bên trong hoặc bên ngoài Azure và mang các hoạt động trên đám mây đến bất cứ đâu.
Azure Arc có thể quản lý các ứng dụng chạy trên Kubernetes ở quy mô lớn thông qua các kỹ thuật DevOps nâng cao như GitOps. Nó cung cấp một ô kính duy nhất với khả năng hiển thị trung tâm thông qua cổng Azure và quản trị và tuân thủ các ứng dụng của bạn và các cụm Kubernetes thông qua Azure Policy.
Các dịch vụ ứng dụng trên Kubernetes
Các nhà phát triển đã tận dụng các dịch vụ nền tảng ứng dụng Azure trong vài năm gần đây để phát triển các ứng dụng hiện đại. Các dịch vụ được xây dựng theo mục đích này cho phép các nhà phát triển và nhóm vận hành tập trung vào các yêu cầu kinh doanh và không phải tốn thêm tài nguyên để quản lý cơ sở hạ tầng đằng sau các dịch vụ này. Để cho phép các nhà phát triển ứng dụng tại chỗ trải nghiệm cùng mức năng suất đó, Microsoft đã kích hoạt Kubernetes làm mục tiêu để chạy nhiều dịch vụ nền tảng Azure, được quản lý thông qua Azure Arc. Các dịch vụ nền tảng được hỗ trợ là:
- Dịch vụ ứng dụng (App Service)
- Chức năng (Functions)
- Ứng dụng logic (Logic Apps)
- Lưới sự kiện (Event Grid)
- Quản lý API (API Management)
Nếu dự án yêu cầu bạn có nhiều quyền kiểm soát hơn đối với cơ sở hạ tầng (như chạy tại chỗ, trên Edge hoặc trong một đám mây khác), điều này có thể được thực hiện với Azure Arc. Bất kỳ cụm Kubernetes nào được kết nối thông qua Azure Arc đều là mục tiêu Dịch vụ ứng dụng Azure được hỗ trợ. Nhờ Azure Arc và các dịch vụ ứng dụng di động, chúng ta có thể chạy cùng một mã ở bất kỳ đâu và tạo các ứng dụng hỗn hợp (hybrid) và đa đám mây.
Bạn có thể phát triển và đổi mới nhanh hơn với bộ dịch vụ ứng dụng của Azure vì nó đi kèm với các tính năng và tùy chọn được tối ưu hóa cho năng suất của nhà phát triển. Các khả năng như vị trí triển khai, triển khai màu xanh lam (blue-green deployments), bảng điều khiển web, Trình chỉnh sửa dịch vụ ứng dụng (App Service Editor) và nhật ký mở rộng, trong số những khả năng khác, có thể làm cho cuộc sống của bạn dễ dàng hơn một chút.