Cервисы
Managed IT
Решения
Security
Импортозамещение
О компании

DevOps как услуга — зачем и для кого

В 1913 году Генри Форд первым применил конвейер в промышленном производстве, чтобы автоматизировать и ускорить процесс сборки автомобиля. Столетие спустя принципы Форда не только не утратили актуальности, но и стали применяться в виртуальном мире — в разработке ПО.

Как и автомобилестроении, софтверная разработка сталкивается с трудностями не оптимально настроенного цикла сборки. На «конвейере» разработки могут систематически возникать узкие места, отчего процесс в целом становится несбалансированным. Самые уязвимые, в плане задержек, этапы — внесение изменений в код, их тестирование и развертывание. Для устранения задержек, и вообще, для ускорения и автоматизации всего процесса используются различные методики; одна из самых эффективных — DevOps (Development Operations).

DevOps — особая культура, набор междисциплинарных практик, главная цель которых состоит в объединении всех, кто участвует в разработке ПО в одну команду для непрерывной интеграции кода и быстрой доставки приложений до пользователя. Культура DevOps опирается на методологию CI/CD (Continuous integration & Continuous delivery) и на оптимизированные под CI/CD инструменты: GitLab, Docker, Kubernetes и пр.

Почему так важна автоматизация? — потому что в нашем случае это синоним экономии. CI/CD подразумевает проведение авто-тестов на ранней стадии сборки: чем раньше обнаружится ошибка в коде, тем меньше вероятность, что она уйдет в production. Национальный институт стандартов США (NIST) считает, что стоимость исправления ошибки на финальной стадии в 30 раз выше, чем на стадии проектирования.

Оценка стоимости исправления ошибок на разных этапах процесса разработки:

Воплощает всё это на практике специально обученный человек — DevOps-инженер, либо сервисная компания, где его роль выполняет команда специалистов. В этом посте мы подробнее рассмотрим второй вариант — услугу Maaged DevOps.

Коты в мешках

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

Работодатель, нанимая сегодня DevOps-инженера, сталкивается с типичной проблемой — сомнительной квалификацией. Связано это главным образом с новизной профессии. У человека, который считает себя девопсом, зачастую не хватает как практического опыта, так и понимания, что же по факту входит в обязанности этой специализации. Правда, обычно это не по его вине: в российском ИТ DevOps-практики «на полных оборотах» используют считанные компании. Поэтому работодатели не защищены от переоценки уровня компетенции нанимаемого специалиста. В лучшем случае приходится мириться с тем, что девопс будет осваивать необходимые технологии и процессы по ходу дела.

Альтернатива

Для успешной реализации CI/CD-практик требуется, как минимум, 3-летний опыт разработки и поддержки разнообразных проектов. Чтобы не быть голословными, возьмем пример ITGLOBAL.COM. В компании наработано большое количество компетенций, поскольку есть собственные продукты и проекты, которые реализованы и развиваются по этой методологии. Кроме того, имеется четкое понимание того, какие метрики значимы для бизнеса. В понятие DevOps мы вкладываем больший смысл, чем просто установка и настройка ПО и поддержка инфраструктур dev и production.

У нас есть возможность смотреть на срез рынка не попроектно, а «поклиентно» — это позволяет видеть большое количество ошибок, которые уже совершены другими командами, и просчитывать оптимальный путь, который сэкономит бизнесу тысячи часов. Мы видим сравнительную продуктивность многих команд, использующих различные стеки разработки. Это дает возможность масштабировать успешные практики — например, помогать начинающим командам применять наработки более опытных команд.

Опять же, практика показывает, что для корректной настройки процессов DevOps одного специалиста недостаточно. Специалист этот должен, например, понимать, как работают гиперскейлеры, поскольку многие приложения приходится разворачивать в облаках Amazon или AlibabaCloud. Вообще, DevOps-инженер должен обладать внушительным набором компетенций: обязательное наличие сертификатов на управление облачными сервисами, знание всего софта за который он отвечает, глубокое понимание того, как проходит разработка, знание хотя бы одного языка программирования (допустим, Python), плюс — умение работать с сервисами контейнеризации. Весь объем скиллов можно совмещать либо поверхностно, либо не полностью. В то время как Managed DevOps позволяет привлекать нужных специалистов на нужных этапах.

Кому подходит Managed DevOps

Поддержка корпоративных сайтов

Часто бывает, что собственный штат разработчиков компании — к примеру, в интернет-ритейле — не справляется с требованиями, которые предъявляет растущий бизнес. При этом постоянное расширение штатной команды программистов и администраторов влечет за собой рост непрофильных расходов. К тому же, не имея HR-специалистов, разбирающихися в тонкостях ИТ-компетенций, есть риск найма недостаточно квалифицированных сотрудников. Выход — делегировать поддержку и развитие сайтов сторонней DevOps-команде, которая в состоянии предсказывать потребности бизнеса и своевременно адаптировать инфраструктуру и процессы.

Мобильная разработка

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

GameDev

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

Итог

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

Тем же, кому эффективный и быстрый процесс разработки нужен уже здесь и сейчас, точно стоит обратить внимание на услугу Managed DevOps. Опытный поставщик может гарантировать выстраивание качественного CI/CD-конвейера на основе лучших мировых практик и лучших инструментов. Эффективная стратегия Managed DevOps позволит бизнесу более гибко реагировать на изменения рынка и своевременно предлагать пользователям новые продукты.