CI/CD là gì trong phát triển sản phẩm?

CI và CD là hai thuật ngữ xuất hiện rất nhiều với các nhà phát triển sản phẩm (product house). Ở bài này chúng ta hãy cùng tìm hiểu chúng là gì.

CI viết tắt của chữ Continuous Integration, CD viết tắt của chữ Continuous Delivery. Thực sự iGà cũng ko biết nên dịch tiếng Việt thế nào cho thoát nghĩa hai từ CI, CD này, nên cũng chúng ta cùng đi xem khái niệm và ví dụ để dễ hiểu hơn nhé.

CI – Continuous Integration là gì ?

Theo quan điểm các ứng dụng hiện đại có thể phải tương tác trên nhiều nền tảng (platform), sử dụng nhiều công cụ để xây dựng phần mềm. Team cần một phương thức nào đó để tích hợp các phát triển đơn nhỏ này lại. CI thiên về cách thức quản lý các thay đổi trong lúc coding, và tích hợp (integration) này lại cùng với nhau.

Ví dụ: Bạn và iGà cùng lập trình 1 website:

  • iGà lập trình module đăng ký thành viên
  • Bạn lập trình module về quản lý bài viết của thành viên.

Bình thường bạn và iGà lập trình ở localhost (máy tính cá nhân) các module riêng lẻ. Ok, gỉa sử lập trình xong nếu muốn chuyển phần thay đổi code của mình lên môi trường dev chung thì phải copy code hay copy đè tất cả các code cũ? nếu giả sử code mới deploy lên bị lỗi thì sao roll-back về? hay đơn giản sao kiểm tra đồng bộ với các thành viên khác trong cùng đội dự án? permission thì sao?

Do đó ở đây cần một quy trình commit code thông minh và tự động hơn, tránh làm bằng cơm (thủ công) copy paste, mà không có kiểm soát các phiên bản cũ của code (version controlling). Đó gọi là CI.

Mục tiêu cuối cùng của CI đó là xây dựng một phương thức tự động và nhất quán để xây dựng (build), đóng gói (package), và kiểm thử (test) ứng dụng. Khi xây dựng được phương thức này thì team có thể commit code thường xuyên hơn, test thường xuyên hơn, thay vì chỉ commit code vào cuối ngày làm việc và ngày hôm sau mới test.

Nếu công ty có quy trình làm CI tốt, tốc độ xây dựng phần mềm sẽ nhanh hơn với chất lượng tốt hơn.

Continuous Testing là thuật ngữ đồng hành với CI. Ở bài trước chúng ta đã tìm hiểu về Shift Left cũng đã hiểu điều này.

CD – Continous Delivery là gì?

CD sẽ nhận kết quả của CI hay nói cách khác kết quả của CI là đầu vào của CD. CD sẽ lựa chọn môi trường phù hợp (dev enviroment, testing env, prod env) để triển khai ứng dụng lên đó. CD sẽ hoạt động tự động cập nhật các thay đổi của code lên môi trường được lựa chọn.

CI/CD là một cặp bài đồng hành, rất thân quen với bạn nào làm về DevOps. Hiện tại AWS có nhiều dịch vụ thực hiện CI/CD tự động, bạn chỉ cần bỏ source code lên GitHub hay GitLab, AWS Amplify sẽ thực hiện CI/CD tự động nhanh chóng cho bạn. Chúng ta sẽ tìm hiểu về dịch vụ siêu cấp này ở một bài khác.

Xin mời cả nhà chia sẻ thêm về CI/CD trong quá trình làm việc của mình.

Share to be shared,

iGà

[email protected]

Topics #level 100