Blog

Internal Developer Platforms: Vad de är och varför du behöver en

APR 25, 2023

Mjukvaruutvecklare förväntas behärska hela pipelinen för mjukvaruleveranser – särskilt inom DevOps. Det innebär en risk för kognitiv överbelastning och minskad produktivitet.

Mario Di Francesco

Mario Di Francesco is a professor in software systems with the Department of Computer Science at Aalto University and a senior DevOps consultant at Eficode. He has more than 15 years of experience with network systems and software technologies, from wireless communications to mobile and distributed computing. He has also been teaching courses on cloud software and DevOps.

Framgångsrika företag löser detta genom att etablera Internal Developer Platforms – IDP:er, eller kort sagt plattformar. Gartner uppskattar faktiskt att 95 % av företagen till 2025 inte kommer att kunna skala sina DevOps-satsningar utan en Internal Developer Platform.

Därför är det bra att ha åtminstone en grundläggande förståelse för ämnet. Det är precis därför jag har skrivit det här blogginlägget.

Nedan besvarar jag följande frågor:

  1. Vad är en Internal Developer Platform?

  2. Hur är det att arbeta med en som utvecklare?

  3. Varför behöver du egentligen en?

Informationen bygger både på omfattande forskning inom relaterade områden och på insikter jag har fått genom att utvärdera några av våra kunders DevOps-kapacitet.

DevOps

DevOps är ett arbetssätt inom mjukvaruutveckling som förespråkar automatisering och integration mellan mjukvaruutveckling och drift. Grundidén är att främja en kultur av kunskapsdelning och bryta silorna mellan utvecklare och IT-administratörer. Tekniskt sett bygger DevOps på versionshantering, build pipelines och en Cloud Native-verktygskedja som använder mjukvarucontainrar.

Vad begreppet ”Internal Developer Platform” egentligen betyder

Trots att det används så ofta är begreppet Internal Developer Platform inte särskilt beskrivande. Låt oss därför ta ett steg tillbaka och förklara varje nyckelord – i omvänd ordning för tydlighetens skull – för att förstå vad det handlar om.

”Plattform”

I det här sammanhanget syftar ordet plattform både på en infrastruktur och en samling mjukvaruverktyg. Plattformens typiska funktioner berör olika delar av pipelinen för mjukvaruleveranser:

  • tillhandahålla resurser;

  • genomföra olika typer av tester;

  • driftsätta artefakter i en målmiljö.

Plattformens användargränssnitt är en utvecklarportal.

Alla delar av plattformen är tätt integrerade och bygger på gemensamma abstraktioner som är vanliga inom Cloud Native-mjukvara: containrar, deklarativ konfiguration och kontrollloopar.

”Utvecklare”

Utvecklarna är plattformens slutanvändare. Självservice är den viktigaste aspekten, eftersom utvecklarna:

  • fokuserar på att skapa värde genom att snabbt implementera nya funktioner, utan att vara beroende av att IT tillhandahåller resurser;

  • använder mallar för att snabbt skapa ett proof of concept eller en minimum viable product;

  • använder en dashboard för att få en samlad bild av olika datakällor, från resultatet av en build pipeline till hälsostatusen för en tjänst som körs.

”Intern”

Ordet betonar att plattformen är specifik för varje företag, ungefär som en skräddarsydd kostym.

Du kan helt enkelt inte köpa den som en färdig produkt – du behöver bygga och underhålla den. Den bygger på de processer, styrningsprinciper och tekniska lösningar som ditt företag har valt. Den beskriver också tydligt de så kallade gyllene vägarna – ”recepten” för hur man bygger saker, inklusive guider som hjälper nya utvecklare att snabbt komma i gång.

Ett mer avancerat sätt att uttrycka det är: En Internal Developer Platform är en satsning på att ge utvecklare rätt förutsättningar att skapa värde genom ett genomtänkt urval och en integration av mjukvaruverktyg som stödjer företagets interna arbetssätt.

Platform Engineering

Begreppen ”Internal Developer Platform” och ”Platform Engineering” används ofta tillsammans, men de är inte synonyma. Platform Engineering handlar om processen att etablera och driva en Internal Developer Platform, särskilt när det gäller kultur och påverkan på teamen. Det omfattar onboarding av utvecklare, att etablera ett plattformsteam och att säkerställa engagemang för plattformen – inte bara från utvecklarna utan från hela företaget. Internal Developer Platform syftar däremot oftare enbart på de tekniska aspekterna: den valda uppsättningen verktyg och hur de faktiskt integreras i plattformen.

Så är det att arbeta med en Internal Developer Platform: ett kort exempel

Vid det här laget bör det stå klart att plattformen handlar om utvecklarna. Men hur upplever de den i praktiken? Låt oss illustrera det genom att följa Amandas upplevelse.

Amanda har precis börjat arbeta på ett företag. Som en del av sin onboarding får hon tillgång till företagets Internal Developer Platform. När hon loggar in möts hon av en dashboard med kortfattade instruktioner för hur hon kommer i gång.

