Хмарні середовища розробки: Все, що вам потрібно знати

by Matt Stamp
Хмарні середовища розробки: Все, що вам потрібно знати thumbnail

Хмарні середовища розробки (CDEs) революціонізують розробку програмного забезпечення.

CDEs переносять ключові процеси розробки, такі як написання коду, виконання збірок, проведення тестувань та розгортання додатків у хмару, забезпечуючи гнучкість, ефективність та простоту для інженерів. Це дозволяє розробникам краще співпрацювати та швидше випускати програмне забезпечення вищої якості без перешкод з боку середовища.

Давайте дослідимо, що саме таке CDEs, переваги, варіанти, які варто оцінити, прості кроки для налаштування вашого першого хмарного розробницького середовища та поради для оптимізації використання на довготривалу перспективу.

Що таке хмарне середовище розробки?

Хмарне середовище розробки – це централізована платформа для співпраці команд розробників програмного забезпечення, створення, тестування та розгортання застосунків.

Оскільки значна частина організацій перейшла на переважно хмарні середовища розробки лише між 2020 та 2022 роками, ми вважаємо важливим, щоб у вас була вся необхідна інформація, на випадок, якщо ви також розглядаєте цей перехід.

гістограма, що порівнює організації, які використовують хмару та гібрид між 2020 та 2022 роками, показуючи, що більшість організацій використовують хмару і дуже небагато (7% у 2022 році) використовують локальні середовища

CDE об’єднує весь цикл розробки в єдиний інтегрований хмарний робочий простір, відходячи від розрізнених інструментів та залежностей серед розробників на різних пристроях. Основні компоненти, такі як інтегроване середовище розробки (IDE), рантайм, конфігурації інфраструктури, залежності, інструменти для співпраці, фреймворки для тестування та пайплайни, об’єднані разом і доступні через хмарні браузери.

Глосарій DreamHost

IDE

IDE (Integrated Development Environment) – це програмний додаток. Він надає багато засобів програмістам для розробки програмного забезпечення. IDE зазвичай включає, як мінімум, редактор вихідного коду, інструменти автоматизації збірки та зневаджувач.

Читати далі

У порівнянні з традиційними середовищами розробки, хмарні середовища розміщуються у хмарі та доступні через веб-браузер або додаток. Усі важкі обчислювальні процеси, такі як компіляція коду, запуск автоматичних тестів або створення контейнерів, відбуваються у хмарі. Розробники використовують свої локальні пристрої лише як тонкі клієнти для доступу до хмарного робочого простору, що знижує загальні витрати на апаратне забезпечення.

Хмарна платформа розробки також пропонує попередньо створені шаблони для швидкого розгортання середовищ розробки для конкретних стеків додатків або надає більше можливостей для розширених налаштувань за потреби. З цим ви можете мати узгоджені середовища між командами.

У багатьох аспектах CDE є наступним етапом еволюції розробки програмного забезпечення – одним, що міцно закріплений у хмарі. Це використовує основні можливості хмарних обчислень, одночасно дозволяючи контрольовану гнучкість локальних середовищ.

Давайте краще зрозуміємо, чим середовища CDE відрізняються від локальних середовищ і які переваги та обмеження має ця конфігурація.

Як хмарна розробка відрізняється від локальної?

Розробка хмарних додатків відрізняється від традиційних налаштувань, де код існує ізольовано на пристроях розробників.

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

Цей підхід вирішує багато проблем, з якими стикаються команди під час налаштування, доступу та синхронізації розробницьких середовищ між локаціями та пристроями.

 Локальна розробкаХмарна розробка
Розташування середовища розробкиРозробники мають вручну встановлювати необхідні компоненти, такі як редактори та бази даних на своїх локальних машинах. Це призводить до складних, фрагментованих інструментів на різних пристроях.Хмарні платформи забезпечують централізоване налаштування та хостинг середовища розробки, до якого інженери мають доступ віддалено через браузер.
Консистентність середовищаРеплікація середовищ між ноутбуками розробників є складною, що призводить до помилок “працює на моїй машині”.Стандартизовані середовища версіонуються разом з кодом на централізованій інфраструктурі.
Розподіл обчисленьЗбірки та тести виконуються локально, що сповільнює машини.Хмара виділяє обчислювальну потужність на вимогу, так що пристрої розробників не стають вузьким місцем продуктивності.
СпівпрацяКод знаходиться в ізольованих гілках локально до часу перегляду.Хмарні IDE дозволяють редагування, коментування та візуалізацію коду в реальному часі декількома користувачами.
Адаптація та доступКонфігурація нових локальних машин є складною та забирає багато часу. Обмежує доступ розробників.Розробники можуть миттєво увійти в попередньо визначені середовища через будь-який пристрій.

