Хмара вже змінила підхід до розробки програмного забезпечення і, очевидно, найближчим часом цей вплив лише посилиться. Постачальники хмарних послуг обіцяють необмежену масштабованість ресурсів, інструменти автоматизації та великий вибір сервісів, які закривають низку рутинних завдань. Однак хмару складно назвати панацеєю та ідеальним середовищем, позбавленим недоліків.
Поговоримо про те, чим воно приваблює розробників, які проблеми виникають під час використання хмари для розробки та чи можливо їх подолати.
Чому продуктові IT-компанії вибирають хмару як середовище розробки?
Почнемо з прикладів, що надихають. Netflix свого часу створила гнучке модульне середовище розробки у хмарі Amazon, а використання готових сервісів на кшталт AWS Lambda, Amazon S3 та Amazon DynamoDB дозволило відомому потоковому відеосервісу зосередитися на розробці основних функцій своїх застосунків, а не на управлінні інфраструктурою, та швидше впроваджувати інновації. Для розробки програмного забезпечення хмару використовує Spotify (його постачальник хмарних рішень – Google Cloud Platform), а ще Airbnb і Dropbox (надають перевагу сервісам AWS). Таких прикладів – тисячі.
Кілька причин, чому компанії-розробники ПЗ обирають хмарні середовища:
- Масштабованість та еластичність. Компанія швидко реагує на зміну попиту і залишається конкурентоспроможною, якщо розробники можуть оперативно розгортати середовища розробки й тестування.
- Необмежена продуктивність. Компанія отримує практично будь-які обсяги обчислювальних ресурсів на запит і коригує їх вгору чи вниз залежно від реальних потреб.
- Прискорення циклу розробки. Завдяки оптимізації ключових робочих процесів життєвий цикл розробки застосунків скорочується. Цьому сприяють інструменти для автоматизації інтеграції, тестування та розгортання коду, а також бібліотеки та налаштовані шаблони – усе те, що підвищує продуктивність розробників.
- Скорочення витрат на інфраструктуру та IT-персонал. Хмару та фізичну інфраструктуру, на якій вона базується, обслуговує і підтримує постачальник послуги, а компанія, яка використовує хмарне середовище для розробки, уникає капітальних витрат (переходить від CapEx до OpEx) і економить на штатних адміністраторах.
- Розширені можливості спільної роботи. Розподілені команди працюють над одним проєктом незалежно від відстані. Географічні межі стираються, відкриваючи можливості для співпраці в реальному часі.
Головне, що можна винести з цього списку переваг, – це максимальне уникнення «заліза», обмежень та умов, які накладає його використання, та перехід до хмарної моделі з її еластичністю, доступністю і продуктивністю.
Причини «хмарного скептицизму» у розробників і що може змінити ситуацію
Деякі розробники все ще неохоче використовують хмарні обчислення або принаймні не прагнуть мігрувати туди повністю.
За словами Руші Кулкарні, старшого віцепрезидента NTT Ltd, причина скепсису щодо хмарних платформ для розробки полягає у тому, якими їх запам'ятали на початку. Кулкарні стверджує, що вони були зосереджені виключно на послугах «інфраструктура як послуга» (IaaS), не мали сильних функцій «платформа як послуга» (PaaS) і можливостей DevOps.
Інші проблеми з розробкою у хмарі хоча й актуальні, але здебільшого можуть бути вирішеними. Насамперед йдеться про безпеку, залежність від одного постачальника послуг, сумісність із різними хмарними платформами, що може ускладнити міграцію в іншу хмару.
Проблеми з доступністю також імовірні, адже не всі провайдери починають виправляти інциденти в режимі 24/7. Якщо різниця в часових поясах команди розробників і техніків провайдера сягає кількох годин, це може спричинити затримки у роботі.
На перший погляд, ці перешкоди виглядають досить серйозними для того, щоб розглядати хмару як ідеальне середовище для розробки. Однак багато із перерахованих викликів просто перестали бути такими.
Сьогодні хмарні платформи пропонують комплексні можливості для розробників та операторів, що включають власні хмарні сервіси для low-code і безсерверної розробки, повноцінні конвеєри безперервної доставки та багато іншого, чого так не вистачало розробникам у період зародження тренду на хмарну розробку. Крім того, з’явилися сервіси автоматизації розробки у хмарі, які закривають більшість із перерахованих вище проблем.
У тому, що багато проблем вже вдалося усунути, впевнений Костянтин Северенчук, директор технологічних рішень в ЕРАМ, лідер центру компетенцій по хмарних технологіях у компанії:
«Станом на сьогодні основні гравці на ринку хмарних технологій (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% організацій перейдуть на принцип «хмари насамперед» і не зможуть повною мірою реалізувати свої цифрові стратегії без використання хмарних архітектур та технологій. У тому ж звіті йдеться, що до 2025 року використання Low-Code та No-Code збільшиться майже втричі: розрізнені підходи до розробки програм остаточно застаріють, що сприятиме зростанню ринку хмарних LCNC-платформ.
Про те, яким буде майбутнє хмарної розробки ми також поцікавилися в українських експертів.
Костянтин Северенчук, директор технологічних рішень в ЕРАМ, вважає, що:
«Хмара вже давно стала універсальним середовищем для розробки. Всі сучасні тренди та метрики підтверджують цей вектор розвитку. Cloud технології є мейнстрімом. Основні гравці ринку успішно адаптували своє середовище для універсальної розробки – як для власних рішень, так і в контексті мультиклауду. Що стосується інструментарію, то практично будь-яка інтегрована система розробки (IDE) або фреймворк вже має вбудовані плагіни для забезпечення Cloud-універсальності. Наприклад, подивимося на хмарних провайдерів із точки зору застосування штучного інтелекту. GitHub Copilot, Amazon Q вже вбудовуються у фреймворк розробки, що допомагає пришвидшувати всі процеси, адже весь цикл розробки відбувається в одному місці. Не бачу жодних перепон для подальшої універсальності хмарних сервісів. Не так давно навіть з’явилась нова функція/роль, яка називається Cloud Platform Engineering, як додаткова компонента системної інженерії».
Анатолій Громов, Senior Azure DevOps із Center of Excellence у SoftServe, впевнений, що хмара може стати універсальним середовищем розробки за певних причин:
«Це станеться, коли ціна на утримання такого середовища буде приблизно відповідати ціні забезпечення команди розробників потужними робочими станціями, а зручність використання наблизиться до рівня звичної розробки без втрат у рівні безпеки. Важливим також є розвиток самих систем хмарної розробки з точки зору підключення і підтримання робочих сесій. На мою думку, можливо покращити стабільність інтерфейсу користувача таким чином, щоб незначні затримки інтернет-зв’язку не мали впливу на кінцевий досвід користувача».
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!