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]. З тих пір «DevOps-дні» пройшли в Індії, США, Бразилії, Австралії, Німеччини і Швеції, Росії[2].

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Debois, Patrick (2009). DevOps Days Ghent. DevopsDays. Процитовано 31 March 2011. 
  2. Debois, Patrick. DevOps Days. DevOps Days. Процитовано 31 March 2011. 
  3. Порожнє посилання на джерело‎ (довідка) 
  4. Theakanath, Thomas. DevOps Stack on a Shoestring Budget. devops.com. 
  5. Stronger DevOps Culture with Puppet and Vagrant. Puppet Labs. Процитовано 2015-10-22. 
  6. Порожнє посилання на джерело‎ (довідка) 
  7. 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. 
  8. Порожнє посилання на джерело‎ (довідка) 
  9. Порожнє посилання на джерело‎ (довідка) 
  10. Порожнє посилання на джерело‎ (довідка)