Mist Community Edition - Các tính năng và thành phần cấu trúc của Mist
Trong thời đại công nghệ hiện đại, việc quản lý và triển khai các ứng dụng trên đám mây đòi hỏi sự linh hoạt và hiệu quả. Mist Community Edition không chỉ là một công cụ quản lý đám mây thông thường, mà còn là một giải pháp toàn diện được xây dựng dựa trên các nguyên lý cloud native. Bài viết này sẽ đi sâu vào các tính năng nổi bật và các thành phần quan trọng của Mist, giúp bạn hiểu rõ hơn về khả năng và tiềm năng của nền tảng này.
Các tính năng nổi bật của Mist Community Edition
Các tính năng của Mist bao gồm:
- Hỗ trợ cho hơn 20 công nghệ cơ sở hạ tầng.
- Tầm nhìn ngay lập tức về tất cả các tài nguyên có sẵn trên đám mây, được nhóm lại theo các thẻ.
- Báo cáo/ước tính ngay lập tức về chi phí cơ sở hạ tầng hiện tại.
- So sánh chi phí hiện tại và quá khứ, tương quan với việc sử dụng, cung cấp các khuyến nghị về kích thước phù hợp (chỉ có EE & HS).
- Cung cấp tài nguyên mới trên bất kỳ đám mây nào bao gồm máy chủ, cụm, ổ đĩa, mạng, khu vực và bản ghi DNS.
- Triển khai và mở rộng các cụm Kubernetes trên bất kỳ đám mây được hỗ trợ nào.
- Thực hiện các hành động vòng đời trên các tài nguyên hiện có, ví dụ như dừng, khởi động lại, thay đổi kích thước, hủy bỏ, v.v.
- Tải lên các tập lệnh và chạy chúng trên bất kỳ máy chủ nào trong khi thực hiện logging kiểm toán và kiểm soát tập trung của các khóa SSH.
- Shell lệnh SSH trên bất kỳ máy chủ nào trong trình duyệt hoặc thông qua CLI, thực hiện logging kiểm toán và kiểm soát tập trung của các khóa SSH.
- Logging kiểm toán ngay lập tức cho tất cả các hành động được thực hiện thông qua Mist hoặc được phát hiện thông qua việc kiểm tra liên tục.
- Giám sát máy chủ, hiển thị các chỉ số hệ thống thời gian thực và tùy chỉnh và lưu trữ chúng để truy cập lâu dài.
- Đặt quy tắc trên các chỉ số hoặc logs để kích hoạt thông báo, webhook, tập lệnh hoặc các hành động vòng đời.
- Đặt lịch trình kích hoạt các tập lệnh hoặc hành động vòng đời máy chủ.
- Đặt chính sách kiểm soát quyền truy cập chi tiết cho từng nhóm, thẻ, tài nguyên và/hoặc hành động (chỉ có EE & HS).
- Đặt ràng buộc quản trị: ví dụ như giới hạn chi phí cho mỗi người dùng/nhóm, ngày hết hạn bắt buộc (chỉ có EE & HS).
- Tải lên các mẫu cơ sở hạ tầng mô tả các triển khai phức tạp và quy trình làm việc (chỉ có EE & HS).
Các thuật ngữ nên biết trong Mist Community Edition
Một số thuật ngữ được sử dụng rất phổ biến trong Mist. Dưới đây là danh sách những thuật ngữ cơ bản nhất để giúp bạn tránh nhầm lẫn:
-
Cloud: Bất kỳ dịch vụ nào cung cấp truy cập theo yêu cầu đến tài nguyên, ví dụ: đám mây công cộng, đám mây riêng, hypervisors, máy chủ không gian chứa, cụm Kubernetes, máy chủ vật lý trần.
-
Machine: Bất kỳ tài nguyên tính toán nào. Có nhiều loại máy và một số máy có thể chứa các máy khác.
-
Volume: Bất kỳ thiết bị lưu trữ dữ liệu vật lý hoặc ảo nào, ví dụ: ổ cứng/ổ SSD vật lý, đĩa đám mây, thể tích EBS, v.v. Thể tích có thể được gắn kết trên máy. Thể tích có thể được cung cấp cùng với máy hoặc độc lập.
-
Network: Không gian mạng riêng tư mà các máy có thể tham gia, ví dụ: AWS VPCs.
-
Script: Một chương trình thực thi (ví dụ: kịch bản bash) hoặc một tuyển trình Ansible có thể chạy trên các máy qua SSH. Các kịch bản có thể được thêm vào theo dạng inline hoặc thông qua một tham chiếu đến một gói tarball hoặc một kho Git.
-
Template: Một bản thiết kế mô tả vòng đời đầy đủ của một ứng dụng có thể yêu cầu nhiều tài nguyên tính toán, mạng, lưu trữ và cấu hình bổ sung. Ví dụ, mẫu Kubernetes được cung cấp cho phép triển khai một cụm Kubernetes trên bất kỳ đám mây nào và cung cấp các luồng công việc để dễ dàng mở rộng hoặc thu nhỏ cụm. Hiện tại, Mist hỗ trợ các mẫu Cloudify. Hỗ trợ Helm và Terraform sẽ sớm ra mắt.
-
Stack: Việc triển khai một mẫu là một ngăn xếp. Một ngăn xếp có thể bao gồm các tài nguyên (ví dụ: máy, mạng, thể tích, v.v.) và cung cấp một bộ hành động luồng công việc có thể thực hiện. Một ngăn xếp được tạo ra bởi mẫu Kubernetes đề cập đến một cụm Kubernetes. Nó bao gồm các tham chiếu đến tất cả các nút kiểm soát và dữ liệu. Nó cung cấp các luồng công việc mở rộng và thu nhỏ có thể áp dụng cho cụm.
-
Tunnel: Một đường hầm VPN an toàn, điểm-điểm cho phép Mist truy cập vào cơ sở hạ tầng không nằm trên không gian mạng có thể truy cập công khai.
Cấu trúc, các thành phần của Mist Community Edition
Mist là một ứng dụng cloud native được chia thành các microservices được đóng gói dưới dạng Docker containers. Nó có thể được triển khai trên một cụm Kubernetes bằng cách sử dụng Helm hoặc trên một máy chủ đơn với Docker Compose.
Các thành phần đáng chú ý nhất là như sau:
- Giao diện người dùng Mist (Mist UI): một ứng dụng web được xây dựng bằng Web Components và Polymer.
- REST API: phục vụ các yêu cầu từ các máy khách.
- WebSocket API: gửi các cập nhật thời gian thực đến các máy khách kết nối và làm proxy cho các kết nối shell.
- Dịch vụ Hubshell: mở các kết nối SSH đến các máy hoặc kết nối shell bằng cách sử dụng Docker API.
- Các worker Dramatiq: chạy các công việc bất đồng bộ.
- Lập lịch dựa trên APScheduler: lập lịch cho các công việc thăm dò, kiểm tra quy tắc cũng như các hành động được lập lịch do người dùng xác định.
- Dịch vụ hàng đợi tin nhắn RabbitMQ.
- MongoDB là cơ sở dữ liệu chính.
- Elasticsearch để lưu trữ và tìm kiếm logs.
- Logstash để định tuyến logs đến Elasticsearch.
- Telegraf là một đại lý thu thập dữ liệu, được cài đặt trên các máy được giám sát.
- Gocky là bộ trung gian để nhận và tiền xử lý các metrics giám sát.
- InfluxDB hoặc VictoriaMetrics là cơ sở dữ liệu chuỗi thời gian.
Người dùng tương tác với RESTful Mist API thông qua ứng dụng khách như Mist UI trên trình duyệt hoặc các công cụ dòng lệnh (ví dụ: cURL, Mist CLI, v.v.).
Ngoài việc gọi API RESTful, Mist UI cũng thiết lập một kết nối WebSocket. Điều này được sử dụng để nhận các cập nhật thời gian thực và làm proxy cho các kết nối shell đến các máy.
Máy chủ API Mist tương tác với các API tương ứng của các đám mây mục tiêu, entweder trực tiếp oder durch das Hinzufügen von Aufgaben, die asynchron von Dramatiq workers thực hiện. Giao tiếp tuân theo giao thức AMQP và được phối hợp bởi RabbitMQ.
Cửa hàng dữ liệu chính là MongoDB. Logs được lưu trữ trong Elasticsearch. Dữ liệu chuỗi thời gian được gửi đến VictoriaMetrics hoặc InfluxDB, tùy thuộc vào cài đặt.
Các kiểm tra quy tắc, nhiệm vụ thăm dò và nhiệm vụ người dùng được kích hoạt bởi dịch vụ lập lịch. Khi một kết nối shell cần thiết (ví dụ: SSH, Docker shell, v.v.), Sheller thiết lập kết nối và làm cho nó có sẵn thông qua API WebSocket.
Trong tương lai, Mist Community Edition sẽ tiếp tục phát triển và cải thiện để đáp ứng nhu cầu ngày càng tăng về quản lý cơ sở hạ tầng đám mây của các tổ chức và cá nhân. Với sự hỗ trợ từ cộng đồng và sự cam kết của đội ngũ phát triển, Mist sẽ tiếp tục là một lựa chọn hàng đầu cho việc triển khai và quản lý ứng dụng trên đám mây. Hãy cùng nhau đồng hành và chia sẻ trải nghiệm để xây dựng một cộng đồng Mist mạnh mẽ hơn, để mọi người có thể tận hưởng lợi ích từ sức mạnh của công nghệ đám mây.