Hon börjar med att utforska mjukvarukatalogen, som visar:

  • vilka komponenter som finns tillgängliga på företaget;

  • komponenternas mognadsnivå (vissa är driftsatta i produktion, andra är proof of concepts);

  • hur de hänger ihop med varandra.

Därefter går hon till avsnittet med mjukvarumallar, som erbjuder ett guidebaserat gränssnitt för att snabbt skapa olika typer av projekt.

Amanda har tidigare erfarenhet av backendutveckling, så hon väljer en mall för att skapa en mikrotjänst i programmeringsspråket Python. Hon väljer ett namn på komponenten och klickar på en knapp för att skapa den. Efter några minuter får Amanda tillgång till ett nyskapat mjukvarurepository med en exempel-mikrotjänst.

Plattformen:

  1. hämtar källkoden;

  2. skapar en testinfrastruktur;

  3. bygger mjukvaran;

  4. kör enhetstester;

  5. driftsätter mikrotjänsten.

Amanda ser resultatet från build-pipelinen och tillgängligheten för den nya komponenten direkt i dashboarden.

Hon börjar sedan granska innehållet i mjukvarurepositoryt. Mikrotjänsten använder ramverket FastAPI för att skapa ett programmeringsgränssnitt. FastAPI är nytt för henne, men källkoden innehåller en länk till guider som finns tillgängliga i plattformens dashboard.

Amanda börjar läsa guiden och lyckas lägga till funktioner i exempel-mikrotjänsten redan innan hennes första arbetsvecka är slut. Guiderna är inte bara förklarande utan också engagerande, vilket gör henne nyfiken på att lära sig mer om hur företaget utvecklar mjukvara.

Plattformen hjälpte Amanda att känna sig både självständig och framgångsrik genom att förbättra både hennes kunskap och produktivitet. Efter flera månader använder hon fortfarande plattformens dashboard varje dag – och har till och med skapat nya mallar och guider.

Varför du behöver en Internal Developer Platform

Det står klart att en bättre Developer Experience är huvudmålet med en Internal Developer Platform. Men fördelarna är inte begränsade till utvecklarna.</i>

Gör medarbetarna nöjda

Medarbetarnas nöjdhet är kärnan i framgångsrika företag: den hjälper till att attrahera kompetent arbetskraft, minska personalomsättningen och öka produktiviteten.

En framgångsrik plattform är en välkomnande och användarvänlig miljö som ger sammanhang, stöd och möjlighet att utforska, starta eller engagera sig i mjukvaruprojekt. Den gör det också möjligt att experimentera tryggt utan att kompromissa med kvaliteten.

Gör tekniken enklare

På den tekniska sidan erbjuder plattformen ett noga utvalt urval av funktioner genom en omsorgsfullt integrerad verktygsuppsättning som täcker hela pipeline för mjukvaruleverans.

Det hjälper er att hantera verktygens komplexitet och arbetet med att underhålla flera olika mjukvaruprodukter. Det minskar också den kognitiva belastningen genom att erbjuda ett enhetligt och supportat utbud av tjänster. Ni kan alltså minska administrationen och låta utvecklarna fokusera på det som verkligen spelar roll: att skapa kundvärde.

Erbjud självservice

Plattformen samlar arkitektoniska och tekniska val på ett utvecklarvänligt sätt. Därför blir det enklare för utvecklare att använda beprövade metoder som gäller i hela företaget. Genom självservice främjar plattformen dessutom förtroende och gör det lättare för alla att följa styrande principer och compliance.

Behåll kontrollen

Plattformen motverkar också fragmentering och en mentalitet där var och en väljer sina egna verktyg. Det innebär att ni kan effektivisera åtkomstkontroll, säkerhetskontroller och övervakning – med minimal påverkan på utvecklarnas arbetsflöde.

Kort sagt optimerar en Internal Developer Platform processen för att snabbt leverera värde till kunderna. Det gör den genom att fokusera på Developer Experience och samtidigt säkerställa säkerhet och compliance.

Plattformen är grunden för hur arbetet bedrivs i företaget. Den följer era värderingar och er styrning, men är tillräckligt flexibel för att anpassas till dynamiska miljöer. Genom att överblicka pipelinen för mjukvaruleverans förenklar den tillhörande processer – samtidigt som den gör det möjligt att skala DevOps.

Sammanfattning

Vid det här laget bör du ha en tydligare bild av vad en Internal Developer Platform är, vad den gör och varför den behövs. Mitt mål var att ge dig en kort introduktion till ämnet och lyfta fram värdet den skapar för DevOps, framför allt när det gäller Developer Experience. Att etablera en framgångsrik plattform är dock inte enkelt. Det är en lång resa, men nu är precis rätt tid att börja.

  • DevOps
  • Cloud
  • CI/CD

Subscribe to our newsletter