M365Con 2027 – бесплатная онлайн-конференция · 11–22 Jan 2027 · 120 sessions→ m365con.net

Блог · Mirko Peters

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

By ·

Добро пожаловать обратно в блог-компаньон к подкасту! В сегодняшнем детальном разборе мы развиваем тему, которая доминирует в архитектурных дискуссиях по всей технологической индустрии: внутренние платформы для разработчиков, или IDP (Internal Developer Platforms). Если вы слушали наш последний выпуск, то знаете, что мы говорили о том, как когнитивная нагрузка незаметно убивает скорость разработки

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 (Internal Developer Platforms). Если вы слушали наш последний выпуск, то знаете, что мы говорили о том, как когнитивная нагрузка незаметно убивает скорость разработки. Сегодня мы идём дальше. Разберём, как построить надёжную, масштабируемую и безопасную IDP непосредственно на Microsoft Azure, используя современные облачные подходы, стратегии контейнеризации и принципы инфраструктуры как кода.

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

Введение во внутренние платформы для разработчиков на Azure

Прежде чем погружаться в технические детали сервисов Azure, давайте определим, что такое IDP, и поймём, почему Azure особенно подходит для её размещения. IDP — это не один программный продукт, который можно купить готовым. Это продуктизированный набор внутренних инструментов, сервисов и инфраструктурных процессов, собранных в единый портал для разработчиков. Она находится между разработчиками и базовой облачной инфраструктурой и переводит высокоуровневые намерения разработчиков в безопасные, соответствующие требованиям и готовые к производству облачные ресурсы.

Azure предоставляет обширную экосистему корпоративных примитивов. Однако прямое открытие этих базовых примитивов разработчикам часто приводит к дрейфу конфигураций, уязвимостям безопасности и «осиротевшим» ресурсам. Создавая IDP на Azure, инженеры платформы могут обернуть нативные сервисы в продуманные стандартизированные шаблоны. Это означает, что разработчик может запросить полностью настроенную среду для микросервиса с подключённой базой данных и слоем кэширования, не имея степени магистра по сетям Azure или управлению доступом на основе ролей.

Ключевые опоры современной IDP

Проектируя платформу, нужно опираться на четыре ключевые опоры: самообслуживание, золотые пути, абстракцию и ограничительные рамки (guardrails). Без них ваша IDP рискует превратиться в очередную систему заявок или неописанную страницу вики.

Самообслуживание без операционных издержек

Самообслуживание — сердце любой IDP. В традиционной схеме, когда разработчику нужна новая среда для тестирования или экземпляр Cosmos DB, он создаёт заявку в Jira, ждёт, пока команда платформы её рассмотрит, затем ждёт, пока операционный отдел всё развернёт, и надеется, что конфигурация совпадёт с продуктивной. IDP на Azure автоматизирует весь этот жизненный цикл. Через централизованный портал разработчики запускают рабочие процессы самообслуживания, которые развёртывают ресурсы за считанные минуты, значительно сокращая время выполнения изменений.

Золотые пути и слои абстракции

«Золотые пути» — это продуманные, поддерживаемые способы решения задач внутри организации. Они не отнимают гибкости, а убирают трение. Скрывая сложность Azure за простыми конфигурационными файлами, например, единым манифестом приложения, разработчики описывают, что хотят развернуть, а IDP отвечает за то, как это будет развёрнуто в Azure.

Использование нативных сервисов Azure для инфраструктуры

Создание IDP на Azure начинается с выбора подходящих базовых сервисов для вычислений, хранения, сетей и идентификации. Давайте посмотрим, как сопоставить требования к платформе с нативными сервисами Azure.

Управление идентификацией и доступом с Microsoft Entra ID

Безопасность начинается с идентичности. Microsoft Entra ID (ранее Azure Active Directory) выступает основой безопасности вашей IDP. Интегрировав портал платформы с Entra ID, вы можете включить единый вход (Single Sign-On, SSO) и сопоставить группы разработчиков с конкретными возможностями платформы. С помощью управляемых удостоверений Azure (Azure Managed Identities) развернутые приложения могут безопасно обращаться к другим ресурсам 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 в процессы платформы, вы гарантируете, что в производственные среды могут быть развернуты только доверенные и проверенные образы.

Принципы Infrastructure-as-Code для платформенной инженерии

Infrastructure-as-Code (IaC) – обязательное условие при построении IDP. Вся инфраструктура, которой управляет платформа, должна быть описана в коде, находиться под контролем версий и развертываться через автоматизированные конвейеры.

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

Azure поддерживает широкий набор инструментов IaC. Bicep – это предметно-ориентированный язык Microsoft для декларативного развертывания ресурсов Azure, который предлагает более чистый синтаксис по сравнению с традиционными шаблонами ARM и нативную поддержку возможностей Azure. Кроме того, Terraform (или OpenTofu) широко используется в мультиоблачных и корпоративных средах. Какой бы инструмент вы ни выбрали, IDP должна скрывать эти скрипты от разработчика, выполняя их за кулисами после одобрения запроса на развертывание.

Управление состоянием и модульный дизайн

Чтобы платформа оставалась поддерживаемой, создайте библиотеку повторно используемых модулей инфраструктуры. Например, создайте стандартный модуль «web-api-module», который объединяет развертывание App Service или AKS с связанной базой данных и экземпляром мониторинга. Храните состояние IaC безопасно в учётных записях Azure Storage с включённым управлением версиями больших двоичных объектов (blob versioning), чтобы команда платформенной инженерии вела надёжный журнал аудита всех изменений инфраструктуры во всех подписках.

Встраивание защитных барьеров безопасности и соответствия требованиям

Распространённый страх руководства при переходе на платформы самообслуживания – потеря контроля над безопасностью и соответствием требованиям. Эффективная 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). Кроме того, регулярно проводите опросы удовлетворённости разработчиков, чтобы понимать, где в рабочих процессах платформы всё ещё возникают трудности.

Что делать дальше

Начинайте с малого. Не пытайтесь создать масштабную корпоративную платформу в первый день. Выберите один сценарий — например, стандартизацию развёртываний контейнеров или автоматизацию подготовки баз данных — и создайте вокруг него минимально жизнеспособную платформу. Собирайте обратную связь от первых команд-пользователей, итеративно улучшайте «золотые пути» и постепенно расширяйте возможности платформы на всю организацию.

Создавая свою внутреннюю платформу разработчика нативно на Azure, вы не просто автоматизируете развёртывания — вы строите основу для устойчивого роста инженерной команды. Спасибо за чтение, и обязательно послушайте эпизод подкаста для более глубокого обсуждения этой темы в аудиоформате. Удачной архитектуры!

Entities in this article

Microsoft Azure Cognitive load Microsoft Entra ID Azure Key Vault Azure Policy Container Azure Cosmos DB Internal developer platform Kubernetes Caching

Related articles

RSS