Resan mot effektiv plattformsteknik

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Plattformsteknik revolutionerar programvaruutvecklingen genom att standardisera verktyg och arbetssätt för maximal produktivitet och skalbarhet, med stöd av stabil DevOps, strategisk testning och fokus på automatisering.

Programvaruproffs är ökända för att hitta på häftiga 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 använda en enhetlig, hanterad verktygsuppsättning, och därigenom skapa förutsättningar för ökad teamproduktivitet. Mer mogna branscher har känt till detta i flera årtionden.

Vad är plattformsteknik?

Plattformsteknik är arbetet med att utforma, bygga och hantera den grundläggande programvaruinfrastrukturen och de system som används för applikationer och tjänster. 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ätthållande av hög tillgänglighet och katastrofåterställning.

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 markerar utvecklingen från isolerade insatser till ett harmoniserat ekosystem, vilket förbättrar utvecklarupplevelsen och den operativa effektiviteten.

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

Have an account? Log In

Förskjutningen från individuell excellens till kollektiv kompetens

En individuell utvecklare, eller ”programvaruhantverkare”, kan inledningsvis överträffa ett kollektiv med sin egen verktygslåda. Men kraven i ett växande programvaruföretag prioriterar snart konsten att arbeta i team – kommunikation, samarbete och strategisk delning av verktyg och processer.

Plattformsteknik är ett sofistikerat svar på dessa skalningsproblem. 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 förnya genom att integrera och bygga vidare på befintliga moduler.

En plattformsteknikgrupps uppgift är att skapa en intern utvecklarplattform (IDP) som överskrider begränsningarna hos traditionell applikationsutveckling genom att införliva ramverk som Kubernetes och främjar en självbetjäningsmiljö som ger utvecklarna större handlingsutrymme. 

Hantverkarprincipen gäller även testning: en kompetent, automatiseringskunnig explorativ testare är förmodligen den mest effektiva kvalitetssäkringsexpert 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 sätt. När dessa personer slutar eller befordras leder det ofta till att deras efterträdare gör en fullständig omarbetning av de befintliga systemen, eftersom de kan ha ett annat sätt att använda verktygen. 

Delade testplattformar: främjar 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 (ännu ett häftigt namn för något som bygger på sunt förnuft) kan testmiljöer effektivt distribueras i molnet, vilket ger alla intressenter åtkomst på begäran och transparens.

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

Utmaningar inom plattformsteknik

Trots sina uppenbara fördelar är plattformsarbete inte utan utmaningar. Det kräver noggrann hantering och ständig 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 har 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 mark. Samma sak händer med testplattformar, men i något långsammare takt.

Eftersom applikationer byggs 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 tenderar att vara mer teknisk och fokuserar på enhetstestning, API:er, skalbarhet och prestanda, medan den sistnämnda till sin natur är mer affärsprocessbaserad och omfattar testning från början till slut.

Upprätthålla kvalitet genom hela plattformens livscykel

När organisationer börjar använda molnbaserade metoder är plattformens robusthet av största betydelse. 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 riktat arbetssä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ändarnas funktionalitet.

More Articles

Programvara och verktyg för plattformsutveckling förklaras


Inom plattformsutveckling hanterar och effektiviserar olika programvaruverktyg processerna för att bygga, distribuera och underhålla infrastruktur och applikationer.

Tänk på ett verktyg som Postman. 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 dock dess möjligheter och verktyget fyller ett bredare syfte 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 tydliga. Ä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 växer blir aspekter som kommunikation, delning och återanvändning avgörande och överskuggar ofta den enskilda individens prestation.

Andra viktiga verktyg för plattformsutveckling 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 programvaruförsörjning, konfigurationshantering och applikationsdistribution.
    • Puppet: Ytterligare ett populärt verktyg för konfigurationshantering.
  • Verktyg för kontinuerlig integrering/kontinuerlig driftsättning (CI/CD):
    • Jenkins: En automationsserver med öppen källkod som används för att automatisera delar av programvaruutvecklingen.
    • GitLab CI/CD: Ger ett effektiviserat sätt att automatisera olika steg 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 molnbaserade datortjänster.
    • Google Cloud Platform (GCP): Tillhandahåller en uppsättning molnbaserade datortjä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-databaser.
  • Säkerhets- och efterlevnadsverktyg:
    • 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 med 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 är beroende av sömlös orkestrering, effektiva pipelines och ett åtagande för kontinuerlig integration och kontinuerlig driftsättning. Effektiva testmetoder och en verktygslåda med fokus på automatisering är förutsättningar för framgångsrik plattformsteknik.

Intresserad av mer information om AI och programvarutestning? Prenumerera på QA Leads nyhetsbrev för att få ta del av de senaste trenderna.

Esko Hannula
Esko Hannula is VP Product Line Management at Copado, a DevOps and testing solution for low code SaaS platforms that run the world’s largest digital transformations. Backed by Insight Partners, Salesforce Ventures and SoftBank Vision Fund, Copado accelerates multi-cloud, enterprise deployments by automating the end-to-end software delivery process to maximize customers’ return on their cloud investment.
Follow the author:

You may also like