Коли комусь пояснюють DevOps, трапляється таке питання, як:
Чим управління випусками за методологією Agile відрізняється від водоспаду?
То які критерії ви можете використовувати, щоб пояснити ці відмінності такій аудиторії?
Коли комусь пояснюють DevOps, трапляється таке питання, як:
Чим управління випусками за методологією Agile відрізняється від водоспаду?
То які критерії ви можете використовувати, щоб пояснити ці відмінності такій аудиторії?
Відповіді:
IMO DevOps - це культура, подібно до Agile (без вибору гнучкої методології.) Тому ви не «робіть» DevOps.
Ви "робите" методологію випуску під назвою Безперервна доставка як частина культури DevOps. (повне розкриття інформації, я не думаю, що раніше я називав компакт-диск як методологію випуску, але в моєму стильному стані я думаю, що це працює)
Якщо ви купуєте це, то ось визначення постійної доставки від одного з людей, які написали книгу під такою ж назвою, Jez Humble .
Безперервна доставка - це можливість отримувати зміни всіх типів - включаючи нові функції, зміни конфігурації, виправлення помилок та експерименти - у виробництво, або в руки користувачів, безпечно та швидко у сталий спосіб.
Наша мета - зробити розгортання - чи то широкомасштабної розподіленої системи, складного виробничого середовища, вбудованої системи чи програми - передбачуваних, рутинних справ, які можна виконувати на замовлення.
Все це ми досягаємо, гарантуючи, що наш код завжди знаходиться в стані розгортання, навіть перед обличчям команд тисяч розробників, які щодня вносять зміни. Таким чином, ми повністю виключаємо фази інтеграції, тестування та затвердіння, які традиційно слідували за „завершенням розробника”, а також заморожування коду.
Отже, ви можете працювати за методом Agile, маючи програмне забезпечення, яке ви зможете продемонструвати бізнесу, переконуючись, що ви робите належне автоматизоване тестування, добре реагуючи на зміни та всі речі, які покращують водопад. Занадто часто це не означає, що ви насправді зможете розгорнути його для виробництва.
Таким чином, програмне забезпечення буде (напевно) краще, коли ви закінчите, якщо у вас не був би якийсь ітеративний підхід, але ви насправді не знаєте, тому що реальні користувачі цього не бачили.
Те, що ти насправді хочеш, виглядає приблизно так:
Кожна ітерація, щось перетворюється на виробництво. Отже, програмне забезпечення розгорнуте . Якщо ви вирішили створити завантаження, відкрийте веб-сервер, або якщо ви отримаєте програмне забезпечення в руки користувачів, які випускаються .
Отже, що стосується DevOps з цим?
Дуже важко (наближатись до неможливого) справді мати своє програмне забезпечення у стані, коли ви зможете його розгорнути коли завгодно, якщо ця команда не працює в культурі DevOps. Культура, в якій системні адміністратори, DBA, SRE, люди з безпеки, розробники, контрольні служби тощо, і т. Д. - це частина єдиної команди, а не частина організації з передачею.
Примітка :
Про частину коментаря, опублікованого до цієї відповіді, який був таким:
Про ваше "... програмне забезпечення в стані, коли ви могли його розгортати, коли захочете ...": це нагадує мені про "автоматичне пілотне" програмне забезпечення (в літаку) ... Моє улюблене питання щодо цього: " Уявіть оновлення застосовується до такого програмного забезпечення ... Як би ви ставились до таких польотів ... Поки ви знаходитесь на борту? ".
Мені подобається це питання (жирним шрифтом, у наведеній цитаті)! Ідея "чи справді вона готова?" це те, про що я весь час лаяв - блог . IMO важливо, щоб ви були впевнені в безпеці, продуктивності та інших занадто часто "вторинних" тестах, щоб практикувати компакт-диск. Функції виконуються, коли вони закінчені, але хакери завжди є.
Не впевнений, чи немає інших, але це критерії, якими я користуюся:
+-------------------+-----------+-----------+
! Criteria ! Agile ! Waterfall !
+-------------------+-----------+-----------+
! Release Events ! Frequent ! Rare !
! Risk ! Less ! High !
! Required Effort ! Smoother ! Peaks !
! Volume of changes ! Small ! Huge !
+-------------------+-----------+-----------+
І якщо ви дійсно хочете відчути різницю як користувач якогось програмного забезпечення, тоді подумайте про використання певного програмного забезпечення (наприклад, дистрибутива Linux), де у вас є вибір між використанням будь-якого з цих випусків:
Rolling
випуск " " (==> Agile).
Long Term Support
випуск " " (==> Водоспад).