Илья Ильичев
IT Manager компании Linxdatacenter
30.04.2021

«DevOps?», или Что вам не говорят о трендовой ИТ-профессии

Специальность DevOps-инженера сегодня смело можно назвать одним из самых модных кадровых трендов в ИТ наряду с разработкой на Python или такой областью, как Data Science

Илья Ильичев

IT Manager компании Linxdatacenter

Специальность DevOps-инженера сегодня смело можно назвать одним из самых модных кадровых трендов в ИТ наряду с разработкой на Python или такой областью, как Data Science.

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

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

Что в этом утверждении правда, а что миф?  И какие компетенции нужны для того, чтобы стать DevOps-инженером?

Джентльменский набор

Начнём с минимальных требований в плане опыта и компетенций для человека, который хочет овладеть специальностью в ближайшем будущем.

Базовое требование: для хорошего старта нужен серьёзный опыт в работе с ИТ-инфраструктурой. Лучшие шансы у разностороннего специалиста с очень глубоким знанием Unix и родственных систем.

Далее, в требования к современным DevOps-инженерам входит обязательное знание одного-двух языков программирования на уровне, позволяющем писать скрипты для автоматизации процессов, запускать тесты и так далее – например Bash, Python, Go.

Поскольку практически вся работа сегодня строится на облачных решениях, необходимо хорошо разбираться в настройке облачных платформ: AWS, Azure, Google Cloud, VMware vDirector и других. Если у компании свои дата-центры или серверы, вам необходимо тесно работать с серверным «железом», знать технологии виртуализации, уметь настраивать сеть или разворачивать свое приватное облако.

Тут без знаний KVM, Xen, Open Stack, Proxmox, Vagrant, Apache CloudStack, VMware, MS Hyper-V, Nutanix не обойтись.

Все данные где-то приземляются, разнообразие файловых систем и систем хранения также очень велико.  В зависимости от задач и потребностей вы выберете себе или файловую систему хранения, или блочную, или объектную: NFS, samba, s3, zfs, iscsi, FC сети, ceph, gluster и другие vSAN.

Для сурового enterprise применяются системы посерьёзней, как правило это закрытые решения с обязательной поддержкой и гарантией от таких вендоров как Dell EMC, NetApp QNAP, HPE, IBM, 3par, Oracle, Lenovo, Fujitsu, Hitachi. Это лишь неполный список технологий, с которыми вы должны быть знакомы, а некоторые знать и использовать нужно будет на все 100%.

Нюанс здесь в том, что каждая компания будет использовать свой технологический стек, куда, помимо всего вышеупомянутого, будут также входить контейнеры – Kubernetes, Docker, OpenShift, системы управления конфигурациями (SCM) – Ansible или Puppet, и другие платформы и решения для CI/DI (Continuous Integration and Continuous Delivery – процесс непрерывной интеграции и непрерывного развертывания ПО).

Наконец, требуется умение разбираться и настраивать элементы legacy-инфраструктуры компании. Некоторые компании ищут DevOps с хорошим уровнем знаний по сетевым технологиям, или хотя бы не ниже Cisco CCNA.

Обычно такой набор нужен достаточно крупным компаниям, с большим серверным парком и серьёзной ИТ-инфраструктурой для разработки собственного софта. В таких организациях задача DevOps – помогать программистам и продукт-менеджерам развивать свой ИТ-продукт и автоматизировать всё, что только можно и нельзя.

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

Я в DevOps’ы бы пошёл

Всё ещё хочется в DevOps? Тогда продолжим.

Немного о требованиях к знанию языков программирования.

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

Вполне хватит владения на уровне «решить задачу автоматизации ИТ-администратора» или проанализировать ошибку «компиляции» кода. К примеру, создать конфиг на Ansible, вызвать какой-нибудь самописный скрипт и тому подобное.

Такие навыки нельзя сравнивать с умением спроектировать и написать код решения с нуля, думаю, можно оценивать требования в этом направлении на уровне junior developer.

Говоря о конкретных языках, можно отметить востребованность Python, Go, Ruby, Scala и C, а также языки сценариев командной оболочки – bash для Linux и PowerShell для Windows.

Более важным для работы будет доскональное знание и понимание принципов устройства и функционирования ИТ-инфраструктуры и технологического стека, на котором работает ваше решение. На мой взгляд, именно эта особенность профессии определяет, почему она будет оставаться практически недосягаемой при старте «с нуля» в обозримом будущем.

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

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

Даже если вы что-то очень хорошо освоили, то нельзя на этом останавливаться. Скорость изменений в ИТ очень высока, в основном из-за появления массы новых протоколов, API, языков, ИТ-платформ и инструментов для разработки и запуска кода в облаках.

Этот «снежный ком» требуемых компетенций приводит к тому, что способность находить нужное решение на уровне зоны ответственности DevOps приходит только при условии постоянной работы на реальных проектах и задачах.

Скрипач не нужен

То, что мы видим в плане всплеска популярности DevOps как доступной специальности, «профессии будущего», которой непременно нужно научиться всем и каждому – маркетинговое лукавство. Все пытаются проехаться на новом тренде.

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

DevOps-специалистов в каждую компанию, которая серьёзно развивает какой-то ИТ-продукт, нужно 1-2 человека.

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

Нужно учитывать и всеобщую автоматизацию разработки в ИТ, различные low code/no code платформы для запуска прототипов и MVP – DevOps-инженер автоматизирует и упрощает всё, что можно, и подмастерья для этого ему не нужны.

Прежде всего под автоматизацию подпадают рутинные программистские задачи. Развёртывание кода, автоматическая компиляция, обкатка на тестовой площадке и автоматический запуск тестов, по итогам которого либо происходит передача кода обратно на исправление, либо перевод в продукт – в релиз на сайт или в приложение.

Это всё сегодня автоматизируемо, а у многих автоматизировано уже полностью.

Главная задача на перспективу – максимально ускорить предварительно настроенный и чётко понимаемый процесс обновления релизов (CI/DI).

Противотренд – слабый

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

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

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

Инфраструктура как код: ЦОДы и DevOps

Некоторые компании развертывают часть или все свои ИТ-систем на open source решениях, и, скорее всего, они предпочтут разместить свое оборудование в ЦОДе.

Там им понадобится разворачивать и настраивать все компоненты вручную, нередко этими руками будут (как минимум на стартовом этапе) специалисты дата-центра.

Если у компании есть свой дата-центр или несколько арендованных стоек в коммерческом ЦОДе, то как правило используются виртуальные машины и контейнеры, базы данных и так далее. Одно приложение на голом железе уже почти никто не развёртывает.

Можно это автоматизировать в Puppet/ Ansible/ Chef/ Vagrant, а управлять этой автоматизацией посредством программного кода в этих системах.

Постепенное освоение компетенций профессии возможно через работу с парадигмой «инфраструктура как код» (Infrastructure as code, IaC).  Не за горами повсеместное внедрение SDN (программно-определяемые сети) и SDDC (программно-определяемый ЦОД)

В этом аспекте DevOps – довольно актуальная и стремительно развивающаяся область, её используют всё больше компаний. Это один из сценариев того самого практического погружения в реалии DevOps в каждодневной работе, которое является ключевым требованием к росту в профессии в целом, реализуемое в формате IaC.

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

News and publications

You may also be interested in

How can we help you?
Request Demo Access
client:

BEST, money transfer and payments operator

business challenge

The customer faced a technical issue with a persistent BGP session flag with Linxdatacenter hardware. We examined the problem and found out that one of customer’s hosts was under a DDoS attack.

Because of the distributed nature of the attack, traffic couldn’t be filtered effectively, and disconnecting the host from the external network wasn’t an option. The attack stopped after changes in the server configuration, but resumed the day after. A 5.5 Gbps attack overloaded the junctions with internet providers, affecting other Linx Cloud users. To mitigate the effects of the attack, we employed a dedicated DDoS protection service.

Solution

To ensure the continuous availability of resources hosted in Linx Cloud, we rerouted all the customer’s traffic through StormWall Anti-DDoS system. The attack was stopped within half an hour. To prevent future cyberattacks, we organized all connections to the customer’s resources through the StormWall network.

Thank you for your inquiry, we will get back to you shortly!