Trong kỹ thuật phần mềm, tiến trình CI/CD làm cho quá trình phát triển phần mềm nhanh hơn, thời gian release (ra đời) một sản phẩm được rút ngắn rất nhiều, nâng cao hiệu năng làm việc của developer.
Vậy kỹ thuật CI/CD process là gì ?
CI viết tắt bởi Continuous Integration và CD viết tắt bởi Continuous delivery.
Liên tục tích hợp (CI) là quá trình diễn ra một cách liên tục không đứt quản trong phần việc develop --> testing --> build --> deploy.
Liên tục chuyển giao(CD) là quá trình ra đời sản phầm một cách liên tục theo từng phiên bản của phần mềm. (versioning) làm phần mềm dần hoàn thiện hơn cho tới bản release chính thức.
Quá trình liên tục tích hợp(CD), cần có các thành phần :
+ Môi trường develop - môi trường dành cho nhà phát triển,
+ Môi trường qc - môi trường dành cho bộ phận kiểm thử phần mềm,
+ Môi trường staging - môi trường dành cho khách hàng; người thuê viết phần mềm
+ Môi trường production - môi trường dành cho công đồng người dùng
Khái niệm Continuous trong kỹ thuật này là tính liên tục của quá trình và xảy ra một các tự động.
Để tối ưu quá trình làm việc của một developer thì khi developer merge code lên nhánh ấn định sẵn (ví dụ nhánh develop) thì tiến trình test và build xảy ra ngay tức thì và tự động.
Nếu build và deploy thành công thì ta có một phiên bản phầm mềm ngay lúc đó (version). Các version được tạo ra và tăng lên tương ứng với qúa trình pháp triển phầm mềm của các developer.
Bốn thành phần trên được liên kết với nhau một cách tự động; ví dụ áp dụng kỹ thuật webhook từ bitbucket trigger lên Jenkins CI/CD để chạy, quá trình chạy phân ra các giai đoạn như: Pre-Build, Build và Post Build.
Áp dụng tiến trình CI/CD trong network:
Sự phát triển mạnh mẽ của ngành network đòi hỏi áp dụng kỹ thuật mới cho các Network Engineer. Các Network Engineer ngày nay đòi hỏi làm viêc như một developer, Network Engineer không cần thiết phải xuống tận nơi thiết bị để cấu hình, và Network Engineer có thể cấu hình cùng một lúc nhiều thiết bị khác nhau thông qua bộ CI/CD này.
Tiến trình CI/CD pipeline trong network xảy ra như sau:
Kết luận:
Nếu so sánh tiến trình CI/CD trong ngành kỹ thuật mạng và CI/CD trong kỹ thuật phần mềm thì hầu như giống nhau, chỉ khác nhau kỹ thuật mạng dùng bộ ansible để deploy lên các thiết bị mạng, trong khi kỹ thuật phầm mềm dùng các công cụ phù hợp với ngôn ngữ phần mềm để test và deployment.