Dela via


Ge utvecklare självbetjäning med skyddsräcken

Självbetjäning med skyddsräcken är principen om att ge utvecklingsteam möjlighet att fatta egna beslut inom en uppsättning väldefinierade parametrar, eller skyddsräcken, som upprättas och godkänns av viktiga intressenter. Intressenter kan inkludera säkerhet, åtgärder, arkitekturteam i hela organisationen.

Tanken med självbetjäning med skyddsräcken är att utvecklingsteamen kan behålla önskad grad av autonomi för att självständigt fatta utvecklingsbeslut, medan automatisering och policy hjälper intressenter att säkerställa att säkerhet, efterlevnad, drift, standarder och kostnader hanteras korrekt. För att aktivera den här automatiseringen krävs samarbete över teamlinjer så att utvecklare, operatörer och specialister kan göra mer utan att offra den styrning som behövs. I kombination med förbättrad identifiering och återanvändning inom organisationens definierade skyddsräcken kan utvecklare fokusera på att leverera affärsvärde så snabbt som möjligt.

[Vi säger till utvecklare,] oroa dig inte för hur allt fungerar, bara växla dem på eller av, fyll i det, sätta en sträng i vad du behöver göra och det är i princip självbetjäning i det avseendet där de har en readme-fil och de har indata, utdata och de kan lägga in vad de vill. - Daniel, Molntekniker, Fortune 500 Media Company

Målet med att tillhandahålla en självbetjäningsupplevelse för dina asfalterade vägar är att minska utvecklarnas arbete och samtidigt ge insyn i utvecklingsteam, drift och hantering. Tanken är att du skapar en upplevelse för en viss uppgift som har en minimal inlärningskurva, delvis tack vare dess underliggande automatiserings- och dataaggregeringsfunktioner. Utöver aktiviteter som infrastrukturetablering kan dessa funktioner ge åtkomst till viktiga funktioner för observerbarhet, principer, incidenthantering med mera. Idén omfattar identifiering och delning av interna API:er, SDK:er samt delade verktyg och tjänster. De här upplevelserna minskar kostnaderna så att utvecklingsteamen kan fokusera på att få saker gjorda.

Den tid det tar att komma igång med ett projekt eller en uppgift är en annan motiverande faktor för självbetjäningsupplevelser. En analogi som ofta används för en intern utvecklarplattform är att den ger liknande funktioner som digitala butiker från företag till företag. Digitala butiker är utformade för att hjälpa sina kunder självbetjäning. De kan hantera mer dataflöde än traditionella butiksfronter eftersom de tillhandahåller sätt att upptäcka och uppfylla objekt som är intressanta utan att behöva prata med någon. Med den här analogi är utvecklare kunden och den interna utvecklarplattformen ger liknande självbetjäningsupplevelser. Precis som en återförsäljare, operatörer, plattformstekniker och andra roller konfigurerar du sedan en katalog med objekt som utvecklare kan begära som är utformade för att hantera organisationens skyddsräcken.

Du kan till exempel tänka på en utvecklare som begär åtkomst till ett nytt verktyg som om de gjorde en digital butiksbeställning. Precis som i en order vill utvecklaren, när begäran har skickats, kunna hålla reda på förloppet och veta när den är klar. I bakgrunden ska begäran automatiskt dirigeras till rätt uppfyllandeprovider för att uppfylla behovet. Du kan betrakta ett av dina CI/CD-system (kontinuerlig integrering och leverans) som en uppfyllande provider, ett GitOps-verktyg eller en normativ programplattform som en andra och ett verktyg för arbetsflödesautomatisering för manuella processer som en tredje. I samtliga fall kan utvecklaren självbetjäna objekt från en väldefinierad katalog på samma sätt.

Mer information om hur du implementerar dessa begrepp finns i Tillämpa programvarutekniksystem och Utforma en självbetjäningsgrund för utvecklare.

Använd allt som kodmönster

Att använda infrastruktur som kod (IaC) via pipelines för kontinuerlig leverans (CD) och GitOps-verktyg är en viktig del av att aktivera självbetjäning. Med dessa kan du använda Bicep-, Terraform-, Helm-diagram och andra verktyg för att skapa och förstöra molnresurser på begäran. Eftersom konfigurationen av molninfrastrukturen hanteras precis som kod i en källkodslagringsplats kan du använda alla fördelar med en Git-lagringsplats som säkerhet och granskning.

