Рух DevOps розпочався у 2008 році. Його поява стала реакцією на проблеми розробки програмного забезпечення, а саме взаємодії команд розробки та експлуатації, що значно затримувало терміни роботи над проєктом, та й якість продукту погіршувалася.
Девопс став свого роду містком між розробкою та продакшеном, завданням якого стало покращення якості ПЗ та співробітництва між командами розробки й експлуатації. Відтоді з’явилася посада DevOps інженер. Вони зайняли нішу між розробниками та менеджерами та вирішують завдання конфігурування й автоматизації інфраструктури програм, над якими працюють розробники.
Чим займається DevOps інженер, якими навичками повинен володіти, які інструменти використовує в роботі, як їм стати та куди рости, — про це розповідаємо у статті.
Що таке DevOps. Хто такий DevOps Engineer, яку роль він відіграє
DevOps (Development and Operations, розробка та операції) поєднує розробку з обслуговуванням та експлуатацією. Методологія DevOps покликана забезпечити оптимізацію життєвого циклу продукту, ефективну взаємодію між іт командою розробників та користувачів ПЗ.
DevOps сфера ще зовсім нова. Тут майже немає вузькопрофільних фахівців, у DevOps зазвичай приходять люди із різних професій. Найчастіше це розробники, які цікавляться адмініструванням та хочуть контролювати аспекти ІТ-операцій, або системні адміністратори, які мають знання та навички із кодування, створення сценаріїв, інтеграції та тестування.
DevOps-фахівець — це «людина-оркестр», який повинен мати глибокі знання та великий практичний досвід.
Основні ролі девопс-інженера в ІТ-компанії:
- Реліз-менеджер: координація роботи над продуктом від розробки до релізу, забезпечення стабільності продукту після випуску, інтеграція нових функцій.
- Євангеліст: моніторинг розробки та розгортання, покращення архітектури продукту.
- QA: тестування та аналіз для виявлення слабких місць у користувацькому досвіді задля забезпечення відповідності продукту вимогам щодо якості.
- Інженер із безпеки: моніторинг продуктивності, запровадження засобів безпеки.
Девопс бере участь у всіх етапах життєвого циклу продукту. Його мета — забезпечити взаємодію між командами розробників задля оптимізації їх робочих процесів і, в підсумку, скорочення часу доставки продукту кінцевому споживачу.
Обов’язки DevOps Engineer
Аби продукт дійшов до кінцевого споживача, його потрібно доставити на сервер. Для великих компаній це може зайняти тривалий час. І саме девопс допомагає забезпечити автоматизацію цих процесів, тож програмістам залишається лише писати код.
Головний обов’язок DevOps спеціаліста — налаштовувати бізнес-процеси таким чином, щоб вирішити організаційні проблеми та покращити бізнес-результати, максимально збільшити передбачуваність, ефективність та безпеку розробки ПЗ.
У цілому завдання девопс можуть відрізнятися у іт компаніях, також вони залежать від клієнта та проєкту, але зазвичай він виконує такі функції:
- доставка коду: збірка, тестування (інтеграційне, тестування навантаження), розгортання, підтримка засобів для розробки,
- забезпечення розробників усім необхідним для роботи софтом,
- забезпечення та управління інфраструктурою, налаштування відповідно до особливостей ПЗ, що розробляється,
- системне адміністрування,
- стандартизація оточення розробки,
- автоматизація усіх процесів життєвого циклу ПЗ,
- забезпечення моніторингу, реакція на різні позаштатні ситуації, виявлення та виправлення проблем,
- реліз — контроль продуктивності усіх потоків доставки,
- забезпечення безпеки продукту та усього, що є на проєкті,
- робота з девелоперами (щоб переконатися, що код відповідає необхідним характеристикам).
Навички DevOps Engineer: hard та soft skills
DevOps інженер — це ІТ-спеціалісти широкого профілю, які повинні мати знання, навички у розробці, системному адмініструванні, управлінні інфраструктурою та такі hard skills:
- Бажано — технічна освіта
- Знання мов програмування (PHP, Python, Ruby) та принаймні однієї основної мови кодування, наприклад, C++
- Досвід системного адміністрування ОС Linux, Unix та Windows
- Cloud Automation: Microsoft Azure, AWS, Google Cloud, Alibaba Cloud, Linodе, Heroku
- Інструменти CI/CD (Continuous Integration / Continuous Delivery / Continuous Deployment): Jenkins, GitLab CI, CircleCI, GitHub Actions, Azure DevOps, Drone, Helm, Prometheus, Confluence
- Розуміння принципів Аgile
- Знання програмного забезпечення для управління завданнями: Jira, Trello
- Знання технологій віртуалізаціїVMware vSphere
- Configuration Management (CM): Ansible, Salt, Puppet, Chef, AWS CloudFormation, Terraform
- Інструменти DevOps дляІТ-моніторингу та управління: Cloudflare, Datadog
- Контейнеризація: Docker, Kubernetes
- Мережа, протоколи та безпека: TCP/IP, HTTP, HTTPS, SMTP, FTP, SSL/TLS, SSH
- Налаштування веб серверів: IIS, Nginx, Apache, Tomcat
- Моніторинг ПЗ та інфраструктури: SigNoz
- Досвід роботи із ІТ-обладнанням, налаштування серверів, систем зберігання та моніторингу мережевих пристроїв через Nagios та Raygun
- Вміння діагностувати та вирішувати технічні проблеми у тестовому та виробничому середовищах
Soft skills:
Щоб побудувати кар’єру в DevOps, інженер повинен мати софт скіли, адже без них він навряд чи зможе піднятися вище Senior. Тож варто приділяти увагу розвитку таких якостей:
- Самостійність.
- Організованість.
- Сильні лідерські навички.
- Аналітичні здібності.
- Вміння доносити думку.
- Вміння ставити запитання та відповідати на них.
- Вміння працювати у команді, підтримувати її.
- Навички взаємодії з клієнтами.
- Посидючість та послідовність.
- Стресостійкість.
- Самонавчання.
- Вміння навчати інших (менторство).
- Знання англійської мови (не нижче В1).
Отже, щоб стати DevOps’ом, потрібно опанувати мову програмування, розібратися у нюансах операційних систем, розумітися на інструментах контейнерізації, знати протоколи шифрування та передачу даних, впевнено працювати з терміналом.
Кар’єрні перспективи DevOps спеціаліста
Одна із переваг професії DevOps — затребуваність спеціалістів: хороший інженер без роботи не залишиться. При чому попит на Девопс спеціалістів не зменшується навіть попри стрімкий розвиток технологій (адже принципи роботи змінюються не так швидко).
Компанії активно переходять на мікросервісну архітектуру, тому DevOps Engineer потрібні на багатьох проєктах. Наразі в українському ІТ-секторі існує брак таких спеціалістів, тож компанії пропонують привабливі умови праці (зарплата девопсів одна з найбільших в Україні серед ІТ-професій).
Кар’єра DevOps може розвиватися як по вертикалі, так і по горизонталі. Так, він може заглиблюватися у спеціалізацію, і приблизно за 5 років пройти шлях від Trainee до Architect:
- Trainee DevOps Engineer — 1-6 місяців
- Junior DevOps Engineer — 6 місяців -1.5 роки
- Middle DevOps Engineer —1,5-3 роки
- Senior DevOps Engineer — 3-5 років
- Team Lead DevOps Engineer —5+ років.
- Architect DevOps Engineer — 5+ років.
Якщо прокачувати скіли, згодом Девопс може стати Head of DevOps або CTO.
Також DevOps інженери можуть розвивати спеціалізацію за такими напрямками:
- Release Engineer — розробка та налагодження збирання, тестування та релізу (в основному, працює з CI/CD)
- DevSecOps відповідає за впровадження заходів безпеки на кожному етапі життєвого циклу розробки
- TechOps тестує та моніторить готову систему (працює з інцидентами та техпідтримкою)
- SRE — інженер, який займається питаннями надійності та стабільності продукту
- Infrastructure Engineer створює, налаштовує та планує інфраструктуру продукту
Також Девопс інженер може:
- перекваліфікуватися у сисадміни,
- стати розробником,
- стати інженером із ІТ-безпеки,
- перейти у тестування,
- розвивати експертизу в machine learning,
- піти у проджект менеджмент.
Книги, курси та інші корисні ресурси для Девопс
Книги
- The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations (у книзі описано досвід Google, Capital One, Target, Netflix, Etsy)
- Continuous Delivery — чудовий ресурс для тих, хто хоче розпочати шлях у DevOps
- The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win — книга про історії неймовірного успіху в ІТ. Тут, зокрема, зібрано безліч аргументів на користь DevOps-підходу
- Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale — нетехнічна книга про те, як працювати з різними людьми
- The DevOps 2.0 Toolkit: Automating the Continuous Deployment Pipeline with Containerized Microservices — книга для тих, хто хоче розпочати свій шлях у професії DevOps
- Infrastructure as Code: Managing Servers in the Cloud — про інструменти, техніки та патерни для впровадження Інфраструктури як коду
- Container Security —у книзі розглядаються базові технології для оцінки ризиків безпеки
- Kubernetes Security — про функції безпеки Kubernetes, коли використовувати, як розширювати
- Unix and Linux System Administration Handbook — книга-довідник із системного адміністрування
Курси
- Курс DevOps від Itea
- Курс DevOps від Hillel
- Devops-курси Development operations engineer від Main academy
- Kubernetes
- AWS Certified Developer
- DevOps Beginners to Advanced | Decoding DevOps with Projects
- The Ultimate DevOps Bootcamp — 2023
- AWS Certified Solutions Architect + Professional;
- AWS Certified DevOps Engineer;
- Implementing a Full CI/CD Pipeline;
- HashiCorp Certified Terraform Associate;
- Hands-On GitOps
YouTube ресурси
Кілька слів наостанок
DevOps Engineer — перспективний напрямок в IT-сфері, адже на послуги таких фахівців є високий попит, а за рівнем доходів девопси входять у трійку лідерів.
DevOps’и пліч-о-пліч працюють із розробниками, тестувальниками, системними адміністраторами та іншими фахівцями задля покращення взаємодії, прискорення розробки, оновлення та підтримки продукту. Вони залучаються на всіх стадіях життєвого циклу продукту: проєктування, розробка, тестування та розгортання.
Фахівці іт компанії Eastern Peak мають чималий досвід у напрямку DevOps. Наші інженери знають, як максимально збільшити ефективність, передбачуваність та безпеку розробки ПЗ.
Хочете доєднатися до команди, яка створює цифровий світ майбутнього вже сьогодні? Відправляйте резюме, залюбки його розглянемо!
Читайте також: