Існує маса різних причин для того, щоб різні організації перейшли на DevOps.
Я спробую перерахувати ті, які часто з’являються.
Скорочення часу для зміни циклу
Часто між поданням запиту на зміну та його фактичним розгортанням та використанням в організації часто існує тривалий час. Спочатку він планується в одному з циклів розробки розробниками, а після його доставки планується в одному з циклів випуску операцій. Обидва цикли включають тестування, і в разі виявлення проблем обидва цикли скидаються. Інтегруючи відділи розвитку та операцій, ми можемо впорядкувати обидва процеси.
Програмне забезпечення проти апаратних питань
Пригадайте мультфільм Про помилок Бані, де Багз і Даффі сперечаються, чи це сезон качок чи сезон кроликів? Тепер уявіть, що ми замість цього зробили це з розробниками та операціями, де розробники стверджують, що це апаратне питання, а операції стверджують, що це проблема програмного забезпечення. Для кінцевого споживача це відмінність без різниці. Вони просто хочуть, щоб це було виправлено.
Об’єднуючи розробників та операції, їм доведеться виправляти проблеми. І може виявитися, що це проблема програмного та апаратного забезпечення.
Нас проти них
У багатьох компаніях відстань між тестерами та розробниками зростала, оскільки вони були окремими відділами, а цикл розробки все більше формалізувався та стандартизувався.
З приходом Agile розробники та тестери працюють ближче один до одного, і ми почали бачити точку зору один одного на циклі розвитку і, можливо, навіть прийшли до його поваги.
Щось подібне повинно статися між розробниками та операціями, оскільки по мірі дозрівання обох полів і процесів далі формалізуються та стандартизуються, відстань між цими відділами зростає. Отже, однією з проблем традиційної моделі є те, що для розробників та операцій схоже, що "ми" проти "їх". Обидва не повністю розуміють складність обов'язків інших.
Очікування / перевернення
З DevOps обидві спеціальності вивчать деякі навички, традиційно виконувані іншим. Ніхто не очікує, що системний адміністратор стане інженером програмного забезпечення, а розробник - інженером мережі, але, як очікується, обидва візьмуть на себе інші обов'язки. Це означає, що коли вам справді потрібні додаткові руки, вони там є.
І для розробників є певні переваги: тепер ви матимете більше контролю над своїми тестовими середовищами, вам буде легше розгорнути програмне забезпечення для користувачів та мати більше людей у вашій організації, з якими можна поділитися своєю любов'ю до ремесла.