Ловкость рук и никакой магии: DevOps-инженер – кто это, чем занимается и зачем нужен бизнесу

Всем привет! На связи команда хостинга Бегет. Наша команда подготовила для читателей материал о том, кто такие DevOps, чем они занимаются и как DevOps-методология может помочь владельцам проектов при решении бизнес-задач. Желаем вам приятного прочтения!

Так уж сложилось, что в последние годы DevOps – одно из самых обсуждаемых явлений среди всех, кто так или иначе связан с информационными технологиями, а количество таких вакансий растет как на дрожжах.

И хотя девопсы – на втором месте по востребованности среди специалистов команды сопровождения сервисов, для многих владельцев проектов на первый взгляд может быть не столь очевидно, чем они вообще занимаются и как именно могут помочь бизнесу.

Вот почему мы решили подготовить эту статью – в ней мы разберем, кто такие девопсы, за что они отвечают и как их ремесло влияет на качество продукта, а также приоткроем завесу, как всё это работает у нас в компании.

Откуда взялся DevOps

Для начала немного теории.

DevOps (акроним от англ. development & operations) – это методология автоматизации технологических процессов сборки, настройки и развертывания ПО, призванная решить проблемы взаимодействия команд разработки и эксплуатации программных продуктов.

Методология DevOps возникла в 2009 году, после того как в 2007–2008 сообщества айтишников забили тревогу по поводу фатального, по их мнению, уровня дисфункции в отрасли. Если говорить простыми словами, то ключевая проблема состояла во взаимной изолированности команд разработчиков и эксплуатации, при этом своего пика страсти достигали в момент выпуска проекта в продакшн: разработчики считали, что если ПО работает у них локально, его можно релизить, а ответственность за возможные последующие проявления недееспособности продукта – на совести команд операционной поддержки, которые, в свою очередь, пеняли в этой ситуации на разработчиков.

Объединение усилий специалистов данных направлений – системного администрирования и разработки – и дало жизнь новой профессии, которая находится на стыке этих двух IT-стихий. А еще появлению DevOps способствовало развитие гибких методов разработки ПО и управление IT-инфраструктурой как программным кодом.

Что делает DevOps

Сегодня такие специалисты на гребне славы: по статистике, в первом квартале 2024 года было размещено на 30% больше подобных вакансий, чем за аналогичный период 2023 года, и на 5% больше, чем в первом квартале 2022 года.

Так чем же занимаются эти чудо-специалисты?

В широком смысле ключевая задача во время работы DevOps – настройка и поддержание в рабочем состоянии нужного софта, а также автоматизация процессов, чтобы на них в конечном итоге затрачивалось как можно меньше времени. В более узком смысле их деятельность предполагает сокращение времени вывода продукта на рынок, улучшение качества релизов. При этом конкретные обязанности могут варьироваться в зависимости от компании (в некоторых организациях есть даже отдельная должность – DevOps-разработчик).

DevOps-подход предполагает непрерывность всех процессов, то есть создание своего рода конвейера, где команды взаимодействуют друг с другом, и независимо от того, чем конкретно занимается разработка, DevOps-специалист отвечает за автоматизацию каждого этапа.

К примеру, DevOps-инженер может:

  • настраивать рабочее окружение – как локально с командами разработчиков, сетевыми специалистами и системными администраторами, так и на уровне всей компании (например, если речь идет о настройке инфраструктуры, сети, серверов и других компонентов, необходимых для работы приложений);
  • автоматизировать процессы разработки, тестирования, развертывания и мониторинга приложений;
  • внедрять и настраивать инструменты CI/CD (непрерывной интеграции и непрерывного развертывания);
  • администрировать и оптимизировать инфраструктуру – облачные платформы, серверы, сети.

Конечно, это далеко не полный перечень возможных обязанностей, всё зависит от задач, которые необходимо решать, – например, ключевые навыки для DevOps-специалиста в облаке основаны на понимании специфики работы в контуре облачного провайдера: работе с API (62%) и CLI (61%), а также управлении доступами и безопасностью (57%).

У нас Бегете методология IaC (от англ. infrastructure as code – то есть подход к управлению инфраструктурой через использование кода) появилась внутри довольно давно, поэтому девопс-задачи (прежде всего, развертывание и запуск веб-приложений) были изначально интегрированы в обычную операционную работу, тогда как отдельная роль DevOps-инженера появилась несколько позже, когда инфраструктура выросла до уровня, при котором девопс-задач стало столько, что для них потребовались отдельные люди. Сегодня приоритетная задача наших DevOps-специалистов – чтобы всё деплоилось просто и ничего не падало, а если и падало, то по возможности поднималось само.

Поэтому среди зон ответственности наших DevOps-инженеров – системная поддержка всех управляющих сервисов, настройка их развертывания и необходимые корректировки, например, когда требуется больше скорости или надежности.

И хотя служба наших DevOps-специалистов не столь опасна и трудна, как может показаться на первый взгляд, порой не обходится без подводных камней. Например, для части инфраструктуры используется свой самописный оркестратор – то есть ПО, которое координирует развертывание, масштабирование и управление контейнерами или виртуальными машинами в распределенной среде. Концептуально свой оркестратор гораздо проще и удобнее в нашей инфраструктуре, чем более глобальные решения в виде Kubernetes, Nomad и проч., однако для его эффективного использования недостаточно просто знать конфигурации и аргументы, важно уметь разобраться, что вообще происходит под капотом.

Источник

Какие инструменты используют DevOps-инженеры

