+2

CI/CD Overview: "Dây chuyền sản xuất" hiện đại của mọi kỹ sư phần mềm

Chào các bạn,

Ngày xưa, việc đưa code lên server (deploy) thường là một nỗi ám ảnh: Nào là copy file qua FTP, nào là sửa config trực tiếp trên server, rồi cầu nguyện cho nó không lỗi. Nếu có lỗi? Lại hì hục rollback bằng tay.

image.png

Tấm ảnh trên mô tả quy trình CI/CD – giải pháp tự động hóa giúp chúng ta thoát khỏi "thời kỳ đồ đá" đó. Hãy cùng mình phân tích từng chặng của hành trình này nhé!

1. Khởi đầu: Code & Commit

Mọi thứ bắt đầu từ Code và Related Code (mã nguồn và các tài nguyên liên quan).

  • Khi bạn thực hiện một lệnh Commit, nó không chỉ đơn giản là lưu code lên GitHub hay GitLab.
  • Trong thế giới CI/CD, cái nhấn nút "Commit" này chính là cái nút "Start" kích hoạt toàn bộ dây chuyền sản xuất phía sau. Nếu code của bạn không qua được các bài kiểm tra tiếp theo, nó sẽ bị "văng" ra ngay lập tức.

2. CI Pipeline (Continuous Integration) - Tích hợp liên tục

Đây là vòng tròn màu xanh lá cây trong ảnh. Mục tiêu của nó là: Phát hiện lỗi càng sớm càng tốt.

  • Build: Hệ thống tự động biên dịch code (nếu dùng Golang, Java...) hoặc đóng gói (Dockerize) ứng dụng. Nếu bạn quên chưa khai báo một thư viện trong composer.json (như bài trước mình có nói), bước này sẽ thất bại ngay.
  • Unit Tests: Chạy hàng trăm, hàng ngàn bài test nhỏ lẻ để kiểm tra xem các hàm, các class có chạy đúng logic không.
  • Integration Tests: Sau khi các mẩu code lẻ đã chạy đúng, chúng được ghép lại để xem khi "chơi chung" với nhau (ví dụ: Service gọi Database, API gọi Redis) có xảy ra xung đột gì không.

Kết quả: Nếu vòng tròn này hiện màu xanh, bạn có thể tự tin rằng code của mình "sạch" và không làm hỏng những tính năng cũ.

3. CD Pipeline (Continuous Delivery / Deployment) - Triển khai liên tục

Sau khi code đã được "kiểm định chất lượng" ở bước CI, nó sẽ tiến vào vòng tròn màu xanh dương – giai đoạn đưa hàng ra thị trường.

  • Review: Một bước kiểm tra lại (có thể là code review bởi đồng nghiệp hoặc kiểm tra bảo mật tự động) để đảm bảo mọi thứ hoàn hảo.
  • Staging: Code được đẩy lên một môi trường giả lập y hệt môi trường thật. Đây là nơi để team QA/QC vào "phá" thử, hoặc để khách hàng xem trước bản demo.
  • Production: Đích đến cuối cùng! Code chính thức lên sóng phục vụ người dùng thật.

4. Tại sao sơ đồ này lại quan trọng?

Nhìn vào tấm ảnh, bạn sẽ thấy một đường thẳng xuyên suốt. Điều này mang lại 3 giá trị cốt lõi:

  1. Tính tự động hóa: Bạn không cần can thiệp thủ công. Máy móc sẽ làm những việc lặp đi lặp lại.
  2. Sự tự tin: Khi bạn thấy tất cả các dấu tích xanh trên Pipeline, bạn biết chắc chắn code của mình đủ tiêu chuẩn để chạy.
  3. Tốc độ: Thay vì đợi đến cuối tháng mới deploy một bản lớn (Big Bang), chúng ta có thể deploy liên tục hàng ngày, hàng giờ với rủi ro cực thấp.

Lời kết

CI/CD không chỉ là công cụ (như Jenkins, GitHub Actions hay GitLab CI), nó là một văn hóa làm việc. Nó buộc chúng ta phải viết code cẩn thận hơn, viết test đầy đủ hơn để đổi lấy sự thảnh thơi khi deploy.

Hệ thống của bạn đang dừng lại ở bước nào trong sơ đồ này? Bạn đã tự động hóa được đến Production chưa hay vẫn đang dừng lại ở Review? Hãy chia sẻ trải nghiệm của bạn phía dưới nhé!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí