Trợ giúp: Giao hàng liên tục là gì

Trước đó chúng tôi kể lại về Tích hợp liên tục (CI). Hãy tiếp tục với Giao hàng liên tục. Đây là một tập hợp các phương pháp phát triển phần mềm. Nó giúp đảm bảo rằng mã của bạn đã sẵn sàng để triển khai.

Trợ giúp: Giao hàng liên tục là gì
/Pixabay/ bluebudgie / PL

Câu chuyện

Cụm từ phân phối liên tục có thể được nhìn thấy trong tuyên ngôn nhanh nhẹn từ năm 2001 ở phần đầu của danh sách các nguyên tắc cơ bản: “Ưu tiên là giải quyết các vấn đề của khách hàng thông qua việc cung cấp liên tục các phần mềm cập nhật”.

Năm 2010, Jez Humble và David Farley phát hành книгу bằng cách giao hàng liên tục. Theo các tác giả, CD bổ sung cho cách tiếp cận Hội nhập liên tục và cho phép bạn đơn giản hóa việc chuẩn bị mã để triển khai.

Sau khi xuất bản cuốn sách, phương pháp này bắt đầu trở nên phổ biến và chỉ trong vài năm, nó gần như được chấp nhận rộng rãi. Dựa theo sự khảo sát, được tiến hành với hơn 600 nhà phát triển và quản lý CNTT vào năm 2014, 97% quản lý kỹ thuật và 84% lập trình viên đã quen thuộc với Phân phối liên tục.

Bây giờ cách tiếp cận này vẫn là một trong những phổ biến nhất. Theo một nghiên cứu năm 2018 liên quan đến cộng đồng CNTT DevOps và Cộng đồng Jenkins, nó sử dụng một nửa trong số hơn một nghìn người được khảo sát.

Giao hàng liên tục hoạt động như thế nào?

Cơ sở CD là sự sẵn sàng của mã để triển khai. Để hoàn thành nhiệm vụ này, việc tự động hóa quá trình chuẩn bị phát hành phần mềm được sử dụng. Nó phải là tiêu chuẩn trên các môi trường phát triển khác nhau, điều này sẽ giúp nhanh chóng tìm ra điểm yếu và tối ưu hóa chúng. Ví dụ, tăng tốc độ thử nghiệm.

Một ví dụ về quy trình Phân phối liên tục trông như thế này:

Trợ giúp: Giao hàng liên tục là gì

Nếu phương pháp Tích hợp liên tục chịu trách nhiệm tự động hóa hai giai đoạn đầu tiên thì Phân phối liên tục chịu trách nhiệm cho hai giai đoạn tiếp theo. Sự ổn định của quy trình được đảm bảo, trong số những thứ khác, bởi các hệ thống quản lý cấu hình. Họ giám sát những thay đổi về cơ sở hạ tầng, cơ sở dữ liệu và các phần phụ thuộc. Việc triển khai có thể được tự động hóa hoặc thực hiện thủ công.

Các yêu cầu sau đây được áp dụng cho quá trình này:

  • Tính sẵn có của thông tin về mức độ sẵn sàng bước vào môi trường sản xuất và mức độ sẵn sàng phát hành ngay lập tức (các công cụ CD kiểm tra mã và giúp đánh giá tác động của những thay đổi trong bản phát hành).
  • Chịu trách nhiệm chung về sản phẩm cuối cùng. Nhóm sản phẩm - người quản lý, nhà phát triển, người thử nghiệm - nghĩ về kết quả chứ không chỉ về lĩnh vực trách nhiệm của họ (kết quả là một bản phát hành hoạt động có sẵn cho người dùng sản phẩm).

Trong đĩa CD nó thường được sử dụng mã xem lạivà để thu thập ý kiến ​​khách hàng - nguyên tắc phóng tối. Một tính năng mới lần đầu tiên được phát hành cho một bộ phận nhỏ người dùng - trải nghiệm tương tác với sản phẩm của họ giúp tìm ra những thiếu sót và lỗi không được nhận thấy trong quá trình thử nghiệm nội bộ.

