↙ ↘
DEV — development Це люди, які пишуть програму |
OPS — operation Ті, хто її налаштовують, підготовлюють до запуску і відповідають за те, щоб вона безперебійно працювала |
Коли ваша програма маленька, на проєкті працює тільки один чи два програмісти, то потреби у такому понятті, як DevOps не існує. Ніхто про це і не задумується. Як тільки програми збільшуються, кількість серверів та програмістів зростає, адміни не встигають заливати все та узгоджувати свої дії між собою, виникає проблема.
Налаштовувати це все вручну — так собі ідея. Це забирає купу часу, виникає таке поняття, як людський фактор, що неодмінно призводить до збоїв у системі.
Тут з’являються DEVELOPMENT OPERATION ENGINEER.
Вони вирішують проблему швидкості постачання софта, але одночасно і його якості. Це інженер, який розбирається в експлуатації та адмініструванні, додатково розуміє розробку і може впроваджувати автоматизацію
Жодному користувачу не подобається, коли додаток чи сервіс підвисає або лежить. Скільки б крутих фіч там не було, нам потрібен він в цю хвилину. Для цього і працюють DevOps.
Devops-и беруть участь у всіх життєвих циклах розробки та роботи продукту. Він організовує тісну співпрацю між учасниками команди, щоб оптимізувати їх роботу та скоротити час надходження готового продукту до кінцевого споживача.
Компанії зрозуміли, що мати толкового DevOps-а набагато краще та корисніше, для бізнесу, ніж користуватись послугами звичайних адмінів, без уміння програмування, та додатково мати сильного програміста, який зможе розрулювати всі нестикування на серверах та програмувати процеси. Тому попит на цю спеціальність зараз збільшується. Зазвичай DevОps-и використовують мову Python, бо це проста зрозуміла скриптова мова. Зарплати у них високі, робота складна, потреба велика, на ринку праці спеціалістів нестача, вивчитись важко, але реально.
Це робота 24/7. Сервери іноді лягають, це може статися і вночі, тому ви повинні весь час бути на зв’язку та мати змогу розв'язати проблему, але основна задача DevOps інженерів не допускати таких проблем.
Автоматизація DevOps — це зменшення повторювальних процесів з ручною роботою в життєвому циклі DevOps. Автоматизація досягається за допомогою інструментів і коригування процесу для швидшої доставки фіч та вищої якості програм.
Це метод частої доставки додатків клієнтам шляхом впровадження автоматизації на етапах розробки додатків. Основні концепції CI/CD — безперервна інтеграція, безперервна доставка та безперервне розгортання. Ви можете оновлювати додатки нескінченну кількість разів, використовуючи мінімум часу.
Це автоматизація всіх можливих напрямків тестувань:
Сканується система та автоматизуються механізми сповіщення, якщо виникнуть якість інциденти. В залежності від ступеня ризику та складності, система автоматично сповіщає відповідних користувачів про причину інциденту. Складається звіт по виконаній роботі.
Краще створювати інтеграції та плагіни між інструментами, тоді вони зможуть ідеально розв'язувати проблему. Так щоб код і інформація могли перетікати між фазами життєвого циклу DevOps.
Приклад, ви створили нову програму та відправляєте робочий код на GitHub. Система Jira інтегровано з GitHub, тому ви просто перевіряєте завдання в GitHub, а команда тестувальників автоматично отримує сповіщення, що завдання виконано і можна починати тестування цієї програми.
Автоматизація DevOps повинна задовольняти не тільки один варіант використання, але й допомагати іншим. Чим більше процесів оптимізує інструмент, чим він універсальніший, тим більша віддача від ціни та інвестованого часу на адаптацію.
Приклад, вам потрібно щодня відкрити 20 програм і виконувати задачі в них. Ви витрачаєте час на переміщення між ними й виконанням певних однакових алгоритмів дій. А можна створити централізований набір інструментів на ці 20 програм і звільнити свій час.
Інструменти з відкритим кодом здебільшого безкоштовні та дозволяють вашій команді бачити як працює код, його функції, що і де змінилось після останнього оновлення. Також інструменти з відкритим кодом мають відкриту документацію, яку легко знайти та вивчити. якщо щось незрозуміло.
Для програм з закритим кодом знадобиться додаткове навчання, щоб мати змогу зрозуміти інтерфейс.
DevOps-и мають бути максимально адаптивними, а не працювати лише в певних середовищах. Якщо ваш інструмент тестування перевіряє лише Python, то це ще великий мінус, бо надалі може знадобитись перехід на JavaScript.
Або, якщо ваш інструмент працює лише в Linux, це ще одна проблема, яка виникне внаслідок переходу на Mac OS. тобто вам потрібно спрогнозувати всі можливі зміни та адаптувати інструменти під них, а також порахувати витрати та вигоди від масштабних змін і переконатися, що короткострокові збої не переважать довгострокові вигоди. Ваш інструмент має адаптуватися до стратегії вашої команди, а не навпаки
Автоматизація DevOps — це не тільки гнучкість, а й стандартизація. Ви мусите стандартизувати поточні процеси, але бути гнучким до змін та нових підходів у розробці. Ваш продукт є узгодженим для ваших клієнтів і користувачів, а ваш робочий процес адаптований.
Завдяки автоматизації DevOps не тільки покращуються процеси, але й підвищується задоволеність команди. Наприклад, автоматизований інструмент перевіряє журнали додатків, щоб виявити потенційні проблеми, позбавляючи члена команди операцій від необхідності вручну переглядати сотні оновлень статусу.
Тепер член команди може зосередитися на вирішенні проблем, а не на їх виявленні, проблеми позначаються швидше, а ризик людської помилки суттєво знижується.
Завдяки стандартизованим повідомленням і звітам покращується спілкування між окремими зацікавленими сторонами. Автоматизовані передачі тепер переміщують продукт через конвеєр для швидшої обробки замість того, щоб члени команди передавали код вручну.
Якщо автоматизація DevOps реалізована добре, виграють усі.