✨Phân phối liên tục

Phân phối liên tục

Phân phối liên tục (tiếng Anh: Continuous delivery - viết tắt: CD) là một cách tiếp cận của kỹ thuật phần mềm, trong đó các đội sẽ sản xuất phần mềm trong chu kỳ ngắn, đảm bảo rằng các phần mềm có thể được phát hành một cách tin cậy bất cứ lúc nào. Nó nhằm mục đích build, kiểm thử, và phát hành phần mềm nhanh hơn và thường xuyên hơn. Cách tiếp cận này giúp giảm chi phí, thời gian và nguy cơ khi thay đổi bằng cách gia tăng cập nhật các ứng dụng trong sản phảm. Một quá trình triển khai đơn giản và lặp lại là điều quan trọng cho Phân phối liên tục (CD).

Mối quan hệ với DevOps

CD và DevOps tương tự nhau như ở mặt ý nghĩa của chúng, và thường bị hòa trộn vào nhau, nhưng chúng là hai khái niệm khác nhau. DevOps có phạm vi rộng hơn và xoay quanh thay đổi văn hóa, đặc biệt là sự hợp tác của các đội khác nhau khi tham gia vào làm phần mềm (nhà phát triển, nhà điều hành, QA,...) cũng như việc tự động hóa quá trình phân phối phần mềm. Như vậy, DevOps có thể là một sản phẩm của CD, và CD đi trực tiếp vào DevOps.

Mối quan hệ với Triển khai liên tục (Continuous deployment)

Phân phối liên tục đôi khi bị nhầm lẫn với Triển khai liên tục. Triển khai liên tục có nghĩa là mọi thay đổi được triển khai tự động lên sản phẩm. Phân phối liên tục có nghĩa là đội làm việc đảm bảo rằng mọi thay đổi có thể được triển khai lên sản phẩm, nhưng cũng có thể không cần phải triển khai, thường do lý do kinh doanh. Để làm được Triển khai liên tục người ta phải làm được cả Phân phối liên tục.

Nguyên tắc

Tập tin:Continuous_Delivery_process_diagram.svg

Phân phối liên tục xử lý các khái niệm phổ biến của đường ống triển khai (deployment pipeline) như là một Poka-Yoke tinh giản: Amazon.com, Facebook, Google, Paddy Power và Wells Fargo.

Lợi ích và trở ngại

Nhiều lợi ích của CD đã được báo cáo.

  • Tăng tốc thời gian đưa sản phẩm ra thị trường
  • Build đúng sản phẩm theo yêu cầu của thị trường
  • Cải thiện năng suất và hiệu quả: tiết kiệm thời gian phát triển, thử nghiệm phần mềm thông qua sự tự động hóa.
  • Phát hành đáng tin cậy
  • Cải thiện chất lượng sản phẩm
  • Cải thiện sự hài lòng của khách hàng Trở ngại vật cũng được đưa ra.
  • Sở thích của khách hàng: Một số khách hàng không muốn liên tục cập nhật hệ thống của họ, đặc biệt ở các giai đoạn quan trọng trong hoạt động của họ.
  • Lĩnh vực hạn chế: trong một số lĩnh vực chẳng hạn như viễn thông và y tế, yêu cầu phải thử nghiệm sản phẩm rộng rãi trước khi phiên bản mới được phép đưa vào hoạt động.
  • Thiếu kiểm thử tự động
  • Môi trường khác nhau: môi trường được sử dụng trong phát triển, thử nghiệm và sản xuất khác nhau có thể dẫn đến các vấn đề về sau.
  • Kiểm thử cần sự can thiệp của con người: Không phải tất cả thuộc tính có thể được kiểm thử tự động. Những bước đòi hỏi phải có con người can thiệp làm chậm đường ống phân phối (delivery pipeline).