Профессия DevOps инженер

Профессия DevOps инженер

Какие знания и умения нужны в сфере DevOps Engineering в 2021 году? Как изменилась зарплата DevOps-инженера?
alt
Алексей Гаврюшкин Технический директор


Выдано в печать 2021-01-29

alt

Содержание:

В этой статье я обрисую общий план, как разобраться в профессии DevOps-инженера, что нужно знать и как учиться.

Какие языки надо знать DevOps инженеру?

DevOps-инженер должен иметь общее понимание структуры языков программирования и подключаемых библикотек, а также уметь выстраивать окружение (environment) под каждую конкретную систему. При этом глубоких знаний того или иного языка, по сути, не требуется. Часто можно услышать, что Dev Ops инженеру нужно знать несколько языков программирования: Node.js, Python, Ruby, иногда называют C и C++. Это, конечно, не соответствует действительности: задача DevOps - в организации связи между разработчиком и IT-инфраструктурой, а не в создании кода.

Часто используемые языки программирования инженерами DevOps:

  • Rust
  • Node.js
  • Python
  • Go
  • Ruby
  • C и C++

Операционные системы

Довольно часто можно услышать: “DevOps - это коллаборация сисадмина с разработчиком”. Отчасти я с этим соглашусь, но... если рассматривать операционные системы, то в идеале следует прежде всего понимать их принципы работы, знать способы построения сетей, POSIX стандарты, параллелизм, потоки, а также иметь навыки работы с системой файлов, сокетами и виртуализацией, обладать навыками контроля процессов, ввода, вывода и памятью.

Желательно знать теорию работы с терминалами разнообразных операционных систем и применять её на практике. Обычно в большинстве компаний основной средой разработки является Linux, поэтому в DevOps-вакансиях почти всегда есть можно найти такой пункт, как "навыки администрирования Linux и знание Bash скриптов".

Зарплата DevOps инженера

Зарплата DevOps инженера зависит, конечно, от уровня: Junior, Middle или Senior будут зарабатывать совсем разные деньги. В целом для Москвы можно обозначить вилку в 130-250 тысяч рублей.


Зарплаты и вакансии DevOps-инженеров. Источник: Superjob.ru

Конечно, уровень заработка будет зависеть и от самой компании, от её уровня и от того, какое место DevOps занимает в стуктуре и процессах.

Протоколы, сеть и безопасность

Сетевые протоколы, предназначенные для передачи почты mail.ru, протоколы криптографии SSL/TLS, четкое знание отличий HTTPS от HTTP, технология Port Forwarding, протокол файло-передачи с помощью сети FTP, и наконец управления SSH сервером отдалённо.

Кроме того, нужно понимать такую модель сети, как OSI и иметь представление об её уровнях

Стоит уделить внимание Ansible - это применяющий модель push, для того чтобы выполнять команды по SSH протоколу опенсорсный инструмент. Шаблоны, как и масштабирования по горизонтали и вертикали, так и YAML предусматриваются в Ansible.

Инфраструктура как код

Если следовать IaC модели (Infrastructure as Code), разработка програмного обеспечения и настройка инфраструктуры похожи друг на друга. Вы будете иметь дело с инструментами, с помощью которых можно управлять конфигурацией, работать с оркестрацией контейнеров и создавать инфраструктуру.

Провайдеры в облаке

Вы не сможете стать полноценным DevOps-специалистом, если не будете знакомы с DigitalOcean, Heroku, Google Cloud, AWS (Amazon Web Services) и Azure.

Говоря об Cloud Design Patterns, следует помнить, что разработчики приложений в облаке сталкиваются с кучей проблем.

Доступность - количество от общего времени постоянной системной работы, на которое влияют такие факторы как: ошибки в системе, инфраструктурные проблемы, нагрузки и атаки.

Немаловажная часть приложений в облаке - управление данными. Продуктивность увеличиваются, а доступность улучшаются за счёт того, что данные (в большинстве случаев) раскиданы сразу по нескольким серверам, но из-за этого могут возникнуть некоторые проблемы с синхронизацией.

