Всем привет! На связи команда хостинга Бегет. Наша команда подготовила для читателей материал о том, кто такие 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-методологию и, конечно, мы с радостью ответим на любые ваши вопросы.