Инженер отвечает за автоматизацию процессов на всех этапах разработки ПО или приложений – от создания архитектуры до доставки готового продукта пользователям. Для этого ему необходимо четко понимать жизненный цикл проекта, а также владеть обширными знаниями в разных сферах: 1. Знание нескольких языков программирования. Чтобы автоматизировать процессы, специалисту нужно писать скрипты и программы. Поэтому, чем больше языков вы будете знать, тем лучше. Среднему специалисту вполне достаточно 1-3 ЯП. Обычно это Python, Bash, Go. 2. Администрирование операционных систем. Многие практикующие девопс-инженеры – это бывшие системные администраторы. Знания из этой сферы действительно очень важны в работе. Необходимо профессионально админить Linux, Windows, а также быть знакомым хотя бы на базовом уровне с другими ОС. 3. Понимание методологии CI / CD – continuous integration / continuous delivery. В переводе с английского – это методология непрерывной интеграции и доставки. Именно она помогает качественно автоматизировать процессы интеграции кода в репозитории, а также процессы тестирования, сборки, деплоя проектов. В этом аспекте предстоит использовать такие инструменты как Jenkins, TeamCity, GitLab, Bamboo, Github Actions, AWS CodePipeline. 4. Нужно разбираться в Cloud Technologies. Современные облачные технологии и их инструментарий дают возможность перенести разработку в облачную среду, что сокращает расходы компании на инфраструктуру. Популярные инструменты: AWS, Google Cloud Platform, Microsoft Azure, Huawei Cloud, Яндекс Облако, Mail.ru Cloud Solutions. 5. Системы управления версиями. Чаще всего используется Git. С помощью таких систем можно отслеживать изменения кода, быстрее анализировать его и, при необходимости, восстанавливать более ранние версии. 6. Работа с микросервисами, системами оркестрации. В процессе развертывания ПО применяются микросервисы и контейнеры, наиболее популярные системы для управления контейнерами Kubernetes, Docker. 7. Навыки управления инфраструктурой, виртуализация. Dev Ops инженер должен уметь применять подход «инфраструктура как код» (Infrastructure as code (IaC). Здесь предстоит разобраться с такими инструментами как Terraform, Puppet, Ansible. 8. Разбираться в системах логирования.