
ĐẠI HỌC KINH TẾ QUỐC DÂN
TRƯỜNG CÔNG NGHỆ
----------------
KHÓA LUẬN TỐT NGHIỆP
ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG GIẢI PHÁP DEVOPS
TRONG PHÁT TRIỂN PHẦN MỀM: ÁP DỤNG VỚI BÀI
TOÁN CÂN BẰNG TẢI VÀ TÍCH HỢP TRIỂN KHAI TỰ
ĐỘNG CI/CD CỦA HỆ THỐNG QUẢN LÝ KẾT NỐI GIA SƯ
TUTOR-CONNECT
Tên sinh viên
:
Nguyễn Huy Bách
Giảng viên hướng dẫn
:
ThS. Tống Thị Minh Ngọc
Hà Nội, 11/2024
2024.1 KHOA HỌC MÁY TÍNH NGUYỄN HUY BÁCH 11218390

ĐẠI HỌC KINH TẾ QUỐC DÂN
TRƯỜNG CÔNG NGHỆ
----------------
KHÓA LUẬN TỐT NGHIỆP
ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG GIẢI PHÁP DEVOPS
TRONG PHÁT TRIỂN PHẦN MỀM: ÁP DỤNG VỚI BÀI TOÁN
CÂN BẰNG TẢI VÀ TÍCH HỢP TRIỂN KHAI TỰ ĐỘNG CI/CD
CỦA HỆ THỐNG QUẢN LÝ KẾT NỐI GIA SƯ TUTOR-CONNECT
Tên sinh viên
:
Nguyễn Huy Bách
Mã sinh viên
:
11218390
Lớp
:
Khoa học máy tính 63
Ngành
:
Khoa học máy tính
Khoa
:
Công nghệ thông tin
Giảng viên hướng dẫn
:
ThS. Tống Thị Minh Ngọc
(Chữ ký GVHD)
Hà Nội, 11/2024

i
MỤC LỤC
MỤC LỤC .............................................................................................................. i
LỜI CAM ĐOAN ................................................................................................ iii
DANH MỤC CÁC TỪ VIẾT TẮT .................................................................... iv
DANH MỤC CÁC THUẬT NGỮ ..................................................................... vi
DANH MỤC BẢNG ............................................................................................ ix
DANH MỤC HÌNH .............................................................................................. x
LỜI MỞ ĐẦU ....................................................................................................... 1
CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI .................................. 2
1.1. Giới thiệu tổng quan về đề tài ...................................................................... 2
1.2. Giải pháp nghiên cứu và sử dụng ................................................................ 4
CHƯƠNG 2. CƠ SỞ LÍ THUYẾT ................................................................... 17
2.1. Cụm có độ sẵn sàng cao ............................................................................. 17
2.2. Công cụ quản lí mã nguồn và Git .............................................................. 19
2.3. Hệ thống quản lý phiên bản phân tán Git .................................................. 20
2.4. Nền tảng quản lí mã nguồn Github ............................................................ 21
2.5. Kho lưu trữ image công cộng DockerHub ................................................. 22
2.6. Công cụ điều phối container Kubernetes ................................................... 23
2.7. Công cụ GUI quản lý cụm K8s Rancher ................................................... 36
2.8. Công cụ tích hợp và triển khai liên tục Jenkins ......................................... 36
2.9. Bộ công cụ giám sát Prometheus và Grafana ............................................ 38
2.10. Công cụ quét lỗ hổng mã nguồn SonarQube ........................................... 41
2.11. Công cụ cân bằng tải cụm K8s MetalLB ................................................. 42
2.12. Nền tảng quản lý dịch vụ service mesh Istio ........................................... 42
CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ PHẦN MỀM KẾT NỐI GIA SƯ
TUTOR-CONNECT .......................................................................................... 44
3.1. Xác định và phân tích yêu cầu phần mềm ................................................. 44

ii
3.2. Kết quả mô hình hóa .................................................................................. 45
3.3. Thiết kế chương trình ................................................................................. 55
3.4. Thiết kế hệ thống ....................................................................................... 61
3.5. Triển khai phần mềm ................................................................................. 78
CHƯƠNG 4. THIẾT KẾ GIẢI PHÁP DEVOPS TRONG PHÁT TRIỂN
PHẦN MỀM ....................................................................................................... 79
4.1. Bài toán đặt ra ............................................................................................ 79
4.2. Phân tích bài toán và đưa ra kiến trúc tổng quan của giải pháp ................ 79
4.3. Thành phần cấu trúc hệ thống theo công nghệ sử dụng ............................ 82
4.4. Quy trình làm việc tổng quan của cả hệ thống .......................................... 83
4.5. Quy trình tích hợp liên tục ......................................................................... 84
4.6. Quy trình triển khai liên tục ....................................................................... 85
4.7. Giám sát sau triển khai liên tục .................................................................. 86
4.8. Cân bằng tải HPA cho cụm K8s ................................................................ 87
CHƯƠNG 5. ÁP DỤNG GIẢI PHÁP DEVOPS HỖ TRỢ PHÁT TRIỂN
PHẦN MỀM WEBSITE TUTOR-CONNECT ............................................... 90
5.1. Chuẩn bị hệ thống áp dụng giải pháp DevOps .......................................... 90
5.2. Đặt ra bài toán thực tế triển khai ................................................................ 94
5.3. Áp dụng giải pháp DevOps với ứng dụng web quản lý kết nối gia sư tutor-
service ............................................................................................................... 95
5.4. So sánh giải pháp triển khai DevOps với giải pháp truyền thống ........... 106
5.5. Đánh giá việc sử dụng giải pháp DevOps trong phát triển phần mềm .... 107
KẾT LUẬN ....................................................................................................... 108
TÀI LIỆU THAM KHẢO ............................................................................... 109

iii
LỜI CAM ĐOAN
Tôi xin cam đoan đề tài: “Nghiên cứu và xây dựng giải pháp DevOps trong
phát triển phần mềm: Áp dụng với bài toán cân bằng tải và tích hợp triển khai tự
động CI/CD của hệ thống quản lý kết nối gia sư Tutor-Connect” là công trình
nghiên cứu độc lập của cá nhân tôi trong thời gian qua và chưa từng được công
bố trong bất cứ công trình nghiên cứu nào khác. Mọi thông tin và số liệu sử dụng
trong khoá luận đều được tôi tìm hiểu, thu thập một cách khách quan và trung
thực.
Tôi xin hoàn toàn chịu trách nhiệm về đề tài nghiên cứu của mình!
Hà Nội, ngày tháng năm 2024
Sinh viên
(ký, ghi rõ họ tên)

