M365Con 2027 – bezpłatna konferencja online · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Projektowanie wewnętrznych platform deweloperskich na Azure: budowa fundamentu

By ·

Witamy ponownie w towarzyszącym podcastowi blogu! W dzisiejszym szczegółowym omówieniu rozwijamy temat, który od dawna dominuje w dyskusjach o architekturze w branży technologicznej: wewnętrzne platformy deweloperskie, czyli IDP (Internal Developer Platforms). Jeśli słuchaliście naszego ostatniego odcinka, wiecie, że poruszyliśmy kwestię tego, jak obciążenie poznawcze po cichu zabija szybkość prac

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

Witamy ponownie w towarzyszącym podcastowi blogu! W dzisiejszym szczegółowym omówieniu rozwijamy temat, który od dawna dominuje w dyskusjach o architekturze w branży technologicznej: wewnętrzne platformy deweloperskie, czyli IDP (Internal Developer Platforms). Jeśli słuchaliście naszego ostatniego odcinka, wiecie, że poruszyliśmy kwestię tego, jak obciążenie poznawcze po cichu zabija szybkość pracy deweloperów. Dziś idziemy o krok dalej. Przyjrzymy się, jak zbudować solidną, skalowalną i bezpieczną platformę IDP w sposób natywny dla Microsoft Azure, wykorzystując nowoczesne paradygmaty chmurowe, strategie konteneryzacji oraz zasady infrastruktury jako kodu.

Nowoczesna organizacja inżynierska w przedsiębiorstwie stoi przed paradoksem. Dzięki chmurze dajemy deweloperom niespotykaną dotąd moc, a jednocześnie zasypujemy ich złożonością operacyjną. Spędzają więcej czasu na zmaganiach z topologiami sieci, konfiguracjami zarządzania tożsamością i dostępem oraz potokami wdrożeniowymi niż na pisaniu logiki biznesowej. Wewnętrzna platforma deweloperska rozwiązuje ten problem, działając jak wyselekcjonowana warstwa abstrakcji. Nie ogranicza deweloperów, lecz ich wzmacnia, udostępniając złote ścieżki, które szybko i bezpiecznie prowadzą do środowiska produkcyjnego. Przyjrzyjmy się, jak zaprojektować ten fundament na Azure.

Wprowadzenie do wewnętrznych platform deweloperskich na Azure

Zanim zanurzymy się w techniczne szczegóły usług Azure, ustalmy, czym właściwie jest IDP i dlaczego Azure jest szczególnie dobrze przygotowany do jej hostowania. IDP nie jest pojedynczym produktem, który można kupić z półki. To zestaw narzędzi, usług i przepływów pracy infrastruktury, połączonych w spójny portal deweloperski. Znajduje się między deweloperami a bazową infrastrukturą chmurową i przekłada ich wysokopoziomowe zamierzenia na bezpieczne, zgodne z wymogami i gotowe do produkcji zasoby chmurowe.

Azure oferuje rozbudowany ekosystem prymitywów klasy przedsiębiorstw. Jednak udostępnianie tych surowych prymitywów bezpośrednio deweloperom często prowadzi do dryfu konfiguracji, luk w zabezpieczeniach i osieroconych zasobów. Projektując IDP na Azure, inżynierowie platformy mogą opakować te natywne usługi w wyrazne, ustandaryzowane szablony. Oznacza to, że deweloper może zamówić w pełni skonfigurowane środowisko mikrousługi z dołączoną bazą danych i warstwą cache'owania, bez konieczności posiadania tytułu magistra z zakresu sieci Azure czy kontroli dostępu opartej na rolach (RBAC).

Kluczowe filary nowoczesnej platformy IDP

Projektując platformę, musisz oprzeć swoje decyzje na czterech filarach: samoobsłudze, złotych ścieżkach, abstrakcji i barierach ochronnych. Bez nich Twoja platforma IDP ryzykuje, że stanie się kolejnym systemem zgłoszeń lub nieudokumentowaną stroną wiki.

Samoobsługa bez narzutu operacyjnego

Samoobsługa to serce każdej platformy IDP. W tradycyjnym modelu, gdy deweloper potrzebuje nowego środowiska testowego lub instancji Cosmos DB, zakłada zgłoszenie w Jirze, czeka, aż zespół platformy je przejrzy, potem czeka, aż operacje go udostępnią, i ma nadzieję, że konfiguracja będzie zgodna z produkcją. Platforma IDP na Azure automatyzuje cały ten cykl. Dzięki scentralizowanemu portalowi deweloperzy mogą uruchamiać przepływy samoobsługowe, które udostępniają zasoby w ciągu kilku minut, znacznie skracając czas realizacji zmian.

Złote ścieżki i warstwy abstrakcji

Złote ścieżki to wyselekcjonowane, wspierane sposoby realizacji zadań w Twojej organizacji. Nie usuwają elastyczności, lecz tarcia. Ukrywając złożoność Azure za prostymi plikami konfiguracyjnymi, na przykład pojedynczym manifestem aplikacji, deweloperzy deklarują, co chcą wdrożyć, a platforma IDP zajmuje się tym, jak zostanie to wdrożone w Azure.