В зависимости от технологического стека такие специалисты могут использовать:

  • Системы управления версиями (Git, GitLab, GitHub, Bitbucket) – для отслеживания изменений в коде и управления ветками.
  • Средства CI/CD (Jenkins, Travis CI, CircleCI, Azure Pipelines) – для автоматизации процессов построения, тестирования и развертывания.
  • Инструменты для оркестрации контейнеров (Docker, Kubernetes) – для управления жизненным циклом контейнеризированных приложений.
  • Системы управления конфигурацией (Ansible, Puppet, Chef, Terraform) – для автоматизации настройки и развертывания инфраструктуры.
  • Средства мониторинга (Prometheus, Grafana, Elasticsearch, Kibana) – для обеспечения наблюдаемости за средой и системами.
  • Инструменты управления инцидентами (PagerDuty, Jira, ServiceNow) – для управления задачами и инцидентами.
  • Средства управления релизами (Ansible Tower, Spinnaker) – для управления выпуском обновлений.

Разумеется, этот список не является исчерпывающим, в зависимости от конкретных потребностей девопсы могут использовать много чего еще. Например, наши DevOps-инженеры в Бегете, наряду с уже упомянутым отдельным самописным оркестратором, используют Ansible, GitLab CI, Docker, Consul и Prometheus, а также ряд локальных инструментов и для деплоя, и для инфраструктуры, и для дебага.

В чем польза DevOps для бизнеса

Вот лишь несколько примеров задач, которые бизнес может решать, используя практики DevOps:

  • Улучшение пользовательского опыта – например, компания «СИГМА», используя DevSecOps (методику интеграции принципов безопасности в конвейер непрерывной интеграции, непрерывной поставки и непрерывного развертывания) добилась повышения уровня доверия к продуктам благодаря «мэтчу информационных технологий и безопасности», достигнутому за счет использования командой продукта AppSec-инструментов, отвечающих за безопасную работу приложений, а стриминговый сервис Netflix, внедрив DevOps Cloud Native (подход к разработке и эксплуатации приложений, который сочетает принципы DevOps и архитектуру облачных приложений), улучшил пользовательский опыт благодаря увеличению частоты выпуска новых функций и обновлений в сочетании с отказоустойчивостью и минимизацией времени простоя.
  • Сокращение времени и производственного цикла – например, банковская компания Capital One смогла сократить время вывода на рынок новых функций на 50%, eCommerce-проект Etsy сократил циклы выпуска и частоту возникновения проблем и простоев в работе, а поставщик телекоммуникационных решений и услуг British Telecom сократил время развертывания с недель до нескольких часов.
  • Снижение затрат – например, компания Naimi.kz, внедрив непрерывную интеграцию и непрерывное развертывание, уменьшила расходы на инфраструктуру в 1,5 раза, а расход ресурсов на 25%.
  • Автоматизация рабочего процесса – например, Sitronics Group в процессе использования DevOps для эксплуатации и разработки за 2 года увеличила объем электронного документооборота более чем в 50 раз и теперь ежемесячно успешно обрабатывает около 1 миллиона документов.
  • Масштабирование приложений – например, сеть супермаркетов Tesco, внедрив практики DevOps, улучшила взаимодействие между командами и благодаря контейнеризации смогла масштабировать устойчивость своих приложений в периоды пиковых нагрузок на магазины.

О чем важно помнить, если вы собираетесь использовать DevOps-методологию

✔ Взаимное уважение и доверие – убедитесь, что команда готова к изменениям и понимает их необходимость, наладьте прозрачную культуру сотрудничества между командами разработки и эксплуатации, поощряйте открытое общение, обмен знаниями и совместное решение проблем.

✔ Определение целей и задач – сформулируйте «на берегу», чего вы хотите достичь с помощью DevOps (например, сократить время на развертывание, улучшить качество кода, снизить количество инцидентов и т. д.), и создайте кросс-функциональные команды, которые включают разработчиков, специалистов по тестированию, администраторов и др.

✔ Анализ успешных примеров – изучите кейсы других компаний вашей отрасли, чтобы избежать типичных ошибок и использовать лучшие практики.

✔ Поэтапное внедрение – выберите небольшой пилотный проект для отработки DevOps-практик, чтобы минимизировать риски и позволить команде адаптироваться к изменениям.

✔ Фокус на безопасность – она должна быть встроена в каждый этап жизненного цикла разработки и эксплуатации, например, можно рассмотреть возможность использования статического и динамического анализа безопасности кода, а также регулярных проверок уязвимостей в инфраструктуре.

✔ Профессиональный рост – инвестируйте в обучение сотрудников новым инструментам DevOps, создайте среду, где каждый чувствует себя в безопасности, готов делиться идеями и предложениями.

Заключение

Интерес к DevOps растет во всём мире, в том числе в России, охватывая всё новые и новые отрасли – по статистике, в тройке лидеров: информационные технологии (36,2%), финансы (12,4%) и ритейл (7,3%). При этом в последнее время DevOps всё больше интересуются вне IT-компаний и финтеха – суммарная доля остальных отраслей выросла с 39,7 до 51,4%.

Сегодня без таких специалистов могут обойтись разве что некоторые стартапы с совсем небольшой командой разработки, где все процессы и так протекают быстро, и дополнительная автоматизация не требуется, однако даже такие компании всё чаще внедряют в свою деятельность некоторые инструменты и принципы DevOps.

Надеемся, эта статья была для вас полезна, и желаем стабильного роста и развития вашим проектам.

Поделитесь в комментариях, используете ли вы DevOps-методологию и, конечно, мы с радостью ответим на любые ваши вопросы.

(Голосов: 3, Рейтинг: 5)