matching_app/docs/workflow_guideline.md
2025-05-02 15:12:18 +07:00

5.6 KiB

Hướng Dẫn Quy Trình Làm Việc

Tài liệu này cung cấp hướng dẫn về quy trình làm việc với dự án matching-app, bao gồm các vai trò khác nhau, công cụ hữu ích và quy trình làm việc mẫu.

Quy trình làm việc theo Role

Developer

Thiết lập môi trường

  • Sử dụng make dev-workflow để thiết lập môi trường làm việc ban đầu
  • Cài đặt các công cụ cần thiết với make install-tools
  • Đảm bảo đã cài đặt các công cụ: Go, Docker, Golangci-lint

Phát triển

  • Sử dụng make dev cho phát triển với hot-reload
  • Chạy test với make test sau mỗi thay đổi quan trọng
  • Kiểm tra định dạng và lỗi cú pháp với make lint
  • Trước khi commit, chạy kiểm tra đầy đủ với make ci-local

Triển khai

  • Sử dụng make docker-build để tạo Docker image
  • Test trên môi trường local với make docker-up
  • Push code lên repository để hệ thống CI/CD tự động triển khai

DevOps

Quản lý môi trường

  • Định kỳ kiểm tra và cập nhật Docker image với make docker-build
  • Quản lý các môi trường triển khai với các lệnh make deploy-*
  • Giám sát logs với make docker-logs

CI/CD

  • Thiết lập pipeline sử dụng các lệnh make lint, make test, make sast, make sca
  • Tự động hóa quy trình triển khai với make deploy-*
  • Kiểm tra bảo mật định kỳ với make sastmake sca

QA

Kiểm tra

  • Sử dụng make run hoặc make dev để chạy ứng dụng trên môi trường local
  • Kiểm tra các tính năng mới theo test case
  • Báo cáo lỗi kèm theo logs từ make docker-logs

Kiểm tra tự động

  • Chạy unit test với make test
  • Kiểm tra bao phủ mã nguồn từ báo cáo coverage

Các hàm hữu dụng

Quản lý ứng dụng

  • make build: Biên dịch ứng dụng
  • make run: Chạy ứng dụng đã biên dịch
  • make dev: Chạy ứng dụng với hot-reload
  • make clean: Dọn dẹp các file tạm và build

Kiểm tra chất lượng

  • make lint: Kiểm tra định dạng và lỗi cú pháp
  • make test: Chạy unit test
  • make sast: Phân tích bảo mật tĩnh
  • make sca: Kiểm tra lỗ hổng trong dependencies
  • make ci-local: Chạy tất cả kiểm tra trên

Docker & Môi trường local

  • make docker-build: Build Docker image trên môi trường local
  • make docker-up: Khởi động container Docker trên môi trường local
  • make docker-down: Dừng container Docker trên môi trường local
  • make docker-logs: Xem logs từ container trên môi trường local

Quy trình phát triển

  • make dev-workflow: Thiết lập môi trường phát triển
  • make dev-docker: Thiết lập môi trường Docker cho phát triển

Quy trình bảo mật và CI/CD

Bảo mật trong quy trình phát triển

  • Tất cả code phải được gửi qua Pull Request, không được push trực tiếp vào các nhánh chính
  • Mọi Pull Request phải được ít nhất 1 người review và approve
  • Chỉ merge code sau khi đã pass tất cả các kiểm tra tự động (CI checks)

Triển khai qua CI/CD

  • Chỉ hệ thống CI/CD mới có quyền triển khai lên các môi trường staging và production
  • Tất cả triển khai lên môi trường production phải đi qua môi trường staging trước
  • Pipeline CI/CD được cấu hình trong file .drone.yml

Đặc quyền môi trường

  • Người phát triển chi được phép làm việc trên môi trường local
  • Chỉ DevOps và quản trị viên có quyền truy cập vào môi trường staging và production

Quy trình mẫu làm 1 ngày

Developer

Buổi sáng

  1. Pull code mới nhất từ repository
  2. Chạy make clean để dọn dẹp môi trường
  3. Chạy make dev để bắt đầu phát triển với hot-reload
  4. Review các task được giao

Trong ngày

  1. Phát triển các tính năng theo task
  2. Chạy make test sau mỗi thay đổi lớn
  3. Chạy make lint để kiểm tra lỗi và định dạng code
  4. Sử dụng make docker-up để test trong môi trường Docker nếu cần

Trước khi commit

  1. Chạy make ci-local để đảm bảo code chất lượng
  2. Fix các vấn đề được phát hiện
  3. Commit và push code

Triển khai

  1. Push code lên repository để kích hoạt quy trình CI/CD
  2. Theo dõi kết quả của pipeline trên hệ thống CI/CD
  3. Kiểm tra tính năng trên môi trường staging sau khi triển khai tự động hoàn tất

DevOps

Buổi sáng

  1. Kiểm tra trạng thái các môi trường với make docker-logs
  2. Xử lý các vấn đề từ monitoring overnight

Trong ngày

  1. Hỗ trợ các developer với vấn đề môi trường
  2. Cập nhật cấu hình CI/CD nếu cần
  3. Chuẩn bị cho việc triển khai

Cuối ngày

  1. Triển khai các thay đổi đã được phê duyệt với make deploy-prod
  2. Kiểm tra logs sau triển khai
  3. Cập nhật tài liệu và báo cáo

QA

Buổi sáng

  1. Review các tính năng cần kiểm tra
  2. Thiết lập môi trường test với make dev-workflow

Trong ngày

  1. Kiểm tra các tính năng theo test case
  2. Báo cáo lỗi và ghi chép kết quả test
  3. Hỗ trợ developer sửa lỗi

Cuối ngày

  1. Tổng kết kết quả kiểm tra
  2. Duyệt các tính năng đã pass test
  3. Chuẩn bị test case cho ngày hôm sau