Wykorzystanie natywnych usług Azure do budowy infrastruktury

Budowa platformy IDP na Azure wymaga wyboru odpowiednich usług fundamentowych do obsługi obliczeń, przechowywania danych, sieci i tożsamości. Przyjrzyjmy się, jak można zmapować wymagania platformy na natywne usługi Azure.

Zarządzanie tożsamością i dostępem w Microsoft Entra ID

Bezpieczeństwo zaczyna się od tożsamości. Microsoft Entra ID (dawniej Azure Active Directory) stanowi kręgosłup bezpieczeństwa Twojej platformy IDP. Integrując portal platformy z Entra ID, możesz wymusić logowanie jednokrotne (SSO) i mapować grupy deweloperów na konkretne możliwości platformy. Dzięki tożsamościom zarządzanym platformy Azure (Azure Managed Identities) wdrożone aplikacje mogą bezpiecznie uzyskiwać dostęp do innych zasobów Azure, takich jak Azure Key Vault czy Azure SQL, bez wpisywania poświadczeń na stałe w plikach konfiguracyjnych lub repozytoriach.

Abstrakcje danych i magazynów

Aplikacje potrzebują danych, ale zespoły platformy nie powinny za każdym razem ręcznie tworzyć baz danych, gdy zespół rozpoczyna nowy projekt. Do udostępniania na żądanie zarządzanych usług, takich jak Azure Database for PostgreSQL, Azure Cosmos DB czy Azure Cache for Redis, możesz użyć Azure Service Operator for Kubernetes lub szablonów Azure Resource Manager (ARM) opakowanych w samoobsługowe przepływy pracy. Platforma IDP zapewnia, że te bazy danych są tworzone z szyfrowaniem danych w spoczynku, odpowiednimi regułami zapory oraz domyślnie włączonymi automatycznymi kopiami zapasowymi.

Strategie konteneryzacji i orkiestracji

Kontenery są lingua franca nowoczesnych aplikacji cloud-native. Standaryzacja sposobu pakowania i uruchamiania aplikacji jest kluczowa dla powodzenia platformy IDP.

Azure Kubernetes Service jako silnik obliczeniowy

W przypadku większości nowoczesnych przedsiębiorstw usługa Azure Kubernetes Service (AKS) pełni rolę głównego silnika obliczeniowego platformy IDP. AKS zapewnia skalowalność, przenośność i możliwości orkiestracji niezbędne do uruchamiania mikrousług na dużą skalę. Deweloperzy nie powinni jednak musieć pisać surowych manifestów YAML Kubernetes. Platforma IDP powinna ukrywać złożoność kontrolerów Ingress, zasad sieciowych i deklaracji trwałych woluminów (persistent volume claims) za abstrakcjami obciążeń na wysokim poziomie.

Rejestry kontenerów i bezpieczeństwo łańcucha dostaw

Azure Container Registry (ACR) bezproblemowo integruje się z AKS i stanowi krytyczny element strategii kontenerowej. Platforma IDP powinna automatyzować potok od zatwierdzenia kodu do zbudowania obrazu kontenera, wykorzystując narzędzia takie jak Microsoft Defender for Containers do skanowania obrazów pod kątem podatności, zanim w ogóle trafią do klastra. Osadzając ACR w przepływach pracy platformy, zapewniasz, że do środowisk produkcyjnych mogą być wdrażane wyłącznie zaufane, przeskanowane obrazy.

Zasady infrastruktury jako kodu w inżynierii platform

Infrastruktura jako kod (IaC) jest nienegocjowalna przy budowie platformy IDP. Każdy element infrastruktury zarządzany przez platformę musi być zdefiniowany, objęty kontrolą wersji i wdrażany za pomocą zautomatyzowanych potoków.

Wybór narzędzi IaC w ekosystemie Azure

Azure obsługuje szeroki wachlarz narzędzi IaC. Bicep to specyficzny dla domeny język Microsoftu do deklaratywnego wdrażania zasobów Azure, oferujący czystszą składnię niż tradycyjne szablony ARM oraz natywne wsparcie funkcji Azure. Alternatywnie Terraform (lub OpenTofu) jest szeroko stosowany w środowiskach wielochmurowych i przedsiębiorstwach. Niezależnie od wybranego narzędzia platforma IDP powinna ukrywać te skrypty przed deweloperem, uruchamiając je w tle po zatwierdzeniu żądania udostępnienia.

Zarządzanie stanem i modularna konstrukcja

Aby utrzymać platformę w dobrej kondycji, twórz bibliotekę wielokrotnego użytku modułów infrastruktury. Przykładowo utwórz standardowy moduł „web-api-module”, który łączy wdrożenie App Service lub AKS z powiązaną bazą danych i instancją monitoringu. Stan IaC przechowuj bezpiecznie na kontach Azure Storage z włączonym wersjonowaniem obiektów blob, dzięki czemu zespół inżynierii platform będzie miał wiarygodny ślad audytowy wszystkich zmian infrastruktury we wszystkich subskrypcjach.

