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 q 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: