M365Con 2027 – безкоштовна онлайн-конференція · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Архітектура внутрішніх платформ для розробників на Azure: побудова фундаменту

By ·

Ласкаво просимо назад до блогу-супутника подкасту! У сьогоднішньому детальному розборі ми розвиваємо тему, яка домінує в архітектурних дискусіях у всій ІТ-індустрії: внутрішні платформи для розробників, або IDP. Якщо ви слухали наш останній епізод, то знаєте, що ми торкнулися того, як когнітивне навантаження непомітно вбиває швидкість розробників. Сьогодні йдемо далі. Розглянемо, як побудувати над

Automatically translated with AI from the original post. Read the English original

▶ BLOGArchitecting InternalDeveloper Platforms on…M365.FM
Titelbild: Architecting Internal Developer Platforms on Azure: Building the Foundation

Ласкаво просимо назад до блогу-супутника подкасту! У сьогоднішньому детальному розборі ми розвиваємо тему, яка домінує в архітектурних дискусіях у всій ІТ-індустрії: внутрішні платформи для розробників, або IDP. Якщо ви слухали наш останній епізод, то знаєте, що ми торкнулися того, як когнітивне навантаження непомітно вбиває швидкість розробників. Сьогодні йдемо далі. Розглянемо, як побудувати надійну, масштабовану й безпечну IDP нативно на Microsoft Azure, використовуючи сучасні хмарні підходи, стратегії контейнеризації та принципи інфраструктури як коду.

Сучасна інженерна організація стикається з парадоксом. Ми даємо розробникам небачені раніше можливості завдяки хмарі, але водночас занурюємо їх в операційну складність. Вони витрачають більше часу на налаштування мережевих топологій, конфігурацій управління ідентифікацією та доступом і конвеєрів розгортання, ніж на написання бізнес-логіки. Внутрішня платформа для розробників вирішує це, виконуючи роль відібраного рівня абстракції. Вона не обмежує розробників, а навпаки, дає їм можливості, пропонуючи «золоті шляхи», які швидко й безпечно ведуть до продакшену. Давайте розглянемо, як побудувати цей фундамент на Azure.

Вступ до внутрішніх платформ для розробників на Azure

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

Azure пропонує широку екосистему примітивів корпоративного рівня. Проте, якщо відкрити ці базові примітиви безпосередньо розробникам, це часто призводить до дрейфу конфігурацій, вразливостей безпеки та «осиротілих» ресурсів. Створюючи IDP на Azure, інженери платформи можуть обгорнути ці нативні сервіси в перевірені, стандартизовані шаблони. Це означає, що розробник може запросити повністю налаштоване середовище мікросервісу з під'єднаною базою даних і шаром кешування, не маючи диплома магістра з мережевих рішень Azure чи керування доступом на основі ролей.

Основні стовпи сучасної IDP

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

Самообслуговування без операційних накладних витрат

Самообслуговування — серце будь-якої IDP. У традиційному підході, коли розробнику потрібне нове середовище staging або екземпляр Cosmos DB, він створює заявку в Jira, чекає, поки команда платформи її розгляне, чекає, поки операційна команда все розгорне, і сподівається, що конфігурація відповідає продакшену. IDP на Azure автоматизує весь цей життєвий цикл. Через централізований портал розробники можуть запускати робочі процеси самообслуговування, які розгортають ресурси за хвилини, суттєво скорочуючи час від ідеї до впровадження змін.

Золоті шляхи та шари абстракції

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

Використання нативних сервісів Azure для інфраструктури

Побудова IDP на Azure означає вибір правильних базових сервісів для обчислень, зберігання, мережі та ідентифікації. Розгляньмо, як зіставити вимоги до платформи з нативними сервісами Azure.

Управління ідентифікацією та доступом за допомогою Microsoft Entra ID

Безпека починається з ідентичності. Microsoft Entra ID (раніше Azure Active Directory) є основою безпеки вашої IDP. Інтегрувавши портал платформи з Entra ID, ви можете застосувати єдиний вхід (SSO) і зіставити групи розробників із конкретними можливостями платформи. Використовуючи керовані ідентичності Azure, розгорнуті застосунки можуть безпечно звертатися до інших ресурсів Azure, наприклад Azure Key Vault чи Azure SQL, без жорсткого вбудовування облікових даних у конфігураційні файли чи репозиторії.

Абстракції для даних і сховищ

Застосункам потрібні дані, але командам платформи не варто щоразу вручну розгортати бази даних, коли команда починає новий проєкт. Ви можете використовувати Azure Service Operator for Kubernetes або шаблони Azure Resource Manager (ARM), обгорнуті у самообслуговувані робочі процеси, щоб надавати керовані служби на вимогу, як-от Azure Database for PostgreSQL, Azure Cosmos DB або Azure Cache for Redis. IDP гарантує, що ці бази даних налаштовуються із шифруванням у стані спокою, належними правилами брандмауера та автоматичним резервним копіюванням, увімкненим за замовчуванням.

Стратегії контейнеризації та оркестрації

Контейнери є спільною мовою сучасних хмарних застосунків. Стандартизувати те, як застосунки пакуються і запускаються, є важливим для успішної IDP.

Azure Kubernetes Service як обчислювальний движок

Для більшості сучасних підприємств Azure Kubernetes Service (AKS) є основним обчислювальним движком IDP. AKS забезпечує масштабованість, переносимість і можливості оркестрації, необхідні для запуску мікросервісів у великих масштабах. Втім, розробникам не варто писати сирі маніфести YAML для Kubernetes. Ваша IDP має приховувати складність контролерів Ingress, мережевих політик і запитів на постійні томи за高рівневими абстракціями робочих навантажень.

Реєстри контейнерів і безпека ланцюга постачання

