DevOps Engineers – кто это такие и что они делают
Кто такие Девопс-инженеры? Что именно они делают и чем отличаются от Agile-инженеров? Разберемся с терминами и рассмотрим основы технологий и инструменты, которые нужно знать, чтобы стать разработчиком DevOps.
Сначала главное – DevOps – не совсем специализация. Это методы, объединяющие в одном процессе разработку, тестирование и развертывание программного обеспечения, как и Agile. Но, в отличие от подхода в Agile, методы DevOps объединяют и команду эксплуатации, расширяя автоматизацию и взаимодействие между всеми звеньями жизненного цикла программы или приложения. Сначала термином DevOps описывали только сам подход к разработке софта, но затем этим термином стали называть новую профессию. По статистике, при DevOps-подходе количество багов при развертывании программы сокращается в пять раз.
Таким образом, ответ на вопрос «кто такой девопс и чем он занимается» будет таков: DevOps Engineer – это IT-специалист, синхронизирующий работу программистов, тестировщиков и сисадминов, а также отвечающий за автоматизацию настройки и развертывания приложений. То есть он занимается вопросами на стыке программирования (dev – development) и (ops – operations).
Чем занимается DevOps инженер
В зависимости от квалификации, сфера деятельности специалиста может состоять в следующих категориях разработки, тестирования и развертывания ПО:
- Контроль за непрерывным созданием кода на всех этапах
- Настройка сети облачных сервисов с установившимися связями между ними
- Постоянный мониторинг и организация централизованного логирования
- Обеспечение безопасности данных и всего, что касается проекта
- Разработка, конфигурация и настройка инфраструктуры
Несмотря на то, в чем заключается работа DevOps, требования к фундаментальным знаниям на должность такого специалиста:
- Знание языка программирования – чаще всего это Bash и/или Python
- Уверенная работа с операционной системой Linux
- Умение работать с облачной инфраструктурой AWS (Amazon Web Services), Azure, Google Cloud
- Понимание принципов работы баз данных
- Практический опыт работы с системами сбора и автоматизации конфигураций и оркестрации.
Три столба DevOps Software: Python, Linux и AWS. Для того чтобы стать девопсом, нужно постоянно совершенствовать свои знания, актуализировать их, изучать новые методы и инструменты.
Какими инструментами и технологиями пользуется DevOps
Поскольку DevOps представляет собой методологическую концепцию, то создание и настройка инфраструктуры, автоматизация процессов, пакетирование не универсально. Поэтому существует множество технологий и инструментов, которые можно использовать.
Инструменты DevOps меняются и усовершенствуются быстро и постоянно, а концепции значительно реже. Использование инструментария позволит осваивать и воплощать в себя концепции всех уровней сложностей.
Какими инструментами следует овладеть DevOps Engenieer?
- Система управления версиями (SCM). Чаще всего используют онлайн-сервисы GitLab, GitHub, Jenkins, BitBucket, Bamboo.
- Непрерывная интеграция (CI) в изолированной контейнерной среде – инструменты GitLab-CI, Jenkins и другие.
- Управление данными (Data management) – инструментарий для сопровождения баз данных FlywayDB, LiquiBase, Flocker.
- Amazon Web Services, Azure, Heroku
- Оркестрация – OpenShift, Docker, Swarm
- Мониторинг New Reliс, Zabbix, DataDog
- Логирование Splunk, ELK Stack
Инструменты для совместной работы
Используются для развития и оптимизации совместной работы, а также для разработки новых способов взаимодействия в команде. Категории:
- Отслеживание задач с помощью Jira, Trello, Pivotal Tracker
- ChatOps – системы обмена сообщениями MatterMost, Slack
- Документация для внутреннего использования – вики-система Confluence, разметка данных MarkDown
Следует отметить, что hard skills и освоенные инструменты могут меняться в зависимости от проекта! Специалистов на проект ставят с определенной целью, поэтому скилы и инструменты это дело индивидуальное. Вы как можете попасть на проект и чувствовать себя свободно с теми навыками, которые уже получили, или вам придется овладевать новыми, чтобы закрыть рабочие задания.
В команде New Line Technologies есть DevOps инженеры с разным опытом. Кроме таких освоенных популярных инструментов как Azure, AWS, Git, Jenkins и др., они работают с отказоустойчивыми и высокомасштабируемыми решениями. Подстраиваясь под запрос клиента, они выбирают индивидуальный подход, не теряя, а только приобретая новые знания и расширяя пределы своей экспертизы.
Что узнать о DevOps? Рекомендации по литературе:
- “The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations” Gene Kim, Patrick Debois, John Willis, Jez Humble
- “Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale” Jennifer Davis, Ryn Daniels
- “Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))” Jez Humble, David Farley
- “Securing DevOps: Security in the Cloud” Julien Vehent
- “Practical Guide to Continuous Delivery“ Eberhard Wolff
- “Terraform: Up and Running: Writing Infrastructure as Code“ Yevgeniy Brikman
- “Cloud Native DevOps with Kubernetes: Building, Deploying, and Scaling Modern Applications in the Cloud” John Arundel, Justin Domingus
Какие специалисты могут стать DevOps-инженером
Если говорить о том, как перейти в девопс, то чаще всего овладевают этой специализацией системные администраторы, так как их знания частично отвечают требованиям специальности. Им необходимо освоить основные технологии и инструменты DevOps, связанные с тестированием и развертыванием. Также тестировщики с опытом, желающие освоить новые направления, могут стать инженерами Девопс. Для этого можно использовать данные из открытых источников, видео-учебники на YouTube, сообщества в Telegram или пройти курсы. Последний вариант дает больше возможностей устроиться на должность Trainee.
10 популярных вопросов, которые задают DevOps Инженеру на собеседовании
Готовишься к собеседованию Junior DevOps? Мы заранее просмотрели форумы, пообщались с HR-специалистами, и отделили 10 самых распространенных вопросов, которые задают на собеседовании начинающему Девопсу. Просмотри, чтобы иметь возможность подготовиться:
- Что такое Scrum? Как он работает?
- Что такое Kanban? Как он работает?
- Архитектура системы Linux. Основные команды для управления операционной системой через командную оболочку
- Каковы основные сетевые протоколы? Какая между ними разница?
- Протокол VPN. Примеры VPN-серверов
- Основы работы с Git (базовые команды, управление ветвями, создание меток)
- CI/CD. Основные этапы
- Примеры систем CI/CD. Какие DSL они используют?
- Системы виртуализации. Как они работают?
- Контейнеризация. Основные Container Runtimes. Базовые команды Docker
Как стать DevOps Engineer
Чтобы овладеть профессией девопс инженера и претендовать на должность Senior DevOps, нужно постоянно учиться и овладевать постоянно развивающимися инструментариями и технологиями.
Начать можно с DevOps Roadmap, где в понятной форме изложено, что именно нужно знать, с чего начать. Поискать сначала онлайн-курсы по выбранным темам.
Для обучения с AWS можно начать с разных курсов на aws.amazon.com. Это более 100 продуктов для разработки AWS. Здесь можно не только изучать, но и получать помощь внешних сертифицированных экспертов и практический опыт.
Azure от Microsoft – azure.microsoft.com – предоставляет возможность бесплатной учетной записи для создания, развертывания и управления приложениями в нескольких облаках.
DevOps Engineer – перспективная специализация, предоставляющая широкие возможности для профессионального развития. Начать может каждый, кого привлекает работа над созданием программного обеспечения и кто хочет понимать все звенья жизненного цикла программы для создания качественного и востребованного продукта.