Инженер по инфраструктуре (DevOps)

DevOps — сокращение от англ. development & operations. Этот специалист синхронизирует работу программистов и сисадминов, автоматизирует выполнение задач, чтобы ускорить выпуск программного обеспечения и выход обновлений к приложениям. DevOps-инженер помогает решать задачи, в которых заинтересован ИТ-бизнес: избегать финансовых издержек, повышать скорость и качество разработки, проводить эффективную отладку или масштабирование.

Hard

Знание Linux. Ядро Linux — основа DevOps, поэтому нужен хороший практический опыт работы с этой операционной системой.
Коммуникабельность. DevOps-инженер — связующее звено между эксплуатацией, разработкой и менеджерами. Важно уметь выстраивать взаимодействие внутри большой команды.

Необходимые навыки

Soft

Навыки тестирования. Важно проводить не только проверку функций, но и непрерывное тестирование, а также тестирование производительности и операций.
CI/CD. Свести к минимуму ошибки, повысить темпы сборки и качество — главные задачи DevOps-инженера. Модель программирования, CI/CD — непрерывная интеграция и непрерывная доставка, помогает их решить.
Безопасность программного обеспечения. Поскольку DevOps поставляет код быстро, появляется много уязвимостей. Инженеры должны уметь писать безопасный и надёжный код для защиты приложения от нежелательных атак.
Навыки автоматизации. Автоматизация — сердце DevOps. Она не только увеличивает скорость, но и повышает точность, уменьшая количество ошибок и обеспечивая высокое качество продукта.
Кодирование и сценарии. Чтобы заменить ручные процессы на автоматические, необходимы хорошие навыки кодирования на языках Python, Golang, Ruby, JavaScript, Java, Bash, PHP и других.
Клиентоориентированность. Без учёта всех потребностей клиента «девопсу» придётся нелегко.
Эмоциональный интеллект или эмпатия. В команде всегда работают люди с разным бэкграундом. И к каждому нужно найти свой подход, чтобы все были максимально продуктивны.
Спокойствие в стрессовых ситуациях. Необходимо учиться прогнозировать стрессовые ситуации и заранее составлять алгоритм действий в такие моменты.
Инициативность и вовлеченность. Знаете, как улучшить продукт? Предлагайте! Сотрудник, заинтересованный в развитии проекта, бесценен в любой компании.
Знание инструментов. Успех приложения во многом зависит от выбора и использования набора инструментов. Чем больше вы знаете, тем лучше для вашего продукта.
Навыки облачных вычислений. Облако — совместная платформа для тестирования, развертывания, отладки и выпуска кода приложения. Знание облачных провайдеров жизненно важно для инженера DevOps.
Командование контейнеров. Образы контейнеров используют, чтобы программное обеспечение работало быстрее и было более надёжным. Присмотритесь к Docker и Kubernetes — это ведущие поставщики контейнерных технологий.

Знание английского языка. Вся работа в разработке и эксплуатации ведётся на английском языке. А также важно уметь обсудить сквозную архитектуру продукта с иностранным заказчиком.
Навыки презентации. Важно уметь качественно подавать свои идеи и доносить свою точку зрения.
С нуля стать «девопсом» сложно. Вначале необходимо приобрести базовые знания о «железе», архитектуре платформ, программировании и взаимосвязях в программном обеспечении. Намного проще войти в профессию, например, разработчикам или сисадминам с некоторым опытом. В университетах этому подходу обучают относительно редко, поэтому знания об особенностях DevOps проще получить на курсах и из книг.

Где и сколько учиться

The DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations, Gene Kim, Jez Humble, Patrick Debois, John Willis, Nicole Forsgren. 2-е издание, 2021.

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

Полезные книги

«Компьютерные сети. Принципы, технологии, протоколы», Олифер В.Г., Олифер Н.А. Юбилейное издание 2020 года.

Книга существует уже 20 лет, и в каждом новом издании отражены изменения ландшафта сетевых технологий. Например, сейчас в ней появилась часть «Беспроводные сети», а также информация о технологиях первичных сетей SDH, OTN и DWDM. Книга рекомендована Министерством образования и науки.
Unix and Linux System Administration Handbook, Evi Nemeth, Garth Snyder, Trent Hein, Ben Whaley. 5-е издание, 2017.

Современное и полное руководство по инсталляции, настройке и обслуживанию любой системы на основе FreeBSD или Linux, включая системы, предоставляющие базовую инфраструктуру Интернета и облачную инфраструктуру.
Infrastructure as Code: Managing Servers in the Cloud, Kief Morris. 2016.

Infrastructure as Code — методология автоматизации инфраструктуры, использующая текстовые определения её компонентов. Автор развивает разработку и DevOps в компании ThoughtWorks. В книге представлена как общая философия этого подхода, так и серия практических советов для желающих его внедрить.

Полезные сайты и ресурсы

OpenNET — русскоязычный интернет-проект, посвящённый открытым и свободным компьютерным технологиям. Веб-портал предоставляет пользователям ежедневные новости в области свободного программного обеспечения, Linux, BSD и UNIX-подобных операционных систем, а также в сфере компьютерных технологий.

Блоги и подкасты

DevOps — русскоговорящее сообщество — канал профессионалов, в котором можно задать вопросы экспертам и обсудить свежие новости. По пятницам у авторов выходят выпуски подкастов, которые можно послушать в Telegram-канале.
DevOps & SRE Library — Telegram-канал с книгами и статьями по теме DevOps и SRE. Также в сообществе появляются анонсы профильных митапов и конференций.
freeCodeCamp.org — YouTube-канал с бесплатными видео для тех, кто начинает свой путь в программировании. Здесь есть как короткие видео, так и многочасовые курсы по кодингу и машинному обучению.
Devops Deflope News — новостной Telegram-канал от инженеров Экспресс 42.
DevOpsChannel — YouTube-канал, на котором публикуются записи выступлений с DevOpsConf, профессиональной конференции по интеграции процессов разработки, тестирования и эксплуатации.
DevOps Paradox — подкаст инженеров Виктора Фарчича и Дарина Поуп, которые пытаются ответить на вопрос «Что такое DevOps?» и многие другие с помощью ведущих экспертов отрасли. Виктор — главный архитектор DevOps в Codefresh и член Google Developer Experts.
Bret Fisher Docker and DevOps — YouTube-канал инженера Брета Фишера, где вы узнаете много полезного о Docker, Kubernetes и облачной инфраструктуре.
Google Cloud Tech — YouTube-канал облачного провайдера Google, где специалисты компании публикуют видео со своих внутренних конференций.

Бесплатные курсы

DevOps Start. Эти онлайн-курсы с преподавателями подойдут для желающих ознакомиться с профессией с нуля и сделать первые шаги в этой сфере.
DevOps от Academia IT. Всего курс включает шесть уроков, и пройти их можно в краткие сроки с минимальными знаниями. Школа поможет сориентироваться и найти необходимые источники для работы по специальности.