Отримуйте вміст безпосередньо у свою скриньку

Підпишіться зараз, щоб отримувати всі останні оновлення безпосередньо у свою скриньку.

Які переваги розробки в хмарі?

Тепер, коли ви розумієте основи хмарних розробницьких середовищ та як вони відрізняються від традиційних налаштувань, давайте розглянемо основні переваги CDE.

Покращена безпека

Ви мінімізуєте поверхні атак, консолідуючи розробку на регульованих хмарних платформах, таких як AWS або Azure.

Усі конфіденційні дані, інтелектуальна власність компанії та особисті дані залишаються захищеними, на відміну від ноутбуків розробників, які можуть загубитися або бути скомпрометованими.

Хмарні інфраструктури також забезпечують можливості безпеки, такі як шифрування, контроль доступу та комплекси відповідності, які є надто дорогими для самостійного впровадження індивідуальними інженерами.

Співпраця

Локально розроблений код знаходиться в ізольованих гілках та форках до часу перегляду. Хмарні IDE дозволяють редагування коду в режимі реального часу та коментування у стилі Google Docs, оскільки тепер середовище є спільним.

Прогрес команди можна візуалізувати прямо з самого початку, і будь-хто з необхідним доступом може бачити код навіть під час його розробки, залежно від налаштувань середовища.

Покращена продуктивність та адаптація

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

Розробники також витрачають багато часу на усунення проблем з середовищем, залежностями та конфігураціями, які не пов’язані з написанням коду. Опитування 2023 року показує, що понад 50% часу розробників йде на обслуговування, конфігурацію та оперативні завдання.

Проте, CDE обробляють ці складнощі централізовано, дозволяючи розробникам зосередитися на створенні продуктів, а не на боротьбі з середовищами. Вони оптимізують робочі процеси, розподіляючи інструменти в одному хмарному IDE. У поєднанні з шаблонними середовищами розробки, автоматизованим управлінням інфраструктурою та швидким виконанням тестів, це може серйозно підвищити продуктивність розробників.

Масштабованість

Виконання ресурсомістких процесів збірки та тестування локально сповільнить машини та обмежить можливість паралелізації.

Проте команди, які використовують CDE, можуть швидше нарощувати масштаби без необхідності закупівлі додаткового обладнання.

Створення нових хмарних середовищ розробки займає хвилини, що дозволяє швидше розширювати команди.

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

Уникає відхилень у конфігурації

На локальних налаштуваннях розробники повинні вручну встановлювати всі необхідні компоненти, такі як редактори, пакети мов, фреймворки та бази даних на своїх локальних машинах. Конфігурація цих локалізованих інструментальних засобів є складною і займає багато часу.

Компоненти також з часом фрагментуються на пристроях розробників. Це називається «дрейф конфігурації», який зазвичай призводить до страшних помилок «працює на моєму комп’ютері».

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

Хоча існує багато переваг, хмарні середовища розробки також мають недоліки.

Які недоліки використання CDE?

Застосування будь-якої нової технології приносить як прогрес, так і ризики. Ось кілька можливих недоліків використання CDE:

  • Складне початкове налаштування: Створення CDE потребує значної експертизи в галузі хмарних технологій та DevOps, а також складних інтеграцій з численними сервісами, такими як SSO, контроль безпеки, UI, інструменти співпраці тощо. Якщо у вас немає необхідних ресурсів, може бути відмінною ідеєю підвищити кваліфікацію або найняти нових людей перед впровадженням CDE.
  • Залежність від постачальника: Вибір керованих рішень CDE часто призводить до залежності від постачальника. А якщо вам потрібно буде мігрувати на інші платформи, це може бути проблематично.
  • Крутий крива навчання: Впровадження робочих процесів на базі хмари змушує команди вчитися новим концепціям, практикам та інструментам. Це може займати багато часу на початку.
  • Залежність від підключення: Розробники відключені, коли доступ до інтернету припиняється. Також, затримка відповіді значно вища у CDE, ніж у локальних середовищах, що негативно впливає на досвід користувача. Локальні середовища обходять ці питання.
  • Постійні накладні витрати: Хмарна інфраструктура, надійні CI/CD трубопроводи, можливості автоматизації та заходи безпеки – все це має пов’язані повторювані витрати на обслуговування, такі як вартість, оновлення, вирішення проблем тощо. Чим більше функцій пропонується, тим вище оперативне навантаження. Наприклад, AWS відомий тим, що є дуже дорогим.
