Bối cảnh và vấn đề nghiên cứu
Trong quy trình phát triển phần mềm hiện đại, sự chuyển dịch từ phương thức triển khai thủ công sang tư duy DevOps và tự động hóa (CI/CD) đang diễn ra mạnh mẽ nhằm đáp ứng yêu cầu ngày càng cao về tốc độ, tính ổn định và sự linh hoạt của sản phẩm. Việc chuyển đổi số trong các doanh nghiệp đòi hỏi quy trình từ mã nguồn đến tay người dùng phải được rút ngắn tối đa, đồng thời phải tiếp nhận và xử lý liên tục các phản hồi từ khách hàng. Tuy nhiên, việc tăng tốc độ phân phối phần mềm nếu thiếu đi các cơ chế kiểm soát chất lượng và an toàn thông tin sẽ tạo ra nhiều rủi ro vận hành nghiêm trọng. Mô hình DevSecOps ra đời nhằm tích hợp chặt chẽ các yếu tố phát triển (Development), bảo mật (Security) và vận hành (Operations) xuyên suốt toàn bộ vòng đời ứng dụng.
Từ bối cảnh thực tiễn đó, đồ án tốt nghiệp "Nghiên cứu giải pháp DevSecOps trong hỗ trợ phát triển phần mềm" của sinh viên Lê Quý Hoàng (ngành Công nghệ thông tin, Học viện Công nghệ Bưu chính Viễn thông) tập trung giải quyết bài toán tự động hóa quy trình phát triển, kiểm thử, tích hợp an toàn và triển khai cho ứng dụng hướng kiến trúc vi dịch vụ (microservices).
Mục tiêu nghiên cứu của đồ án được xác định gồm 3 nội dung chính:
- Nghiên cứu về lý thuyết của DevOps và mở rộng ra DevSecOps trong hỗ trợ quy trình phát triển phần mềm.
- Đặt ra một giải pháp mang tính tổng thể theo tư duy DevSecOps để giải quyết bài toán tự động hóa trong phát triển phần mềm.
- Áp dụng giải pháp DevSecOps vào trong việc phát triển một ứng dụng web mô hình microservice.
Nhiệm vụ nghiên cứu cụ thể bao gồm:
- Tìm hiểu cơ sở lý thuyết về vòng đời phát triển phần mềm, ảo hóa, container, kiến trúc microservices và văn hóa DevSecOps.
- Khảo sát và lựa chọn các công nghệ, công cụ mã nguồn mở phục vụ cho từng giai đoạn của chu trình.
- Thiết kế giải pháp kiến trúc và luồng làm việc tổng thể cho hệ thống DevSecOps.
- Cài đặt hạ tầng, cấu hình tích hợp và vận hành thử nghiệm trên một ứng dụng web thực tế.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình, công cụ và phương pháp luận DevSecOps; các đội nhóm và doanh nghiệp phát triển sản phẩm công nghệ thông tin, đặc biệt là các đơn vị áp dụng phương pháp luận phát triển phần mềm linh hoạt (Agile).
- Phạm vi nghiên cứu: Thiết kế và triển khai một hệ sinh thái DevSecOps hoàn chỉnh dựa trên các công cụ mã nguồn mở (self-hosted) kết nối qua Internet; thực nghiệm quy trình cập nhật và giám sát trên ứng dụng web mô hình microservices (Bookinfo) triển khai trên cụm Kubernetes bare-metal.
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng trên các nền tảng lý thuyết cốt lõi về kỹ thuật phần mềm và hạ tầng điện toán:
- Lý thuyết tiến hóa hạ tầng: Phân tích tiến trình từ máy chủ vật lý (bare-metal), máy ảo (Virtual Machines thông qua Hypervisor) đến công nghệ container hóa (Containerization) với Docker. Container chia sẻ nhân hệ điều hành máy chủ thông qua các tính năng của Linux kernel (kernel namespace, control groups, union filesystem), mang lại khả năng khởi động nhanh, chiếm dụng ít tài nguyên và tính di động cao.
- Mô hình DevSecOps: Mở rộng từ DevOps, kết hợp văn hóa, phương pháp thực hành và bộ công cụ tự động hóa nhằm tích hợp bảo mật vào mọi giai đoạn: Tích hợp liên tục (CI), Cung cấp liên tục (Continuous Delivery), Triển khai liên tục (Continuous Deployment), Hạ tầng như mã (IaC) và Giám sát chủ động (Active Monitoring).
- Mô hình kiến trúc Microservices: Tách biệt ứng dụng nguyên khối (Monolithic) thành các dịch vụ độc lập, giao tiếp qua API/mạng, cho phép nâng cấp, mở rộng và bảo trì độc lập từng thành phần.
- Triết lý GitOps và Service Mesh: Sử dụng kho chứa Git làm nguồn chân lý duy nhất (single source of truth) để quản lý cấu hình khai báo (declarative configuration) và áp dụng lớp mạng chuyên biệt (Service Mesh) để quản lý, bảo mật, định tuyến và phân tích lưu lượng giao tiếp giữa các microservices.
Phương pháp nghiên cứu được thực hiện:
- Phương pháp phân tích - tổng hợp lý thuyết: Thu thập, đối chiếu tài liệu kỹ thuật về các tiêu chuẩn CI/CD, cơ chế hoạt động của các công cụ mã nguồn mở trong hệ sinh thái Cloud Native Computing.
- Phương pháp thiết kế hệ thống kỹ thuật: Xây dựng mô hình kiến trúc phân tầng, phân định rõ ràng các khối chức năng từ quản lý mã nguồn, tích hợp liên tục, lưu trữ gói sản phẩm (registry), triển khai liên tục cho đến giám sát thời gian thực.
- Phương pháp thực nghiệm: Thiết lập môi trường phòng thí nghiệm gồm các máy chủ độc lập và cụm Kubernetes thực tế; cấu hình chuỗi pipeline tự động; thực hiện kịch bản phát hành bản cập nhật ứng dụng và thu thập dữ liệu đo kiểm hệ thống (metrics, traces, logs).
Nguồn dữ liệu và tài nguyên sử dụng bao gồm tài liệu kỹ thuật chuẩn của các dự án mã nguồn mở (Gitea, Jenkins, SonarQube, Harbor, Trivy, Argo CD, Kubernetes, MetalLB, Istio, Kiali, Jaeger, Grafana) và mã nguồn ứng dụng mẫu Bookinfo.
Thiết kế và triển khai giải pháp DevSecOps
Kiến trúc giải pháp được thiết kế thành một vòng lặp khép kín gồm 4 giai đoạn chính, hoạt động tuần tự và liên tục:
Cấu trúc phân tầng công nghệ và hạ tầng triển khai bao gồm:
- 1 máy chủ Gitea: Quản lý mã nguồn tập trung và kho cấu hình triển khai, hỗ trợ Webhook, Pull Request và kiểm soát truy cập.
- 1 máy chủ SonarQube: Thực hiện kiểm thử tĩnh mã nguồn (SAST), kiểm tra tiêu chuẩn mã nguồn, độ phức tạp và thiết lập Quality Gate.
- 1 máy chủ Harbor (tích hợp Trivy): Quản lý Docker container image, hỗ trợ phân quyền theo dự án, ký image và tự động quét lỗ hổng bảo mật (CVE), cấu hình IaC, SBOM.
- 1 cụm Kubernetes (1 Control Plane node, 1 Worker node): Hạ tầng điều phối container, gồm các thành phần:
- Control Plane: API Server, etcd (cluster store), Controller Manager, Scheduler.
- Worker Node: Kubelet, Kube-proxy, Container Runtime.
- MetalLB: Bộ cân bằng tải mạng dành riêng cho cụm Kubernetes bare-metal để cấp phát IP truy cập ngoài.
- Argo CD: Trình điều khiển triển khai theo mô hình GitOps.
- Istio Service Mesh: Quản lý lưu lượng giao tiếp nội bộ giữa các microservices và định tuyến Ingress Gateway.
- Hệ thống giám sát: Tích hợp Kiali (trực quan hóa topo dịch vụ), Jaeger (distributed tracing) và Grafana (dashboard theo dõi metrics).
- Hạ tầng mạng trung gian: Các máy chủ giao tiếp thông qua Internet, định tuyến qua Reverse Proxy Nginx, xác thực tên miền và mã hóa bảo mật bằng chứng chỉ SSL.
Quy trình vận hành kỹ thuật chi tiết:
- Lập trình viên đẩy mã nguồn cập nhật lên Gitea qua lệnh
git push.
- Gitea gửi Webhook kích hoạt Pipeline trên Jenkins.
- Jenkins tải mã nguồn, gọi SonarQube quét chất lượng mã. Nếu vượt qua Quality Gate, Jenkins tiến hành đóng gói Docker image.
- Jenkins đẩy Docker image lên Harbor Registry; Trivy quét toàn diện lỗ hổng bảo mật của image.
- Jenkins cập nhật image tag mới vào repository chứa cấu hình triển khai (YAML manifest) trên Gitea.
- Argo CD liên tục giám sát, phát hiện sự thay đổi giữa trạng thái mong muốn trên Git và trạng thái thực tế trong cụm Kubernetes (OutOfSync), tự động thực hiện đồng bộ (Sync) để rollout Pod mới trên Kubernetes mà không gây downtime.
- Istio điều phối lưu lượng truy cập; Kiali, Jaeger và Grafana thu thập dữ liệu phục vụ phân tích hiệu năng và phát hiện sự cố.
Nội dung chính theo từng chương
Chương 1: Giới thiệu đề tài, công nghệ và giải pháp sử dụng
Chương này tập trung trình bày bối cảnh phát triển của các phương pháp triển khai ứng dụng qua các thời kỳ:
- Thời kỳ máy chủ vật lý: Khả năng tận dụng phần cứng kém, chi phí đầu tư lớn do phải mua sắm máy chủ cấu hình cao dựa trên phỏng đoán hiệu năng, mở rộng hệ thống chậm và phức tạp.
- Thời kỳ máy ảo (Hypervisor): Cho phép nhiều máy ảo chạy trên một máy chủ vật lý nhưng tiêu tốn tài nguyên cho hệ điều hành khách (Guest OS), khởi động chậm và phụ thuộc vào nền tảng ảo hóa.
- Thời kỳ Container: Ảo hóa ở mức hệ điều hành, dùng chung kernel, khởi động tức thì, tối ưu tài nguyên và tăng tính di động cho ứng dụng.
Tác giả phân tích chi tiết khái niệm, lợi ích và nguyên tắc cốt lõi của văn hóa DevOps/DevSecOps (tốc độ, phân phối liên tục, độ tin cậy, khả năng mở rộng, bảo mật đa tầng). Nội dung chương đi sâu so sánh sự khác biệt khi áp dụng DevSecOps cho mô hình Monolithic so với Microservices:
| Tiêu chí |
Mô hình ứng dụng Monolithic |
Mô hình ứng dụng Microservices |
| Công nghệ phát triển |
Ràng buộc trong một ngăn xếp công nghệ (tech-stack) duy nhất |
Đa dạng ngôn ngữ và công nghệ cho từng dịch vụ độc lập |
| Quy trình build và CI |
Đóng gói toàn bộ ứng dụng thành 1 khối duy nhất |
Đóng gói độc lập từng dịch vụ thành các container image |
| Khả năng triển khai |
Rủi ro lỗi toàn hệ thống, khó tránh downtime khi nâng cấp |
Cập nhật độc lập từng thành phần, hỗ trợ zero-downtime |
| Khả năng mở rộng (Scale) |
Phải nhân bản toàn bộ khối ứng dụng, lãng phí tài nguyên |
Scale linh hoạt và tối ưu theo nhu cầu của từng dịch vụ cụ thể |
| Mức độ giám sát |
Chủ yếu giám sát phần cứng và trạng thái chung của ứng dụng |
Giám sát sâu từng dịch vụ qua metric, log và distributed trace |
Chương 1 cũng tổng hợp cơ sở lý thuyết và vai trò của 10 công nghệ được sử dụng: Git/Gitea, Jenkins, SonarQube, Harbor, Trivy, Argo CD, Kubernetes, MetalLB và Istio Service Mesh.
Chương 2: Thiết kế giải pháp DevSecOps trong phát triển phần mềm
Chương 2 mô hình hóa bài toán kỹ thuật đặt ra cho một đội ngũ phát triển website microservices bằng các công cụ mã nguồn mở. Tác giả chi tiết hóa thiết kế hệ thống theo 4 giai đoạn vòng lặp khép kín:
- Giai đoạn Phát triển: Quản lý mã nguồn đa nhánh, kiểm soát quyền truy cập và lưu vết commit trên Gitea.
- Giai đoạn Tích hợp liên tục: Tự động hóa quá trình đóng gói mã nguồn thành Docker image, tích hợp kiểm tra mã nguồn tĩnh với SonarQube và kiểm tra lỗ hổng bảo mật của image với Trivy trên Harbor.
- Giai đoạn Triển khai liên tục: Triển khai theo tư tưởng GitOps thông qua Argo CD, quản lý các tài nguyên Kubernetes (Pod, Deployment, Service, Namespace) một cách tự động và hỗ trợ khả năng Rollback nhanh chóng.
- Giai đoạn Giám sát: Thu thập số liệu hiệu năng và lưu vết giao tiếp phân tán bằng Istio Service Mesh kết hợp bộ công cụ quan sát.
Kiến trúc liên lạc giữa các microservices được thiết kế đồng bộ với mô hình Istio Sidecar Proxy (Envoy Proxy được tiêm tự động vào từng Pod), giúp quản lý lưu lượng Ingress/Egress và thiết lập các chính sách định tuyến mà không cần can thiệp trực tiếp vào mã nguồn ứng dụng.
Chương 3: Áp dụng giải pháp DevSecOps hỗ trợ phát triển một website mô hình microservice
Chương 3 trình bày chi tiết quá trình cấu hình, thử nghiệm và đánh giá hệ thống trên ứng dụng web Bookinfo (gồm 4 microservices: productpage, details, reviews, ratings).
Quy trình chuẩn bị và tích hợp kỹ thuật bao gồm:
- Cấu hình Webhook trên Gitea trỏ đến Jenkins.
- Thiết lập Jenkins Pipeline thông qua
Jenkinsfile, khai báo các thông tin xác thực (Credentials) liên kết với SonarQube Token và tài khoản Harbor Robot Account.
- Thiết lập ứng dụng trên Argo CD trỏ về Git repository chứa manifest và đích đến là cụm Kubernetes.
Kịch bản thực nghiệm: Thực hiện thay đổi giao diện phần tiêu đề của dịch vụ productpage, lập trình viên thực hiện git push mã nguồn mới. Kết quả đo kiểm ghi nhận:
- Webhook kích hoạt pipeline trên Jenkins tự động.
- SonarQube quét mã nguồn thành công và báo cáo chất lượng lên giao diện quản trị.
- Harbor tiếp nhận Docker image mới, Trivy tự động quét và phân tích danh sách các lỗ hổng bảo mật (CVE).
- Jenkins cập nhật Git manifest; Argo CD tự động nhận diện và đồng bộ trạng thái mong muốn.
- Kubernetes tiến hành rollout Pod
productpage mới và chấm dứt Pod cũ mà không làm gián đoạn dịch vụ của người dùng (zero downtime).
- Giao diện Kiali hiển thị chính xác biểu đồ topo phân phối lưu lượng giữa các microservices; Jaeger phân tích chi tiết độ trễ của từng request và Grafana trực quan hóa tài nguyên hệ thống.
Kết quả và đóng góp
Đồ án đã đạt được các kết quả kỹ thuật cụ thể được chứng minh qua thực nghiệm:
- Xây dựng thành công hệ sinh thái DevSecOps tự động hóa 100% từ khâu nhận mã nguồn đến triển khai và giám sát, sử dụng hoàn toàn các giải pháp mã nguồn mở.
- Tích hợp kiểm thử bảo mật tự động đa tầng: phân tích tĩnh mã nguồn (SAST) qua SonarQube và kiểm tra an toàn container image/SBOM qua Trivy trước khi đưa vào môi trường vận hành.
- Áp dụng thành công mô hình GitOps với Argo CD, giúp loại bỏ hoàn toàn các thao tác can thiệp thủ công vào cụm máy chủ, giảm thiểu sai sót do con người và đảm bảo tính nhất quán của môi trường.
- Triển khai thành công ứng dụng microservices Bookinfo trên hạ tầng Kubernetes bare-metal có tích hợp MetalLB và Istio Service Mesh, đảm bảo khả năng cập nhật phiên bản liền mạch (zero-downtime rollout).
Bảng tổng kết so sánh giữa giải pháp DevSecOps được xây dựng và phương pháp triển khai truyền thống (dựa trên Bảng 3.1 của đồ án):
| Khía cạnh so sánh |
Phương pháp triển khai truyền thống |
Giải pháp DevSecOps trong đồ án |
| Môi trường phát triển |
Cài đặt thủ công trên từng máy, dễ xung đột phiên bản |
Chuẩn hóa hoàn toàn qua Docker image thống nhất |
| Kiểm thử & Đóng gói |
Đội vận hành lấy code, build và test thủ công/bán tự động |
Tự động hóa qua Jenkins Pipeline và SonarQube Quality Gate |
| Kiểm soát an toàn |
Thường bị bỏ qua hoặc kiểm tra rời rạc ở giai đoạn cuối |
Quét mã nguồn tĩnh (SonarQube) và quét lỗ hổng image (Trivy) tự động |
| Quá trình triển khai |
Sao chép file nhị phân thủ công lên máy chủ, nguy cơ downtime cao |
Tự động đồng bộ qua Argo CD (GitOps), không gây downtime |
| Khả năng phục hồi |
Khôi phục thủ công phức tạp, tốn nhiều thời gian |
Rollback tức thì thông qua lịch sử commit của Git và Kubernetes |
| Khả năng mở rộng |
Khó mở rộng, đòi hỏi nâng cấp phần cứng hoặc thêm máy ảo |
Mở rộng Pod tự động/thủ công linh hoạt cho từng microservice |
| Khả năng giám sát |
Hạn chế ở mức độ phần cứng (RAM, CPU) hoặc log file cục bộ |
Giám sát chi tiết metric, topo dịch vụ (Kiali) và phân tích vết (Jaeger) |
Đóng góp chính của tác giả là đưa ra một mô hình tham chiếu thực tế, kết hợp hài hòa các công nghệ Cloud Native hiện đại (GitOps, Container Orchestration, Service Mesh) trên hạ tầng tự quản (self-hosted), cung cấp tài liệu hướng dẫn cấu hình chi tiết từ lý thuyết đến thực hành cho việc xây dựng chu trình CI/CD tích hợp bảo mật.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của nghiên cứu:
- Cụm Kubernetes thử nghiệm mới chỉ dừng lại ở quy mô cơ bản gồm 1 node điều khiển (Control Plane) và 1 node tính toán (Worker), chưa đánh giá toàn diện trên các cụm phân tán quy mô lớn có tính sẵn sàng cao (High Availability) cho Control Plane.
- Khâu kiểm thử tự động trong pipeline CI hiện mới tập trung vào kiểm tra tĩnh mã nguồn và quét lỗ hổng bảo mật của image; chưa tích hợp sâu các kịch bản kiểm thử tự động nâng cao như kiểm thử giao diện (UI Testing), kiểm thử tải (Load Testing) hay kiểm thử tích hợp API (Integration Testing).
- Tính năng CI/CD nội hợp sẵn có trên Gitea chưa được khai thác sâu do công nghệ này tại thời điểm nghiên cứu vẫn đang trong giai đoạn phát triển thử nghiệm.
Hướng phát triển tiếp theo:
- Mở rộng quy mô cụm Kubernetes với cấu hình đa Control Plane node (sử dụng etcd cluster số lẻ theo thuật toán Raft) và nhiều Worker node để kiểm thử độ chịu tải và tính sẵn sàng cao.
- Xây dựng và tích hợp các pipeline kiểm thử chức năng tự động chuyên sâu vào chu trình CI trước khi tiến hành đóng gói image.
- Nghiên cứu và triển khai các chiến lược phát hành nâng cao như Canary Deployment hoặc A/B Testing có điều kiện tự động, sử dụng các chỉ số đo lường thực tế từ Istio Service Mesh để tự động quyết định tỷ lệ phân phối lưu lượng hoặc tự động rollback khi phát sinh lỗi.
Giá trị tham khảo
Đồ án tốt nghiệp là tài liệu tham khảo chuyên môn phù hợp cho:
- Sinh viên và học viên ngành Công nghệ thông tin, Kỹ thuật phần mềm, An toàn thông tin: Nắm bắt toàn diện các khái niệm từ ảo hóa, container, kiến trúc microservices đến mô hình văn hóa và quy trình kỹ thuật DevSecOps.
- Kỹ sư DevOps, lập trình viên và quản trị viên hệ thống: Tham khảo kiến trúc thiết kế chi tiết (Chương 2) và quy trình cài đặt, liên kết các công cụ mã nguồn mở (Chương 3) để ứng dụng trực tiếp vào việc xây dựng hệ thống CI/CD/GitOps nội bộ cho tổ chức, đặc biệt trong các môi trường triển khai hạ tầng tự quản (on-premise / bare-metal).
Các phần nội dung có giá trị tham khảo nổi bật bao gồm:
- Hướng dẫn thiết lập luồng Webhook liên thông giữa Gitea, Jenkins, SonarQube và Harbor.
- Kỹ thuật triển khai cấu hình khai báo GitOps với Argo CD trên Kubernetes.
- Mô hình tích hợp Service Mesh (Istio) kết hợp với các công cụ quan sát Kiali, Jaeger và Grafana nhằm giải quyết bài toán quản lý và giám sát kiến trúc vi dịch vụ.
Câu hỏi thường gặp
1. Đồ án giải quyết vấn đề cân bằng tải cho cụm Kubernetes trên hạ tầng bare-metal như thế nào?
Mặc định, Kubernetes chỉ hỗ trợ tạo Service dạng LoadBalancer thông qua các nhà cung cấp đám mây công cộng (IaaS như AWS, GCP, Azure), khiến việc tạo LoadBalancer trên cụm bare-metal bị kẹt ở trạng thái "pending". Đồ án đã giải quyết vấn đề này bằng cách tích hợp trực tiếp giải pháp cân bằng tải mạng mã nguồn mở MetalLB vào cụm Kubernetes nội bộ, cho phép cấp phát địa chỉ IP bên ngoài (External IP) ổn định để người dùng có thể truy cập trực tiếp vào ứng dụng.
2. Thành phần bảo mật (Sec) được tích hợp ở những giai đoạn nào trong quy trình?
Yếu tố an toàn thông tin được lồng ghép tự động vào 2 giai đoạn chính:
- Giai đoạn Tích hợp liên tục (CI): Sử dụng SonarQube để phân tích mã nguồn tĩnh (SAST), phát hiện lỗi lập trình, kiểm soát độ phức tạp và ngăn chặn các đoạn mã không đạt chuẩn thông qua Quality Gate.
- Giai đoạn Lưu trữ gói phần mềm (Registry): Sử dụng Trivy tích hợp sẵn trong Harbor để quét toàn diện container image, tự động phát hiện các lỗ hổng bảo mật đã biết (CVE), kiểm tra thành phần phụ thuộc (SBOM), cấu hình sai trong hạ tầng như mã (IaC) và các thông tin bí mật (secret/token) bị lộ trước khi cho phép triển khai.
3. Cơ chế GitOps của Argo CD hoạt động như thế nào trong giải pháp?
Argo CD hoạt động dưới dạng một Controller bên trong cụm Kubernetes. Nó liên tục theo dõi Git repository chứa các file cấu hình Kubernetes manifest (nguồn chân lý duy nhất) và so sánh với trạng thái tài nguyên đang chạy thực tế trên cụm. Khi phát hiện sự sai lệch (trạng thái OutOfSync), Argo CD tự động hoặc hỗ trợ người dùng đồng bộ trạng thái thực tế về đúng với trạng thái mong muốn trong Git, đồng thời hỗ trợ theo dõi vòng đời ứng dụng qua các hook (PreSync, Sync, PostSync) và cho phép khôi phục phiên bản (Rollback) nhanh chóng khi có sự cố.
4. Hệ thống thực hiện việc giám sát ứng dụng microservice sau triển khai bằng những công cụ nào và thu thập những loại dữ liệu gì?
Hệ thống sử dụng lớp mạng Istio Service Mesh kết hợp các công cụ quan sát chuyên dụng:
- Dữ liệu lưu lượng và topo dịch vụ: Được trực quan hóa theo thời gian thực thông qua giao diện đồ họa của Kiali.
- Dữ liệu vết phân tán (Distributed Tracing): Được thu thập và phân tích chi tiết qua Jaeger để theo dõi đường đi và độ trễ của từng request qua các microservices riêng biệt.
- Dữ liệu chỉ số hiệu năng (Metrics): Thu thập thông số phần cứng, tài nguyên mạng và trạng thái xử lý của container để trực quan hóa trên các bảng điều khiển của Grafana.
Kết luận
Đồ án "Nghiên cứu giải pháp DevSecOps trong hỗ trợ phát triển phần mềm" của tác giả Lê Quý Hoàng đã hệ thống hóa đầy đủ cơ sở lý luận về chu trình phát triển phần mềm hiện đại và xây dựng thành công một giải pháp kỹ thuật tổng thể, khép kín theo định hướng DevSecOps. Việc kết hợp chuỗi công cụ mã nguồn mở gồm Gitea, Jenkins, SonarQube, Harbor, Trivy, Argo CD, Kubernetes và Istio đã chứng minh tính khả thi trong việc tự động hóa hoàn toàn từ khâu kiểm tra mã nguồn, đóng gói an toàn đến triển khai zero-downtime và giám sát phân tán cho ứng dụng microservices. Kết quả nghiên cứu là một mô hình thực nghiệm hoàn chỉnh, mang lại giá trị tham khảo thiết thực cho các đội ngũ kỹ thuật trong quá trình hiện đại hóa quy trình phát triển và vận hành phần mềm.