Tổng quan
Trong kỷ nguyên phát triển nhanh chóng của các hệ thống phần mềm hiện đại, yêu cầu về tính linh hoạt, khả năng mở rộng, tính bảo mật và tính tự động hóa ngày càng trở nên cấp thiết. Xuất phát từ nhu cầu thực tiễn này, đề tài của chúng em tập trung vào việc xây dựng và triển khai một hệ thống thương mại điện tử bán sản phẩm gaming gear theo mô hình microservices và tích hợp toàn bộ quy trình CI/CD hiện đại, với mục tiêu đảm bảo tính ổn định, bảo mật và khả năng triển khai liên tục.
Đề tài ứng dụng mô hình DevOps hiện đại, triển khai quy trình CI/CD bằng Jenkins. Giai đoạn CI thực hiện các bước build, kiểm thử, phân tích mã nguồn tĩnh bằng SonarQube, kiểm tra lỗ hổng thư viện với OWASP Dependency-Check, kiểm tra bảo mật động (DAST) bằng OWASP ZAP và quét image container bằng Trivy. Giai đoạn CD sử dụng ArgoCD để tự động triển khai ứng dụng lên Kubernetes Cluster theo mô hình GitOps. Hệ thống đảm bảo tính mở rộng, khả năng tự động hóa cao và tích hợp các bước kiểm tra bảo mật xuyên suốt vòng đời phát triển phần mềm.
Hệ thống được phát triển gồm các thành phần chính:
Auth Service: xử lý đăng nhập, đăng ký, phân quyền người dùng.
Product Service: quản lý thông tin sản phẩm và danh mục.
Cart Service: xử lý các hoạt động của giỏ hàng theo người dùng.
API Gateway: định tuyến các request đến đúng service, đóng vai trò cổng vào duy nhất của hệ thống backend.
Frontend: giao diện người dùng tương tác với hệ thống thông qua API Gateway.
Các thành phần trên được container hóa bằng Docker, triển khai trên cụm Kubernetes, và điều phối bằng công cụ ArgoCD sử dụng mô hình GitOps. Toàn bộ quá trình xây dựng, kiểm thử và triển khai được tự động hóa thông qua Jenkins, đóng vai trò trung tâm trong quy trình CI/CD.
Quy trình CI/CD được thiết kế theo hướng hiện đại và bảo mật (DevSecOps):
Maven: build và kiểm thử
SonarQube: phân tích mã nguồn
OWASP Dependency-Check: phát hiện lỗ hổng thư viện
Docker: đóng gói image
Trivy: quét lỗ hổng image Docker
OWASP ZAP: kiểm thử bảo mật động
ArgoCD: tự động triển khai và rollback
Hạ tầng triển khai hệ thống cũng được xây dựng theo hướng “Infrastructure as Code” thông qua Terraform, đảm bảo khả năng tái sử dụng và triển khai nhanh chóng trên các môi trường khác nhau.
Hệ thống thương mại điện tử trong đề tài vừa mang tính học thuật, vừa có khả năng ứng dụng thực tế cao. Kiến trúc microservices giúp mở rộng dễ dàng theo chức năng, trong khi quy trình CI/CD tích hợp kiểm thử bảo mật (DevSecOps) đảm bảo chất lượng và an toàn phần mềm, đáp ứng yêu cầu triển khai trong môi trường doanh nghiệp.
Ngoài ra, với việc sử dụng các công cụ phổ biến như Jenkins, Docker, Kubernetes, ArgoCD, SonarQube, Trivy, OWASP, hệ thống có thể dễ dàng chuyển giao, triển khai trên môi trường thật hoặc các nền tảng đám mây như AWS, GCP, Azure mà không cần thay đổi kiến trúc.
Mục tiêu nghiên cứu
Đề tài hướng đến mục tiêu xây dựng một hệ thống web thương mại điện tử bán sản phẩm gaming gear theo kiến trúc microservices, nhằm đảm bảo tính linh hoạt, khả năng mở rộng và khả năng bảo trì hiệu quả. Bên cạnh việc phát triển chức năng nghiệp vụ, đề tài còn tập trung thiết kế và triển khai một quy trình CI/CD hiện đại sử dụng Jenkins, giúp tự động hóa toàn bộ quá trình từ xây dựng mã nguồn, kiểm thử, phân tích bảo mật cho đến triển khai ứng dụng.
Nhằm nâng cao mức độ an toàn cho hệ thống, các công cụ bảo mật được tích hợp trực tiếp vào pipeline DevOps, hiện thực hóa mô hình DevSecOps. Đồng thời, đề tài ứng dụng các công nghệ container hóa và điều phối container như Docker và Kubernetes để đảm bảo khả năng triển khai linh hoạt trên nhiều môi trường khác nhau.
Cuối cùng, việc thực hành triển khai GitOps với ArgoCD cho phép hệ thống được đồng bộ hóa từ Git lên cụm Kubernetes một cách tự động, minh bạch và có kiểm soát, góp phần hoàn thiện quy trình phát triển phần mềm hiện đại.
Đối tượng nghiên cứu
Hệ thống thương mại điện tử (E-Commerce Web Application) gồm các chức năng: đăng ký, đăng nhập, quản lý sản phẩm, quản lý giỏ hàng và giao diện người dùng.
Các thành phần kỹ thuật và công nghệ DevOps hiện đại, bao gồm:
Jenkins (CI/CD)
Maven (build và test)
SonarQube, OWASP Dependency-Check, Trivy, OWASP ZAP (an ninh phần mềm)
Docker, Kubernetes (container hóa và điều phối)
ArgoCD (GitOps)
Terraform (quản lý hạ tầng và cấu hình).
Phạm vi nghiên cứu
Đề tài tập trung vào việc phát triển và triển khai một hệ thống thương mại điện tử với các chức năng cốt lõi như xác thực người dùng, quản lý sản phẩm và giỏ hàng. Hệ thống được xây dựng theo kiến trúc microservices và triển khai trên cụm Kubernetes. Các chức năng nâng cao như thanh toán trực tuyến, quản lý đơn hàng, vận chuyển hay phân tích hành vi người dùng chưa được nghiên cứu trong phạm vi đề tài.
Về mặt kỹ thuật, phạm vi nghiên cứu bao gồm việc triển khai quy trình CI/CD sử dụng Jenkins, tích hợp các công cụ kiểm thử bảo mật như SonarQube, OWASP Dependency-Check, Trivy và OWASP ZAP nhằm hiện thực hóa mô hình DevSecOps.
Hệ thống sử dụng Docker để container hóa và Kubernetes để điều phối. Ngoài ra, đề tài áp dụng ArgoCD để triển khai theo mô hình GitOps, và sử dụng Terraform ở mức cơ bản để quản lý hạ tầng dưới dạng mã nguồn (Infrastructure as Code).
Kiến trúc tổng thể
Ứng dụng được xây dựng theo kiến trúc microservices, chia thành nhiều thành phần độc lập, mỗi thành phần phụ trách một chức năng riêng. Hệ thống bao gồm các thành phần chính:
Frontend: Giao diện người dùng được phát triển bằng HTML, JavaScript và SCSS. Thành phần này đảm nhiệm việc hiển thị thông tin và xử lý tương tác từ phía người dùng thông qua trình duyệt. Frontend hoạt động độc lập và gửi các yêu cầu HTTP đến API Gateway để lấy dữ liệu cần thiết.
API Gateway: Là cổng giao tiếp trung tâm giữa frontend và các dịch vụ backend. Tất cả các yêu cầu từ phía người dùng đều được định tuyến thông qua gateway này để tới đúng dịch vụ xử lý phía sau.
Các dịch vụ backend:
o auth-service: Phụ trách xác thực người dùng.
o product-service: Quản lý thông tin sản phẩm và danh mục.
o cart-service: Quản lý dữ liệu giỏ hàng và các thao tác liên quan.
Các dịch vụ backend được triển khai độc lập dưới dạng container, giao tiếp với nhau thông qua giao thức HTTP và dữ liệu định dạng JSON. Toàn bộ hệ thống được triển khai và quản lý trên nền tảng Kubernetes.



