Yêu cầu về điều phối container

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng kiến trúc triển khai liên tục cho các hệ thống dựa trên vi dịch vụ luận văn ths máy tính 84801 (Trang 31 - 34)

2.1.1 Khám phá dịch vụ

Trong các cách tiếp cận cơ sở hạ tầng dùng để triển khai dịch vụ, cách thức xem các máy như nhau thường được dùng trong các hệ thống vi dịch vụ sử dụng container. Với cách tiếp cận này, các máy được đối xử một cách công bằng và người vận hành

dưới dạng container). Tuy nhiên, yêu cầu đặt ra là làm cách nào người vận hành biết

được container nào được triển khai trên máy nào bởi bộ lập lịch. Các công cụ khám

phá dịch vụ được giới thiệu để giúp giải quyết vấn đề này.

Đối với các Docker container, vấn đề được thu gọn lại thành làm thế nào để có

thể ánh xạ giữa container đang chạy và vị trí của nó. Vị trí ở đây chính là địa chỉ IP và cổng trên máy mà container được triển khai. Việc ánh xạ này cần được thực hiện một cách nhanh chóng và chính xác, bởi các container có thể được tắt hay bật lại trên các máy khác nhau trong cluster tại bất cứ thời điểm nào tùy thuộc vào môi trường.

Một giải pháp khám phá dịch vụ cần cung cấp được hai chức năng chính: [11]

Đăng kí: thiết lập ánh xạ giữa container và vị trí chạy khi container được triển

khai. Bởi chỉ có bộ lập lịch biết chính xác vị trí mà container chạy, bộ lập lịch

được xem như là nguồn đáng tin cậy duy nhất về vị trí container.

Tìm kiếm: Cho phép các container hay các dịch vụ ngồi tìm kiếm các ánh xạ

của các container khác để có thể giao tiếp với chúng. u cầu đối với việc tìm kiếm là thơng tin cần chính xác và thời gian phản hồi nhanh.

2.1.2 Bộ lập lịch

Một bộ lập lịch cho hệ thống phân tán sẽ dựa vào yêu cầu của người dùng để xác

định ứng dụng và triển khai nó trên một hoặc nhiều máy đang khả dụng.

Ví dụ: người dùng có thể gửi u cầu chạy nhiều bản sao của một ứng dụng nhất

định, bộ lập lịch sẽ dựa vào thông tin về tài nguyên của các máy để phân bố triển khai ứng dụng một cách hợp lí. Đối với Docker, việc này địi hỏi ảnh của ứng dụng phải có

sẵn trên máy chuẩn bị triển khai và Docker phải được cài trên các máy đó.

Hình 2.1: Bộ lập lịch

Hình 2.1 thể hiện một ví dụ của lập lịch: người dùng yêu cầu triển khai ba bản sao của ứng dụng, bộ lập lịch sẽ quyết định máy cụ thể để triển khai dựa trên thông tin

về trạng thái cluster, cách tận dụng tài nguyên các máy để đảm bảo bật đủ số lượng

bản sao yêu cầu và làm thế nào để thỏa mãn các ràng buộc khác từ người dùng (Ví dụ: chỉ triển khai ứng dụng trên máy có sử dụng ổ chứa SSD). Ngoài ra, chất lượng dịch

vụ cũng là một yếu tố để đưa ra quyết định lựa chọn máy triển khai.

2.1.3 Điều phối container

Bộ lập lịch và chức năng khám phá dịch vụ đóng vai trị quan trọng trong việc quản lý container. Trên thực tế, hai thành phần này gần như luôn được sử dụng cùng nhau và nằm trong một khái niệm rộng hơn gọi là điều phối container [11].

Hình 2.2: Điều phối container và các thành phần

Hình 2.2 thể hiện các thành phần cơ bản của một nền tảng điều phối container

như thành phần kiểm tra sức khỏe, tự động scale, thành phần khám phá dịch vụ, bộ lập lịch hay thành phần nâng cấp hệ thống. Nền tảng điều phối container sẽ thực hiện qúa trình khởi tạo, lập lịch, lựa chọn máy cho tới giám sát, cập nhật và đảm bảo giao tiếp

Các nền tảng điều phối container khác nhau thường có nhiều đặc điểm khác

nhau, nhưng tất cả những nền tảng này đều phải đảm bảo cung cấp được các tính năng cơ bản như:

Cách thức cấu hình đơn giản: Những nền tảng điều phối container thường cho

phép người dùng khai báo các thông tin về cấu hình ứng dụng, kho ảnh, cấu

hình về mạng và các cổng được mở trên máy, thông tin về bộ lưu trữ ... một

cách đơn giản, trực quan thông qua các định dạng JSON hoặc YAML.

Có các API để bật tắt container: Nền tảng điều phối container sẽ có API cho

phép việc cung ứng hay xếp lịch để bật container. Dựa vào các ràng buộc về tài nguyên, về mối tương quan của container cần bật với các container đang chạy

khác mà các nền tảng điều phối sẽ chọn máy phù hợp để triển khai.

Có cơ chế khám phá dịch vụ: Khi triển khai một hệ thống gồm rất nhiều dịch

vụ, các dịch vụ được đóng gói theo dạng ảnh container và chạy trên nhiều máy khác nhau thì việc một container có thể nhận biết các thông tin về container khác sẽ trở nên khó khăn và đây là một trong những việc quan trọng hàng đầu trong qúa trình quản lý tồn bộ cluster. Các nền tảng điều phối container đều

cung cấp giải pháp để giải quyết vấn đề này cho người dùng, chẳng hạn thông

qua các dịch vụ dạng DNS, dịch vụ proxy, ...

Cơ chế giám sát và sửa lỗi: Nền tảng điều phối container có trách nhiệm theo

dõi, giám sát container cũng như các máy mà chúng đang chạy. Nếu container bị lỗi, việc bật một container mới để thay thế được thực hiện gần như ngay lập tức. Nếu một máy trong cluster bị lỗi, các container đang chạy trên máy đấy sẽ

được phân phối để bật lại trên những máy còn lại. Thường thì người sử dụng sẽ

miêu tả trạng thái container mong muốn thơng qua file cấu hình (phổ biến nhất là dạng JSON hoặc YAML) còn nền tảng điều phối sẽ giám sát để luôn đảm

bảo điều này.

Để đảm bảo xây dựng được hệ thống triển khai liên tục cho các phần mềm dựa

trên vi dịch vụ, yêu cầu đầu tiên chính là việc lựa chọn nền tảng điều phối container

thỏa mãn những tính chất đã nêu trên, phù hợp với cơ sở hạ tầng mà tổ chức đang sử

dụng, có nhiều cơng cụ hỗ trợ cũng như có khả năng mở rộng tốt trong tương lai.

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng kiến trúc triển khai liên tục cho các hệ thống dựa trên vi dịch vụ luận văn ths máy tính 84801 (Trang 31 - 34)

Tải bản đầy đủ (PDF)

(83 trang)