Що таке DevOps? Та як стати DevOps Інженером?


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

Що таке DevOps?

DevOps – це філософія підходу до розборки програмного забезпечення та набір практик.
Полягає вона в об’єднанні двох напрямків Development(Розробка) та Operations(Обслуговування).
Історично склалося, що код пишуть – розробники, а встановлюють і обслуговують – адміністратори систем.
При такому підході часто створюються ситуації, на кшталт: “В мене на комп’ютері все працює, то щось на сервері”.
DevOps покликаний вирішити такі проблеми та за допомогою яких інструментів це можливо зробити.

Програмне забезпечення (ПЗ) – це результат роботи програмістів, у вигляді вихідних кодів(source code).
Ці вихідні коди зберігаються у системі контролю версій, популярний наразі – Git.

Як стати DevOps інженером у 2022 році? Що потрібно знати?

Зважаючи на те що DevOps інженер, об’єднує декілька напрямків, він повинен розуміти основні концепції як що працює, наприклад:

Але це все лірика.
Основна задача DevOps інженеру – це супроводження проєкту, вихідні коди повинні бути скомпільовані(якщо це необхідно) та встановлені на сервер.
Я рекомендую розібратися із:

Також, необхідно знати як працює мережа:

Тут вже, мабуть, йде голова обертом, щось дуже багато треба знати й розуміти.
Для початку необхідно знати концепцію, а не бути абсолютним професіоналом у кожному із напрямків.
На великих проєктах, існують команди спеціалістів: системних адміністраторів, мережевих адміністраторів, адміністраторів безпеки.
Ваша задача: підготувати ПЗ та сервер до роботи, а не повністю його обслуговувати. Але і таке буває.

Сьогодні контейнеризація – стала новим стандартом.
Вивчаємо:

Одним із таких систем є Docker. Тому це треба обов’язково вивчити й розуміти як працює.

Але нащо це все, ви запитаєте мене, і де тут DevOps?

Далі цікавіше.Одними з основних концепцій DevOps є CI/CD та автоматизація.


Continuous Integration(CI) – “Безперервна інтеграція”, це коли код який потрапив до репозиторію від різних розробників, автоматично збирається на білд сервері та проходить етапи тестування і перевірок.
На етапі CI можуть створюватись якісь “Артефакти”. Для того, щоб кожного разу не перебудовувати та пришвидшити наступні типові побудови – використовують репозиторій зберігання артефактів. Таким є NEXUS artifact repository.
Артефакт – це скомпільовані файли, бібліотеки, які використовуються для роботи програми, та з’явились у процесі побудови.
Також на етапі побудови можуть з’явитися Docker Images які також необхідно десь зберігати. Наприклад DockerHub.

Continuous Delivery(CD) – “Безперервне доставлення” є розширенням безперервної інтеграції, оскільки вона автоматично розгортає всі зміни коду в тестовому та/або предпродуктовому(Staging) середовищі після етапу збірки. А доставляння та розгортання у продуктовій середі виконуєтся власноруч.
Окремо відмічу:
Continious Deployment(CD) – Це фактично заміна або перезагрузка “безперервного доставляння”. Завдяки цій практиці кожна зміна вихідних кодів, яка проходить усі етапи вашого виробничого конвеєра, буде доступна вашим клієнтам. Немає ніякого втручання людини, і лише невдалий тест запобіжить впровадженню нових змін у продуктовій середі.
Для автоматизації цих процесів використовують системи автоматизації: GitHub Actions, GitLab CI/CD, Jenkins, TeamCity.
Найбільш використовуваним наразі є Jenkins. Тому це кандидат на вивчення у першу чергу.

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


Leave a Reply

Your email address will not be published. Required fields are marked *