Hiện thực hệ thống
Đặc tả ứng dụng web
Ứng dụng web thương mại điện tử được xây dựng nhằm phục vụ việc mua bán sản phẩm gaming gear theo mô hình microservices. Giao diện web được phát triển bằng HTML, JavaScript và SCSS, kết hợp với API Gateway để giao tiếp với các dịch vụ backend.
Giao diện người dùng được chia thành các trang chức năng chính, gồm: Trang đăng ký/đăng nhập, Trang danh sách sản phẩm, Trang giỏ hàng. Các chức năng này đảm bảo tính thân thiện, dễ sử dụng và đáp ứng yêu cầu nghiệp vụ của hệ thống.
Đặc tả giao diện đăng nhập/đăng ký
Mục đích: Cho phép người dùng tạo tài khoản mới, đăng nhập vào hệ thống và quản lý thông tin đăng nhập. Thành phần giao diện:
Form đăng ký: nhập email, mật khẩu và bấm nút Đăng ký để đăng ký tài khoản.
Form đăng nhập: nhập email, mật khẩu và bấm nút Đăng nhập để đăng nhập vào tài khoản.
Các nút thao tác: Đăng ký, Đăng nhập.
Thông báo lỗi: Sai mật khẩu, tài khoản không tồn tại.
Luồng hoạt động: Người dùng nhập thông tin ➜ Frontend gửi request HTTP POST qua API Gateway ➜ Auth Service xử lý ➜ Phản hồi JWT Token ➜ Frontend lưu token dưới dạng cookie HTTP-only.
Đặc tả giao diện danh sách sản phẩm
Mục đích: Hiển thị danh sách sản phẩm đang bán, hỗ trợ người dùng xem chi tiết và thêm sản phẩm vào giỏ hàng.
Thành phần giao diện:
Khung lọc sản phẩm theo loại sản phẩm, thương hiệu hoặc mức giá cho phù hợp với nhu cầu.
Danh sách sản phẩm: hình ảnh, tên sản phẩm, giá, nút “Thêm vào giỏ”.
Luồng hoạt động: Frontend gửi request HTTP GET qua API Gateway ➜ Product Service trả dữ liệu JSON ➜ Frontend render ra giao diện
Môi trường thực nghiệm
Nhóm đã triển khai toàn bộ kiến trúc trên nền tảng AWS EC2. Cụm Kubernetes được thiết lập gồm 1 node master và 2 node worker.
Các công cụ hỗ trợ triển khai và kiểm thử bao gồm:
Jenkins: Thiết lập pipeline CI/CD tự động từ giai đoạn build, test, đóng gói Docker image và đẩy lên Docker Hub.
ArgoCD: Tự động triển khai ứng dụng từ repository Git lên cụm Kubernetes theo mô hình GitOps.
Terraform: Quản lý hạ tầng AWS dưới dạng mã nguồn.
SonarQube, OWASP Dependency-Check, Trivy, ZAP: Kiểm tra chất lượng mã nguồn và quét bảo mật ngay trong pipeline.
Docker, Kubernetes: Quản lý, container hoá và điều phối các microservice.
Các dịch vụ backend (auth-service, product-service, cart-service), API Gateway và frontend đều được container hoá, triển khai dưới dạng Pod trong cụm Kubernetes, sử dụng Service và Ingress để định tuyến lưu lượng. Toàn bộ tệp cấu hình YAML được quản lý tập trung trên Git.
Kết quả thực nghiệm
Sau khi triển khai, hệ thống đã được kiểm tra thực nghiệm với các bước như sau:
- Pipeline CI/CD hoạt động ổn định: Jenkins thực hiện đầy đủ các giai đoạn build mã nguồn, chạy unit test, phân tích chất lượng code bằng SonarQube, quét lỗ hổng phụ thuộc bằng OWASP Dependency-Check, quét image Docker bằng Trivy, kiểm tra bảo mật ứng dụng web bằng ZAP.

