Vừa qua, một loạt các bài viết về Cloud Native đã được gửi đến bạn đọc. Tuy nhiên vì đây là những bài phân tích có tính chuyên môn cao nên các thuật ngữ IT được sử dụng rất nhiều. Dù đã cố gắng truyền tải các định nghĩa khái quát trong bài viết nhưng chắc hẳn chúng mình không thể tránh khỏi việc một số thuật ngữ chưa được giải thích cặn kẽ. Bài viết ngày hôm nay hi vọng sẽ giúp bạn đọc – đặc biệt là người mới bắt đầu hiểu sâu hơn về những thuật ngữ cơ bản trong lĩnh vực Cloud Native.
Container Image – Một package chứa một ứng dụng và tất cả các Dependencies cần thiết để vận hành ở cấp độ hệ điều hành. Tuy nhiên, không giống như VM Image, Container Image không bao gồm trình cốt lõi của hệ điều hành (Operating System Kernel). Container Image hoạt động dựa hoàn toàn vào hệ điều hành của máy chủ.
Container – Một phiên bản đang được chạy của Container Image. Về cơ bản, một Container Image sẽ được chuyển đổi thành phiên bản Container thông qua một Bộ chuyển hóa Container (Container engine) (Chi tiết xem bên dưới).
Container Engine (Bộ chuyển hóa Container) – Một công cụ không gian người dùng gốc (user-space) như Docker Engine hoặc rkt, có nhiệm vụ thực thi chuyển đổi một Container Image thành một Container. Container Engine sẽ khởi động ứng dụng và thông báo cho hệ thống máy chủ (Localhost) những gì ứng dụng được phép xem hoặc thực hiện trên máy. Những ràng buộc hạn chế này thực chất sẽ được thực thi bởi trình cốt lõi của máy chủ (Host’s Kernel). Bên cạnh đó, công cụ này cũng sẽ cung cấp một giao thức tiêu chuẩn cho các công cụ khác tương tác với ứng dụng.
Containerize (Container hóa) – Hành động tạo một gói Container Image cho một Ứng dụng cụ thể (bằng cách mã hóa hiệu quả các cấu trúc lệnh để xây dựng hoặc đóng gói cho Ứng dụng đó).
Container Orchestrator (Trình điều phối Container) – Một công cụ quản lý tất cả các Container đang chạy trên một cụm máy. Ví dụ, một trình điều khiển Container (Container Orchestrator) sẽ chỉ định máy nào sẽ thực thi một Container bất kì và giám sát xuyên suốt cả quá trình chạy đó. Container Orchestrator cũng có thể đảm nhận việc định tuyến, khám phá điểm cuối Services (Service discovery) hoặc ủy quyền các nhiệm vụ này cho các Services khác. Một số trình Container Orchestrator có thể kể đến như là Kubernetes, DC/OS, Swarm và Nomad.
Cluster (Cụm máy) – tập hợp các máy được điều khiển bởi một Container Orchestrator.
Replication (Chạy lặp lại Container) – việc chạy nhiều bản copy của cùng một Container Image.
Fault tolerance (Khả năng chịu lỗi) – là một tính năng phổ biến của Container Orchestrator. Ở dạng đơn giản nhất, Fault tolerance có trách nhiệm chú ý đến bất kỳ phiên bản sao chép (Replication) nào của một ứng dụng cụ thể được Containerize, phát sinh lỗi và bắt đầu được thay thế bởi một bản copy trong cụm máy (Cluster). Các ví dụ nâng cao hơn về Fault tolerance có thể bao gồm sự xuống cấp dễ dàng của Services hoặc bộ ngắt mạch (Circuit breakers). Orchestrators có thể cung cấp chức năng nâng cao hơn hoặc ủy thác nó cho các Services khác.
Scheduler (Bộ lập lịch) – một trình quyết định máy nào sẽ thực thi một Container. Nhiều chiến lược khác nhau sẽ được sử dụng để đưa ra các quyết định lập lịch của Scheduler. Orchestrators thường sẽ được cung cấp một bộ Scheduler mặc định, có thể được thay thế hoặc nâng cao nếu muốn bằng một bộ Scheduler tùy chỉnh.
Bin packing (Đóng gói tối ưu) – một chiến lược lập Scheduling phổ biến, giúp đặt các ứng dụng được đóng gói trong một cụm bằng cách sử dụng tối ưu nhất tài nguyên trong cụm.
Monolith (Khối ứng dụng) – một ứng dụng lớn, đa mục đích có thể liên quan đến nhiều quy trình và thường đảm bảo duy trì các thông tin trạng thái nội bộ được lưu khi ứng dụng dừng và tải lại khi restarts.
State (Trạng thái) – trong ngữ cảnh của Dịch vụ trạng thái (Stateful Service), trạng thái là thông tin về tình trạng hiện tại của ứng dụng mà không thể xóa bỏ một cách an toàn khi ứng dụng buộc phải dừng lại. Trạng thái bên trong có thể được giữ ở nhiều dạng bao gồm các mục nhập thông tin (entries) trong cơ sở dữ liệu hoặc các thông báo trong một queues. Để đảm bảo an toàn, dữ liệu trạng thái cuối cùng cần được lưu trữ ở một nơi khác trên Disk hoặc ở dạng lưu trữ vĩnh viễn khác (tức là một nơi nào đó tương đối chậm hơn nhưng an toàn để ghi vào).
Microservice (Dịch vụ micro) – một ứng dụng chứa nhiều dịch vụ nhỏ, độc lập, tách rời, chỉ giao tiếp với các ứng dụng khác thông qua các giao diện xác định.
Service Discovery (Khám phá điểm cuối dịch vụ) – cơ chế để tìm ra điểm cuối (ví dụ: địa chỉ IP nội bộ) của một dịch vụ trong hệ thống.
Hy vọng bài viết phía trên đã phần nào giúp bạn đọc hiểu thêm về những khái niệm cơ bản trong lĩnh vực Cloud Native. Hẹn gặp mọi người ở các bài viết tiếp theo!
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:
Currie, A., 2017. Blog.container-solutions.com