Skip to main content

Programvaruproffs är ökända för att hitta på coola namn för saker som bygger på sunt förnuft. ”Plattformsteknik” är ett aktuellt exempel, där etablerade principer kombineras med innovationer inom molnbaserade ramverk.

I grunden handlar plattformsteknik om att förena programvaruutvecklingen genom att införa en konsekvent, hanterad verktygsuppsättning, vilket lägger grunden för ökad produktivitet i teamen. Mer mogna branscher har redan känt till detta i flera decennier.

Vad är plattformsteknik?

Plattformsteknik är arbetet med att utforma, bygga och hantera den grundläggande programvaruinfrastrukturen och de system som applikationer och tjänster använder. Det omfattar hantering av fysisk och molnbaserad infrastruktur, automatisering av processer, integrering av olika verktyg, säkerställande av säkerhet och efterlevnad, övervakning av prestanda samt upprätthande av hög tillgänglighet och katastrofåterställning.

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

Detta område är avgörande för att säkerställa robusta, skalbara och säkra tekniska miljöer som möjliggör effektiv utveckling och driftsättning av applikationer.

Plattformsteknik innebär en utveckling från isolerade insatser till ett harmoniserat ekosystem, vilket förbättrar utvecklarupplevelsen och den operativa effektiviteten.

Get regular tech leadership wisdom for delivering better software and systems.

Förskjutningen från individuell spetskompetens till kollektiv kompetens

En individuell utvecklare, eller ”programvaruhantverkare”, kan till en början överträffa ett kollektiv med sin skräddarsydda verktygslåda. Men kraven i ett växande programvaruföretag gör snart lagarbete – kommunikation, samarbete och strategisk delning av verktyg och processer – till högsta prioritet.

Plattformsteknik är ett sofistikerat svar på dessa utmaningar vid uppskalning. Det innebär att sammanställa och hantera en uppsättning applikationer och verktyg som fungerar som en gemensam grund och gör det möjligt för utvecklare att innovera genom att integrera och bygga vidare på befintliga moduler.

Ett plattformsteknikteams uppgift är att skapa en intern utvecklarplattform (IDP) som överskrider begränsningarna hos traditionell applikationsutveckling genom att integrera ramverk som Kubernetes och skapa en självbetjäningsmiljö som ger utvecklarna större handlingsutrymme. 

Hantverkarprincipen gäller även testning: en kompetent, automationskunnig explorativ testare är förmodligen den mest effektiva QA-specialist man kan hitta. Utmaningen ligger dock i skalbarheten. Testautomatisering förekommer ofta i silor, där individer utformar lösningar med verktyg som Selenium på sina egna unika sätt. När dessa personer slutar eller befordras leder det ofta till att deras efterträdare gör en fullständig översyn av befintliga system, eftersom de kan ha ett annat sätt att använda verktygen. 

Delade testplattformar: att främja samarbete

En delad testplattform skulle däremot möjliggöra ett produktivt samarbete mellan professionella testare, affärsanvändare och utvecklare. En sådan plattform, som Copados Robot Testing, skulle inte bara underlätta delning och återanvändning av tester, data och resultat, utan även främja transparens i kvalitetsbedömningen. Med infrastruktur som kod (ytterligare ett coolt namn för något som bygger på sunt förnuft) kan testmiljöer effektivt driftsättas i molnet, vilket ger alla intressenter åtkomst på begäran och insyn.

I mikrotjänsternas era måste enskilda komponenters funktionalitet, orkestrerad av plattformar som Docker och Kubernetes, granskas med avseende på kognitiv belastning och användarpåverkan. Här kommer principerna för driftsäkerhetsteknik (SRE) in i bilden. De säkerställer att systemen är tillförlitliga och att driftteamen har tillgång till robusta verktyg för avisering, som Puppet, samt övervakningslösningar för att upprätthålla observerbarheten.

Utmaningar inom plattformsteknik

Trots sina uppenbara fördelar är plattformsteknik inte utan utmaningar. Det kräver noggrann hantering och kontinuerlig utveckling. Många kompetenta produktföretag har svårt att utveckla en gemensam plattform för sina produkter, vilket gör det orealistiskt att förvänta sig att IT-avdelningar ska ha denna förmåga från början. Därför vinner breda applikationsplattformar på hög nivå, som Salesforce, och utvecklarplattformar, som Git eller Azure DevOps, allt större terräng. Samma sak händer med testplattformar, men i något långsammare takt.

Eftersom applikationer konstrueras genom att komponenter från en gemensam plattform sätts samman blir plattformens kvalitet och robusthet avgörande. Alla problem med plattformen kan potentiellt påverka samtliga applikationer som bygger på den. Därför måste plattformen och applikationerna utvecklas parallellt, samtidigt som plattformen alltid måste ligga steget före för att säkerställa stabilitet.

Testning av plattformen måste separeras från testning av applikationerna, oavsett om du testar i produktion eller inte. Den förstnämnda är vanligtvis mer teknisk och fokuserar på enhetstestning, API:er, skalbarhet och prestanda, medan den sistnämnda till sin natur bygger mer på affärsprocesser och genomförs från början till slut.

Att upprätthålla kvalitet genom hela plattformens livscykel

