Фраза дня: DevOps инженер

Инженер DevOps - это ИТ-специалист, который работает с разработчиками программного обеспечения, системными операторами (SysOps) и другим производственным ИТ-персоналом, чтобы контролировать выпуски кода и развертывание. Эта роль требует кого-то, кто обладает соответствующими твердыми и мягкими навыками, чтобы преодолеть традиционные барьеры между командами разработки программного обеспечения, контроля качества, тестирования и ИТ-операций и создать целостную среду для совместной работы.

Роли и обязанности инженера DevOps
Инженер DevOps должен знать, как управлять ИТ-инфраструктурой, которая поддерживает программный код в выделенных, многопользовательских или гибридных облачных средах. Возможно, им придется выделить ресурсы, выбрать подходящую модель развертывания, протокол прямого тестирования для проверки каждого выпуска и мониторинга производительности после выпуска. Задачи могут включать подготовку тестовых данных, анализ результатов, устранение неполадок и обмен информацией о проблемах с разработчиками программного обеспечения.

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

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

Навыки DevOps, обучение и сертификаты

Роль DevOps-инженера не сводится к одному карьерному пути; профессионалы становятся профессионалами разного происхождения. Например, инженер DevOps может начать как разработчик программного обеспечения, который курирует аспекты ИТ-операций. И наоборот, инженер DevOps может выйти из роли системного администратора, потому что он получил знания о кодировании, написании сценариев, интеграции и тестировании. Должностные инструкции инженера DevOps и SysOps могут частично совпадать в зависимости от организации и ее технических потребностей, но именно в обязанности инженера DevOps входит изменение бизнес-процессов по мере необходимости для решения организационных проблем и улучшения бизнес-результатов.

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

  • всесторонний опыт администрирования ОС, таких как Linux и Windows;
  • большой опыт работы с различными инструментами автоматизации и управления конфигурацией, такими как традиционные скрипты, а также с более специфическими инструментами, такими как Puppet и Chef;
  • четкое понимание кодирования и написания сценариев на распространенных языках, таких как PHP, Python, Perl и Ruby;
  • знание хотя бы одного основного языка программирования, такого как C ++ или Java;
  • способность идентифицировать, оценивать и интегрировать различные технологии с открытым исходным кодом и облачные сервисы;
  • сильный опыт работы с ИТ-оборудованием и операциями с практическими знаниями в области серверов, систем хранения и установки сетевых устройств, предоставления ресурсов и мониторинга. Обычно это дополняется знаниями лучших практик ИТ для отказоустойчивых операций с высокой доступностью;
  • поддерживающие и совместные управленческие способности в командной среде, а также проверенные навыки управления, ориентированные на клиентов;
  • глубокое знание технологий виртуализации, таких как VMware vSphere для виртуальных машин, а также опыт работы с контейнерными технологиями, такими как Docker и Kubernetes;
  • проверенный опыт работы с инструментами CI / CD, такими как Microsoft GitHub, Atlassian Jira и Confluence, Red Hat Ansible, Prometheus и Jenkins;
  • подробный практический опыт работы с общедоступными облачными ресурсами и сервисами, такими как AWS, Microsoft Azure и Google Cloud;
  • опыт работы с разнообразными инструментами мониторинга и управления ИТ, такими как Cloudflare и Datadog; а также
  • знания о том, как выявлять и устранять технические проблемы в тестовой и производственной средах.

Некоторые компании, нанимающие инженеров DevOps, могут включать дополнительные должностные требования, такие как уровень допуска, поэтому важно проверять конкретную публикацию для каждой должности или работодателя. Требования к формальному образованию и обучению для ролей DevOps обычно невелики и обычно включают степень бакалавра в области компьютерных наук или инженерии, а также сертификацию AWS или Azure в общедоступных облачных сервисах. Менеджеры по найму DevOps говорят, что практической замены практического опыта нет.

Заработная плата инженера DevOps
В 2019 году средняя годовая зарплата инженера DevOps составляет более 110000 долларов США, согласно отчету DICE по техническим зарплатам за 2019 год. Фактическая заработная плата может варьироваться в зависимости от объема фактических должностных функций, а также от географического положения должности. При таком уровне оплаты труда в DevOps зарплаты выше, чем у традиционных ИТ-должностей, таких как инженер-программист или разработчик, инженер по оборудованию или системам и руководитель проекта. Однако по мере того, как DevOps становится неотъемлемой частью современного предприятия, резкое ежегодное увеличение заработной платы DevOps начало замедляться и стабилизироваться.