Блог

Все статьи

DevOps Engineers – кто это такие и что они делают

DevOps Engineer - what is it and what do they do

Кто такие Девопс-инженеры? Что именно они делают и чем отличаются от 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 – перспективная специализация, предоставляющая широкие возможности для профессионального развития. Начать может каждый, кого привлекает работа над созданием программного обеспечения и кто хочет понимать все звенья жизненного цикла программы для создания качественного и востребованного продукта.