Создание проекта и его последующая реализация подразумевает администрирование, обслуживание, эксплуатирование подсистем и компонентов повторно, а также согласованность в развёртывании.

ТОП-5 вопросов к собеседованию на DevOps-инженера

1. Что вы знаете о DevOps?

Ответ должен быть простым. Отвечайте прямо: начните с того, как растёт роль DevOps во всей индустрии IT. Обсудите, как этот подход позволяет командам Development и Operations объединять усилия и ускорять релиз программных продуктов, уменьшая количество багов и ошибок.

2. Чем DevOps отличается от Agile?

Культура DevOps обеспечивает непрерывность разработки в тесной связи с тестированием, интеграцией, выкаткой готового продукта и мониторинга на всём протяжении жизни продукта.


Agile vs DevOps

Agile, в свою очередь, - это методология разработки, которая концентрируется на пошаговом продвижении в процессе создания программного продукта через короткие итерации ,включающие в себя обратную связь от заказчика. Agile сглаживает процесс взаимодействия разработчика и заказчика.

DevOps же сглаживает взаимодействие разработчиков и IT.

3. Какие инструменты DevOps вам известны?

Вот список наиболее популярных:

  • Selenium
  • Puppet
  • Chef
  • Git
  • Jenkins
  • Ansible
  • Docker

4. Через какие фазы проходит DevOps-процесс?

Фаз может быть много. Вот перечень типовых:

  • Plan - в самом начале нужен некоторый общий план создания программного продукта.
  • Code - Разработка приложения в соотсветствии с ТЗ для конечного пользователя.
  • Build - Сборка приложения путём объединения разнообразных фрагментов кода, созданных на предыдущем шаге.
  • Test - Критически важный шаг, на котором происходит тестирование и проверка работы приложения (и возврат на предыдущий шаг в случае необходимости).
  • Integrate - Интеграция результатов работы нескольких разработчиков в единый код.
  • Deploy - выкатка продукта в облачное окружение для дальшейгего использования.
  • Operate - С кодом производятся необходимые работы.
  • Monitor - Мониторинг работы приложения. Внесение изменений (если требуется) для соответствия ТЗ.


Цикл DevOps

5. Каковы основные преимущества и выгоды Dev Ops?

Благодаря использованию DevOps-подхода вы получаете и чисто технические выгоды, и в целом улучшаете эффективность бизнеса.

Технические:

  • Непрерывность релизов;
  • Уменьшение количества особо сложных проблем;
  • Ранее обнаружение и быстрая коррекция багов, дефектов и ошибок.

Для бизнеса:
  • Новые фичи можно запускать быстрее;
  • Продакшен-окружение становится стабильнее;
  • Коммуникация и кооперация между командами сильно улучшается.

Заключение

Что нужно для того чтобы получить должность DevOps-инженера в 2021 году? Необходимо детально изучить хотя бы один из языков программирования, для автоматизации процессов, познакомиться с терминалами популярных операционных систем и изучить их основные особенности, получить опыт в работе с оркестрацией, контейнеризацией и другими инструментами, знать теорию протоколов передачи данных и шифрования и, конечно, разбираться во всех тонкостях разработки приложений в облаке.

Услуги агентства

Свежее в портфолио:

«Когда смотрю профиль инстаграмм Вами созданный - все очень качественно получается, и информационный журнал, на себе не зациклились и свои работы печатаем. Посты получаются все изысканнее и изысканнее, спасибо! »
Руслана Ильинская (Генеральный директор ООО "Архитектурная студия Ильинской"). Маркетинговое агентство KOKOSOV сотрудничает с Русланой уже 3 года
«Увидели ваши ролики на YouTube с обучением Яндекс.Директу и поняли, что нам требуется как следует переработать рекламу, которую мы раньше настраивали сами »
Денис Бушмакин (Руководитель проекта Всяработатут.рф).