Definiera problemutrymmet
När du går mot att definiera din interna utvecklarplattform är det viktigt att definiera den tunnaste fungerande plattformen (TVP) först. Det här är en variant av idén om en MVP (Minimum Viable Product) i den klassiska produkthanteringen.
I Planera och prioritera kan du lära dig mer om att definiera (eller förbättra) din TVP. Men innan vi kommer dit kan det här diagrammet hjälpa dig att lära dig hur du kan utvecklas med tiden. Tänk på att organisationens främsta problem kan göra att du avviker från det som beskrivs här på grund av dina befintliga investeringar eller organisationens behov. Kritiskt behöver du inte gå vidare till nästa steg om inte din organisation behöver det.
Om du börjar från början representerar detta en vanlig utveckling. I ett tidigt skede fokuserar du på att identifiera nödvändiga funktioner, anpassa gap-analysen av krympade produkter och skapa minimala antal verktyg eller plattformsfunktioner. Sedan, när du skalar, börjar du förmodligen fokusera på återanvändning och vägleda människor nedåt i fördefinierade asfalterade vägar med återanvändbara tillgångar. Slutligen går du mot en konsumentliknande "digital butik"-modell för att göra det enklare att skapa och underhålla program. Du bör följa ett produkttänk hela vägen, så vi rekommenderar inte att du hoppar till slutet och din specifika resa varierar. De här slutstegen liknar mest krympomsluten "produkt" i traditionell mening, men det här är ett mål, inte en startpunkt.
Med tanke på hur stort det här avsnittet är rekommenderar vi att du delar upp hur du pratar om plattformsteknik i fyra ämnesområden. Genom att kategorisera ditt tänkande på det här sättet kan du förenkla hur du upprättar och kommunicerar en plan för dina investeringar över tid. Dessa områden är:
- Tekniksystem: En kuraterad blandning av DevOps-paket som GitHub och Azure DevOps och andra utvecklarverktyg och -tjänster. Utöver viktiga DevOps-verktyg och -tjänster som CI/CD eller pakethantering innehåller det här området även funktioner som används direkt under kodningsprocessen som molnbaserade kodningsmiljöer, kodskannrar och liter och AI-assistenter som GitHub Copilot.
- Programplattform: Ett kuraterat urval av tjänster (till exempel IaaS, PaaS och observerbarhet) som riktar sig till varje "appstacken" (programklass, appmodell, språk) som en organisation vill använda för att leverera affärsvärde. Detta inkluderar en blandning av appstackens specifika tjänster tillsammans med vanliga tjänster som används i hela. Ett exempel på en programplattform kan vara Azure Container Apps, Cosmos DB för lagring, Azure Key Vault för hemligheter, för identitets- och rollbaserad åtkomstkontroll, Azure Policy för efterlevnad och granskning, observerbarhet via Grafana och en relaterad nätverkstopologi.
- Programmallar: En uppsättning väldefinierade, organisationsdefinierade snabbstartsmallar som kapslar in start höger och håller rätt vägledning för en viss programplattform, språk och uppsättning tekniska system. De kan referera till andra centraliserade mallar och tillhandahålla startkod, API- och SDK-referenser, CI/CD-pipelines, verktygskonfiguration med mera.
- Självbetjäningsfunktioner för utvecklare: Det här är limmet för ditt plattformstekniska arbete. Det är en kombination av API:er, orkestrerare, en katalog, mallar och användarupplevelser som utformats för att minska utvecklarnas arbete och göra det möjligt för utvecklingsteam att självbetjäna och vara mer självständiga, samtidigt som de följer val och vägledning/styrning från de föregående tre områdena.