TỔNG QUAN
Đề tài được chọn xuất phát từ nhu cầu ngày càng cao trong việc quản lý công việc nhóm, đặc biệt là trong bối cảnh làm việc từ xa và mô hình Agile/Scrum đang được ưa chuộng.
Các công cụ quản lý truyền thống hiện nay thường gặp khó khăn trong việc đáp ứng yêu cầu về tính tùy biến, bảo mật và khả năng mở rộng trong môi trường phân tán. Với kiến trúc microservices kết hợp DevOps, hệ thống không chỉ dễ dàng phát triển và triển khai độc lập theo từng dịch vụ mà còn giúp nâng cao hiệu suất vận hành, giám sát và bảo trì hệ thống một cách hiệu quả. Đề tài này cũng tạo cơ hội cho nhóm sinh viên được trải nghiệm và ứng dụng các công nghệ tiên tiến như Docker, Kubernetes, Jenkins, Prometheus và AWS cloud infrastructure, những kỹ năng đang rất cần thiết trong ngành công nghệ thông tin hiện nay.
Thông qua việc triển khai hệ thống này, nhóm sinh viên không chỉ được tiếp cận với các công nghệ hiện đại mà còn làm quen với quy trình phát triển phần mềm chuyên nghiệp, chuẩn doanh nghiệp, từ đó nâng cao năng lực làm việc và khả năng thích ứng trong môi trường công nghệ đầy thử thách.
Mục tiêu nghiên cứu
Đồ án chuyên ngành tập trung xây dựng và triển khai một ứng dụng web quản lý công việc nhóm hiện đại, sử dụng kiến trúc microservices và áp dụng công nghệ Devops nhắm giải quyết hiệu quả các vấn đề thực tế trong quản lý dự án. Để đạt mục tiêu này, nhóm đã xác định các mục tiêu cụ thể như sau:
- Xây dựng một hệ thống web quản lý công việc nhóm theo kiến trúc microservices.
- Áp DevOps để tự động hóa quy trình phát triển, triển khai và giám sát hệ thống.
- Sử dụng các công cụ như Jenkins, ArgoCD, Vault, Prometheus, Grafana nhằm đảm bảo chất lượng phần mềm, tính bảo mật và khả năng giám sát hiệu quả.
- Đảm bảo hệ thống có thể mở rộng, triển khai linh hoạt trên nền tảng cloud (AWS) với hạ tầng được định nghĩa bằng mã (Infrastructure as Code).
Đối tượng nghiên cứu
- Các nhóm phát triển phần mềm làm việc theo mô hình Agile hoặc DevOps.
- Các doanh nghiệp vừa và nhỏ đang tìm kiếm một công cụ quản lý công việc hiệu quả, dễ triển khai và tùy biến.
- Hệ thống kỹ thuật bao gồm các thành phần: ứng dụng web, microservices, CI/CD pipeline, cloud infrastructure, bảo mật và giám sát.
Phạm vi nghiên cứu
- Phát triển hệ thống với các chức năng cốt lõi: tạo công việc, giao nhiệm vụ, quản lý subtask, bình luận và theo dõi tiến độ công việc.
- Sử dụng NestJS[1] cho backend, ReactJS + Vite cho frontend; giao tiếp gRPC[2] giữa các service.
- Ứng dụng container hóa bằng Docker, triển khai bằng Kubernetes trên AWS EKS, sử dụng Helm, ArgoCD và Terraform.
- Tích hợp bảo mật (Vault), kiểm thử bảo mật (Snyk, Trivy), kiểm thử chất lượng mã (SonarQube), và giám sát hệ thống (Prometheus + Grafana)
PHƯƠNG PHÁP THỰC HIỆN
Tổng quan hệ thống
OctalTask là một ứng dụng web quản lý công việc hướng tới việc hỗ trợ người dùng cá nhân và nhóm làm việc theo dõi, phân chia và hoàn thành công việc hiệu quả hơn. Hệ thống được phát triển với định hướng hiện đại hóa quy trình xây dựng phần mềm thông qua việc áp dụng kiến trúc microservices kết hợp các công cụ và thực hành DevOps. Việc phân tách hệ thống thành các dịch vụ nhỏ độc lập giúp tăng khả năng mở rộng, bảo trì và triển khai linh hoạt trên môi trường cloud.
Toàn bộ mã nguồn hệ thống được chia thành ba kho lưu trữ chính:
- Frontend: github.com/jiraops/octaltask
- Backend: github.com/jiraops/octaltask-api
- DevOps: github.com/RibunLoc/DevOps-work-management-web-platform
- GitOps: github.com/RibunLoc/DevOps-task-management-gitops
Thiết kế giao diện người dùng
Phần frontend được xây dựng bằng React kết hợp TypeScript, sử dụng Vite nhằm tăng tốc độ khởi tạo và cập nhật dự án trong quá trình phát triển. Giao diện sử dụng TailwindCSS để tăng tính nhất quán và dễ dàng tuỳ biến trong thiết kế.
Các tính năng chính trong giao diện bao gồm:
- Đăng nhập, đăng ký, khôi phục mật khẩu: xác thực bằng OTP qua email, cải thiện tính bảo mật.
- Quản lý công việc cá nhân: hiển thị công việc theo các danh mục như hôm nay, quan trọng, đã lập kế hoạch, được giao, và tất cả.
- Quản lý công việc được chia sẽ theo danh mục: phân quyền thành viên, chia sẻ nhiệm vụ.
- Xem chi tiết nhiệm vụ: bao gồm mô tả, hạn chót, mức độ ưu tiên, ghi chú, nhiệm vụ con và trạng thái hoàn thành.
Thiết kế hệ thống backend theo kiến trúc microservices
Phần backend được tổ chức thành các microservice độc lập, được phát triển bằng framework NestJS. Các dịch vụ giao tiếp với nhau thông qua gRPC và sử dụng định dạng Protocol Buffers để đảm bảo hiệu suất và khả năng mở rộng.

