Tag: nexus

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

    Що таке 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. Тому це кандидат на вивчення у першу чергу.

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