Прокачайся в код-ревью: для первых 50 участников — курс бесплатный

время чтения: 4 мин

DevOps-архитектор: роль в команде, обязанности, перспективы

Автор статьи — IT-эксперт Питер Мерфи.

DevOps (Development & Operations) подразумевает взаимодействие всех специалистов в команде — разработчиков, тестировщиков, бизнес-аналитиков, менеджеров и т. д. Цель DevOps — ускорить поставку программного обеспечения клиенту за счет сотрудничества, автоматизации, быстрой обратной связи и итеративной разработки. В этой системе особое место занимает DevOps-архитектор: он следит за бесперебойным и четким выполнением процессов.

Обязанности DevOps-архитектора

Компании постоянно стремятся увеличить скорость, качество и надежность разрабатываемого программного обеспечения, а также уменьшить риски и сократить издержки. Именно DevOps-архитекторы могут объяснить суть и ценность методологии Development & Operations и предложить лучшие варианты ее реализации с учетом потребностей конкретной компании.

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

К основным обязанностям DevOps-архитектора можно отнести следующие:

1. Анализ, выполнение и оптимизация практик DevOps

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

Еще одна задача — внедрять и следить за использованием практик DevOps, включая непрерывную поставку (англ. Continuous Delivery, CD), интеграцию, тестирование, мониторинг и обратную связь.

2. Автоматизация процессов

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

На данный момент самые популярные инструменты автоматизации, которыми нужно владеть, — это Chef, Puppet, Jenkins, Docker, Ansible, Kubernetes и другие.

3. Улучшение процесса разработки

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

DevOps-архитектор следит за тем, чтобы процесс разработки соответствовал бизнес-требованиям и целям.

4. Создание канала DevOps внутри компании

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

5. Создание непрерывной среды сборки для ускоренной разработки и развертывания

Непрерывная среда сборки (англ. Continuous Build Environment) позволяет разработчикам быстро и многократно собирать, тестировать и разворачивать код, а также интегрировать код и автоматически проверять его с помощью различных инструментов, например Git, Gradle, Maven и др.

6. Управление техническими операциями и их рецензирование

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

Обязанности DevOps-архитектора

Основные инструменты, знания и навыки, которые нужны архитекторам DevOps

Инструменты

  • Облачные платформы

Эти платформы упрощают поставку облачных услуг и решений — хранение, сетевые технологии, вычисления, безопасность и многое другое. Наиболее известные примеры облачных платформ — AWS, Azure и Google Cloud.

  • CI/CD (Continuous Integration/Continuous Delivery)

Инструменты для непрерывной интеграции и доставки (CI/CD), например GitHub Actions, Jenkins и GitLab CI, автоматизируют процесс сборки, тестирования и развертывания приложений.

  • Инструменты IaC (Infrastructure-as-Code)

Инструменты IaC, например Ansible, Terraform и CloudFormation, используются для автоматизации управления конфигурацией приложений и инфраструктуры.

  • Инструменты оркестрации контейнеров

Это инструменты для создания и запуска приложений с использованием контейнеров - изолированных и относительно легких структур, содержащих код приложения и зависимости. Они также управляют развертыванием, сетевыми технологиями и масштабированием контейнеров на более чем одном хосте. К наиболее популярным инструментам оркестрации контейнеров можно отнести Docker и Kubernetes.

  • Инструменты управления версиями

Инструменты управления версиями, например Git, необходимы для управления исходным кодом приложений. Они поддерживают распределенную систему управления версиями (DVCS), которая позволяет нескольким разработчикам работать над одной исходной базой кода без конфликтов.

  • Инструменты мониторинга

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

Инструменты, знания и навыки, которые нужны архитекторам DevOps

Знания и навыки

  • Автоматизация — архитектор платформы должен знать, как выбирать и использовать правильные инструменты для автоматизации процессов в разработке.

  • Языки программирования — ожидается знание соответствующих языков программирования и умение определять, когда использовать каждый из них.

  • Знание Linux — самой распространенной ОС, используемой на большинстве серверов; архитекторы платформы должны владеть навыками в области bash-скриптинга, сетевых технологий, Cron, SSH, поиска файлов, файловой системы, хранилищ и др.

  • Лидерские и коммуникативные навыки — необходимы для эффективного руководства и взаимодействия с командами.

  • Навык решения проблем — очень важен для того, чтобы вовремя выявлять пробелы и находить наилучшие решения.

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

Перспективы архитектора DevOps

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

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

Мнения, выраженные в статьях на сайте, принадлежат исключительно авторам и могут не совпадать с мнением редакции или участников Anywhere Club.