Luồng triển khai liên tục hoàn thiện

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 53 - 57)

Với các công nghệ đã chọn được nêu trong phần trước, luận văn đề xuất xây

dựng hệ thống triển khai liên tục hồn thiện như sau (Hình 3.14):

Như vậy, luồng triển khai liên tục hoàn thiện hoạt động chi tiết như sau:

Các lập trình viên khi phát triển xong tính năng sẽ gửi yêu cầu hợp nhất từ nhánh phụ sang nhánh chính (nhánh develop) trên Gitlab.

Dựa vào webhooks, Gitlab kích hoạt quá trình build tiền hợp nhất trong Jenkins. Kết quả build được gửi qua Slack cho tất cả các bên liên quan.

Người quản lý mã nguồn lựa chọn chấp nhận hợp nhất mã. Webhooks trên Gitlab kích hoạt q trình build hậu hợp nhất trên Jenkins. Mã nguồn sau khi build sẽ được

Hình 3.14: Hệ thống triển khai liên tục hoàn thiện

Người quản lý mã nguồn sau đó sẽ lựa chọn chấp nhận hợp nhất mã. WebHooks trên Gitlab kích hoạt quá trình build hậu hợp nhất trên Jenkins. Mã nguồn sau khi build sẽ được đóng gói vào ảnh Docker và lưu trên máy Jenkins.

Các bài kiểm thử cho ảnh Docker sẽ được thực hiện trên máy Jenkins. Nếu tất cả các bài kiểm thử thành công, ảnh Docker sẽ được đẩy lên Docker Registry riêng của công ty. Đồng thời, tác vụ triển khai trong Jenkins cũng được kích hoạt.

Jenkins sẽ dựa vào Ansible để triển khai ảnh Docker vào Kubernetes cluster.

Việc lựa chọn máy triển khai phụ thuộc vào bộ lập lịch trong Kubernetes Master. Mã nguồn được tích hợp với thư viện prometheus để tùy biến các metrics cần

thiết cho việc giám sát. Ngoài ra, các exporter trong prometheus cũng được sử dụng để chuyển đổi thông tin metrics được cung cấp từ các thư viện khác hoặc của môi trường.

Prometheus Alert Manager được sử dụng làm máy chủ để gửi cảnh báo dựa vào thông tin nhận được từ máy chủ promethus và các nguyên tắc cảnh báo viết bởi người vận hành. Tất cả cảnh báo sẽ được gửi tới Slack như các thông báo lỗi khác.

Từ dữ liệu thu thập được qua Prometheus, hệ thống sử dụng Grafana để cung cấp giao diện giám sát trực quan cho người dùng.

Fluentd được lựa chọn để làm log collector cho các ảnh container. Cách thức thu thập log như sau: các tệp log trong container sẽ được ánh xạ ra máy triển khai. Fluentd sẽ dựa vào plugin tail để đọc nội dung log, phân giải các trường thông tin, xây dựng

luồng sự kiện và gửi tới một máy đóng vai trị Log Aggregator. Từ máy log

aggregator, log sẽ được chuyển vào lưu trữ trong Elasticsearch. Tại đây, log được lưu trữ và đánh chỉ số để phục vụ cho việc tìm kiếm nhanh.

Một số plugin sẽ được sử dụng để cung cấp giao diện và khả năng truy vấn đối

với dữ liệu trong Elasticsearch. Ngoài ra, Kibana sẽ được cài đặt và liên kết với

Elasticsearch để cung cấp giao diện linh hoạt cho người sử dụng.

Đối với phần kết nối mạng để triển khai (trong trường hợp các máy triển khai được cài đặt trong một VPC riêng trên nền tảng đám mây), luận văn đề xuất phương

án kết nối như sau:

Hình 3.15: Kết nối mạng triển khai

Như vậy, một máy trong VPC sẽ đóng vai trị là work-terminal, chứa các kịch

trong VPC thông qua kết nối SSH. Máy work-terminal sẽ được gắn với một địa chỉ

CHƯƠNG 4: CÀI ĐẶT VÀ ĐÁNH GIÁ

Trong chương này, luận văn sẽ xây dựng một hệ thống phần mềm nhỏ dựa vào kiến trúc vi dịch vụ như một ví dụ. Từ hệ thống đó, dựa vào thiết kế hồn thiện được nêu trong chương trước, luận văn sẽ đưa ra cách thức cài đặt một hệ thống triển khai liên tục hoàn chỉnh. Thông qua phần cài đặt và sử dụng, luận văn sẽ đánh giá những lợi ích thực tế mà hệ thống mang lại.

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 53 - 57)

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

(83 trang)