Скріншот Twitter допису Метью Прайса, який говорить: «Тарифи AWS на пропускну здатність обурливі. Їх оптова вартість у AWS-East, ймовірно, менше ніж $200/Gbps/міс. Це еквівалентно націнці більше ніж 10,000%. #nevertrustamazon»

Як налаштувати ваше хмарне середовище розробки

Якщо ви переконані, що хмарні середовища розробки підходять для вашої організації, давайте розглянемо короткий огляд того, як налаштувати власне CDE.

Крок 1: Виберіть провайдера CDE

Існує багато хмарних розробницьких середовищ для оцінки, таких як:

  • Gitpod – Браузерна CDE, що інтегрується з GitHub кодовими репозиторіями
  • AWS Cloud9 – Повністю кероване хмарне IDE, що тісно пов’язане з сервісами AWS
  • Microsoft Visual Studio Online – Хмарна версія Visual Studio IDE, що інтегрується з Azure

Витратьте час, щоб порівняти опції за критеріями, такими як підтримка мов, співпраця, безпека, інтеграції, ціноутворення та навчальні ресурси. Зареєструйтеся для тестових акаунтів і налаштуйте розробницьке середовище, де це можливо. Також намагайтеся знайти рішення з підтримкою відкритої спільноти, щоб уникнути проблем, коли виникають труднощі.

Крок 2: Налаштування хмарного облікового запису

Як тільки ви оберете платформу, створіть обліковий запис у відповідному хмарному провайдері, якщо у вас його ще немає. Наприклад, Gitpod залежить від GitHub, тоді як рішення типу AWS Cloud9 вимагають наявності облікового запису AWS.

Під час первинного налаштування облікового запису хмари, перейдіть на панель керування, щоб знайти, де можна отримати доступ до різноманітних послуг обчислення, місця, Networking, та інших послуг, доступних через платформу. Витрачаючи час на це під час пробних періодів, ви допоможете собі зрозуміти, наскільки легко або важко буде впровадження в масштабах компанії.

Крок 3: Створіть свою першу віртуальну машину

Зі створеним обліковим записом налаштуйте початкове середовище розробки або “dev box” у вибраній платформі CDE. Більшість CDE пропонують попередньо налаштовані шаблони, які запускають віртуальні машини або контейнери для розробки за лічені хвилини, з усіма необхідними інструментами, такими як редактори коду та термінали.

Почніть з офіційних зображень, які постачальник CDE надає для популярних мов, таких як Node.js, Python або Java, якщо існують шаблонні конфігурації. Хоча це і важливо, ці підготовлені середовища дозволяють новим користувачам швидко зануритись в розробку в хмарі. Потім ви можете створити свої власні середовища, використовуючи це як базове зображення.

Крок 4: Налаштування безпеки та мережі

Перед тим, як дозволити широке використання командою, розгляньте визначення захисних перил та правил мережів для нового розгортання CDE. Врахуйте:

  • Вимога багатофакторної автентифікації для доступу до середовищ
  • Обмеження прав на створення/видалення хмарних ресурсів
  • Увімкнення зашифрованого сховища для чутливих артефактів
  • Ізоляція розробки команди в приватних хмарних мережах
  • Реєстрація дій користувачів та змін в інфраструктурі

На пізніших етапах може знадобитися впровадження управління секретами, сканування безпеки інфраструктури та більше у CDE-пайплайни для покращення безпеки спільних середовищ.

Крок 5: Встановіть ваші улюблені інструменти розробника

Тепер, коли базові середовища та змінні середовища налаштовані та захищені для використання командою, налаштуйте їх далі, встановлюючи додаткові інструменти розробки. Для налаштування середовища розробки деякі очевидні наступні кроки включали б встановлення редакторів коду, компіляторів, баз даних, веб-серверів та іншого програмного забезпечення для створення набору інструментів програмування.

Усі CDE дозволяють налаштувати інструментарій на вашому сервері. Використовуйте рідний менеджер пакетів на Linux для встановлення всіх інструментів. Для Windows завантажте інсталятори з інтернету безпосередньо на хмарний екземпляр.

На протязі процесу, не забудьте документувати всі виконані кроки, використані команди та налаштування інструментів, щоб у майбутньому легко відтворити середовища. Ви хочете, щоб ця документація була єдиним джерелом правди (SSOT) для ваших CDE.

Крок 6: Розробка, Тестування та Розгортання

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

Підвищте продуктивність команди, налаштувавши автоматичне контроль версій та автоматизовані збірки та тести при здійсненні комітів у код.