Plattformstekniker kan dra nytta av IaC när de etablerar gemensam infrastruktur och verktyg, men det är inte den enda fördelen med en IaC-metod. Du kan anpassa mönstret "som kod" för andra scenarier, inklusive säkerhet som kod och princip som kod (via verktyg som Azure Policy och Open Policy Agent). Med den här tekniken skickas en konfigurationsfil, vanligtvis YAML eller JSON, till lagringsplatsen. Då utlöses ett arbetsflöde som bearbetar filen. Dessa filer kan vara en applagringsplats som dependabot.yml eller CODEOWNERS, eller så kan de underhållas på en separat central lagringsplats. Du kan till och med utöka detta till dina egna scenarier för att verkligen göra allt som kod (EaC) till verklighet.

Utvecklare kan referera till var och en av dessa EaC-mallar med en central katalog som driver dina självbetjäningsupplevelser och uppmuntrar bästa praxis som standard.

Läs mer om allt som kodmönster.

Skapa starträtta mallar & upprätta förblir rätt styrning

Vi kommer att skapa moduler för våra [utvecklare]... Så i stället för att behöva skriva eller oroa sig för någon av serverdelen själva, behöver de bara oroa sig för sin programkod. - Daniel, Molntekniker, Fortune 500 Media Company

Inom programvaruutveckling strävar vi efter inkapsling, modularitet och komposterbarhet vid utformning av program. Du bör använda samma tankesätt för plattformsutveckling genom mallning. Du kan till exempel skapa och använda en uppsättning centralt skyddade, återanvändbara IaC-mallar som byggstenar för infrastruktur.

Dessa kan kombineras till en skräddarsydd programmall som refererar till dessa och annat allt som kod (EaC) byggstenar och utökas till andra aktiviteter som att skapa en källkodslagringsplats, seeding-exempelkod eller att tillhandahålla konfigurations- och exempelkod för rekommenderade observerbarhetsverktyg. Dessa IaC-, EaC- och programmallar kan sedan lagras eller refereras från en central, skyddad plats, till exempel en lagringsplats, katalogen i Azure Deployment Environments (ADE) eller Azure Container Registry (ACR) för molnbaserat.

När du börjar rätt mallar kombineras med automatiserad styrning, genomsökning och principkonfiguration, kan de hjälpa utvecklare att hålla sig direkt från dag ett.

Bild av plattformstekniken börjar till höger och har rätt mallöversikt.

Starta rätt mallar

Programmallar kan användas för att starta dina definierade banade sökvägar för flera viktiga beslut och åtgärder som utvecklare tar under projektets gång. Dessa starträtta mallar bör upprätta säkra, reglerade utvecklingsmetoder och göra det möjligt för utvecklare att komma igång snabbt genom att aktivera automatisering som ger åtkomst till de verktyg de behöver, konfigurerar CI/CD-pipelines, etablerar infrastruktur- och programstacken och konfigurerar en lagringsplats komplett med källkod för pannplåt som innehåller nödvändiga SDK:er eller referenser till API:er.

Genom att låta dessa programmallar referera till andra centraliserade mallar (till exempel IaC-mallar) kan var och en av dessa enskilda byggstenar bli egna starträtta mallar för att effektivisera användningen i befintliga program. Dessa mallar är centrala för att aktivera självbetjäning eftersom de inte bara definierar utdata, utan även tillgängliga alternativ som utvecklare väljer bland.

Håll dig till rätt styrning

Mallar bör dock göra mer än att bara starta en utveckling. De bör också upprätta den kontroll och styrning genom princip- och säkerhetsgenomsökning som krävs för att hålla dig kvar under projektets livscykel. Som ett annat exempel kan mallar konfigurera regler för grenskydd som förhindrar obehöriga sammanslagningar till produktion. Eftersom mallar samlar in metodtips och vanliga konfigurationer är de en av de viktigaste teknikerna för att optimera kostnader för verktyg, leverantörer och team.

Få rätt kampanjer

När ditt förtroende för dina banade vägar ökar kan du slutligen använda de underliggande enskilda byggstenarna som du har monterat i dina programmallar för att flytta befintliga program till en asfalterad väg. Eftersom dina interna kunder redan ser värdet för dina pilotstyrda banade sökvägar kan du köra en intern get right-kampanj för att skapa en dubbelriktad dialogruta med andra programteam. Utvecklare kan lära sig hur de migrerar sina program medan plattformsutvecklingsteamet samtidigt lär sig mer om hur du kan förbättra plattformen för dem.

Läs mer om att starta rätt mallar med bibehållen styrning.

Diagram din egen resa

Med tanke på den bredd av upplevelser som dina självbetjäningsfunktioner kan omfatta är det ett viktigt fokus för dina investeringsinsatser och planera och prioritera så att din interna utvecklarplattform levererar värde stegvis. Varje organisations resa med att skapa sin interna utvecklarplattform skiljer sig åt, och genom att följa ett produkttänk hjälper det dig att rikta in dig på de mest kritiska platser som behöver självbetjäningsupplevelser först.

Läs mer om att kartlägga en plattformsteknikresa.