Skip to main content
  • Contact us
  • Search

    Den ultimata guiden till platform engineering

    Håll dig konkurrenskraftig: anamma platform engineering

    plattformsteknik-hand-eficod-illustration

    "De flesta företag kommer att misslyckas med att skala upp DevOps-initiativ om man inte använder sig av delade självbetjäningsplattformar."

    Gartner, 2022 Research Roundup för DevOps

    För att kunna använda de bästa DevOps-metoderna för ditt företag måste du använda en plattform som uppmuntrar till en utmärkt Developer Experience (DX). Utan detta kan dina DevOps-initiativ misslyckas, vilket resulterar i bristande produktivitet. Fokusera på att attrahera och behålla de bästa utvecklarna genom att undvika tidskrävande arbete med programvaruutveckling.

    Med den ökande populariteten för mikrotjänstarkitektur och Kubernetes har mjukvarupraxis blivit alltmer komplex. Platform engineering framstår som en värdefull metod för att förenkla utvecklingen och skapa en gynnsam miljö för innovation och glädje. Det gör det möjligt för organisationer att fokusera på mjukvaruutveckling samtidigt som utvecklarna får det nödvändiga kognitiva utrymmet.

    Del 1

    Vad är platform engineering?

    Platform engineering är en uppsättning verktyg och metoder kring utvecklingsverktygskedjor som gör det enklare för en utvecklare att skapa bra programvara. Det skapar en intern utvecklingsplattform (IDP), som hjälper till att stödja team inom molnbaserade företag och omfattar plattformens design, implementering och operativa aspekter under hela tjänstens livscykel. Det har nyligen blivit mycket populärt på grund av den växande efterfrågan på förbättrade metoder för utvecklare och drift.

    platform engineering kan erbjuda "gyllene stigar" eller "asfalterade vägar" som utvecklare snabbt kan ta till sig om de hanteras på rätt sätt. Termerna används ofta om vartannat, men i grund och botten handlar det om samma behov - att plattformar ska erbjuda ett enklare sätt för utvecklare att bygga, leverera och köra sin programvara. Plattformen tillhandahåller automatisering och olika abstraktionsnivåer för att stödja mjukvaruutvecklingsprocessen i enlighet med ett företags styrning.

    gyllene vägen för utvecklare - eficode-illustration

    Vad folk säger om platform engineering

    Alla pratar om platform engineering, och det finns etablerade åsikter om det.

    Evan Bottcher säger: "En digital plattform är en grund av självbetjänings-API:er, verktyg, tjänster, kunskap och support som arrangeras som en övertygande intern produkt. Autonoma leveransteam för digitala plattformar kan använda plattformen för att leverera produktfunktioner i högre takt och med minskad samordning."

    Förstå internal developer platforms (IDP)

    En IDP är ett extra lager som förenklar verksamheten och gör det möjligt för utvecklare att hjälpa sig själva med befintlig teknik och befintliga verktyg. IDP:er kan i allmänhet definieras med hjälp av tre nyckelord.

    Internal: Denna term understryker att plattformen är unik för varje företag och inte kan köpas som en färdig produkt. Den är skräddarsydd efter företagets specifika behov och processer, inklusive dess regler och föredragna verktyg. Plattformen vägleder utvecklare och förser dem med bästa praxis och resurser för att underlätta deras arbete och hjälpa dem att komma igång enkelt.

    Developer: Denna term understryker att utvecklare är de primära användarna av plattformen. Självbetjäning är avgörande här, eftersom utvecklarna får möjlighet att skapa värde genom att snabbt implementera nya funktioner utan att behöva förlita sig på IT-team för resursförsörjning. Mallar är viktiga för att utvecklare snabbt ska kunna skapa prov- eller basversioner av produkter.

    Platform: I det här sammanhanget avser "plattform" den infrastruktur och samling av programvaruverktyg som tillhandahålls. Plattformen omfattar olika funktioner som är relaterade till pipelinen för programvaruleverans, t.ex. resurstilldelning, olika typer av programvarutestning och distribution av artefakter till målmiljöer. Plattformen innehåller en användarvänlig utvecklarportal som bygger på delade abstraktioner i molnbaserad programvara, som containrar, deklarativ konfiguration och kontrollloopar.

    Läs bloggen "Internal developer platforms: Vad de är och varför du behöver en" för att lära dig mer.

    Läs blogg
    grupp-presentation-foto-eficode

    Platform engineering kontra DevOps

    Vissa säger "DevOps är dött, länge leve platform engineering!", men de två metoderna kompletterar faktiskt varandra. Platform engineering utnyttjar DevOps-metoder samtidigt som den kognitiva belastningen minskas, med målet att möjliggöra självbetjäning för utvecklare.

    Applikationsutveckling blir alltmer komplex i takt med att DevOps fortsätter att expandera, och utvecklare måste lära sig nya digitala plattformsverktyg, hantera infrastruktur och prioritera operativa uppgifter samtidigt som de kodar för att utveckla nya funktioner. Dessa krav minskar produktiviteten, ökar utbrändheten och leder till utmattning på jobbet.

    Platform engineers är avgörande för att förenkla standardprocesser inom DevOps

    Föreställ dig ett företag som skapar webbapplikationer med en konsekvent struktur med en databas, en backend som tillhandahåller RESTful API:er och en webbaserad frontend. Trots att moderna programverktyg och mallar har införts är utvecklingsprocessen fortfarande i hög grad beroende av manuella insatser. DevOps-ingenjörer ansvarar för att skapa Docker-filer, skriva Terraform-skript, sätta upp projektspecifika build pipelines och hantera miljöuppdateringar.

    De samarbetar med utvecklare för att tillgodose deras krav samtidigt som de hanterar övervakning, varningar och uppfyller SLA:er (Service Level Agreements). Men att enbart förlita sig på DevOps-teamet för dessa kritiska uppgifter skapar en flaskhals, vilket leder till ökade ledtider för utvecklare och betydande stress för DevOps-ingenjörerna.

    Platform engineers förenklar detta genom att använda en IDP för att automatisera uppgifter, med början i självbetjäning. Utvecklare behöver inte konfigurera Git-arkiv manuellt, eftersom användare snabbt kan begära att en IDP skapar användargrupper och automatiskt integrerar rätt CI/CD-mall.

    Platform engineering ersätter inte DevOps-metoder - utan bygger vidare på dem

    Den erbjuder team ett enkelt sätt att starta projekt genom standardiserade mönster. Dessa mönster byggs in i en IDP med självbetjäningsfunktioner. Teamen börjar tillföra värde omedelbart i stället för att ägna veckor åt projektinställningar och problemlösning.

    Självbetjäning gör det möjligt för utvecklare att vara självständiga men ändå kompatibla utan att bli överbelastade. På så sätt kan plattformsingenjörerna fokusera på mer betydande arkitektoniska utmaningar, förbättra befintliga funktioner och anpassa systemet till förändrade behov.

    plattformsteknik ökar DevOps - rocket-illustration-eficode

    Platform engineering kontra teknik för webbplatsens tillförlitlighet

    Google var pionjärer inom Site Reliability Engineering (SRE), som fokuserar på att driva och förbättra programvaruapplikationer i stor skala. Trots att de låter likadana skiljer sig platform engineering och site reliability engineering åt. SRE handlar mest om drift: att köra en tjänst och se till att den är kontinuerligt tillgänglig och uppdaterad. SRE tillhandahåller dock också en modell för tjänstehantering, som också kan tillämpas på IDP:er. Det tillvägagångssätt som diskuteras i boken "Site Reliability Engineering - How Google Runs Production Systems" är särskilt giltigt i detta sammanhang.

    Tillförlitlighet i platform engineering

    En mjukvaruapplikation kan inte ha ett högre servicenivåavtal (SLA) än vad de lägre lagren i stacken erbjuder. För att en app ska kunna ha en tillgänglighetsgaranti på 99,9% måste alla dess infrastrukturkomponenter erbjuda samma sak. SLA:er är viktiga mellan ett plattformsteam och de utvecklingsteam som använder plattformen. Det utgör ett löfte om övergripande SLA:er och ger därmed utvecklingsteamen en förväntad nivå av tillförlitlighet.

    Ett servicenivåmål (SLO) riktar in sig på en servicenivå som mäts med en servicenivåindikator (SLI). Att välja rätt SLO är utmanande men avgörande för plattformsteamets prestationsmätning och affärsframgång. Det hjälper plattformsteamen att balansera innovation och tillförlitlighet med hjälp av en felbudget och marginalen mellan SLI och SLO. Därför bör SLO:er och felbudgetar också publiceras för att skapa förväntningar hos intressenterna.

    Plattformsteam och incidenthantering

    Plattformsteamen är avgörande för tillförlitligheten hos de program som körs på deras plattform och infrastruktur. De måste också ta ansvar för problem med delar som tillhör plattformsteamet under avbrott eller problem.

    Interaktion mellan team

    SRE-teamen har ett nära samarbete med utvecklingsteamen, och deras interaktion förändras i takt med att applikationen utvecklas. Ett SRE-team kan vara en blandning av enabling- och operations-team. Det ger coachning i att skala upp och bygga tillförlitliga tjänster upp till en viss punkt. SRE-teamet bör ta fullt ansvar för tillförlitligheten hos en eller flera digitala plattformstjänster, vilket skiljer sig från ett plattformsteam som förväntas leverera självbetjäningsgränssnitt som utvecklarteamen kan använda. Plattformsteamet behöver ett produkttänk och en nära feedback-loop med utvecklingsteamen för att bygga rätt saker.

    pussel SRE plattform teknik-illustration-eficode

    Del 2

    Varför du behöver platform engineering i ditt företag

    Mjukvaruutveckling fortsätter att vinna mark i dagens affärslandskap, oavsett sektor. Företag måste prioritera att investera i en väl utformad IDP för att uppnå högre produktivitet, effektivitet och motivation.

    Här är en lista över hur en IDP kan hjälpa ditt företag:

    Accelerera "time to value"

    Det handlar inte bara om att snabbt kunna driftsätta programvara, utan om den bredare effekt som en ny programvarulösning har på användarupplevelsen och företagets tillväxt. En robust plattform fungerar som en katalysator och kan skydda utvecklarna från de invecklade detaljerna i infrastrukturhanteringen - vilket gör att de kan fokusera på att skapa de funktioner och egenskaper som är viktigast för användarna och verksamheten.

    Öka kostnadseffektiviteten

    En enhetlig plattform fungerar som en katalysator för strategisk ekonomisk förvaltning. Att centralisera infrastruktur och verktyg via en plattform ökar kostnadstransparensen och ger serviceägarna mer inflytande. Med denna insyn kan teamen tryggt mäta och balansera sina utgifter och anpassa dem sömlöst till de intäkter och det affärsvärde som de ger. Denna konvergens mellan kostnadsmedvetenhet och affärsdrivet beslutsfattande främjar en kultur där IT-investeringar fokuserar på värdeskapande precis som de gör med kostnadsbegränsning.

    Förbättra utvecklarnas upplevelse och attrahera nya talanger

    Att attrahera och behålla talangfulla utvecklare är nyckeln till alla programvarudrivna organisationer. Genom att investera i plattformar för att förenhetliga och effektivisera programvaruleveransen lägger en organisation ut tydliga, säkra spår för sina utvecklare att tävla på. En plattform ger en välkomnande miljö för att starta projekt och trygghet för att experimentera. Tack vare en robust teknisk stack kan plattformsteamet göra det möjligt för utvecklare att producera meningsfullt arbete utan friktion.

    Säkerställ compliance och säkerhet

    Eftersom det digitala landskapet är så sårbart som det är, är skärpt säkerhet och integritet inte längre bara alternativ, det är en nödvändighet. Skyddsmekanismer som automatiserade verifieringskedjor, policy som kod, säkrad självbetjäning och konsekventa miljökonfigurationer kan integreras i din plattform. En framgångsrik plattform integrerar efterlevnad och säkerhet i arbetsflödet på ett sömlöst sätt. På så sätt kan utvecklarna fokusera på innovation utan att behöva tänka på säkerhet och regler.

    Kolla in podcastavsnittet "Platform engineering done right" om kapaciteten hos en IDP i en portugisisk bank, Millenium BCP.

    Lyssna på podcast-avsnitt
    planering arbete post-it-anteckningar-board-eficode

    Utmaningen med kognitiv belastning inom platform engineering

    Ingenjörsteamen måste ofta hantera komplexa uppgifter som belastar deras kognitiva förmåga. De kan effektivt hantera detta problem genom att dagligen använda sig av en IDP. En IDP gör det möjligt för ingenjörsteamen att effektivisera processerna och koncentrera sig på de viktigaste uppgifterna.

    En viktig fördel med IDP:er är anpassning. IDP:er säkerställer konsekventa metoder för olika team och system. Följaktligen spelar de en viktig roll för att minska den kognitiva belastningen och främja enhetlighet i utvecklarnas upplevelser. Ett företags säkerhetsrutiner kan t.ex. standardiseras och automatiseras av plattformsteamet, vilket bidrar till att frigöra viktiga kognitiva resurser för andra ändamål. Genom att följa dessa åtgärder kan ditt företag skapa en blomstrande kultur kring IDP:er som bygger på delade processer som maximerar teamets övergripande produktivitet.

    Del 3

    Skapa rätt IDP för dina team

    IDP:er erbjuder självbetjäning för utvecklare, vilket gör att de kan fokusera på sitt viktigaste arbete. Många företag känner till fördelarna med att använda IDP:er, men det är en utmaning att hitta rätt kompetens och strategi för att bygga en övertygande plattform.

    Hur man kommer igång med platform engineering

    Det finns många faktorer att ta hänsyn till. Tekniska team måste samarbeta med intressenter i organisationen för att få det stöd för den digitala plattformen och de resurser som krävs för projektet. Att få hjälp av ledningen är avgörande, eftersom det krävs betydande resurser för att bygga en IDP på egen hand och det handlar inte bara om tekniska utmaningar.

    Detta åtagande kan bli kostsamt, särskilt för större organisationer. Här är några steg som en CTO kan ta för att komma igång:

    1) Få ledningens stöd och låt dem ta ansvar för den övergripande visionen

    2) Etablera ett team och låt dem definiera sin stadga och sitt uppdrag

    3) Upptäck möjligheter som ger ett bra värde för applikationsutvecklingsteam

    4) Fastställ mått för att mäta framgång

    5) Prioritera, fokusera och leverera (programvara och dokument)

    6) Fånga upp feedback och resultat

    7) Kommunicera prestationer och utmaningar till sponsorer och intressenter

    8) Se över teamets stadgar (uppdrag)

    9) Iterera från steg 3

    Läs mer om varje steg i vår bloggserie "Om jag var en CTO skulle jag närma mig platform engineering så här." (eller hoppa direkt till del två: Etablera en organisation för platform engineering).

    Hör hur TV2, en dansk nationell TV-station och streamingplattform, kom igång med platform engineering
    .

    Se detta föredrag om internal developer platforms
    steg-på väg upp -illustration-eficode

    Tips: Öka användningen med ett namn

    Att namnge din IDP och göra den till en produkt hjälper dina team att känna sig mer engagerade och bekväma med att bygga plattformen. Det är en bra idé att hålla isär plattformsnamnet och plattformsteamets namn, som ska representera teamets identitet och etos.

    Bygg inte på antaganden - experimentera och förbättra

    Att falla i kaninhålet och bygga på grundläggande lager är vanligt. Innan vi välkomnar vårt första team till plattformen vill vi att allt ska vara på plats. Vi vill ju att utvecklarna ska få en bra upplevelse, så vi måste "ha det färdigt" så att de kan köra sina tjänster.

    Men saker och ting är aldrig klara när det gäller programvara. Redan från början måste vi arbeta med stegvisa förbättringar med faktiska utvecklare så tidigt som möjligt. Annars bygger vi på antaganden, och de tenderar att svika oss. När allt kommer omkring har vi inte bevisat att vi har rätt att spela som ett plattformsteam.

    Kanske kommer detta anti-mönster från ordet "plattform". Vi tror att den ska stödja hela programvaruleveransen, säkerheten, kvaliteten, övervakningen och driften på förhand. Det är okej att tänka på den större bilden, men börja i liten skala och bygg den tunnaste livskraftiga plattformen iterativt (ett koncept från boken Team Topologies). Så ta reda på det minsta möjliga användningsfallet som ger värde för utvecklare och bygg just det. Mät resultatet och lär dig vad du ska bygga härnäst.

    Om du är rädd för att gå i produktion (vilket vi alla är) och bara behöver göra lite mer arbete, motstå denna uppmaning och kontakta dina mest öppna kollegor som vill att du ska lyckas och erbjuda sin hjälp för att testa plattformen.

    Om du vill lära dig mer om utmaningarna och fallgroparna med Platform Engineering kan du kolla in föredraget "Platform Engineering is Hard, and We are Doing it Wrong" på DevOpsDays Denmark 2023.

    experimentera och förbättra-feedback loop-teamwork-illustration-eficode

    Tips: Dokumentera alltid din utveckling

    Identifiera specifika funktioner och prioritera att uppfylla de minimala kraven på utvecklarnivå. Börja med att dokumentera utvecklingen, eftersom det kommer att visa sig vara viktigt i framtiden när du hanterar komplexa API:er.

    Dokumentera din IDP

    Börja med att skapa en dokumentationsplan och förutse vad som är viktigt baserat på utvecklarnas behov, beroende på de utmaningar de står inför för närvarande. Om du inte gör det kommer du sannolikt att ställas inför de problem som anges nedan:

    • Utvecklare kommer att behöva hjälp med att komma igång med att använda din plattform och dess tjänster.
    • Du kommer att behöva förklara hur vissa koncept och idéer fungerar upprepade gånger.
    • Utvecklare kommer att påpeka att de försökte följa din dokumentation men misslyckades med ett av stegen eftersom de inte hade rätt version av specifik programvara installerad.
    • Utvecklare kommer att vända sig till dig för felsökning när de stöter på hinder i stället för att hänvisa till dokumentationen.
    • Du kommer hela tiden att hänvisa samma personer till samma dokumentation, med små resultat varje gång.

    Målet är att ge en tydlig översikt över dina användare och hur de kan dra nytta av den. Spara den detaljerade tekniska dokumentationen till senare. Utvecklare letar efter plattformar som är lätta att förstå och använda. Genom att ta hänsyn till deras behov och tillhandahålla bra dokumentation kan du locka fler utvecklare att använda din plattform.

    Läs vårt blogginlägg om bättre dokumentation för en bättre upplevelse för platform engineers om du vill ha mer information.

    Läs blogg om bättre dokumentation
    två personer som arbetar på en skärm-teach-approve-check-helpeficode

    Tips: Introducera din plattform för nya användare

    Överväg att skapa en "Kom igång-guide", som är det perfekta tillfället att sätta förväntningar och ge användarna en tydlig översikt över plattformens kärnfunktioner och fördelar.

    Guiden ska vara kortfattad och innehålla grunderna i vad din plattform erbjuder. Fokusera på att få användarna att bli entusiastiska över din plattform snarare än att tynga ner dem med för många detaljer. Guiden är till hjälp för utvecklare som är nya på din plattform, eftersom den ger en lättillgänglig introduktion till din produkt.

    Att välja verktyg för platform engineering

    Backstage? Crossplane? Argo CD? GitLab? Låt oss spola tillbaka lite här. Varje organisation kommer att behöva olika verktyg som fungerar för dem.

    Teknik och verktyg är avgörande för att en plattform ska kunna leverera värde till sina användare. Vissa val måste göras tidigt, medan andra kan göras längs vägen. Vilken infrastruktur plattformen ska köras på bör naturligtvis också bestämmas i ett tidigt skede. Ska den byggas på en molnplattform, on-prem eller en hybrid?

    Precis som med alla andra kritiska beslut bör det fattas med rätt intressenter i åtanke. Det är därför du bör involvera shared services (ekonomi, upphandling, säkerhet etc.) när du fattar beslut.

    Här är några saker att komma ihåg:

    • Undvik snäva kopplingar: Överväg att använda programvara och verktyg med öppen källkod som erbjuder ett brett utbud av tredjepartsintegrationer i stället för en lösning som passar alla. På så sätt undviker du att bli låst till en viss leverantör (eller teknik) i framtiden.
    • Acceptera att saker och ting kommer att förändras: Oavsett vilket beslut du fattar kommer du sannolikt att vilja migrera inom 2-3 år.

    Andra verktygsval är enklare och bör göras först när du är redo att ta dem i bruk. Undvik att i förväg göra åtaganden för verktyg som du inte planerar att använda inom den närmaste framtiden. Eftersom verktyg och teknik förändras snabbt bör du följa Lean-metoden och vänta med att göra åtaganden till sista ansvarsfulla ögonblicket (som beskrivs i boken Lean Software Development).

    Det är också värt att fundera över hur många innovationstokens du har råd att lägga på nya verktyg. Plattformsteam är inte undantagna från att utsättas för kognitiv överbelastning. Hur tråkigt det än låter är det ibland bättre att börja med verktyg som man redan har erfarenhet av och tillgång till och sedan gradvis undersöka om de fortfarande är lämpliga för ändamålet.

    kugghjul-hand-illustration-eficode

    Del 4

    Mätning av framgång med en plattformsstrategi

    De flesta alternativ för att utvärdera programvaruutveckling fokuserar på lokal produktivitet, kvalitet och konsekvens i leveransprocessen. När det gäller DevOps finns det väletablerade mätvärden tack vare DORA-programmet (DevOps Research Assessment):

    • Frekvens för driftsättning
    • Ledtid för förändringar
    • Genomsnittlig tid för återhämtning
    • Felprocent för förändringar
    • Tillförlitlighet

    Dessa mått gör det möjligt för oss att fånga effekterna av DevOps-kulturen och -metoderna i kvantitativa termer relaterade till IT-prestanda och -kvalitet. På senare tid har uppmärksamheten flyttats mot att utvärdera hur utvecklare känner för och värdesätter sitt arbete genom att använda ett DevX-centrerat tillvägagångssätt för att mäta framgång.

    Mätning av utvecklarnas upplevelse (DevEx)

    Att mäta DevEx är dock en skrämmande uppgift, eftersom själva konceptet är mycket brett. Det är bra att börja med ett ramverk som identifierar de tre kärndimensionerna i DevEx: feedbackloopar, kognitiv belastning och flödestillstånd. Dessa dimensioner understryker att DevEx inte bara är en teknisk fråga - verktyg eller arbetsflöden - utan också i första hand handlar om utvecklarnas uppfattningar.

    Utvecklare är trots allt människor och det finns inget kvantitativt mått som på ett korrekt sätt kan fånga DevEx. Därför är det viktigt att samla in kvalitativ feedback från utvecklare genom enkäter. Den här typen av feedback beskriver bland annat den upplevda komplexiteten och tillfredsställelsen med att distribuera kod och använda en plattform. Ett exempel:

    • Lättanvända verktyg hjälper utvecklare att effektivisera utveckling och driftsättning snabbt och utan krångel.
    • Självbetjäningsmöjligheter stöder utvecklarens oberoende och kontroll.
    • Högkvalitativ dokumentation gör det möjligt för utvecklare att navigera i komplexa infrastrukturer.
    • Plattformen gör det möjligt att samla in olika mätvärden relaterade till DevEx.
    • Den snabba installationen av en utvecklingsmiljö främjar produktivitet och kreativitet när det gäller att förverkliga minimalt genomförbara produkter.

    I slutändan är platform engineering en insats som går utöver att förbättra produktiviteten och leda till snabbare innovation. Genom att förbättra DevEx gör en plattform i slutändan utvecklare lyckligare, vilket förbättrar kvarhållande, talangförvärv och framgång i att förverkliga affärsmål.

    Titta på Nicole Forsgrens föredrag "Varför till och med DevOps gör våra dagar bättre" för mer information.

    Se Nicole Forsgrens föreläsning
    två utvecklare arbetar-smile-eficode

    Låt oss diskutera hur ditt företag kan dra nytta av platform engineering

    Tillbaka till början