Softwarefagfolk er notorisk gode til at opfinde smarte navne for ting, der bygger på sund fornuft. “Platformsteknik” er et nyere eksempel, der kombinerer etablerede principper med innovationen inden for cloud-native-rammeværker.
I sin kerne handler platformsteknik om at samle softwareudviklingen ved at anvende et ensartet, administreret værktøjssæt og dermed skabe grundlaget for øget produktivitet i teamet. Mere modne brancher har allerede kendt til dette i årtier.
Hvad er platformsteknik?
Platformsteknik er praksissen med at designe, bygge og administrere den grundlæggende softwareinfrastruktur og de grundlæggende systemer til applikationer og tjenester. Det omfatter administration af fysisk og cloudbaseret infrastruktur, automatisering af processer, integration af forskellige værktøjer, sikring af sikkerhed og overholdelse af regler, overvågning af ydeevne samt opretholdelse af høj tilgængelighed og katastrofegendannelse.
Dette område er afgørende for at sikre robuste, skalerbare og sikre tekniske miljøer, der muliggør effektiv udvikling og implementering af applikationer.
Platformsteknik markerer udviklingen fra isolerede indsatser til et harmoniseret økosystem, der forbedrer udvikleroplevelsen og den operationelle effektivitet.
Have an account? Log In
Skiftet fra individuel ekspertise til kollektiv kompetence
En individuel udvikler eller en “softwarehåndværker” kan i begyndelsen overgå et fællesskab med sit specialtilpassede værktøjssæt. Kravene i en softwarevirksomhed i vækst prioriterer dog snart kunsten at arbejde sammen – kommunikation, samarbejde og strategisk deling af værktøjer og processer.
Platformsteknik er et sofistikeret svar på disse skaleringsdilemmaer. Det indebærer udvælgelse og administration af en række applikationer og værktøjer, der fungerer som et fælles fundament og gør det muligt for udviklere at innovere ved at integrere og bygge videre på eksisterende moduler.
Et platformsteknikteams rolle er at skabe en intern udviklerplatform (IDP), der overskrider begrænsningerne ved traditionel applikationsudvikling ved at inkorporere rammeværker som Kubernetes og fremmer et selvbetjeningsmiljø, der styrker udviklerne.
Håndværkerprincippet gælder også for test: En kompetent, automatiseringskyndig eksplorativ tester er sandsynligvis den mest effektive QA-specialist, man kan finde. Udfordringen ligger dog i skalerbarheden. Testautomatisering findes ofte i siloer, hvor enkeltpersoner udarbejder løsninger med værktøjer som Selenium på deres egne måder. Når disse personer forlader virksomheden eller bliver forfremmet, fører det ofte til en fuldstændig omlægning af de eksisterende systemer, fordi deres efterfølgere måske har en anden tilgang til brugen af værktøjerne.
Delte testplatforme: Fremme af samarbejde
En delt testplatform ville derimod muliggøre et produktivt samarbejde mellem professionelle testere, forretningsbrugere og udviklere. En sådan platform, såsom Copados Robot Testing, ville ikke blot gøre det lettere at dele og genbruge test, data og resultater, men også fremme gennemsigtighed i kvalitetsvurderingen. Med infrastruktur-som-kode (endnu et smart navn for noget, der bygger på sund fornuft) kan testmiljøer effektivt implementeres i skyen, hvilket giver alle interessenter adgang efter behov og gennemsigtighed.
I mikrotjenesteæraen skal de enkelte komponenters funktionalitet, som orkestreres af platforme som Docker og Kubernetes, undersøges med hensyn til kognitiv belastning og brugerindvirkning. Her kommer principperne for pålidelig drift (SRE) i spil, så det sikres, at systemerne er pålidelige, og at driftsteams er udstyret med robuste alarmværktøjer som Puppet samt overvågningsløsninger, der opretholder observerbarheden.
Udfordringer ved platformsteknik
Trods de åbenlyse fordele er platformsteknik ikke uden udfordringer. Det kræver omhyggelig administration og løbende udvikling. Mange dygtige produktvirksomheder har svært ved at udvikle en fælles platform til deres produkter, hvilket gør det urealistisk at forvente, at IT-afdelinger besidder disse kompetencer fra starten. Derfor vinder brede applikationsplatforme på højt niveau, såsom Salesforce, og udviklerplatforme, såsom Git eller Azure DevOps, frem. Det samme sker med testplatforme, men lidt langsommere.
Da applikationer konstrueres ved at samle komponenter fra en delt platform, bliver platformens kvalitet og robusthed afgørende. Ethvert problem med platformen kan potentielt påvirke alle applikationer, der er bygget oven på den. Derfor skal platformen og applikationerne udvikles parallelt, hvor platformen altid skal være et skridt foran for at sikre stabilitet.
Test af platformen skal adskilles fra test af applikationerne, uanset om du tester i produktion eller ej. Førstnævnte har en tendens til at være mere teknisk med fokus på enhedstest, API'er, skalerbarhed og ydeevne, mens sidstnævnte i højere grad er baseret på forretningsprocesser og af natur er ende-til-ende-test.
Opretholdelse af kvalitet gennem hele platformens livscyklus
Efterhånden som organisationer tager cloudbaserede tilgange i brug, er platformens robusthed altafgørende. Ethvert problem i platformen kan have vidtrækkende konsekvenser, og derfor er en klar adskillelse mellem platformstest og applikationstest afgørende. Denne adskillelse muliggør en målrettet tilgang til skalerbarhed og ydeevne, hvor førstnævnte fokuserer på de tekniske aspekter såsom API'er, mens sidstnævnte fokuserer på slutbrugerfunktionalitet.
More Articles
Software og værktøjer til platformsteknik forklaret
I platformsteknik håndterer og effektiviserer forskellige softwareværktøjer de processer, der indgår i opbygning, implementering og vedligeholdelse af infrastruktur og applikationer.
Overvej et værktøj som Postman. Postman blev oprindeligt udviklet som et sideprojekt for at forenkle API-arbejdsgange i forbindelse med udvikling og test og er et fremragende værktøj til individuelle testere. Når det integreres i en arbejdsgang for kontinuerlig integration/kontinuerlig levering (CI/CD), bliver dets muligheder imidlertid langt større, og det tjener et bredere formål i en cloudplatform. Det gør det muligt hurtigt og enkelt at teste API'er og giver brugeren øjeblikkelig feedback.
Efterhånden som teamet vokser, bliver Postmans begrænsninger tydelige. Selvom det er fremragende til manuel test og udforskning, kommer det til kort i samarbejdsmiljøer, hvor der kræves automatiserede, gentagelige og skalerbare test. Når en softwaredrift udvides, bliver elementer som kommunikation, deling og genbrug afgørende og overskygger ofte den enkeltes præstation.
Andre vigtige værktøjer til platformsteknik omfatter:
- Værktøjer til containerisering
- Docker: Til oprettelse, implementering og kørsel af applikationer i containere.
- Kubernetes: En platform til containerorkestrering, der automatiserer implementering, skalering og drift af applikationscontainere på tværs af klynger af værter.
- Værktøjer til infrastruktur som kode (IaC):
- Terraform: Bruges til sikkert og effektivt at opbygge, ændre og versionsstyre infrastruktur.
- Ansible: Et værktøj med åben kildekode til klargøring af software, konfigurationsstyring og implementering af applikationer.
- Puppet: Endnu et populært værktøj til konfigurationsstyring.
- Værktøjer til kontinuerlig integration/kontinuerlig implementering (CI/CD):
- Jenkins: En automatiseringsserver med åben kildekode, der bruges til at automatisere dele af softwareudviklingen.
- GitLab CI/CD: Giver en effektiv måde at automatisere faserne i applikationsudviklingens livscyklus på.
- CircleCI: Tilbyder kontinuerlig integration og levering for at hjælpe udviklingsteams med hurtigt at udgive kode.
- Værktøjer til overvågning og observerbarhed:
- Prometheus: Et overvågningssystem med åben kildekode og en tidsseriedatabase.
- Grafana: Til visualisering og overvågning af målepunkter.
- Elasticsearch, Logstash og Kibana (ELK Stack): Populære værktøjer til logning og visualisering af data.
- Cloudtjenesteudbydere:
- Amazon Web Services (AWS): Tilbyder en bred vifte af cloudtjenester.
- Microsoft Azure: Tilbyder cloudcomputingtjenester.
- Google Cloud Platform (GCP): Tilbyder en række cloudcomputingtjenester.
- Versionsstyringssystemer:
- Git: Et distribueret versionsstyringssystem til sporing af ændringer i kildekode.
- GitHub: En platform til hosting og administration af Git-arkiver.
- Værktøjer til sikkerhed og overholdelse af krav:
- HashiCorp Vault: Til sikring, opbevaring og adgangskontrol af tokens, adgangskoder, certifikater, API-nøgler og andre hemmeligheder.
- SonarQube: Vurderer kodekvalitet og identificerer sårbarheder.
- Værktøjer til servicenetværk:
- Istio: En åben platform til at forbinde, administrere og sikre mikrotjenester.
- Linkerd: Giver mikrotjenester synlighed, pålidelighed og sikkerhed.
- Rammeværker til serverløs drift:
- AWS Lambda: Gør det muligt at køre kode uden at klargøre eller administrere servere.
- Serverless Framework: Forenkler udviklingen af applikationer med serverløse arkitekturer.
- Databaseadministration:
- MongoDB: En populær NoSQL-database.
- PostgreSQL: En avanceret relationel database med åben kildekode.
Løftet fra platformsteknik
Selvom platformsteknik lover øget produktivitet for udviklere, er det lettere sagt end gjort at realisere dette potentiale. Platformen skal administreres omhyggeligt, testes for stabilitet og må ikke blive en flaskehals. Dette ambitiøse mål kræver en fælles indsats på tværs af DevOps-teams, fra DevOps-ingeniøren til produktteamet. En vellykket implementering afhænger af problemfri orkestrering, effektive pipelines og en forpligtelse til kontinuerlig integration og kontinuerlig implementering. Effektive testmetoder og et værktøjssæt med fokus på automatisering er forudsætninger for vellykket platformsteknik.
Er du interesseret i flere oplysninger om AI og softwaretest? Tilmeld dig QA Lead-nyhedsbrevet for at få alle de nyeste tendenser.




