{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Кто такой DevOps инженер? Подробный разбор для рекрутеров

Постарались просто и понятно объяснить сложное и непонятное.

Привет! Меня зовут Настя Ширкина и у меня своя школа IT рекрутеров. Со всеми студентами делюсь любимым правилом охотника: "Если хочешь поймать оленя - думай как олень". Для хэдхантеров оно тоже актуально. Понимание своих кандидатов и сути их работы помогают нанимать более качественно. Поэтому и родилась идея интервью с разными IT-специалистами, которые честно и просто рассказывают про свою работу.

Ловите конспект интервью с DevOps-ом Андреем Грицуком.

Словарик

DevOps - одна из самых сложных, с точки зрения понимания, вакансий для рекрутера. Поэтому для начала делимся мини-словариком - он поможет не запутаться дальше.

Про жизненный цикл продукта написала аж отдельную статью в картинках. Обратите внимание на стадию внедрения. Она особенно важны в понимании роли DevOps-a.

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

Иногда нам не хочется заморачиваться с настройками серверов у себя или нам не выгодно покупать своё железо. Тогда компании арендуют часть чужого большого сервера и взаимодействуют с ним на расстоянии. Это уже облачные технологии.

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

Общее описание и место в царстве разработки

Кто или что такое девопс?

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

код нашего проекта - это песочный кулич. а песочница - среда, куда его внедряем.

Нужен ли на проекте отдельный девопс?

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

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

Отличительные особенности

В чём разница между тобой и сисадмином?

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

Можно обобщенно описать различия на примере выпечки коржей для торта.

Задача системного администратора подключить духовку в сеть, проверить, что есть напряжение, ну и “установить” наблюдение, чтобы в сети не пропало напряжение. Разработчик по определенным рецептам готовит эти коржи. Задача девопса определить: обойдёмся ли мы одной духовкой или нам нужно несколько, или как поместить побольше коржей, чтобы при этом все они равномерно запекались и не подгорали. А также, сам процесс доставки коржей в духовку и обратно на кухню, чтобы собрать эти коржи в торт.

Задачи

Какие ещё задачи на твоих плечах?

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

Классификация

Есть ли какая-то специализация у девопсов?

Можно условно разделить по зонам ответственности:

  • Build инженер
  • Release инженер
  • Devops

Или по технологиям, с которыми работают:

  • Windows
  • Linux

Переключиться между ними непросто. Поэтому если у вас на проекте линукс, то лучше искать линуксоида из коробки.

Также трудимся с разными облаками (Azure, AWS, Google-Cloud), вот между ними переход уже гораздо проще.

Инструменты

Что ещё из технологий используете?

Puppet, Chef, Ansible - это инструменты по управлению конфигурациями. Т.е. они помогают настраивать и выстраивать коммуникацию между большим количеством серверов. С ними можно выполнять действия на десятках серверов одновременно или, к примеру, разворачивать несколько приложений одним щелчком мыши.

а руками бы умаялись менять и соседние куличи потоптать могли

Terraform - инструмент, который автоматизирует настройку инфраструктуры. Если упрощённо: тебе не надо ручками выбирать сервисы, строить между ними взаимодействие и т.д. Это довольно затратно по времени, особенно если часто приходится готовить инфраструктуру для новых приложений или фич. В тераформе мы может описать инфраструктуру кодом - и он автоматически создаст её сам.

Docker. Эта штука позволяет “упаковать” приложение в отдельный - контейнер. Контейнер - независимая часть реального или виртуального сервера. Чем-то похоже на отдельного пользователя на компе. Только эти пользователи могут работать одновременно и кроме вашего сервиса на них ничего не будет (ни косынки вам, ни пакета майкрософт). Т.о. докер позволяет вам легче развернуть ваше приложение в любой среде, сделать это изолировано (а значит и безопасно) от основной системы. Приложения между собой не конфликтуют: поломка в одном не повлечёт за собой косяки в соседнем.

Kubernetes. Когда количество сервисов, а соответственно и докер контейнеров растёт, нам нужно как-то ими управлять - для этого и создан kubernetes. Если по умному: это система оркестрации (координации) “упакованных” приложений для автоматизации их развёртывания, масштабирования и т.д.

А на каких языках скрипы пишешь?

Если мы говорим об автоматизации, то Python и Groovy,а также Bash(это оболочка linux). Груви используем для автоматизации сборки, тестирования и выкладки приложения. Выбор между питоном и башем зависит от цели: что-то проще сделать на одном, что-то на другом.

Общение с рекрутерами

Тут можно “поныть” про косячные моменты в диалогах с рекрутерами:)

Могут не с той вакансией постучаться или имя перепутать. Видно, что не все понимают суть вакансии)

Из последнего, что запомнилось, - лирический заход типа "лето постучалось в дверь, а я постучалась с вакансией". Не надо так :) Давайте по делу. И вакансии стихами - тоже не лучшая идея.

Гнездовья

  • DelEx Conference 2020 (тут можно партнериться)

  • DevOpsMinsk Community (тут следить за развитием сообщества и девопсами)

  • devopsby (тут следить за смертью группы в фб)
0
Комментарии
-3 комментариев
Раскрывать всегда