Lợi ích là gì

Phân phối liên tục giúp đơn giản hóa việc triển khai mã, điều này có tác động tích cực đến năng suất và giảm khả năng nhân viên bị kiệt sức. Cuối cùng, điều này làm giảm chi phí phát triển tổng thể. Ví dụ: CD đã giúp một trong các nhóm HP giảm chi phí như vậy là 40%.

Ngoài ra, theo một nghiên cứu năm 2016 (trang 28 tài liệu) - các công ty đã triển khai CD giải quyết vấn đề bảo mật thông tin nhanh hơn 50% so với những công ty không sử dụng phương pháp này. Ở một mức độ nào đó, sự khác biệt này có thể được giải thích bằng hiệu suất của các công cụ tự động hóa quy trình.

Một điểm cộng nữa là khả năng tăng tốc phát hành. Giao hàng liên tục tại studio phát triển Phần Lan đã giúp tăng tốc độ lắp ráp mã lên 25%.

Khó khăn tiềm ẩn

Vấn đề đầu tiên và chính là nhu cầu xây dựng lại các quy trình quen thuộc. Để cho thấy những lợi ích của phương pháp mới, cần chuyển dần sang CD, không bắt đầu với những ứng dụng sử dụng nhiều lao động nhất.

Vấn đề tiềm ẩn thứ hai là số lượng lớn các nhánh mã. Hậu quả của việc “phân nhánh” là xung đột thường xuyên và mất thêm một lượng lớn thời gian. Giải pháp khả thi - cách tiếp cận không có chi nhánh.

Đặc biệt, ở một số công ty, khó khăn chính nảy sinh khi thử nghiệm - mất quá nhiều thời gian. Kết quả kiểm tra thường phải được phân tích thủ công, nhưng một giải pháp khả thi có thể là thực hiện song song các kiểm tra trong giai đoạn đầu triển khai CD.

Bạn cũng nên đào tạo nhân viên cách làm việc với các công cụ mới - một chương trình giáo dục sơ bộ sẽ giúp các nhà phát triển tiết kiệm công sức và thời gian.

Trợ giúp: Giao hàng liên tục là gì
/flickr/ h.ger1969 / CC BY-SA

Dụng cụ

Dưới đây là một số công cụ mở cho Phân phối liên tục:

  • GoCD — máy chủ để phân phối liên tục bằng Java và JRuby trên Rails. Cho phép bạn kiểm soát toàn bộ quá trình phân phối ứng dụng: xây dựng—thử nghiệm—phát hành. Công cụ này được phân phối theo giấy phép Apache 2.0. Bạn có thể tìm thấy nó trên trang web chính thức hướng dẫn thiết lập.
  • Capistrano — một khung để tạo các tập lệnh tự động triển khai các ứng dụng trong Ruby, Java hoặc PHP. Capistrano có thể thực thi các lệnh trên máy từ xa bằng cách kết nối với nó qua SSH. Hoạt động với các công cụ phân phối và tích hợp liên tục khác, chẳng hạn như máy chủ Integrity CI.
  • Gradle là một công cụ đa nền tảng tự động hóa toàn bộ chu trình phát triển ứng dụng. Gradle hoạt động với Java, Python, C/C++, Scala, v.v. Có tích hợp với Eclipse, IntelliJ và Jenkins.
  • Drone - Nền tảng CD bằng ngôn ngữ Go. Drone có thể được triển khai tại chỗ hoặc trên đám mây. Công cụ này được xây dựng dựa trên các vùng chứa và sử dụng các tệp YAML để quản lý chúng.
  • Spinnaker — một nền tảng để phân phối mã liên tục trong các hệ thống nhiều đám mây. Được phát triển bởi Netflix, các kỹ sư của Google đóng vai trò lớn trong việc phát triển công cụ này. Hướng dẫn cài đặt tìm thấy nó trên trang web chính thức.

Những gì cần đọc trên blog công ty của chúng tôi:

Nguồn: www.habr.com

Thêm một lời nhận xét