66% российских компаний уже налаживают обмен практиками DevOps внутри команды и используют их в работе с заказчиками. Рассказываем, как к методике относятся бизнес и разработчики и в чем ее преимущество
В России работает не менее 4,5 тыс. компаний — разработчиков ПО, и ежегодно их число растет примерно на 2,5–4%. Часть из этих компаний планирует стать вендорами отраслевых продуктов. Чтобы быстро достигать своих целей, им требуется внедрять новую культуру разработки, в частности DevOps-практики и инструменты.
DevOps — это сочетание культурных принципов, подходов и средств, которые повышают способность компаний быстро создавать приложения и сервисы. Их внедрение позволяет наладить совместную работу разработчиков, тестировщиков и других IT-специалистов в команде. В итоге участники команды работают более эффективно и слаженно, вовремя исправляют ошибки и грамотно взаимодействуют друг с другом. Практики DevOps позволяют компаниям повышать конкурентоспособность и качественно трансформировать бизнес.
В первом квартале 2023 года Т1 провела интервью с руководителями отделов разработки и IT-директорами 150 российских компаний, активно использующими практики DevOps. Как показало исследование Russia DevOps Report 2022, в компаниях понимают важность культурной и технологической трансформации, однако взгляды на задачи и способы их решения у бизнеса и у самих разработчиков различаются. Разбираемся, почему так происходит и как решить проблему.
Холдинг Т1 разрабатывает платформу «Сфера» (SFERA — Scaled Framework for Enterprise Resilience and Agility) для производства комплексных IT-продуктов и оценки этих процессов. Она включает более 40 инструментов для управления разработкой, тестированием, эксплуатацией программного обеспечения, а также для работы с исходным кодом, мониторинга рабочих станций и бизнес-процессов.
По словам разработчиков — участников исследования, главной проблемой стало замедление темпов разработки программного обеспечения. Это связано с соблюдением существующих регламентов и процессов согласования изменений, а также большим количеством ручных процессов. Такую проблему отметили более 20% респондентов.
Вторым слабым местом опрошенные назвали хаотичный сбор требований (регламенты, законодательные акты о введении в эксплуатацию, подтверждение бюджетов): он осуществляется на проектной основе и часто выходит за рамки применения принципов DevOps. Эту проблему отметили более 15% компаний.
С точки зрения руководителей организаций, главные проблемы рынка разработки несколько иные: это дефицит разработчиков (12%) и высокая стоимость их труда (13%). Еще 11% менеджеров отмечают, что в процессах компаний сохраняется много устаревших сервисов. Разрыв между современными и устаревшими инструментами препятствует быстрой разработке продуктов и следованию принципам DevOps. К примеру, компаниям приходится ограничиваться определенными инструментами разработки и доставки приложений, поскольку все остальные конфликтуют со старым легаси (устаревшим софтом).
При этом и руководители отделов разработки, и представители бизнеса одинаково понимают важность применения методов DevSecOps и считают их крайне важными в процессе разработки.
Принципы DevSecOps (development, security and operations — разработка, безопасность и эксплуатация) автоматизируют интеграцию принципов безопасности на каждом этапе жизненного цикла разработки программного обеспечения, начиная с проектирования.
Успешное внедрение DevOps-практик дает компаниям целый ряд преимуществ. Оно позволяет ускорить и повысить качество разработки, а также упростить и стандартизировать ее. Быстрота вывода продуктов на рынок позволяет компании повысить конкурентоспособность и вовремя занять нишу на внутреннем или внешнем рынках.
Кроме того, DevOps-практики обеспечивают:
- снижение рисков и издержек при разработке за счет внедрения инструментов мониторинга процессов;
- улучшение коммуникации и сотрудничество между различными отделами компании, поскольку они взаимодействуют в единой среде;
- увеличение гибкости и адаптивности команд и самой компании к изменениям внутри и на рынке, поскольку они быстрее получают обратную связь, в том числе и от клиентов.
По оценкам исследовательской компании Allied Market Research, размер мирового рынка DevOps к 2030 году достигнет $57,9 млрд, а среднегодовой темп его роста составит 24,2%. Его будут стимулировать рост потребности в непрерывной и быстрой доставке приложений, стремление снизить капитальные и эксплуатационные расходы, рост числа приложений, достижения в области искусственного интеллекта и его использования в разработке приложений.
DevOps — это не просто комбинация подходов и инструментов, а особая философия подхода к процессу разработки программного обеспечения, которая основывается на сотрудничестве между разработчиками. Разворот к DevOps произошел в начале 2000-х, когда команды разработки и эксплуатации, которые занимались поддержкой кода, стали ориентироваться на совместную конвейерную работу. При классическом подходе они зачастую действовали отдельно, что приводило к снижению эффективности процессов. Практики DevOps, изначально работавшие в стартапах, начали перенимать и крупные компании.
В условиях трансформации бизнеса, когда необходимо обеспечить быструю и гибкую доставку программных приложений, DevOps стал стандартом для достижения этих целей. Теперь эти практики используют зрелые предприятия из самых разных сфер, уделяя ключевое внимание вопросам безопасности разработки.
Однако не все руководители предприятий готовы к внедрению новых практик. Руководитель портфеля продуктов DevSecOps платформы «Сфера» Евгений Калашников отмечает, что обычно разворот к практикам DevOps происходит тогда, когда руководство понимает, что процессы разработки далеки от их представлений в плане качества, эффективности и прибыльности.
В этой связи разработчикам, которые хотели бы работать в парадигме DevOps, нужно показать руководителям преимущества и пользу от внедрения нового инструментария. Она должна выражаться в экономии затрат или увеличении прибыли, снижении рисков при разработке продуктов и ее ускорении. Для начала можно предложить изменения, которые затрагивают только техническую составляющую процессов разработки и поставки. При этом лучше начинать не с DevOps-инструментов, а с инженерных практик. Разработчики могут самостоятельно внедрить доступный им инструмент автоматизации развертывания продукта, а потом продемонстрировать результаты руководству. Улучшения могут быть следующими: экономия времени на ручных операциях, повышение автономности продуктовых команд, прозрачности процесса, хороший мониторинг и так далее. Также можно подсчитать упущенную выгоду при отказе от автоматизации конкретного процесса, например обновления серверов.
По мнению Евгения Калашникова, DevOps-практики будут полезны всем компаниям, которые разрабатывают программное обеспечение. Они позволят сделать процессы разработки более эффективными, управляемыми и измеримыми.
«DevOps можно внедрять на любых этапах, вопрос заключается лишь в готовности компании к таким изменениям. В случае со стартапом DevOps-подход может решить вопрос доставки продукта разработки до конечного пользователя, а в зрелой компании он упростит взаимодействие команд, которые разрабатывают, тестируют и внедряют продукт. При этом каждая компания самостоятельно выбирает, какие практики ей внедрять и под какие задачи», — подчеркивает эксперт.
Опрошенные Т1 руководители отделов разработки считают, что решить существующие проблемы рынка можно путем повышения эффективности самих разработчиков. Для этого, по их словам, нужно внедрять практики DevOps, мониторить процесс разработки и повышать его прозрачность, налаживать механизмы сотрудничества через создание единой среды управления задачами. По мнению руководителей, DevOps позволит повысить качество создаваемого ПО и ускорить разработку.
Опрошенные компании выделили несколько важных шагов, которые потребуется предпринять для эффективного внедрения DevOps.
На первом месте оказалось создание необходимой культуры разработки, что требует изменения мышления и привычного иерархического подхода. Большинство компаний (66%) налаживают обмен знаниями и лучшими практиками внутри команды DevOps и применяют их в работе с бизнес-заказчиками. Более трети уже учитывают обратную связь от них.
Затем потребуется правильно выстроить коммуникации внутри компаний. Почти половина (48%) опрошенных уже внедряют средства взаимодействия между командами разработки и IT-отделом (Microsoft Teams, Slack и другие). Еще 19% получают обратную связь от клиентов. У 17% респондентов взаимодействие между этими двумя группами происходит вне стандартной корпоративной среды.
Еще одним важным шагом опрошенные называют привлечение новых DevOps-специалистов. Компании решают эту проблему в зависимости от степени своей зрелости: высокотехнологичные компании готовы брать разработчиков начального уровня и обучать их, а компании, которые пока находятся в процессе развития DevOps, ищут опытных специалистов.
При выборе инструментов разработки компании учитывают лучшие и наиболее распространенные решения на рынке, а также запросы и рекомендации, приходящие непосредственно от участников процесса. Широта этого инструментария также зависит от навыков DevOps-специалистов.
Опрошенные Т1 компании в основном используют коммерческие средства разработки от иностранных поставщиков (90%). Однако IT-ландшафт дополняют и российские средства разработки, в том числе Platform V для управления разработкой программного продукта, Test IT для его тестирования, а также продукты платформы «Сфера» для производства комплексных IT-продуктов и оценки процессов.
Кроме того, крупные компании используют внутренние среды разработки. Вероятно, доля такой разработки со временем увеличится.
Отдельно респонденты оценили важность инструментов в DevOps. Самыми важными стали инструменты автоматизации рутинных процессов (69%).
При этом компании в подавляющем большинстве уже применяют инструменты мониторинга процессов производства, систем и сервисов (65%), а также автоматизации рутинных процессов (61%). Более половины компаний внедрили средства производства, обеспечивающие скорость и качество процесса разработки, а также инструменты контроля качества (по 52%). 51% компаний отметили важность использования инструментов эксплуатации.
Помимо DevOps-инструментария, ускорить разработку позволяют решения open source, облачные сервисы, инструменты программирования без кода (low-code и no-code). Согласно исследованию Т1, 90% респондентов уже используют open source при создании своих продуктов, из них 34% планируют наращивать этот процесс.
Использование проектов с открытым исходным кодом дает опрошенным компаниям ряд преимуществ: уменьшение зависимости от поставщиков проприетарного ПО (48%) и снижение нагрузки на IT-бюджеты (43%).
Однако оно создает и риски. В open source могут внедряться закладки вредоносного ПО, которое выведет из строя системы компаний или позволит похитить ее данные. Также есть риск, что разработчики такого ПО закроют свободный доступ к своим проектам. В итоге компании принимают превентивные меры: создают внутренние каталоги одобренного ПО и проверяют его на предмет уязвимости и заменяемости используемых компонентов. «Open source разработки дают широту в использовании и интеграции с разными продуктами, но и несут риски безопасности, а код приходится переписывать под конкретные нужды. Со временем у такого решения ограничиваются возможности обновления», — добавляет Евгений Калашников.
В итоге 49% респондентов просто используют проекты open source, а 51% сами участвуют в их развитии. Более широкое внедрение практик DevOps могло бы повлиять на философию компаний, которые стали бы активнее выступать в роли контрибьюторов при развитии проектов open source, считает Евгений Калашников. Коллаборация IT-игроков российского рынка приведет к его качественной трансформации, когда крупные разработчики начнут вкладываться в создание общих инструментов и библиотек, которые будут безопасными и эффективными.
Многие компании при разработке софта обращаются к облачным сервисам, чтобы оптимизировать вычислительные мощности, ускорить развертывание и обновление приложений, а также автоматически масштабировать проекты.
Около 40% опрошенных Т1 компаний уже используют облака для разработки. Из них 7% доверяют такой разработке только пилотные проекты.
Четверть компаний (25%) используют инфраструктуру как сервис (IaaS, виртуальные серверы с заданной вычислительной мощностью, операционной системой и доступом к сети по подписке), 23% — платформы как сервис (PaaS, облачную инфраструктуру с ресурсами для создания инструментов и приложений уровня пользователя) и готовые решения по модели программного обеспечения как услуги (SaaS, готовое прикладное программное обеспечение, которое полностью обслуживает провайдер).
Контейнеры как сервис (CaaS, услугу загрузки, запуска, масштабирования и упорядочивания пакетов ПО) и API (аппаратно-программные интерфейсы) сервисов пока применяют в 12 и 11% компаний соответственно.
Большинство пока не внедряют эти практики из-за вопросов безопасности и внутренних требований корпоративной политики.
По словам Евгения Калашникова, при внедрении инструментов важно помнить, что не все они легко встраиваются и совместимы с уже применяющимися в компании. Эта проблема решается благодаря платформенному подходу. В рамках платформ вендоры поддерживают все решения и регулярно обновляют их, а также адаптируют под нужды компании. Кроме того, все приложения платформ совместимы друг с другом. Все это обеспечивает безопасность, бесшовную интеграцию, а решения можно развертывать как в облаке, так и на внутренних серверах компаний.