DevOps

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
ТРПЗ
Цикл розробки програмного забезпечення
Coding Shots Annual Plan high res-5.jpg
Програміст за роботою
Діяльність та кроки
Вимоги • Специфікація • Архітектура • Дизайн • Реалізація • Тестування • Розгортання (Реліз) • Супровід
Методології • Процес
Гнучка • Чистого приміщення • DSDM • Ітеративна • RAD • RUP • Спіраль • Водоспад • XP • Scrum • Lean • V-Model • FDD • TDD • BDD
Допоміжні дисципліни
Керування конфігурацією • Документування • Якість ПЗ • Управління проектами • Досвід користування
Інструменти
Компілятор • Зневаджувач • Профілювальник • GUI designer • IDE

DevOps (акронім від англ. development і operations) — низка практик, призначених для пожвавлення взаємодії розробників із фахівцями інформаційно-технологічного обслуговування та зближення їхніх робочих процесів одне з одним. Ґрунтується на думці про тісну взаємозалежність між розробкою та використанням програмного забезпечення і має на меті допомогти організаціям швидше створювати і оновлювати програмні продукти та послуги.

Виознака та історія[ред. | ред. код]

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

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

Завдання DevOps полягає в узгодженні розробки й постачання програмного забезпечення із його використанням. Це завдання часто вирішується за допомогою автоматичних засобів.

Термін «DevOps» потрапив до широкого ужитку внаслідок серії зустрічей «DevOps Days», що спершу відбулися 2009 року в Бельгії[1], а відтак поширилися на інші країни[2]. Відповідна подія має відбутися в Україні у березні 2018 року[3].

Набір інструментів[ред. | ред. код]

Позаяк DevOps — це командна робота (між співробітниками, що займаються розробкою, виробництвом і перевіркою якості), немає єдиного інструменту «DevOps»: це скоріше добірка (або «інструментальний ланцюжок DevOps») декількох інструментів. Як правило, інструменти DevOps вписуються в одну або декілька з цих категорій, що відображує ключові аспекти розробки і доставки програмного забезпечення:[4]

  1. Code — розробка та аналіз коду, інструменти контролю версій, злиття коду;
  2. Build — інструменти безперервної інтеграції, статус складання;
  3. Test — інструменти безперервного тестування, що повідомляють про бізнес-ризики;
  4. Спакування — репозиторій артефактів, попередня встановлення програми;
  5. Release — керування змінами, офіційне затвердження випуску, автоматизація виробництва;
  6. Конфігурація — конфігурація та керування інфраструктурою, інструменти коду інфраструктури;
  7. Моніторинг — відстеження продуктивності застосунків, досвід роботи з кінцевим користувачем.

Попри наявність багатьох інструментів, деякі їх різновиди мають вкрай важливе значення для налаштування інструментальних засобів DevOps з метою дальшого використання в організації. Деякі спроби ідентифікувати ці основні інструменти подибуємо в наявній літературі.[5]

Такі інструменти, як Docker (контейнеризація), Jenkins (безперервна інтеграція), Puppet (інфраструктура як код) і Vagrant (платформа віртуалізації) і багато інших часто використовуються і згадуються у дискусіях по інструментам DevOps.[6]

Порівняння з Agile та безперервною доставкою[ред. | ред. код]

Agile і DevOps схожі, але Agile являє собою зміну мислення і практики (що має привести до організаційних змін), а DevOps приділяє більше уваги впровадженню організаційних змін для досягнення своєї мети.[7]

Потреба в DevOps зросла у відповідь на дедалі більший успіх Agile-розробки через прагнення організацій готувати випуски частіше й швидше.

Безперервна доставка і DevOps мають на меті дещо спільне і часом поєднуються, та все ж існує певна різниця. DevOps має ширший простір застосування й зосереджений навколо:

  1. Організаційних змін: зокрема, для підтримки тіснішої співпраці між різними типами працівників, які займаються постачанням програмного забезпечення;
  2. Розробників;
  3. Операцій;
  4. Гарантії якості;
  5. Керування;
  6. Системного адміністрування;
  7. Адміністрування бази даних;
  8. Координаторів;
  9. Автоматизації процесів постачання програмного забезпечення.[8]

Безперервна доставка — це підхід до автоматизації доставки програмного забезпечення, який зосереджено на:

  1. Об'єднанні різних процесів;
  2. Виконанні їх швидше та частіше.

DevOps і безперервна доставка використовують гнучкі методи: невеликі і швидкі зміни, спрямовані на задоволення потреб кінцевого споживача.

Цілі[ред. | ред. код]

Конкретні цілі DevOps охоплюють весь процес постачання програмного забезпечення. Вони включають:

  1. Скорочення часу для виходу на ринок;
  2. Зниження частоти відмов нових релізів;
  3. Скорочення часу виконання виправлень;
  4. Зменшення кількості часу на відновлення (у випадку збою нової версії або іншого відключення поточної системи).

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

Інтеграція DevOps призначена для доставки продукту, безперервного тестування, тестування якості, розробки функцій і оновлень обслуговування для підвищення надійності і безпеки і забезпечення більш швидкого циклу розробки і розгортання.[9]

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

Переваги DevOps[ред. | ред. код]

  • значне скорочення часу виходу на ринок,
  • підвищення якості продукції,
  • надійніші релізи,
  • підвищення продуктивності та ефективності,
  • збільшення здатності створювати правильний продукт шляхом швидкого експериментування.[10]

Дослідження 2200 ІТ-керівників і фахівців галузі, оприлюднене у січні 2017 року, засвідчило, що лише один з п'яти опитаних вважає, що DevOps має стратегічний вплив на їх організацію, попри дедалі більше поширення. Відповідно до того ж опитування, лише 17% визнали DevOps за ключовий інструмент.[11]

Примітки[ред. | ред. код]

  1. Debois, Patrick (2009). DevOps Days Ghent. DevopsDays. Процитовано 31 March 2011. 
  2. Debois, Patrick. DevOps Days. DevOps Days. Процитовано 31 March 2011. 
  3. DevOps Days Kyiv 2018. 
  4. Порожнє посилання на джерело‎ (довідка) 
  5. Theakanath, Thomas. DevOps Stack on a Shoestring Budget. devops.com. 
  6. Stronger DevOps Culture with Puppet and Vagrant. Puppet Labs. Процитовано 2015-10-22. 
  7. Порожнє посилання на джерело‎ (довідка) 
  8. Humble, Jez; Farley, David (2011). Continuous Delivery: reliable software releases through build, test, and deployment automation. Pearson Education Inc. ISBN 978-0-321-60191-9. 
  9. Порожнє посилання на джерело‎ (довідка) 
  10. Порожнє посилання на джерело‎ (довідка) 
  11. Порожнє посилання на джерело‎ (довідка)