När organisationer börjar använda molnbaserade metoder är plattformens robusthet avgörande. Alla problem inom plattformen kan få omfattande konsekvenser, vilket är anledningen till att en tydlig åtskillnad mellan plattformstestning och applikationstestning är avgörande. Denna uppdelning möjliggör ett målinriktat angreppssätt för skalbarhet och prestanda, där den förstnämnda fokuserar på tekniska aspekter som API:er och den sistnämnda på slutanvändarfunktionalitet.

Programvara och verktyg för plattformsteknik förklarade


Inom plattformsteknik används olika programvaruverktyg för att hantera och effektivisera processerna som ingår i att bygga, distribuera och underhålla infrastruktur och applikationer.

Ta ett verktyg som Postman som exempel. Postman utvecklades ursprungligen som ett sidoprojekt för att förenkla API-arbetsflöden inom utveckling och testning och är ett utmärkt verktyg för enskilda testare. När det integreras i ett arbetsflöde för kontinuerlig integrering/kontinuerlig leverans (CI/CD) förstärks dess funktioner och det får ett bredare användningsområde inom en molnplattform. Det möjliggör snabb och enkel testning av API:er och ger användaren omedelbar återkoppling.

När teamet växer blir Postmans begränsningar uppenbara. Även om det är utmärkt för manuell testning och utforskning räcker det inte till i samarbetsmiljöer där automatiserade, repeterbara och skalbara tester krävs. När en programvaruoperation expanderar blir faktorer som kommunikation, delning och återanvändning avgörande och överskuggar ofta individens prestation.

Andra viktiga verktyg för plattformsteknik omfattar:

  • Verktyg för containerisering
    • Docker: För att skapa, distribuera och köra applikationer i containrar.
    • Kubernetes: En plattform för containerorkestrering som automatiserar distribution, skalning och drift av applikationscontainrar över kluster av värdar.
  • Verktyg för infrastruktur som kod (IaC):
    • Terraform: Används för att bygga, ändra och versionshantera infrastruktur på ett säkert och effektivt sätt.
    • Ansible: Ett verktyg med öppen källkod för programvaruinstallation, konfigurationshantering och applikationsdistribution.
    • Puppet: Ytterligare ett populärt verktyg för konfigurationshantering.
  • Verktyg för kontinuerlig integrering/kontinuerlig distribution (CI/CD):
    • Jenkins: En automatiseringsserver med öppen källkod som används för att automatisera delar av programvaruutvecklingen.
    • GitLab CI/CD: Ger ett effektiviserat sätt att automatisera faser i applikationsutvecklingens livscykel.
    • CircleCI: Erbjuder kontinuerlig integrering och leverans för att hjälpa utvecklingsteam att snabbt lansera kod.
  • Verktyg för övervakning och observerbarhet:
    • Prometheus: Ett övervakningssystem med öppen källkod och en tidsseriedatabas.
    • Grafana: För visualisering och övervakning av mätvärden.
    • Elasticsearch, Logstash och Kibana (ELK Stack): Populära verktyg för loggning och visualisering av data.
  • Molntjänstleverantörer:
    • Amazon Web Services (AWS): Tillhandahåller ett brett utbud av molntjänster.
    • Microsoft Azure: Erbjuder molntjänster.
    • Google Cloud Platform (GCP): Tillhandahåller en uppsättning molntjänster.
  • Versionshanteringssystem:
    • Git: Ett distribuerat versionshanteringssystem för att spåra ändringar i källkod.
    • GitHub: En plattform för att lagra och hantera Git-arkiv.
  • Verktyg för säkerhet och efterlevnad:
    • HashiCorp Vault: För att säkra, lagra och kontrollera åtkomsten till token, lösenord, certifikat, API-nycklar och andra hemligheter.
    • SonarQube: Bedömer kodkvalitet och identifierar sårbarheter.
  • Verktyg för tjänstenät:
    • Istio: En öppen plattform för att ansluta, hantera och säkra mikrotjänster.
    • Linkerd: Tillhandahåller observerbarhet, tillförlitlighet och säkerhet för mikrotjänster.
  • Serverlösa ramverk:
    • AWS Lambda: Gör det möjligt att köra kod utan att tillhandahålla eller hantera servrar.
    • Serverless Framework: Förenklar utvecklingen av applikationer med serverlösa arkitekturer.
  • Databashantering:
    • MongoDB: En populär NoSQL-databas.
    • PostgreSQL: En avancerad relationsdatabas med öppen källkod.

Löftet om plattformsteknik

Även om plattformsteknik lovar ökad produktivitet för utvecklare är det lättare sagt än gjort att förverkliga denna potential. Plattformen måste hanteras noggrant, testas för stabilitet och får inte bli en flaskhals. Detta ambitiösa mål kräver en samordnad insats från DevOps-teamen, från DevOps-ingenjören till produktteamet. En framgångsrik implementering bygger på sömlös orkestrering, effektiva pipelines och ett åtagande för kontinuerlig integration och kontinuerlig driftsättning. Effektiva testmetoder och en verktygslåda inriktad på automatisering är förutsättningar för framgångsrik plattformsteknik.

Intresserad av mer information om AI och programvarutestning? Anmäl dig till nyhetsbrevet från QA Lead för att få ta del av de senaste trenderna.