Сегодня многие компании, ищущие решения своих потребностей в эксплуатации программных решений, размещают вакансии для DevOps (от англ. Development — развитие, Operations — эксплуатация), причем далеко не все специалисты по кадрам понимают, что это такое. Казалось бы все просто: есть программисты на Perl и PHP, значит, по аналогии, есть инженеры, которые знают какую-то там технологию DevOps. Однако, DevOps — это не технология и не язык программирования.
Скачайте схему «Актуальные решения для автоматизации, безопасности и масштабирования»
Бонусом вы получите нашу таблицу «Интеграционная матрица: какие инструменты совместимы между собой»
Методология DevOps возникла в 2009 году, но ее составные части известны с 90-х годов и успешно применялись на разных стадиях автоматизации разработки и эксплуатации ИТ-решений. Поскольку это понятие относительно новое, то у нас оно хорошо известно лишь в инженерной среде, а все остальные только примерно понимают, что это такое. Отсюда и возникло неверное представление, что Devоps — это некая суперсовременная технология, за которую надо просить и давать большие деньги. На самом деле DevOps — это методология, которая объединяет в себе управленческие и технические возможности.
Из чего состоит DevOps
Итак, DevOps состоит из четырех основных составных частей, которые должны реализовываться одновременно. Первый называется Culture (Культура — англ.) и подразумевает, что необходимо из двух отделов — развития и эксплуатации сделать единую структуру. При этом надо понимать, что изначально они являются антагонистами: программисты из отдела Development будут по требованию руководства как можно скорее пытаться внедрить новые фичи, а системные инженеры будут грудью вставать за старые разработки, которые имеют высокую отказоустойчивость. Поэтому совместить эти две разнонаправленные тенденции и примирить системных инженеров и программистов — это задача требующая определенных управленческих навыков.
Про Automation (автоматизация — англ.) говорить нет смысла. Она активно применяется в решении практически любых ИТ-задач и для этого необязательно применять упомянутую методологию.
Потребность в Measurement (измерения — англ.) у бизнеса возникает тогда, когда что-то в функционировании IT-системы идет не так. Тогда они обращаются к системному инженеру и просят найти причину. При использовании DevOps все происходит по-другому. Измерительные инструменты вроде стека StatsD/CollectD/InfluxDB/Graphana устанавливаются сразу, а измеряемые метрики внедряют прямо в код новой программы.
И, наконец, Sharing (обмен — англ.). Он предполагает, что все решения будут приниматься открыто, специфические знания для данного проекта будут накапливаться в каком-то едином, доступном для всех технических сотрудников месте. Это задача тоже относится к разряду управленческих, поскольку надо не только выложить и систематизировать используемые решения, но и, самое главное, убедить всех его участников поделиться своими персональными наработками.
Опасность неправильного использования методологии DevOps
А теперь пару слов об опасности неправильного использования методологии DevOps. Во-первых, если ее использовать по частям, беря скажем лишь инженерную составляющую (Automation & Measurement), то ожидать большого эффекта для бизнеса не стоит. Технические параметры создаваемого продукта, возможно, будут улучшены, но это может быть сделано силами команды Ops, а Developers будут по-прежнему существовать и думать отдельно.
Во-вторых, если в отделе DevOps какая-то группа получит преимущества, то все вернется на круги своя: либо программисты будут поставлять в производственную эксплуатацию сырые фичи, либо системные инженеры будут тормозить внедрение. И то, и другое не пойдет на пользу бизнесу.
В то же самое время, при правильном внедрении методологии DevOps компания сможет быстрее и безопаснее внедрять улучшения программ, которые увеличат ее конкурентные преимущества и в, конечном счете, принесут прибыль.
Наша DevOps-команда Git in Sky имеет успешный опыт предоставления услуг по внедрению методологии DevOps для автоматизации процесса создания программных продуктов.
Кто такой DevOps-инженер?
DevOps администратор — профессия неоднозначная. Нельзя в двух словах точно описать кто такой DevOps-инженер. Но известно, что таких людей мало и их готовы покупать за приличные деньги. При этом подобных вакансий на современном рынке достаточно.
Итак, DevOps администратор это специалист, который может синхронизировать все этапы создания программного продукта: от написания кода до тестирования и выпуска приложения. Он разбирается в специфике задач программистов, тестировщиков и системных администраторов, помогает им работать «на одно дело» и автоматизировать процессы — чтобы быстрее выпускать новые продукты и обновлять уже готовые. Такой специалист быстро ориентируется в нестандартных задачах. Проекту нужен не сам по себе DevOps-инженер — ему нужно решение проблемы, а роль DevOps-инженера может быть распределена по нескольким членам команды с разной специализацией.
Какую карьеру может построить DevOps-инженер?
DevOps-специалист – следующий шаг в карьере программиста или системного администратора. Зарабатывают они хорошо даже на старте. Конечно, уровень дохода зависит от масштаба компании. Но DevOps-инженер с опытом от 3-5 лет ценится уже гораздо выше, чем новичок. Появляется возможность устроиться в более крупную и солидную фирму. Опытный специалист имеет больший шанс справиться с нестандартной ситуацией, так как не раз решал подобные задачи. Новичок может растеряться. В крупных компаниях есть возможность дорасти до руководителя целого DevOps-отдела, где уже понадобятся управленческие навыки.
Как стать DevOps-инженером?
DevOps — это относительно новое направление в IT, поэтому устоявшегося перечня требований нет. Чтобы стать востребованным специалистом, необходим определенный технический бэкграунд: знания в разработке и в администрировании. Соответственно, легче всего стать DevOps-специалистом будет сисадмину или разработчику. Постоянное наращивание дополнительных компетенций, таких как построение инфраструктуры в облаке, работа с базами данных, осваивание системы оркестрации контейнеров и новые инструменты автоматизации, позволит быстрее стать DevOps-инженером. Также существуют специальные курсы «Профессия DevOps-инженер», где дают знания, необходимые девопсу.
Какие проблемы он решает и чем занимается?
DevOps-инженер соединяет воедино результаты работ разработчиков, тестировщиков и системных администраторов. Минимизация взаимодействия между командами разработки и эксплуатации — одна из его основных задач. Помимо этого, он решает десятки задач, которые помогают наладить систему работы этих отделов и менеджеров, внедряет улучшения, получает обратную связь от пользователей. Неощутимые оптимизации и беспрерывные обновления — тоже заслуга DevOps-инженера.
В чём разница между DevOps-инженером и системным администратором?
У системного администратора есть список ежедневных функций, плюс план по развитию инфраструктуры. Специалист по DevOps не решает отдельные задачи разработки и администрирования, а ускоряет весь процесс разработки программ, мобильных приложений и сайтов. То есть, сегодня он может заниматься одним, завтра другим — все зависит от актуальности на данный момент.
Что должен знать DevOps-инженер
Успешный DevOps-инженер должен иметь широкий кругозор в IT-области:
Знать нескольких базовых языков программирования (не обязательно глубоко);
Знать принципы работы операционных систем;
Разбираться в облачных и гибридных решениях;
Понимать, как работают микросервисы и системы оркестрации;
Владеть навыками работы с системами конфигураций.
С какими инструментами работает этот специалист?
Система контейнеризации Docker.
Оркестратор контейнеров Kubernetes как сервис, предоставляемый в облаке — для построения и автоматизации универсальных пайплайнов доставки и для управления приложениями.
Платформа для организации полноценного DevOps-воркфлоу — GitLab.
Jenkins — для реализации CI/CD-пайплайнов.
Ansible — для управления инфраструктурой.
Платформенные (PaaS) облачные сервисы: например, управляемые базы данных, Hadoop и Spark в облаке — для автоматизации задач управления инфраструктурой и упрощения реализации распространённых задач.
Даже начинающим специалистам готовы платить от 90 тысяч рублей в месяц, а зарплаты опытных доходят до 250−350 тысяч рублей и больше. Все зависит от компании и региона. Доход при трудоустройстве в зарубежные фирмы варьируется от 500 до 700 тысяч рублей в месяц.
Также можно работать на фрилансе, зарплата зависит от того, сколько стоит аудит девопса + жадность специалиста.
DevOps-специалисты очень востребованы на рынке вакансий. В настоящее время предложения превышают спрос. Поэтому, сейчас — именно то время, когда стоит попробовать себя в этом амплуа. Особенно, если навыки программирования и администрирования вам не чужды. В зависимости от компании, требования выдвигаются разные. В настоящее время много молодых команд, таких как Git in Sky, которые набирают в свои ряды единомышленников, чтобы реализовывать множественные проекты.
Зарплаты специалистов по эксплуатации за 2019 год. (Источник)
Открытые вакансии в нашей команде
Для нас не важен город, где вы живете — важно ваше желание развиваться и работать в команде