Bước 1: Quy trình bắt đầu với việc Product Owner(1) tạo các User Stories(2) một cách rõ ràng.
Bước 2: Dựa trên các User Stories được PO tạo trước đó Team(3) sẽ chọn ra một số User Stories đưa vào BackLog(4) của 1 Sprint(5) theo chu kỳ 2 tuần/lần.
Bước 3: Developer sẽ đưa code lên Git Repository(6).
Bước 4: Build mã nguồn theo các bước bắt buộc theo Jenkins Pipeline bao gồm các bước sau: Build maven → Chạy Unit Test → SonarQube → Quality Gate → Đóng gói → Artifact Scan → Đẩy Image lên Docker Repository(7).
Bước 5: Sau khi chạy Pipeline thành công thì Jenkins sẽ đóng gói thành Image và đẩy lên Docker Repository.
Bước 6: Triển khai trên các môi trường kiểm thử QC(8).
Bước 7: Nhóm QC sẽ tiến hành test chức năng, test tải, test bảo mật, ..vv trên môi trường QA(9).
Bước 8: Sau khi vượt qua các bài kiểm tra của QC trên môi trường QA thì QC sẽ test lần 2 trên môi trường UAT(10).
Bước 9: Nếu thử nghiệm UAT thành công sản phẩm sẽ được lên lịch để triển khai đến người dùng cuối (End User).
Bước 10: Nhóm SRE(11) chịu trách nhiệm giám sát sản phẩm.
Giải thích thuật ngữ:
- Product Owner: Là chủ sở hữu sản phẩm người này có thể là Ông chủ, Nhà đầu tư hoặc đơn giản hơn là một nhân viên của một công ty outsourcing được giao giữ vai trò này. Product Owner (viết tắt là PO) là người xác định tầm nhìn và hướng đi của sản phẩm, PO định nghĩa rõ ràng các yêu cầu về từng chức năng của sản phẩm. Tóm lại PO là người đặt hàng và là nhân vật quyền lực nhất trong mô hình Agile-Scrum. PO phải đảm bảo được chất lượng sản phẩm đáp ứng sự kỳ vọng của khách hàng và người dùng. Khi người dùng sử dụng gặp vấn đề thì PO cũng là người phụ trách giải quyết vấn đề.
- User Story: Là các định nghĩa yêu cầu về chức năng/tính năng sản phẩm một cách rõ ràng để cho lập trình viên có thể hiểu được. User Story cũng là tên chức năng trong công cụ quản trị dự án Jira. Các User Stories có thể được tạo bởi PO, BA hoặc PM tùy thuộc vào mô hình team của dự án.
- Team: Theo nghĩa tiếng việt là đội (ví dụ đội A, đội B). Trong một Team Agile-Scrum thường có Product Owner, Scrum Master, BA, Tester và Developer.
- BackLog: Là tên một chức năng trong Jira. Có Backlog lớn của dự án và các backlog nhỏ của từng Sprint. Mỗi backlog sẽ bao gồm 1 danh sách các công việc cần làm để hoàn thiện sản phẩm hoặc chức năng của sản phẩm.
- Sprint: Là khái niệm trừu tượng trong Agile. Vòng đời của mỗi Spring thường kéo dài khoảng 2 tuần. Trong 2 tuần này nhóm phát triển sẽ lên danh sách các công việc cần làm để hoàn thiện các chức-tính năng, tiếp đến là thực hiện các công việc đó (code/test) và cuối cùng bàn giao được kết quả cho khách hàng. Sau khi kết thúc Spring thì team lại bắt đầu lên kế hoạch cho 2 tuần mới.
- Git Repository: Là kho lưu trữ mã nguồn, phổ biến như GitHub, Bitbucket
- Docker Repository: Là kho lưu trữ các file Image như DockerHub hoặc Jfrog.
- QC: Viết tắt của Quality Control là kiểm soát chất lượng.
- QA: Viết tắt của Quality Assurance là đảm bảo chất lượng.
- UAT: Viết tắt của User Acceptance Testing là kiểm tra sử chấp thuận của người dùng. Ở bước này thông thường sẽ có sự tham gia của khách hàng vào test cùng để kiểm tra lần cuối cùng trước khi phát hành sản phẩm.
- SRE: Viết tắt của Site Reliability Engineering