Azure Container Registry (ACR) безшовно інтегрується з AKS і є критично важливою частиною вашої стратегії контейнерів. Ваша IDP має автоматизувати конвеєр від коміту коду до збирання образу контейнера, використовуючи такі інструменти, як Microsoft Defender for Containers, для сканування образів на вразливості до того, як вони потраплять до кластера. Вбудовуючи ACR у робочі процеси платформи, ви гарантуєте, що до продуктивних середовищ можна розгорнути лише довірені, перевірені образи.

Принципи інфраструктури як коду для інженерії платформ

Інфраструктура як код (IaC) є обов’язковою, коли ви створюєте IDP. Кожен елемент інфраструктури, яким керує ваша платформа, має бути описаний, контрольований версіями та розгорнутий через автоматизовані конвеєри.

Вибір інструментів IaC в екосистемі Azure

Azure підтримує широкий набір інструментів IaC. Bicep є доменно-орієнтованою мовою Microsoft для декларативного розгортання ресурсів Azure; вона має чистіший синтаксис, ніж традиційні шаблони ARM, і нативну підтримку функцій Azure. Альтернативно, Terraform (або OpenTofu) широко використовується в мультихмарних і корпоративних середовищах. Який би інструмент ви не обрали, ваша IDP має абстрагувати ці скрипти від розробника, виконуючи їх у фоновому режимі, коли запит на надання ресурсів схвалено.

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

Щоб платформа залишалася зручною в підтримці, створіть бібліотеку повторно використовуваних модулів інфраструктури. Наприклад, створіть стандартний модуль «web-api-module», який поєднує розгортання App Service або AKS із пов’язаною базою даних і екземпляром моніторингу. Зберігайте стан IaC безпечно в облікових записах Azure Storage з увімкненим версіонуванням blob, щоб команда інженерії платформи мала надійний журнал аудиту всіх змін інфраструктури в усіх підписках.

Впровадження захисних механізмів безпеки та відповідності

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

Azure Policy як автоматичний засіб примусового виконання

Azure Policy є вашим найкращим другом під час проєктування захисних механізмів платформи. Замість ручного аудиту ресурсів ви можете використовувати Azure Policy, щоб автоматично забезпечувати виконання організаційних стандартів, наприклад обмеження створення ресурсів певними регіонами Azure, вимоги шифрування для всіх облікових записів сховища або обов’язкові мережеві теги. Якщо розробник намагається надати ресурс, що порушує ці політики, IDP виявляє це на етапі перевірки і одразу надає зворотний зв’язок.

Керування секретами та інтеграція з Key Vault

Жорстко закодовані секрети є хронічною вразливістю безпеки. Ваша IDP має забезпечувати безпечне управління секретами за замовчуванням. Інтегруйте Azure Key Vault у робочі процеси розгортання, щоб секрети застосунків, ключі API та рядки підключення безпечно передавалися під час виконання, повністю приховані від розробників і репозиторіїв вихідного коду.

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

Усі ці базові елементи — ідентичність, обчислювальні ресурси, IaC та безпека — мають бути зведені в єдину точку доступу: портал для розробників. Це користувацький інтерфейс вашої IDP.

Використання Backstage для порталів на основі Azure

Платформи з відкритим кодом, як-от Backstage від Spotify, стали де-факто стандартом для створення порталів для розробників. Backstage дає змогу створити каталог програмного забезпечення, керувати шаблонами (так званими software templates) і підключати плагіни. Можна розробити власні плагіни Backstage, які безпосередньо взаємодіють з API Azure, тож розробники зможуть розгортати ресурси Azure, переглядати стан сервісів і відстежувати конвеєри розгортання з однієї панелі.

Проєктування інтуїтивно зрозумілого досвіду розробника

Проєктуючи портал, ставтеся до розробників як до клієнтів. Взаємодія має бути максимально безперешкодною. Розробник має змогти відкрити портал, обрати шаблон «Microservice with SQL Backend», заповнити просту форму з назвою сервісу та командою-власником і натиснути «Надіслати». За лічені хвилини IDP має розгорнути інфраструктуру Azure, створити репозиторій GitHub зі стартовим кодом, налаштувати конвеєр CI/CD і зареєструвати сервіс у внутрішньому каталозі.

Вимірювання успіху та наступні кроки

Побудова IDP — це не проєкт із фіксованою датою завершення, а безперервний продуктовий шлях. Щойно платформа запрацює, потрібно вимірювати її вплив, щоб обґрунтувати інвестиції та постійно покращувати досвід розробників.

Ключові метрики для відстеження

Зосередьтеся на метриках, які відображають швидкість розробки та стабільність платформи. Відстежуйте час до першого «Hello, world» для нових розробників у компанії, частоту розгортань, частку невдалих змін (change failure rate) і середній час відновлення (MTTR). Крім того, регулярно проводьте опитування задоволеності розробників, щоб розуміти, де в робочих процесах платформи ще лишаються перешкоди.

Куди рухатися далі

Починайте з малого. Не намагайтеся побудувати масивну корпоративну платформу з першого дня. Оберіть один сценарій, наприклад стандартизацію розгортання контейнерів або автоматизацію підготовки баз даних, і створіть навколо нього мінімально життєздатну платформу. Збирайте відгуки від ранніх команд-користувачів, ітеративно покращуйте свої golden paths і поступово розширюйте можливості платформи на всю організацію.

Проєктуючи Internal Developer Platform нативно на Azure, ви не просто автоматизуєте розгортання, а створюєте рушій для сталого інженерного зростання. Дякую, що читаєте, і обов'язково послухайте епізод подкасту, де ця тема розглядається глибше в аудіоформаті. Успішної архітектури!

Microsoft Azure Azure Cosmos DB

Related articles

RSS