Wbudowywanie zabezpieczeń i zgodności w platformę

Częstą obawą kierownictwa przy wdrażaniu samoobsługowych platform jest utrata kontroli nad bezpieczeństwem i zgodnością. Skuteczna platforma IDP odwraca tę narrację, przesuwając bezpieczeństwo na wcześniejsze etapy i wbudowując zabezpieczenia bezpośrednio w przepływy pracy platformy.

Azure Policy jako zautomatyzowany egzekutor

Azure Policy to Twój najlepszy sprzymierzeniec przy projektowaniu zabezpieczeń platformy. Zamiast ręcznie audytować zasoby, możesz użyć Azure Policy, aby automatycznie egzekwować standardy organizacji, takie jak ograniczenie tworzenia zasobów do określonych regionów Azure, wymaganie szyfrowania na wszystkich kontach magazynu czy wymuszanie określonych tagów sieciowych. Jeśli deweloper spróbuje udostępnić zasób naruszający te zasady, platforma IDP wychwyci to na etapie walidacji, dając natychmiastową informację zwrotną.

Zarządzanie sekretami i integracja z Key Vault

Zakodowane na stałe sekrety to uporczywa luka w zabezpieczeniach. Twoja platforma IDP powinna domyślnie wymuszać bezpieczne zarządzanie sekretami. Zintegruj Azure Key Vault z przepływami wdrożeniowymi, aby sekrety aplikacji, klucze API i ciągi połączeń były bezpiecznie wstrzykiwane w czasie działania, całkowicie ukryte przed deweloperami i repozytoriami kodu źródłowego.

Budowanie samoobsługowego portalu deweloperskiego

Wszystkie te podstawowe elementy – tożsamość, obliczenia, IaC i zabezpieczenia – muszą zostać połączone w jednym widoku: portalu deweloperskim. To interfejs użytkownika Twojej platformy IDP.

Adopcja Backstage w portalach opartych na Azure

Platformy open source, takie jak Backstage firmy Spotify, stały się de facto standardem budowy portali deweloperskich. Backstage pozwala utworzyć katalog oprogramowania, zarządzać szablonami (tzw. szablony oprogramowania) i integrować wtyczki. Możesz tworzyć niestandardowe wtyczki Backstage, które komunikują się bezpośrednio z interfejsami API platformy Azure, dzięki czemu deweloperzy mogą uruchamiać zasoby Azure, sprawdzać stan usług i śledzić potoki wdrożeniowe z jednego pulpitu.

Projektowanie intuicyjnego doświadczenia deweloperskiego

Projektując portal, traktuj deweloperów jak klientów. Doświadczenie użytkownika musi być bezproblemowe. Deweloper powinien wejść na portal, wybrać szablon „Mikrousługa z zapleczem SQL”, wypełnić prosty formularz z nazwą usługi i zespołem-właścicielem, a następnie kliknąć przycisk przesłania. W ciągu kilku minut platforma IDP powinna udostępnić infrastrukturę Azure, wygenerować repozytorium GitHub z kodem szablonowym, skonfigurować potok CI/CD i zarejestrować usługę w wewnętrznym katalogu.

Mierzenie sukcesu i kolejne kroki

Budowa platformy IDP nie jest projektem z ustaloną datą zakończenia; to ciągła droga produktowa. Gdy platforma zostanie uruchomiona, musisz mierzyć jej wpływ, aby uzasadnić inwestycję i stale poprawiać doświadczenie deweloperów.

Kluczowe wskaźniki do śledzenia

Skup się na wskaźnikach odzwierciedlających szybkość pracy deweloperów i stabilność platformy. Śledź czas do pierwszego „Hello, world” dla nowych deweloperów dołączających do firmy, częstotliwość wdrożeń, wskaźnik niepowodzeń zmian oraz średni czas przywracania działania (MTTR). Dodatkowo regularnie przeprowadzaj ankiety satysfakcji deweloperów, aby zrozumieć, gdzie wciąż występują punkty tarcia w przepływach pracy na platformie.

Dalsze kroki

Zacznij od małej skali. Nie próbuj od pierwszego dnia budować rozbudowanej platformy korporacyjnej. Wybierz jeden przypadek użycia – być może standaryzację wdrożeń kontenerów lub automatyzację udostępniania baz danych – i zbuduj wokół niego minimalną wartościową platformę (MVP). Zbieraj opinie od wczesnych zespołów adoptujących, iteruj nad swoimi złotymi ścieżkami i stopniowo rozszerzaj możliwości platformy w całej organizacji.

Projektując wewnętrzną platformę deweloperską natywnie w Azure, nie tylko automatyzujesz wdrożenia – budujesz silnik zrównoważonego rozwoju inżynierii. Dziękuję za lekturę i koniecznie posłuchaj odcinka podcastu, aby zgłębić ten temat w formie audio. Miłej architektury!

Microsoft Azure Azure Cosmos DB

Related articles

RSS