Які аспекти управління випусками допомагають пояснити різницю між водоспадом та Agile?


12

Коли комусь пояснюють DevOps, трапляється таке питання, як:

Чим управління випусками за методологією Agile відрізняється від водоспаду?

То які критерії ви можете використовувати, щоб пояснити ці відмінності такій аудиторії?

Відповіді:


11

IMO DevOps - це культура, подібно до Agile (без вибору гнучкої методології.) Тому ви не «робіть» DevOps.

Ви "робите" методологію випуску під назвою Безперервна доставка як частина культури DevOps. (повне розкриття інформації, я не думаю, що раніше я називав компакт-диск як методологію випуску, але в моєму стильному стані я думаю, що це працює)

Якщо ви купуєте це, то ось визначення постійної доставки від одного з людей, які написали книгу під такою ж назвою, Jez Humble .

Безперервна доставка - це можливість отримувати зміни всіх типів - включаючи нові функції, зміни конфігурації, виправлення помилок та експерименти - у виробництво, або в руки користувачів, безпечно та швидко у сталий спосіб.

Наша мета - зробити розгортання - чи то широкомасштабної розподіленої системи, складного виробничого середовища, вбудованої системи чи програми - передбачуваних, рутинних справ, які можна виконувати на замовлення.

Все це ми досягаємо, гарантуючи, що наш код завжди знаходиться в стані розгортання, навіть перед обличчям команд тисяч розробників, які щодня вносять зміни. Таким чином, ми повністю виключаємо фази інтеграції, тестування та затвердіння, які традиційно слідували за „завершенням розробника”, а також заморожування коду.

Отже, ви можете працювати за методом Agile, маючи програмне забезпечення, яке ви зможете продемонструвати бізнесу, переконуючись, що ви робите належне автоматизоване тестування, добре реагуючи на зміни та всі речі, які покращують водопад. Занадто часто це не означає, що ви насправді зможете розгорнути його для виробництва.

Ви закінчуєте щось подібне: спритний без CD

Таким чином, програмне забезпечення буде (напевно) краще, коли ви закінчите, якщо у вас не був би якийсь ітеративний підхід, але ви насправді не знаєте, тому що реальні користувачі цього не бачили.

Те, що ти насправді хочеш, виглядає приблизно так:

введіть тут опис зображення

Кожна ітерація, щось перетворюється на виробництво. Отже, програмне забезпечення розгорнуте . Якщо ви вирішили створити завантаження, відкрийте веб-сервер, або якщо ви отримаєте програмне забезпечення в руки користувачів, які випускаються .

Якого біса!? Я запитав про DevOps! Ніхто не питав про безперервну доставку !!

Отже, що стосується DevOps з цим?

Дуже важко (наближатись до неможливого) справді мати своє програмне забезпечення у стані, коли ви зможете його розгорнути коли завгодно, якщо ця команда не працює в культурі DevOps. Культура, в якій системні адміністратори, DBA, SRE, люди з безпеки, розробники, контрольні служби тощо, і т. Д. - це частина єдиної команди, а не частина організації з передачею.

Примітка :

Про частину коментаря, опублікованого до цієї відповіді, який був таким:

Про ваше "... програмне забезпечення в стані, коли ви могли його розгортати, коли захочете ...": це нагадує мені про "автоматичне пілотне" програмне забезпечення (в літаку) ... Моє улюблене питання щодо цього: " Уявіть оновлення застосовується до такого програмного забезпечення ... Як би ви ставились до таких польотів ... Поки ви знаходитесь на борту? ".

Мені подобається це питання (жирним шрифтом, у наведеній цитаті)! Ідея "чи справді вона готова?" це те, про що я весь час лаяв - блог . IMO важливо, щоб ви були впевнені в безпеці, продуктивності та інших занадто часто "вторинних" тестах, щоб практикувати компакт-диск. Функції виконуються, коли вони закінчені, але хакери завжди є.


Дякую за цікаві точки зору / відповіді (та блискучі зображення ...). Я мушу визнати, що я ніколи не чув про термін « Методологія випуску» , хоча менеджмент випусків - це те, що я досить добре знайомий (більше 2 десятиліть ...). Про ваше "... програмне забезпечення в такому стані, коли ви можете його розгортати, коли захочете ..." (у поєднанні з "затопленим"): це нагадує мені про "автоматичне пілотне" програмне забезпечення (в літаку) ... Моє улюблене запитання про це: " Уявіть, що до такого програмного забезпечення застосовується оновлення ... Як би ви ставились до такого польоту ... Поки ви знаходитесь на борту? ".
Pierre.Vriens

1
Я люблю це питання! Ідея "чи справді вона готова?" це те, про що я весь час лаяв - блог . IMO важливо, щоб ви були впевнені в безпеці, продуктивності та інших занадто часто "вторинних" тестах, щоб практикувати компакт-диск. Функції виконуються, коли вони закінчені, але хакери завжди є.
Кен Муграге

1
Я мав на увазі - "Уявіть, що оновлення застосовано до такого програмного забезпечення ... Як би ви ставились до такого польоту ... Поки ви знаходитесь на борту?"
Кен Муграге

І, будь ласка, відредагуйте, я тут n00b :)
Ken Mugrage

Перегляньте запропоновані вами зміни, щоб також включити ваш цікавий коментар. Якщо вам це не подобається, просто виконайте відкат до попередньої версії (посилання знаходиться в межах "редакції") та / або додатково вдосконалюйте / розширюйте її, як вам подобається. Здогадайтесь, що, здається, що "перегляньте" деякі мої "дозволи" змінилися ... схоже, у мене вже занадто багато репрезентантів, щоб все-таки потрібні "схвалення" для таких запропонованих редагувань ... пощастило нам це лише деякі SE- програмне забезпечення (не пропоноване оновлення деякого маршруту польоту без попереднього схвалення контролю повітряного руху ...). Oeps 2 (корекція): його затвердили на швидкості світла ...
Pierre.Vriens

2

Не впевнений, чи немає інших, але це критерії, якими я користуюся:

+-------------------+-----------+-----------+
! 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випуск " " (==> Водоспад).


1
Приклад Linux може бути не дуже натхненним :) Особисто мені не подобаються прокатні версії через: 1. рівень якості та 2. досить відволікаючі зміни (я вважаю за краще зосередитися на своїй роботі, а не на Linux, який я використовую для своєї роботи робота). Тож я використовую довгострокові (найчастіше) терміни (часто проходять їх EOL) і зосереджуюсь лише на значному оновленні раз на 2-3 роки. Якщо тільки це не посилює прихильність до змін через старіння? :)
Дан Корнілеску

@DanCornilescu Я використовував цей приклад Linux, тому що я думаю, що це надзвичайний приклад аспекту "mint" випуску (тобто частоти випусків) для обох методологій. Хоча "особисто" я цілком погоджуюся з вашим нелюбов до релізних релізів з тих самих причин, які ви згадали.
Pierre.Vriens
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.