Programvaruprofessionella är ökända för att hitta på häftiga namn för saker som bygger på sunt förnuft. ”Plattformsutveckling” är ett aktuellt exempel, där etablerade principer kombineras med innovationer inom molnbaserade ramverk.
I grunden handlar plattformsutveckling 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 årtionden.
Vad är plattformsutveckling?
Plattformsutveckling ä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 distribution av applikationer.
Plattformsutveckling markerar övergången från isolerade insatser till ett harmoniserat ekosystem, vilket förbättrar utvecklarupplevelsen och driftseffektiviteten.
Have an account? Log In
Övergången från individuell spetskompetens till kollektiv kompetens
En individuell utvecklare, eller ”programvaruhantverkare”, kan till en början överträffa en grupp med sin specialanpassade verktygslåda. Kraven i ett växande programvaruföretag gör dock snart lagarbete – kommunikation, samarbete och strategisk delning av verktyg och processer – till högsta prioritet.
Plattformsutveckling ä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.
En plattformsutvecklingsgrupps 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.
Hantverksprincipen gäller även testning: en kompetent explorativ testare med förmåga att automatisera ä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 måste göra en fullständig översyn 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, verksamhetsanvä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 distribueras effektivt i molnet, vilket ger alla intressenter åtkomst på begäran och insyn.
I mikrotjänsternas era måste de enskilda komponenternas 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 Site Reliability Engineering (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 observerbarhet.
Utmaningar inom plattformsutveckling
Trots sina uppenbara fördelar är plattformsutveckling 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 ska ha denna kompetens 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 alla 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 testning från början till slut.
Att upprätthålla kvalitet genom plattformens livscykel
När organisationer inför 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 separation möjliggör ett målinriktat tillvägagångssä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 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.
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 integration/kontinuerlig leverans (CI/CD) förstärks dock dess möjligheter och verktyget 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 växer 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 integration/kontinuerlig distribution (CI/CD):
- Jenkins: En automatiseringsserver med öppen källkod som används för att automatisera delar av programvaruutvecklingen.
- GitLab CI/CD: Tillhandahåller ett effektiviserat sätt att automatisera steg i applikationsutvecklingens livscykel.
- CircleCI: Erbjuder kontinuerlig integration 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-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: Utvärderar kodkvalitet och identifierar sårbarheter.
- Verktyg för tjänstenät:
- Istio: En öppen plattform för att ansluta, hantera och skydda 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 är beroende av sömlös orkestrering, effektiva pipelines och ett åtagande för kontinuerlig integration och kontinuerlig leverans. 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? Anmäl dig till QA Lead-nyhetsbrevet för att få ta del av de senaste trenderna.



