HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
----------
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀI:
NGHIÊN CỨU VỀ DEVOPS VÀ XÂY DỰNG HỆ THỐNG CI/CD
Giảng viên hướng dẫn : TS. Nguyễn Đình Hoá
Sinh viên thực hiện : Trần Trung Nam
Lớp : D19HTTT04
Khoá : 2019 – 2024
Hệ : Đại học chính quy
HÀ NỘI – 2023
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
----------
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀI:
NGHIÊN CỨU VỀ DEVOPS VÀ XÂY DỰNG HỆ THỐNG CI/CD
Giảng viên hướng dẫn : TS. Nguyễn Đình Hoá
Sinh viên thực hiện : Trần Trung Nam
Lớp : D19HTTT04
Khoá : 2019 – 2024
Hệ : Đại học chính quy
HÀ NỘI – 2023
Trần Trung Nam – D19HTTT04
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC LỜI CẢM ƠN
LỜI CẢM ƠN
Trong suốt quá trình học tập, nghiên cứu thực hiện đồ án em đã nhận được
nhiều sự giúp đỡ, đóng góp ý kiến chỉ bảo nhiệt tình của thầy cô, gia đình bạn
bè. Em cùng biết ơn mong muốn được gửi lời cảm ơn chân thành sâu sắc
nhất.
Đầu tiên em xin gửi lời cảm ơn đến thầy Nguyễn Đình Hoá, người đã tận tình
hướng dẫn, chỉ bảo, truyền đạt kiến thức kinh nghiệm cho em trong quá trình thực
hiện đồ án.
Em cũng xin chân thành cảm ơn quý thầy trong trường nói chung các thầy
trong Khoa Công nghệ thông tin nói riêng đã truyền tải cho em những kiến thức về
các môn đại cương và các môn chuyên ngành giúp em có cơ sở lý thuyết vững vàng và
tạo điều kiện giúp đỡ em trong cả quá trình học tập.
Cuối cùng em xin gửi lời cảm ơn đến gia đình và bạnđã luôn động viên, quan
tâm, giúp đỡ trong suốt quá trình học tập cũng như thực hiện đồ án tốt nghiệp này.
Em xin chân thành cảm ơn!
Hà Nội, ngày 20 tháng 12 năm 2023
Sinh viên thực hiện
Trần Trung Nam
i
Trần Trung Nam – D19HTTT04
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC MỤC LỤC
MỤC LỤC
DANH MỤC CÁC HÌNH VẼ......................................................................................iv
DANH MỤC THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT................................................vi
LỜI NÓI ĐẦU...............................................................................................................1
CHƯƠNG 1: GIỚI THIỆU CHUNG.............................................................................2
1.1 Vì sao cần DevOps?.......................................................................................2
1.2 Giới thiệu về DevOps....................................................................................3
1.2.1 Khái niệm DevOps....................................................................................3
1.2.2 Sự hình thành của DevOps .......................................................................4
1.2.3 Các giai đoạn của DevOps trong vòng đời phát triển phần mềm ..............6
1.2.4 DevSecOps................................................................................................8
1.2.5 GitOps.....................................................................................................12
1.3 Giới thiệu về hệ thống CI/CD......................................................................13
1.3.1 Khái niệm CI/CD.....................................................................................13
1.3.2 CI/CD pipeline.........................................................................................15
1.3.3 Nguyên tắc trong CI/CD..........................................................................15
1.3.4 Lợi ích của CI/CD....................................................................................18
CHƯƠNG 2: CÁC CÔNG CỤ CI/CD ĐƯỢC SỬ DỤNG TRONG HỆ THỐNG.....19
2.1 GitLab CI/CD..............................................................................................19
2.2 ArgoCD........................................................................................................21
2.3 Các công cụ khác.........................................................................................23
2.3.1 Vagrant và VirtualBox.............................................................................23
2.3.2 Ansible.....................................................................................................24
2.3.3 Container, Kubernetes và RKE2..............................................................24
2.3.4 ArgoCD Image Updater...........................................................................27
2.3.5 Longhorn.................................................................................................28
2.3.6 HashiCorp Vault và External Secrets.......................................................29
2.3.7 Ingress Nginx...........................................................................................30
2.3.8 GitLab Runner.........................................................................................30
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG CI/CD.........................................................31
3.1 Cấu hình hệ thống CI/CD.............................................................................31
3.2 Kiến trúc hệ thống CI/CD............................................................................32
3.3 Cài đặt hệ thống CI/CD................................................................................32
3.4 CI/CD cho ứng dụng thực tế........................................................................43
ii
Trần Trung Nam – D19HTTT04
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC MỤC LỤC
3.4.1 CI cho project Galaxy Landing................................................................43
3.4.2 CD cho project Galaxy Landing..............................................................47
3.4.3 CI/CD cho project Galaxy Landing trên môi trường production.............49
3.5 Kịch bản vận hành CI/CD............................................................................51
KẾT LUẬN.................................................................................................................56
TÀI LIỆU THAM KHẢO...........................................................................................57
iii