DevOps engineer – это нечто среднее между сисадмином и разработчиком. Рассказываем о ключевых знаниях и навыках, которые нужны для этой должности.
На просторах Интернета можно найти вакансии под названием "Junior Devops engineer", но, по сути, такой человек не может быть джуном. Эта работа находится на стыке системного администратора и разработчика. При этом очень важно быть уверенным сисадмином, но вполне можно обойтись знанием одного языка программирования.
Давайте рассмотрим, чем конкретно занимается DevOps engineer, и что следует знать соискателю.
Обязанности
- Развертывание релиза в производстве.
- Стандартизация окружения разработки.
- Способность учитывать особенности разрабатываемого приложения и в соответствии с ними настраивать инфраструктуру для нормального функционирования ПО.
- Интеграция процессов разработки в поставку.
- Обнаружение и фикс различных проблем.
- Настройка среды под внесение периодических изменений.
- Автоматизация процессов.
В целом, на таком специалисте лежит любая автоматизация задач, относящихся к конфигурированию и деплоям системного софта. При этом важно отслеживать состояние ПО, производя тщательный мониторинг. Так повышается производительность, и происходит апгрейд платформ. Сюда же стоит отнести дизайн систем и архитектуру.
Слишком много всего, верно? Поэтому не верьте тем, кто сравнивает DevOps engineer с системным администратором и напрочь отказывается воспринимать всерьез выставленные за работу прайсы.
DevOps инженер должен управлять рядом инструментов, начиная средствами для настройки конфигурации и заканчивая подходящим языком программирования (зачастую это Java). Потребуются и cloud-инструменты, и средства для виртуализации. Много чего.
С чего начать свой путь?
- Вы должны освоить сетевые технологии, знать все о DNS, TCP/IP, SMTP и прочих составляющих 3-го уровня модели OSI.
- Быть на "ты" с Linux (подразумевается знание на уровне автоматизации установки, апдейта, мониторинга и настройки безопасности).
- Системы контейнеризации: Vagrant, Docker.
- Системы виртуализации: OpenVZ, Xen.
- Java или Ruby. Преимущества Java в том, что это богатый toolset, а таже заточка под корпоративный сектор, где требуются сложные бизнес-приложения и много серверов.
- Отсутствие проблем в настройке серверов и "миграции": PHP > HHVM, Apache > Nginx, и т. д.
- Умение работать с VCS.
- Puppet.
- Capistrano.
- Способность автоматизировать восстановление бэкапов БД.
- Оптимизировать издержки, направленные на инфраструктуру приложений.
- Уметь работать с инструментами для мониторинга.
- И, конечно же, научиться гуглить, так как нетривиальные задачи будут обеспечены.
И это только базис, ведь каждая компания задает свой тон.
Книги
Книги также станут неплохими союзниками в осваивании нового. Обязательно сохраните эту подборку:
- Философия DevOps. Искусство управления IT
- The DevOps Adoption Playbook. A Guide to Adopting DevOps in a Multi-Speed IT Enterprise
- The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
Видеокурсы
- Практики и инструменты DevOps от ITVDN. Отличный курс в формате лекций с понятными презентациями от разных специалистов в данной отрасли.
- Открытый урок по DevOps «CI CD»: быстро и доступно об основных моментах.
- Промышленный DevOps копнули ребята из Microsoft Developer. Также формат лекции, качественно визуализированный с помощью презентации и вполне доступный для понимания.
Комментарии