Добавить в корзинуПозвонить
Найти в Дзене
ZIT Management

Из системного администратора в DevOps: путь становления

В современном IT сообществе многие слышали или даже сталкивались с такой должностью, как DevOps. Так кто же они? Разные источники трактуют это понятие по-разному, но все определения сводятся к тому, что это человек - связующее звено между разработкой и ИТ инфраструктурой, позволяющий улучшишь процесс разработки и доставки ПО. Данная позиция стала следствием развития гибких методологий разработки (Scrum, Agile), которые требуют: Во многих компаниях данная позиция называется «Инженер DevOps» и ниже мы рассмотрим его зону ответственности и основные пути развития. Зона ответственности DevOps В ИТ компаниях у DevOps широкая зона ответственности. Они взаимодействуют как с разработчиками, так и с другими ИТ службами для внедрения эффективных средств разработки приложений и доставки ПО до конечных пользователей. В отличие от системных администраторов у DevOps широкий взгляд на весь ИТ процесс компании. Для этого необходимы знания по всему жизненному циклу разработки программного обеспечения.
Оглавление
Становление инженера DevOps
Становление инженера DevOps

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

Данная позиция стала следствием развития гибких методологий разработки (Scrum, Agile), которые требуют:

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

Во многих компаниях данная позиция называется «Инженер DevOps» и ниже мы рассмотрим его зону ответственности и основные пути развития.

Зона ответственности DevOps

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

В отличие от системных администраторов у DevOps широкий взгляд на весь ИТ процесс компании. Для этого необходимы знания по всему жизненному циклу разработки программного обеспечения. DevOps знаком с такими процессами и инструментами как:

  • системы версионирования и контроля кода;
  • системы автоматической сборки ПО;
  • системы автоматического тестирования ПО;
  • системы развертывания ПО;
  • системы конфигурации серверов;
  • системы мониторинга.

Чеклист эволюции из сисадмина в DevOps

Не смотря на то, что системный администратор не программист, этот навык поможет решить большую часть рутинных задач с помощью автоматизации. Часто используемые языки программирования в среде DevOps это Python, Ruby, Golang и Bash.

Понимание жизненного цикла разработки ПО и практик CI/CD (continuous integration / continuous delivery)

Для эффективного создания высококачественного программного продукта команде DevOps следует понимать процесс разработки ПО и знать лучшие практики интеграции и доставки продукта (кода) до конечного пользователя.

Традиционно для системных администраторов созданное ПО было как «черных ящик», который после завершения разработки передавался в ИТ отдел для разворачивания и настройки. В настоящее время в эпоху гибкой методологии разработки приложения это не приемлемо.

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

Знакомство и опыт использования инструментов CI

Помимо знания принципов и концепций связанных с CI / CD (continuous integration / continuous delivery) DevOps должен быть знаком с инструментами CI.

Эти инструменты облегчают выполнение автоматизированных заданий по сборке, тестированию и развертыванию кода, помогая повысить эффективность процесса разработки. Популярные инструменты CI включают в себя Jenkins, Travis CI и Bamboo и многие другие.

Понимание стратегий развертывания

Краеугольным камнем CI / CD является более частая доставка изменений кода до конечного пользователя. Поскольку это означает, что развертывания будут происходить с большей частотой, чем когда-либо прежде, для этого необходимо приложить максимальные усилия, чтобы свести к минимуму время простоя приложения. Поэтому инженеры DevOps должны знать и уметь применять наиболее эффективные способы развертывания приложений при минимальном времени простоя.

Опыт работы с контейнерами приложений и IaaS

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

Переход от Сисадмина к DevOps

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

Но для полноценного инженера DevOps необходимо расширить взгляд на весь процесс создания информационного продукта в компании.

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

Хорошим подспорьем будет регулярное изучение статей из следующих источников: