Rejsen mod effektiv platformsteknik

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

Platformsteknik revolutionerer softwareudvikling ved at standardisere værktøjer og praksisser for maksimal produktivitet og skalerbarhed, understøttet af solid DevOps, strategisk testning og fokus på automatisering.

Softwarefolk er notorisk gode til at opfinde smarte navne for ting, der bygger på sund fornuft. “Platformudvikling” er et nyere eksempel, der kombinerer etablerede principper med innovationen inden for cloud-native-rammeværker.

I sin kerne handler platformudvikling 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 platformudvikling?

Platformudvikling er praksissen med at designe, opbygge og administrere den grundlæggende softwareinfrastruktur og de systemer, der understøtter 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 felt er afgørende for at sikre robuste, skalerbare og sikre tekniske miljøer, der muliggør effektiv udvikling og implementering af applikationer.

Platformudvikling markerer overgangen fra isolerede indsatser til et harmoniseret økosystem, der forbedrer udvikleroplevelsen og den operationelle effektivitet.

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

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 kollektiv med sit specialtilpassede værktøjssæt. Kravene i en softwarevirksomhed i vækst prioriterer dog snart kunsten at arbejde som et team – kommunikation, samarbejde og strategisk deling af værktøjer og processer.

Platformudvikling 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 platformudviklingsteams rolle er at skabe en intern udviklerplatform (IDP), der overskrider begrænsningerne ved traditionel applikations-udvikling ved at inkorporere rammeværker som Kubernetes og fremmer et selvbetjeningsmiljø, der giver udviklerne større handlekraft. 

Håndværkerprincippet gælder også for test: En kompetent, automatiseringskyndig, eksplorativ tester er sandsynligvis den mest effektive QA-medarbejder, man kan finde. Udfordringen ligger dog i skalerbarheden. Testautomatisering foregår ofte i siloer, hvor enkeltpersoner udvikler løsninger ved hjælp af værktøjer som Selenium på deres egne måder. Når disse personer forlader organisationen eller bliver forfremmet, fører det ofte til en fuldstændig omlægning af de eksisterende systemer, når deres efterfølgere overtager, og de kan have en anderledes 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 Copado's Robot Testing, ville ikke blot lette deling og genbrug af 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 implementeres effektivt 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 brugerens påvirkning. Her kommer principperne for teknik til webstedspålidelighed (SRE) i spil. De sikrer, 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 platformudvikling

På trods af de tilsyneladende fordele er platformudvikling 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 automatisk besidder disse kompetencer. 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 opbygges ved at samle komponenter fra en fælles 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 udvikle sig samtidigt, 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 tendens til at være mere teknisk med fokus på enhedstest, API'er, skalerbarhed og ydeevne, mens sidstnævnte i højere grad er forretningsprocesbaseret og af natur indebærer ende-til-ende-test.

Opretholdelse af kvalitet gennem hele platformens livscyklus

Efterhånden som organisationer tager cloud-native-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


Inden for 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-arbejdsgangen i forbindelse med udvikling og test og er et fremragende værktøj for individuelle testere. Når det integreres i en Kontinuerlig integration/kontinuerlig levering (CI/CD)-arbejdsgang, bliver dets muligheder imidlertid udvidet betydeligt, så 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 open source-værktøj til klargøring af software, konfigurationsstyring og implementering af applikationer.
    • Puppet: Et andet populært værktøj til konfigurationsstyring.
  • Værktøjer til kontinuerlig integration/kontinuerlig implementering (CI/CD):
    • Jenkins: En open source-automatiseringsserver, der bruges til at automatisere dele af softwareudviklingen.
    • GitLab CI/CD: Giver en strømlinet måde at automatisere faserne i applikationsudviklingens livscyklus på.
    • CircleCI: Tilbyder kontinuerlig integration og levering, så udviklingsteams hurtigt kan udgive kode.
  • Værktøjer til overvågning og observerbarhed:
    • Prometheus: Et open source-overvågningssystem med 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, lagring og kontrol af adgangen til tokens, adgangskoder, certifikater, API-nøgler og andre hemmeligheder.
    • SonarQube: Evaluerer kodekvalitet og identificerer sårbarheder.
  • Værktøjer til servicemesh:
    • Istio: En åben platform til at forbinde, administrere og sikre mikrotjenester.
    • Linkerd: Giver mikrotjenester observerbarhed, pålidelighed og sikkerhed.
  • Serverløse udviklingsrammer:
    • 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.
  • Databasestyring:
    • MongoDB: En populær NoSQL-database.
    • PostgreSQL: En avanceret relationel database med åben kildekode.

Løftet ved platformteknik

Selvom platformteknik lover øget udviklerproduktivitet, er det lettere sagt end gjort at realisere dette potentiale. Platformen skal administreres omhyggeligt, testes for stabilitet og bør 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 platformteknik.

Er du interesseret i mere information om AI og softwaretest? Tilmeld dig QA Lead-nyhedsbrevet for at få alle de nyeste tendenser.

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