Что должен знать DevOps-инженер?
Так как DevOps-инженер отвечает за автоматизацию процессов на всех этапах разработки ПО, он обязан понимать, как устроен процесс разработки в целом, начиная от построения архитектуры, заканчивая доставкой приложения пользователям. Разумеется, еще он должен владеть DevOps-инструментами. Но ведь это еще далеко не все.
Если рассматривать вопрос в контексте найма хорошего DevOps-специалиста, то такой соискатель, кроме вышеупомянутого, должен знать следующее:
- языки программирования. Дело в том, что автоматизация предполагает написание скриптов и программ. Разумеется, не обязательно знать много языков, чаще всего достаточно одного-двух. И учтите, что в настоящее время в DevOps-сфере распространены такие языки, как Python, Go и Bash;
- операционные системы. Базово надо знать основные ОС, глубже следует разбираться в Windows и Linux;
- методологию CI/CD. Она позволяет автоматизировать интеграцию кода в репозитории, а также сборку, тестирование и запуск программных приложений в продакшн;
- облачные технологии. Обеспечивают перенос разработки в облачную среду и, как следствие, сокращают затраты на инфраструктуру. С учетом современных тенденций DevOps-инженер обязан разбираться в решениях и инструментах, существующих сегодня на облачных платформах;
- методика управления версиями. Позволяет отслеживать исправления и истории изменений кода, что упрощает его анализ и восстановление. Одна из наиболее известных систем управления версиями -- Git;
- микросервисы и системы оркестрации. Для обеспечения доставки и развертывания ПО сегодня активно используют контейнеры и микросервисы. Для управления контейнерами применяют системы оркестрации, самая популярная — Kubernetes.
Вместо послесловия
Опытные наниматели утверждают, что минимальный опыт работы DevOps-специалиста, претендующего на позицию Middle, составляет 3-5 лет. А вот уже следующий переход (с Middle на Senior) может занять от года и выше, но тут уже все будет зависеть от конкретного человека и его способностей развиваться. При дальнейшем карьерном росте такой инженер может стать архитектором решений, который выстраивает процесс непрерывной разработки, а также проектирует системы в соответствии с бизнес-задачами. Также он может отвечать за разработку технологической стратегии развития компании (RnD).
В общем путь DevOps-инженера сложен и непрост, но результат того стоит! Главное -- начать.
Статья написана по материалам блога Mcs.Mail.ru.