У міру дозрівання розробки в хмарі, регулярно удосконалюйте та оптимізуйте середовище, збалансувавши стандартизацію з кастомізацією. CDE мають стати природним кроком для ваших розробників, а не обмежувальним середовищем, до використання якого їх змушують.

Поради щодо використання хмарних середовищ розробки

Окрім початкової налаштування, ось п’ять порад для отримання додаткових переваг від хмарних середовищ розробки з часом.

Підключення до інших хмарних сервісів

Платформи CDE пропонують тісну інтеграцію з доповнюючими хмарними сервісами, що керуються тим самим постачальником. Наприклад, аутентифікація парою ключів AWS Cloud9 покращує безпеку інфраструктури Amazon EC2.

Дослідіть способи, як хмарні сервіси, такі як серверні бази даних, місце, обмін повідомленнями та API, можуть оптимізувати процеси розробки. Огляньте відповідні діаграми архітектури, які деталізують, як послуги перетинаються, а потім вибірково інтегруйте їх. У разі сумнівів, опитайте членів вашої команди розробників та запитайте, які інструменти вони хотіли би додати або видалити.

Використовуйте автоматизацію

Знайдіть способи застосування інфраструктури як код та конфігурації CDE наскільки це можливо. Використовуйте Dockerfiles, Terraform, Ansible та інші підходи для створення шаблонів середовищ та оптимізації процесу надання ресурсів для розробників, щоб вони могли працювати в рамках безпеки.

Чим раніше ви автоматизуєте конфігурації середовища, тим швидше ви зможете розгортати нові розробницькі середовища та створювати легко переносні середовища.

Слідкуйте за використанням

Модель змінних витрат хмарних обчислень може призвести до несподіваних витрат через неоптимізовану розробку. Постійно моніторуйте використання середовища за допомогою інструментів, таких як AWS Cost Explorer, ідентифікуючи втрати від неактивних ресурсів, зайвих дозволів або неправильних конфігурацій регіонів.

Інтегруйте видимість витрат на хмарні сервіси у наявні панелі керування, зосереджуючись на аномаліях витрат, як масштаби середовищ. Також встановіть суворі бюджети, які обмежують місячні витрати на інфраструктуру розробки без блокування продуктивності.

Переносите лише необхідні дані

При переході давно існуючих проектів до CDEs, оцініть, чи потрібна міграція до хмари для кешів, файлових репозиторіїв або локальних баз даних. Перевірте, чи можна задовольнити потреби розробки за допомогою символічних посилань на оригінальні місця розташування на власних серверах.

Передача даних може бути дорогою та часто стає причиною високих щомісячних платежів компаніям провайдерам хмарних послуг. Тож переконайтеся, що ви обираєте найважливіші дані.

Дотримуйтесь моделі спільної відповідальності

Всі великі хмарні провайдери дотримуються моделі спільної відповідальності, яка визначає розподіл відповідальності за захисні контролі між клієнтом та постачальником. Знайдіть час, щоб зрозуміти межі відповідальності за забезпечення безпеки різних рівнів середовища.

Наприклад, Amazon забезпечує захист нижчого рівня хмарної інфраструктури, але клієнти повинні відповідно налаштувати ідентифікацію, дозволи, шифрування та рівні мережевої безпеки. Аналізуйте, а потім дотримуйтеся вашої частини угоди про спільну відповідальність.

Розблокуйте кращий хостинг додатків з DreamHost

Отже, ви створили наступну велику річ за допомогою вашого нового гладенького CDE. Вітаємо! Але тепер вам потрібно десь розмістити ваш веб-додаток, щоб справжні користувачі могли отримати до нього доступ поза вашим середовищем розробки. Налаштування та управління вашими серверами хостингу – це мука, особливо на великій шкалі. Замість цього дозвольте спеціалістам з DreamHost взяти все це на себе!

Їх оптимізовані, керовані хостинг-послуги призначені для глобалізації веб-додатків. Ми говоримо про автоматичне масштабування для сплесків трафіку, гарантовану безперервну роботу на рівні 99.9%, та одним кліком тимчасовий сайт.

І краса в тому, що це ідеально поєднується з хмарними розробницькими процесами. Ви швидко розробляєте у хмарі, а DreamHost робить розгортання абсолютно простим.

Отже, якщо ви шукаєте перевірений дім для хостингу вашого веб-додатку, спробуйте DreamHost!

Отримуйте вміст безпосередньо у свою скриньку

Підпишіться зараз, щоб отримувати всі останні оновлення безпосередньо у свою скриньку.