Platform Engineering 101: відхід від традиційних систем заявок в Azure
By Mirko Peters ·
Ласкаво просимо назад, слухачі та читачі, до чергового поглибленого розбору стрімко змінюваного світу хмарної архітектури, досвіду розробників і сучасного DevOps. Якщо ви послухали наш останній подкаст, то знаєте, що значну частину часу ми присвятили усуненню одного з найболючіших вузьких місць сучасної доставки програмного забезпечення: традиційної системи IT-заявок. Ви знаєте цю картину. Розробн
Automatically translated with AI from the original post. Read the English original
Ласкаво просимо назад, слухачі та читачі, до чергового поглибленого розбору стрімко змінюваного світу хмарної архітектури, досвіду розробників і сучасного DevOps. Якщо ви послухали наш останній подкаст, то знаєте, що значну частину часу ми присвятили усуненню одного з найболючіших вузьких місць сучасної доставки програмного забезпечення: традиційної системи IT-заявок. Ви знаєте цю картину. Розробникові потрібна нова база даних, середовище staging або просте оновлення DNS. Він створює заявку. Заявка висить у черзі. Її сортують, призначають, перепризначають і нарешті, через дні або навіть тижні, виконують ручні операції. Коли інфраструктура нарешті готова, спринт уже завершився, темп втрачено, і всі виснажені.
У цьому супровідному блозі ми детально розглянемо ключові концепції, які обговорювали в ефірі. Ми покажемо, як організації, що використовують Microsoft Azure, можуть вирватися з цього виснажливого ручного циклу, застосувавши перетворювальну дисципліну Platform Engineering і створивши надійні внутрішні платформи для розробників (IDP).
Вступ: вузьке місце традиційних заявок в Azure
Уявімо знайому картину. Ваша організація перенесла робочі навантаження в Microsoft Azure. Ви прийняли хмару, використовуєте Azure Kubernetes Service (AKS), Azure SQL, Cosmos DB та App Services. На папері ви сучасні. Але якщо уважно поглянути на робочий процес, видно, що розробники ставляться до Azure так само, як раніше ставилися до серверної на власній території: через стіну бюрократії та черги заявок.
Щоразу, коли команді потрібен ресурс, вона не може просто створити його сама. Захисні механізми впроваджені як перешкоди, а не як доріжки. Команда подає заявку центральній платформній команді або команді операцій. Це створює величезне когнітивне навантаження і повністю знецінює гнучкість, яку мала забезпечувати хмарна infrastructure. Azure пропонує неймовірну швидкість і програмне керування, але розробники часто відрізані від цих можливостей. Традиційна система заявок працює як податок на інновації. Кожен запит потребує втручання людини, що додає людські помилки, непорозуміння та болісні затримки. Нам варто перестати ставитися до розробників як до дітей, яким не можна довіряти інфраструктуру, і почати сприймати їх як компетентних творців, яким потрібні можливості самообслуговування, підкріплені автоматизованими запобіжниками.
Що таке Platform Engineering і чому це важливо?
Тож як це виправити? Тут на сцену виходить Platform Engineering. Останніми роками Platform Engineering став очевидною еволюцією DevOps. Якщо DevOps теоретично зруйнував стіну між розробкою та експлуатацією, то на практиці багато організацій просто перекинули весь операційний тягар на розробників. Від них раптом почали вимагати експертизи в Kubernetes, Terraform, мережевій безпеці та політиках Azure IAM, при цьому пишучи бізнес-логіку.
Platform Engineering визнає, що такий підхід нестійкий. Замість того щоб змушувати розробників ставати експертами з інфраструктури або чекати в черзі заявок, Platform Engineering розглядає досвід розробника як продукт. Виділена платформна команда створює внутрішню платформу для розробників (IDP), яка абстрагує базову складність Azure.
Чому це важливо? Бо когнітивне навантаження є тихим вбивцею продуктивності інженерів. Коли розробники витрачають 40 відсотків часу на боротьбу з конфігураціями інфраструктури, чеклістами відповідності та очікуванням погоджень, вони не створюють функції, які радують клієнтів. Platform Engineering важливий, бо повертає інженерним командам стан зосередженості. Він надає golden paths, тобто попередньо погоджені, високобезпечні та відповідні вимогам архітектури, які розробники можуть розгорнути одним кліком або командою.
Від ручного адміністрування до бачення внутрішніх платформ для розробників
Щоб справді вийти за межі ручного адміністрування в Azure, нам потрібно змінити мислення: від управління інфраструктурою до побудови платформ. Внутрішня платформа для розробників — це не просто один інструмент; це цілісний шар над вашою хмарною інфраструктурою Azure, який відбирає сервіси та інструменти, щоб доставляти програмне забезпечення без зайвого тертя.
Проблема ad-hoc скриптів і хаотичного провізіонінгу
Деякі організації розуміють, що заявки занадто повільні, тому видають розробникам роль Contributor на підписки Azure й дозволяють створювати що завгодно. Це протилежна крайність, і вона не менш згубна. Незабаром у вас з'являються некеровані ресурси, шалені рахунки за хмару, серйозні вразливості безпеки й відсутність стандартного способу щось моніторити чи оновлювати. Це повний безлад, справжній Дикий Захід.
Золота середина IDP
IDP знаходить ідеальний баланс. Він надає можливості самообслуговування і водночас вбудовує безпеку, відповідність вимогам, управління витратами та архітектурні стандарти безпосередньо в робочий процес. Розробники отримують бажану самостійність, а команди експлуатації та безпеки — необхідне управління й відповідність вимогам. Це сценарій, у якому виграють усі, і його забезпечує автоматизація.
Основні опори побудови платформи розробки на Azure
Коли ви будуєте свою внутрішню платформу розробника (Internal Developer Platform) у Microsoft Azure, потрібна міцна архітектурна основа. Розберемо основні опори, на яких тримається успішна платформа на Azure.
1. Infrastructure as Code (IaC) і каталоги модулів
Серцевиною будь-якої хмарної платформи є Infrastructure as Code. В екосистемі Azure це зазвичай Terraform, Bicep або шаблони Azure Resource Manager (ARM). Однак самого написання файлів Bicep недостатньо. Команді платформи потрібно створити курований каталог модульних, придатних до повторного використання й безпечних шаблонів. Наприклад, замість того щоб дозволяти розробнику з нуля писати конфігурацію бази даних, платформа надає модуль Azure SQL, який уже містить шифрування корпоративного рівня, правильну інтеграцію з мережею та попередньо налаштовані політики резервного копіювання. Розробнику достатньо вказати назву застосунку та рівень.
2. Політика як код за допомогою Azure Policy
Управління не може покладатися на те, що люди ставитимуть галочки. Воно має бути автоматизованим. Інтегруючи Azure Policy та Azure Blueprints у свою платформу, ви гарантуєте, що кожен ресурс, створений через IDP, автоматично відповідає регуляторним вимогам і внутрішнім корпоративним стандартам. Якщо розробник спробує створити обліковий запис зберігання без шифрування при передачі, платформа миттєво це помітить і відхилить запит ще до того, як він дійде до Azure.
3. Безшовна інтеграція CI/CD і GitOps
Ваш IDP не має існувати у вакуумі. Він має нативно інтегруватися з вашою системою контролю версій і конвеєрами розгортання. Незалежно від того, використовуєте ви GitHub Actions, Azure DevOps чи ArgoCD для GitOps, платформа має безшовно оркеструвати конвеєр від коміту коду до розгортання в Azure. Розробники мають змогу запускати або видаляти середовища безпосередньо з своїх pull request-ів.
4. Єдина спостережуваність і моніторинг
Ким не можна керувати, те не можна виміряти. Чудова платформа забезпечує спостережуваність одразу після розгортання, під'єднуючи застосунки безпосередньо до Azure Monitor, Application Insights і Azure Log Analytics. Коли розробник створює новий мікросервіс через платформу, логування, метрики та трасування налаштовуються автоматично, без ручної інструментації.
Прискорення термінів поставки та зменшення тертя для розробників
Поговоримо про відчутний ефект від впровадження цієї архітектури. Коли двотижневий процес роботи із заявками замінюється двохвилинним порталом самообслуговування, показники змінюються драматично.
Час виходу на ринок і частота розгортань
Швидкість розробки різко зростає. Функції, які раніше простоювали в середовищах staging, очікуючи ручного налаштування мережі, тепер можна розгорнути миттєво. Команди можуть створювати тимчасові середовища для кожного pull request, тестувати код в середовищі, що є точною копією продакшену, і видаляти його після злиття PR. Такої гнучкості в світі ручних заявок досягти неможливо.
Усунення вигорання розробників
Задоволеність розробників — критичний показник, який занадто багато організацій ігнорують. Постійна боротьба з бюрократією, очікування на інші команди та рутинні малоцінні завдання напряму ведуть до вигорання й високої плинності кадрів. Усуваючи тертя й автоматизуючи рутину, ви створюєте середовище, де інженери почуваються творчими, продуктивними й цінними. Щасливі розробники пишуть кращий код.
Найкращі практики впровадження platform engineering в організації
Побудова Internal Developer Platform на Azure звучить чудово, але як її реалізувати без масштабних збоїв? Ось кілька найкращих практик, які ми рекомендуємо нашим слухачам і клієнтам-консультантам.
Ставтеся до платформи як до продукту
Це головне правило платформної інженерії. Ваші внутрішні розробники — це ваші клієнти. Потрібно проводити дослідження користувачів, збирати відгуки, писати документацію та постійно вдосконалювати платформу відповідно до їхніх потреб. Якщо платформа незручна й складна у використанні, розробники знайдуть обхідні шляхи, і ваша ініціатива провалиться.
Починайте з мінімально життєздатної платформи (MVP)
Не намагайтеся одразу створити монолітну платформу, яка охоплює все. Почніть з одного сценарію, який вирішує серйозну проблему. Наприклад, почніть з автоматизації надання стандартних мікросервісів у Azure Kubernetes Service із вбудованим логуванням і базами даних. Коли це спрацює і команди почнуть цим користуватися, поступово розширюйте можливості платформи.
Велику увагу приділіть документації для розробників і досвіду роботи з порталом
Навіть найпотужніша автоматизація на бекенді марна, якщо розробники не знають, як нею користуватися. Інвестуйте в портал для розробників — інструменти на кшталт Backstage від Spotify стали надзвичайно популярними саме для цього. Поєднавши Backstage з інтеграціями Azure, ви даєте командам єдине місце, де можна переглядати документацію, досліджувати каталоги сервісів і запускати дії самообслуговування.
Висновок: розширення можливостей сучасних команд розробки на майбутнє
Традиційні системи заявок — це реліквії минулої епохи. Вони уповільнюють інновації, розчаровують інженерні кадри та не використовують справжню потужність і гнучкість хмарної інфраструктури, як-от Microsoft Azure. Прийнявши платформну інженерію та створивши продумані, безпечні й автоматизовані внутрішні платформи для розробників, організації можуть усунути вузькі місця, забезпечити міцне управління та розкрити повний потенціал своїх команд розробки.
Пам'ятайте: мета сучасної хмарної архітектури — не просто перенести сервери в чийсь чужий дата-центр, а дати вашим людям змогу створювати цінність швидше й безпечніше, ніж будь-коли. Дякуємо, що переглянули цю розширену версію допису. Обов'язково підпишіться на подкаст, поділіться статтею зі своїми командами платформи та DevOps, і до зустрічі наступного разу, коли ми продовжимо досліджувати передові рубежі хмарних технологій!