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ụ

83 51 0
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ụ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Luận văn đã xây dựng thành công một thiết kế triển khai liên tục hoàn thiện cho các hệ thống dựa trên vi dịch vụ. Thiết kế đã bao gồm các cơ chế thu thập, quản lý log; cơ chế giám sát và cảnh báo lỗi; cơ sở hạ tầng được quản lý như mã; thiết kế cấu hình mạng để triển khai. Thiết kế cũng đảm bảo hệ thống có khả năng tự khôi phục nếu có lỗi, có thể được mở rộng dễ dàng khi khối lượng sử dụng tăng lên. Dựa trên thiết kế được đề xuất, luận văn cũng đã đưa ra cách thức cài đặt hoàn chỉnh bằng việc sử dụng nền tảng quản lý cấu hình

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN TRỌNG HIẾU 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 THẠC SĨ KỸ THUẬT PHẦN MỀM HÀ NỘI - 2018 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN TRỌNG HIẾU 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Ụ Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 8480103.01 LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀM NGƯỜI HƯỚNG DẪN KHOA HỌC: TS VÕ ĐÌNH HIẾU HÀ NỘI - 2018 LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ Kĩ thuật phần mềm "Xây dựng kiến trúc triển khai liên tục cho hệ thống dựa vi dịch vụ" sản phẩm nghiên cứu khoa học riêng cá nhân tôi, giúp đỡ lớn Giảng viên hướng dẫn TS Võ Đình Hiếu, không chép lại người khác Những điều trình bày tồn nội dung luận văn cá nhân tơi, tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có nguồn gốc rõ ràng trích dẫn hợp pháp Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà nội, tháng 11 năm 2018 Học viên Nguyễn Trọng Hiếu LỜI CẢM ƠN Trước tiên, xin bày tỏ lòng biết ơn chân thành sâu sắc đến thầy giáo, TS Võ Đình Hiếu - người dành nhiều tâm huyết, tận tình bảo giúp đỡ tơi suốt trình bắt đầu thực đề tài hồn thành Tơi xin gửi lời cảm ơn chân thành tới thầy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ, Đại học Quốc gia Hà nội - nơi theo học thời gian qua Các thầy cô cung cấp cho kiến thức quý báu, tạo điều kiện tốt cho tơi suốt q trình học tập nghiên cứu trường Cuối cùng, xin chân thành cảm ơn người thân gia đình, bạn bè khóa, đồng nghiệp quan giúp đỡ tạo điều kiện cho tơi q trình học tập nghiên cứu thực luận văn Tuy cố gắng trình làm luận văn khơng thể tránh khỏi thiếu sót, tơi mong nhận góp ý thầy cô bạn Hà nội, tháng 11 năm 2018 Học viên Nguyễn Trọng Hiếu MỤC LỤC LỜI CAM ĐOAN -1 LỜI CẢM ƠN BẢNG CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT -1 DANH MỤC HÌNH VẼ DANH MỤC BẢNG BIỂU MỞ ĐẦU CHƯƠNG 1: KIẾN THỨC CƠ BẢN -4 1.1 Tính tốn đám mây 1.1.1 Giới thiệu tính tốn đám mây -4 1.1.2 Sự phổ biến ứng dụng dựa vào đám mây -5 1.2 Tích hợp, chuyển giao triển khai liên tục -6 1.2.1 Tích hợp liên tục 1.2.2 Chuyển giao liên tục -7 1.2.3 Triển khai liên tục 1.3 Kiến trúc hệ thống -8 1.3.1 Kiến trúc khối 1.3.2 Kiến trúc hướng dịch vụ - 10 1.3.3 Kiến trúc vi dịch vụ 11 1.4 Các mơ hình triển khai - 13 1.4.1 Mơ hình triển khai tùy biến - 13 1.4.2 Mơ hình khơng tùy biến kết hợp với Reverse Proxy - 14 1.4.3 Mơ hình khơng tùy biến với ứng dụng vi dịch vụ 15 1.5 Khái niệm Container 17 CHƯƠNG 2: YÊU CẦU CỦA HỆ THỐNG TRIỂN KHAI LIÊN TỤC - 21 2.1 Yêu cầu điều phối container - 21 2.1.1 Khám phá dịch vụ 21 2.1.2 Bộ lập lịch - 22 2.1.3 Điều phối container 23 2.2 Yêu cầu cho nhà phát triển - 24 2.2.1 Khả tự triển khai - 24 2.2.2 Nhận thông tin kết build - 25 2.3 Yêu cầu vận hành 25 2.3.1 Quản lý cấu hình 25 2.3.2 Thu thập lưu trữ log 25 2.3.3 Giám sát thông báo lỗi - 26 2.3.4 Triển khai khơng bị gián đoạn có khả đảo ngược phiên - 27 2.3.5 Thiết kế mạng triển khai - 27 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG TRIỂN KHAI LIÊN TỤC - 28 3.1 Luồng triển khai 28 3.2 Phân tích lựa chọn cơng nghệ - 29 3.2.1 Hệ thống quản lý mã nguồn - 29 3.2.2 Máy chủ CI máy chủ triển khai - 30 3.2.3 Công nghệ container - 32 3.2.4 Nền tảng điều phối container - 32 3.2.5 Kubernetes - 36 3.2.6 Kênh thông báo - 38 3.2.7 Hệ thống thu thập quản lý log - 39 3.2.8 Công nghệ giám sát hệ thống cảnh báo 41 3.2.9 Giải pháp quản lý cấu hình 43 3.3 Luồng triển khai liên tục hoàn thiện - 43 CHƯƠNG 4: CÀI ĐẶT VÀ ĐÁNH GIÁ - 47 4.1 Cài đặt - 47 4.1.1 Hệ thống vi dịch vụ mẫu - 47 4.1.2 Cách thức tổ chức mã nguồn trình build ảnh docker 48 4.1.3 Cài đặt môi trường sản phẩm - 53 4.2 Đánh giá kết - 58 KẾT LUẬN - 61 TÀI LIỆU THAM KHẢO - 63 PHỤ LỤC - 65 BẢNG CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT STT Thuật ngữ viết tắt Thuật ngữ đầy đủ EFK Elasticsearch, Fluentd, Kibana VPC Virtual Private Cloud VM Virtual Machine CI Continuous Integration IaaS Infrastructure as a Service PaaS Platform as a Service SaaS Software as a Service IAC Infrastructure as code DNS Domain Name System 10 SOA Service Oriented Architecture 11 Container Cơng nghệ container, ảo hóa mức hệ điều hành DANH MỤC HÌNH VẼ Hình 1.1: Các bước tích hợp liên tục [5] Hình 1.2: Bảng so sánh kiến trúc khối, kiến trúc hướng dịch vụ kiến trúc vi dịch vụ [5] Hình 1.3: Kiến trúc khối cho ứng dụng đặt hàng Hình 1.4: Kiến trúc hướng dịch vụ cho ứng dụng đặt hàng 11 Hình 1.5: Kiến trúc vi dịch vụ cho ứng dụng đặt hàng 12 Hình 1.6: Mơ hình triển khai khơng tùy biến - cập nhật ứng dụng [5] 14 Hình 1.7: Mơ hình triển khai khơng tùy biến - cấu hình reverse proxy cập nhật [5] 15 Hình 1.8: Mơ hình triển khai không tùy biến với vi dịch vụ - cập nhật dịch vụ [5] 16 Hình 1.9: Mơ hình triển khai khơng tùy biến với vi dịch vụ - cấu hình reverse proxy [5] 16 Hình 1.10: Cơng nghệ container 17 Hình 1.11: Khác biệt container máy ảo 18 Hình 1.12: Kiến trúc Docker 19 Hình 1.13: Kiến trúc chi tiết Docker 20 Hình 2.1: Bộ lập lịch 22 Hình 2.2: Điều phối container thành phần 23 Hình 2.3: Cách thức thu thập log trước 26 Hình 3.1: Luồng triển khai liên tục 28 Hình 3.2: Mơ hình rẽ nhánh 30 Hình 3.3: Máy chủ CI Jenkins 31 Hình 3.4: Kiến trúc master-slave Jenkins [15] 32 Hình 3.5: Kiến trúc Docker Swarm [16] 33 Hình 3.6: Kiến trúc Apache Mesos 35 Hình 3.7: Kiến trúc Mesosphes Marathon [17] 35 Hình 3.8: Kiến trúc Kubernetes [10] 36 Hình 3.9: Ánh xạ Service Pod Kubernetes 37 Hình 3.10: Phần mềm Slack 39 Hình 3.11: Luồng sử dụng Fluentd với Elasticsearch Kibana 41 Hình 3.12: Heapster Kubernetes [20] 42 Hình 3.13: Kiến trúc Prometheus [21] 43 Hình 3.14: Hệ thống triển khai liên tục hoàn thiện 44 Hình 3.15: Kết nối mạng triển khai 45 Hình 4.1: Mối quan hệ ccs-service forex-service 47 Hình 4.2: Mỗi vi dịch vụ có nhiều chạy 48 Hình 4.3: Cách tổ chức mã nguồn 48 Hình 4.4: Cấu hình webhook cho build tiền hợp Gitlab 49 Hình 4.5: Cấu hình Gitlab plugin Jenkins cho tiền hợp 50 Hình 4.6 Trạng thái build tiền hợp cập nhật theo thời gian thực Gitlab 51 Hình 4.7: Build tiền hợp chạy thành công 51 Hình 4.8: Thơng báo từ Jenkins tới Slack 52 Hình 4.9: Groovy DSL cho Jenkins 52 Hình 4.10: Các tác vụ Jenkins 53 Hình 4.11: Cách thức kết nối mạng kubernetes 54 Hình 4.12: Các máy Kubernetes cluster 55 Hình 4.13: Cách thức cài đặt quản lý log 55 Hình 4.14: Cách thức cài đặt Prometheus 56 DANH MỤC BẢNG BIỂU Bảng 3-1: So sánh Docker Swarm, Mesosphere Marathon Kubernetes 38 Bảng 3-2: So sánh Logstash Fluentd 40 Bảng 4-1: Kết giải pháp triển khai liên tục 58 ... tích hợp triển khai liên tục, kiến trúc hệ thống phần mềm công nghệ container Chương tập trung vào vi c phân tích u cầu để xây dựng mơ hình triển khai liên tục cho cho hệ thống vi dịch vụ sử dụng... nghệ máy ảo Ngoài ra, container giúp cho ứng dụng chạy môi trường, hỗ trợ tốt vi c triển khai dịch vụ kiến trúc vi dịch vụ Cùng với tảng đám mây, kiến trúc vi dịch vụ công nghệ container giúp cho. .. HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN TRỌNG HIẾU 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Ụ Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần

Ngày đăng: 24/11/2019, 13:33

Tài liệu cùng người dùng

Tài liệu liên quan