- Tự động triển khai thông qua ArgoCD: Khi pipeline hoàn tất, các tệp YAML được đẩy lên repository Git, ArgoCD tự động đồng bộ trạng thái deploy lên cluster Kubernetes, đảm bảo ứng dụng luôn đúng với cấu hình khai báo.

- Ứng dụng web hoạt động đúng chức năng: Người dùng có thể đăng ký, đăng nhập tài khoản. Xem danh sách sản phẩm, tìm kiếm sản phẩm. Thêm, xoá sản phẩm khỏi giỏ hàng.
- Hệ thống đảm bảo yêu cầu hoạt động ổn định, các dịch vụ giao tiếp thông suốt thông qua API Gateway, xác thực người dùng bằng JWT Token, dữ liệu giỏ hàng được lưu trữ riêng theo userId, đảm bảo tính tách biệt và bảo mật.

Kết luận
Kết quả đạt được
Sau thời gian nghiên cứu và thực hiện, đề tài “Xây dựng và triển khai ứng dụng web thương mại điện tử dựa trên Microservices với DevOps” đã hoàn thành các mục tiêu chính đặt ra:
Xây dựng hệ thống ứng dụng web thương mại điện tử với các chức năng cơ bản: đăng ký, đăng nhập, quản lý sản phẩm, quản lý giỏ hàng.
Thiết kế kiến trúc Microservices, chia tách các dịch vụ backend thành các thành phần độc lập: auth-service, product-service, cart-service, được quản lý và giao tiếp thông qua API Gateway.
Triển khai toàn bộ hệ thống trên nền tảng Kubernetes, các dịch vụ được container hoá bằng Docker và quản lý tập trung.
Thiết lập pipeline CI/CD tự động hoá với Jenkins, tích hợp các bước build, kiểm thử, phân tích chất lượng mã nguồn (SonarQube), kiểm tra lỗ hổng bảo mật (OWASP Dependency-Check, Trivy, ZAP) và triển khai tự động (ArgoCD) theo mô hình GitOps.
Quản lý hạ tầng triển khai bằng Terraform, đảm bảo tính đồng nhất và dễ mở rộng.
Thực nghiệm triển khai thành công trên cụm AWS EC2, hệ thống hoạt động ổn định, đáp ứng yêu cầu nghiệp vụ đã đề ra.
Hạn chế
Bên cạnh các kết quả đạt được, đề tài vẫn còn một số hạn chế:
Hệ thống mới chỉ triển khai các chức năng cốt lõi, chưa tích hợp các tính năng nâng cao như quản lý đơn hàng, thanh toán trực tuyến hoặc khuyến nghị sản phẩm.
Khả năng chịu tải của cụm Kubernetes trong môi trường thử nghiệm còn hạn chế do tài nguyên máy ảo thấp.
Quy trình cấu hình các công cụ CI/CD và các bước kiểm thử bảo mật đòi hỏi thời gian nghiên cứu, tối ưu thêm để áp dụng thực tế trong doanh nghiệp quy mô lớn.
Chưa xây dựng dashboard giám sát hiệu năng chi tiết (Prometheus, Grafana).
Hướng phát triển
Trong tương lai, hệ thống có thể được hoàn thiện và mở rộng theo các hướng sau:
Bổ sung các chức năng quản lý đơn hàng, thanh toán online, quản lý vận chuyển và trạng thái giao hàng.
Ứng dụng công nghệ Machine Learning để gợi ý sản phẩm phù hợp với hành vi người dùng.
Tích hợp hệ thống thanh toán điện tử, cổng thanh toán, đảm bảo an toàn và bảo mật thông tin giao dịch.
Hoàn thiện dashboard giám sát hiệu năng hệ thống theo thời gian thực với các công cụ như Prometheus, Grafana.


