Облачные технологии уже кардинально трансформировали процесс создания ПО, и это влияние вряд ли ослабнет в обозримом будущем. Провайдеры облаков обещают гибкую масштабируемость, инструменты для автоматизации и широкий набор сервисов, которые снимают с команд множество рутинных задач. Тем не менее, называть облако универсальным решением без изъянов было бы преждевременно.
Рассмотрим, какие стороны облачной разработки привлекают инженеров, с какими трудностями приходится сталкиваться и возможно ли найти компромиссный путь.
- Почему продуктовые IT-компании выбирают облачные платформы для разработки?
- Несколько причин, по которым компании-разработчики ПО выбирают облако:
- Откуда берётся «облачный скептицизм» у разработчиков и что может его снять
- Какие перспективы у облачной разработки?
- Видео:
- Миграция в облако: технологии, люди и процессы / Всеволод Грабельников (Yandex.Cloud)
Почему продуктовые IT-компании выбирают облачные платформы для разработки?
Начнём с наглядных примеров. Netflix выстроил гибкое модульное окружение в AWS: использование готовых сервисов вроде AWS Lambda, Amazon S3 и Amazon DynamoDB позволило стриминговой компании сконцентрироваться на прикладной логике своих продуктов, а не на администрировании инфраструктуры, что ускорило внедрение новшеств. Аналогично облачные решения применяют Spotify (на базе Google Cloud Platform), Airbnb и Dropbox (сервисами AWS). Подобных кейсов — тысячи.
Несколько причин, по которым компании-разработчики ПО выбирают облако:
- Масштабируемость и эластичность. Организация быстрее адаптируется к скачкам спроса и сохраняет конкурентоспособность, поскольку команды могут оперативно поднять или свернуть среды разработки и тестирования.
- Практически неограничённые ресурсы. При необходимости компания получает требуемые вычислительные мощности по запросу и регулирует их объёмы в соответствии с нагрузкой.
- Ускорение цикла разработки. Оптимизация ключевых процессов сокращает жизненный цикл разработки: автоматизация сборки, тестирования и деплоя, а также готовые библиотеки и шаблоны повышают продуктивность инженеров.
- Снижение расходов на инфраструктуру и IT-персонал. Поставщик облака обслуживает физическую инфраструктуру, поэтому организация избегает крупных капитальных затрат (переходит от CapEx к OpEx) и может сократить потребность в штатных системных администраторах.
- Более развитые возможности совместной работы. Распределённые команды могут работать над одним проектом независимо от местоположения; географические барьеры теряют значение, открывая возможности для совместной работы в реальном времени.
Ключевая мысль в этом перечне — уменьшение зависимости от «железа», связанных с ним ограничений и условий, и переход к моделям, где преобладают эластичность, доступность и высокая производительность облачных решений.
Откуда берётся «облачный скептицизм» у разработчиков и что может его снять
Некоторые разработчики по-прежнему относятся к облаку с осторожностью и не торопятся полностью переносить туда свои процессы.
Как отмечает Руши Кулкарни, старший вице-президент NTT Ltd, недоверие к облачным платформам во многом сформировалось ещё на раннем этапе их развития. По его словам, тогда акцент делался в основном на IaaS — «инфраструктуру как услугу», а PaaS и инструменты для DevOps были недостаточно развиты.
Другие проблемные моменты, хоть и актуальные, в большинстве случаев имеют технические решения. Речь прежде всего о безопасности, зависимости от одного поставщика, а также совместимости между разными облачными платформами, что может усложнить перенос приложений из одного облака в другое.
Вопросы доступности сервисов тоже возможны: не все провайдеры оперативно реагируют на инциденты круглосуточно. Если между командой разработчиков и техподдержкой провайдера существует значительная разница в часовых поясах, это способно привести к задержкам в решении проблем.
На первый взгляд кажется, что такие барьеры делают облако далёким от идеальной среды разработки. Однако многие из упомянутых вызовов уже перестали быть непреодолимыми.
Современные облачные платформы предоставляют полный набор инструментов для разработчиков и операторов: сервисы для low-code и бессерверных решений, готовые конвейеры CI/CD и многое другое, чего ранее не хватало. Кроме того, появились специализированные сервисы для автоматизации облачной разработки, которые нивелируют большую часть проблем.
В том, что многие сложности уже решены, убеждён Константин Северенчук, директор технологических решений в EPAM и руководитель центра компетенций по облачным технологиям:
«Крупные игроки на рынке облачных технологий (Amazon, GCP, Azure) приложили значительные усилия, чтобы снизить или практически устранить те проблемы, которые мешали разработке в облаке. В результате порог входа для инженера стал ниже, автоматизация присутствует на каждом шаге. При наличии базовых знаний разработчики без труда работают в выбранном облачном окружении. Подходы Cloud-first/Cloud Native превратились в неотъемлемую часть повседневной работы».
Готовые решения, помогающие решить типичные проблемы облачной разработки, выделяет и другой эксперт — Владимир Мельник, технический директор и сооснователь Tucha:
«Ключевые вызовы при переносе разработки в облако — это защита данных, контроль за потреблением ресурсов и возможность легко перейти на другую платформу при необходимости. На сегодняшний день такие вопросы решаются за счёт контейнеризации и автоматизации CI/CD-процессов. В качестве примера могу привести нашу DevOps/Hosting-платформу TuchaKube, разработанную для поддержки высоконагруженных систем и связанных с ними процессов разработки и доработки. Вопрос безопасности там решается благодаря собственной облачной инфраструктуре, размещённой в дата‑центрах уровня Tier 3 и выше. Для управления расходами применяются разнообразные инструменты мониторинга и контроля ресурсов, сочетающие open-source компоненты и собственную разработку».
«В контексте организации разработки в облаке среди компонентов TuchaKube стоит подчеркнуть систему совместной работы с кодом GitLab для управления репозиториями и автоматизации CI/CD, набор сервисов в экосистеме Kubernetes для оркестрации контейнеров, а также Ansible для развёртывания инфраструктуры и управления конфигурацией всех компонентов в одном месте. Что касается миграции, то использование Docker для контейнеризации и Kubernetes для оркестрации повышает совместимость и облегчает перенос между разными облачными платформами».
Какие перспективы у облачной разработки?
Аналитики Gartner прогнозируют, что к 2025 году свыше 85% организаций будут ориентироваться на стратегию «cloud-first» и не смогут полноценно реализовать цифровые инициативы без облачных архитектур и инструментов. В том же исследовании говорится, что применение low-code и no-code решений вырастет почти втрое: разрозненные подходы к разработке утратят актуальность, что ускорит рост рынка облачных LCNC‑платформ.
Мы также спросили мнения украинских экспертов о том, каким может стать будущее облачной разработки.
Константин Северенчук, директор технологических решений в EPAM, отмечает:
«Облако уже давно превратилось в универсальную среду для разработки. Все современные тренды подтверждают этот вектор. Cloud‑технологии стали мейнстримом. Крупные провайдеры адаптировали свои платформы под универсальные сценарии разработки — как для собственных решений, так и в условиях мультиоблака. Практически любые IDE или фреймворки уже имеют плагины для обеспечения cloud-совместимости. Если посмотреть на интеграцию искусственного интеллекта, то GitHub Copilot, Amazon Q и подобные инструменты интегрируются в разработку, ускоряя процессы, поскольку весь цикл остаётся внутри единого окружения. Не вижу препятствий для дальнейшей унификации облачных сервисов. Недавно даже появилась новая роль — Cloud Platform Engineering — как часть системной инженерии».
Анатолий Громов, Senior Azure DevOps в Center of Excellence SoftServe, уверен, что облако станет универсальным рабочим пространством при соблюдении ряда условий:
«Это случится тогда, когда стоимость поддержки облачной среды приблизится к затратам на обеспечение команд мощными рабочими станциями, а удобство работы станет сопоставимым с привычной локальной разработкой без ухудшения уровня безопасности. Важна также эволюция самих облачных систем в части подключения и поддержки рабочих сессий. По моему мнению, можно добиться такой стабильности пользовательского интерфейса, чтобы небольшие колебания интернет‑соединения не влияли на итоговый пользовательский опыт».