Các thành phần chính của hệ thống bao gồm:
- API Gateway: đóng vai trò điểm vào chính cho các yêu cầu HTTP, đồng thời chuyển tiếp yêu cầu tới các microservice thông qua gRPC.
- Auth Service: xử lý xác thực, đăng ký, đăng nhập và quản lý token JWT.
- User Service: quản lý thông tin người dùng, bao gồm cập nhật hồ sơ và thông tin cá nhân.
- Task Service: xử lý tạo, cập nhật, xoá và phân công nhiệm vụ cá nhân và nhóm.
Cấu trúc thư mục dự án backend được tổ chức rõ ràng, mỗi microservice là một thư mục riêng biệt, có thể chạy độc lập. Mỗi service chứa các tệp cấu hình ‘.proto‘ định nghĩa các message và service để giao tiếp qua gRPC.


KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết luận
Sau quá trình nghiên cứu và triển khai, nhóm đã xây dựng thành công hệ thống ứng dụng web quản lý công việc dựa trên kiến trúc microservices kết hợp với các kỹ thuật DevOps hiện đại. Hệ thống bao gồm các chức năng như tạo và phân công công việc, theo dõi tiến độ, quản lý người dùng, bình luận và xử lý subtask, được triển khai dưới dạng các dịch vụ riêng biệt giao tiếp với nhau qua gRPC.
Bên cạnh đó, nhóm đã áp dụng triệt để các công nghệ và công cụ trong quy trình DevOps như:
- Terraform để quản lý hạ tầng trên AWS theo mô hình IaC
- Jenkins cho CI/CD, đảm bảo tự động kiểm tra, đóng gói và push image
- ArgoCD để triển khai GitOps và đồng bộ trạng thái ứng dụng
- HashiCorp Vault để bảo mật thông tin nhạy cảm thông qua AppRole
- Prometheus và Grafana để giám sát hiệu năng và phát hiện sự cố
- Longhorn đảm bảo lưu trữ phân tán cho cơ sở dữ liệu MySQL
Toàn bộ hệ thống đã được kiểm thử và vận hành ổn định trên nền tảng Kubernetes (EKS) với quy trình triển khai nhất quán, bảo mật và dễ mở rộng. Các mục tiêu ban đầu đề ra đều đã được hoàn thành đúng tiến độ và định hướng.
Hạn chế
Bên cạnh những kết quả đạt được, hệ thống vẫn còn một số hạn chế cần khắc phục trong các giai đoạn phát triển tiếp theo:
- Chưa có cơ chế rollback an toàn: Việc triển khai ứng dụng vẫn chưa tích hợp chiến lược rollback như Argo Rollouts hoặc Helm hooks để đảm bảo phục hồi khi có lỗi.
- Chưa thực hiện kiểm thử tự động (unit/integration test) trong pipeline CI/CD, điều này làm giảm khả năng phát hiện sớm lỗi logic.
- Vault chưa khai thác dynamic secrets hoặc audit logs toàn diện, hiện chủ yếu sử dụng static secrets thông qua AppRole.
- Prometheus chưa tích hợp cảnh báo qua kênh thông báo thực tế (Slack, email,…), chủ yếu dùng dashboard để theo dõi thủ công.
- Thiếu logging tập trung (ELK stack hoặc Loki), khiến việc truy vết lỗi giữa các microservices gặp khó khăn.
Việc nhận diện các hạn chế là cơ sở để nhóm tiếp tục cải tiến hệ thống trong các giai đoạn tiếp theo nhằm tiến tới một nền tảng triển khai ổn định và chuyên nghiệp hơn.
Hướng phát triển
Mặc dù hệ thống hiện tại đã đáp ứng tốt các yêu cầu về quản lý công việc, tự động hoá triển khai và giám sát, tuy nhiên nhóm nhận thấy vẫn còn nhiều tiềm năng để phát triển mở rộng và nâng cao hơn nữa về cả mặt chức năng lẫn kiến trúc kỹ thuật. Một số hướng phát triển cụ thể như sau:
- Tăng cường tính sẵn sàng và mở rộng hệ thống:
⋄ Áp dụng Horizontal Pod Autoscaler (HPA) để tự động scale backend khi tải tăng cao.
⋄ Cấu hình Pod Disruption Budget (PDB) và Affinity/Anti-affinity để tăng khả năng chịu lỗi. - Cải tiến quy trình CI/CD:
⋄ Tích hợp thêm bước unit test và integration test vào Jenkins pipeline để kiểm thử tự động trước khi build.
⋄ Áp dụng mô hình Blue-Green Deployment hoặc Canary Deployment thông qua Argo Rollouts để triển khai từng phần dịch vụ mà không gây gián đoạn hệ thống. - Nâng cao bảo mật:
⋄ Sử dụng dynamic secrets từ Vault (ví dụ như credential cho database có thời hạn ngắn) thay vì static secrets.
⋄ Áp dụng xác thực SSO/OIDC cho Vault và Grafana thay cho đăng nhập nội bộ. - Tăng cường giao diện và tối ưu ứng dụng:
⋄ Nâng cấp giao diện phản hồi thời gian thực thông qua WebSocket hoặc polling định kỳ.
⋄ Tối ưu hóa hiệu suất tải và khả năng responsive trên thiết bị di động.
Ngoài ra, nhóm cũng định hướng ứng dụng trí tuệ nhân tạo (AI) để cải tiến chính quy trình DevOps. Một số ý tưởng triển khai bao gồm: - Phân tích log và phát hiện bất thường tự động: Áp dụng mô hình học máy để cảnh báo sớm lỗi trong pipeline Jenkins hoặc hoạt động bất thường từ metrics Prometheus.
- ChatOps thông minh: Tích hợp bot AI giúp người vận hành kiểm tra trạng thái CI/CD hoặc khởi động pipeline thông qua kênh chat như Slack/Telegram.
Thông qua những định hướng trên, nhóm kỳ vọng hệ thống không chỉ dừng lại ở mức độ thử nghiệm học thuật mà có thể mở rộng thành một nền tảng thực tế ứng dụng được trong môi trường sản xuất.


