Tôi đã thực hành và tư vấn cho DevOps với tư cách là nhà tư vấn với các khách hàng khác nhau trong gần năm năm nay, trước khi ở vị trí hiện tại, tôi giữ vai trò phát triển phần mềm, vận hành web và quản trị hệ thống. Theo kinh nghiệm cá nhân của tôi, DevOps có nhiều hương vị.
Mô hình tổ chức
DevOps Antipotypes:
NoOps và NoDevs - không hoàn toàn DevOps theo nghĩa nghiêm ngặt nhất, tuy nhiên, các nhóm này đều xây dựng và vận hành phần mềm mà không có ranh giới giữa Phát triển và Vận hành. Những thách thức với các nhóm này đã đến lúc trưởng thành, các nhóm Phát triển có thể là Chuyên gia phát triển phần mềm nhưng là Người vận hành mới và ngược lại.
Cầu DevOps - đây là nơi một hoặc nhiều nhóm được giao trách nhiệm nhận công việc từ các nhóm phát triển và " Sản xuất " để làm cho nó hoạt động được. Thách thức đến nay có hai lần bắt tay, đó là Phát triển → DevOps và DevOps → Hoạt động.
Nhóm DevOps - có thể được cho là có thể hoạt động nếu nhóm có trách nhiệm xây dựng các công cụ hỗ trợ Mô hình hoạt động được kích hoạt DevOps, tuy nhiên, có lẽ nên được gọi là "Nhóm công cụ" hoặc "Nhóm nền tảng".
Mô hình DevOps:
DevOps nhúng - thường được gọi là Kỹ thuật nền tảng, trong đó có một người trong nhóm chịu trách nhiệm nhưng không chịu trách nhiệm cung cấp tự động hóa, công cụ và cơ sở hạ tầng để cung cấp và triển khai giải pháp, đôi khi bao gồm cả vận hành phần mềm - trong tâm trí của tôi , đó là cái sau thực sự là đại diện của DevOps.
DevOps thể chế hóa - nơi một nhóm dự án cùng nhau chịu trách nhiệm cho cả phát triển và hoạt động của một gói phần mềm xây dựng sở hữu được chia sẻ và vòng phản hồi tích cực.
Thực tiễn
Thực tiễn thực tế của DevOps được xây dựng dựa trên một số thực tiễn khác, cụ thể là:
Mỗi thực hành trên được xây dựng dựa trên các thực tiễn khác, có thể không tuân theo một thực tiễn, tuy nhiên, điều đó có nghĩa là một chu kỳ phản hồi quan trọng bị thiếu có thể là dấu hiệu của "cơ hội bị bỏ lỡ". Sự khác biệt chính giữa việc tuân theo bất kỳ thực tiễn nào khác và DevOps là hoạt động của phần mềm trong sản xuất .
Ba cách
Trong Dự án Phượng hoàng, Gene Kim và các đồng tác giả đã mô tả ba cách của DevOps :
Hệ thông suy nghĩ
Cách thứ nhất nhấn mạnh hiệu suất của toàn bộ hệ thống, trái ngược với hiệu suất của một silo cụ thể của công việc hoặc bộ phận - đây có thể là một bộ phận lớn (ví dụ: Hoạt động phát triển hoặc CNTT) hoặc nhỏ như một người đóng góp riêng lẻ (ví dụ , một nhà phát triển, quản trị hệ thống).
Theo kinh nghiệm của tôi, bắt đầu khiến các Nhà phát triển xem xét các Mối quan tâm hoạt động và các yêu cầu phi chức năng đạt được mục tiêu này. Đây là một phần rất lớn trong các khía cạnh văn hóa của DevOps.
Khuếch đại các vòng phản hồi
Cách thứ hai là về việc tạo các vòng phản hồi từ phải sang trái. Mục tiêu của hầu hết mọi sáng kiến cải tiến quy trình là rút ngắn và khuếch đại các vòng phản hồi để có thể liên tục sửa chữa.
Tôi thường đạt được điều này thông qua Tích hợp / Phân phối / Triển khai liên tục và theo dõi và cảnh báo được chia sẻ, do đó nó rất phù hợp với thành phần công cụ của DevOps.
Văn hóa thử nghiệm và học tập liên tục
Cách thứ ba là tạo ra một nền văn hóa thúc đẩy hai điều: thử nghiệm liên tục, chấp nhận rủi ro và học hỏi từ thất bại; và hiểu rằng sự lặp lại và thực hành là điều kiện tiên quyết để làm chủ.
Điều này rất phù hợp với không gian văn hóa , mặc dù nó phụ thuộc rất nhiều vào các công cụ và quy trình để cho phép văn hóa phát triển.