Programvarefagfolk er beryktet for å finne på kule navn på ting som bygger på sunn fornuft. «Plattformsteknikk» er et nyere eksempel, som kombinerer etablerte prinsipper med innovasjonen innen skybaserte rammeverk.
I sin kjerne handler plattformsteknikk om å forene programvareutvikling ved å ta i bruk et enhetlig, administrert verktøysett, og dermed legge grunnlaget for økt produktivitet i teamene. Mer modne bransjer har visst dette i flere tiår allerede.
Hva er plattformsteknikk?
Plattformsteknikk er praksisen med å utforme, bygge og administrere den grunnleggende programvareinfrastrukturen og systemene for applikasjoner og tjenester. Den omfatter administrasjon av fysisk og skybasert infrastruktur, automatisering av prosesser, integrering av ulike verktøy, sikring av sikkerhet og samsvar, overvåking av ytelse samt opprettholdelse av høy tilgjengelighet og katastrofegjenoppretting.
Dette fagfeltet er avgjørende for å sikre robuste, skalerbare og sikre tekniske miljøer som muliggjør effektiv utvikling og distribusjon av applikasjoner.
Plattformsteknikk markerer utviklingen fra isolert innsats til et harmonisert økosystem, noe som forbedrer utvikleropplevelsen og driftseffektiviteten.
Have an account? Log In
Skiftet fra individuell fremragende innsats til kollektiv kompetanse
En individuell utvikler, eller «programvarehåndverker», kan i utgangspunktet overgå et kollektiv med sitt spesialtilpassede verktøysett. Kravene i en programvarevirksomhet i vekst gjør imidlertid snart at kunsten å samarbeide blir prioritert – kommunikasjon, samarbeid og strategisk deling av verktøy og prosesser.
Plattformsteknikk er et sofistikert svar på disse skaleringsutfordringene. Det innebærer å kuratere og administrere en samling applikasjoner og verktøy som fungerer som et felles fundament, slik at utviklere kan innovere ved å integrere og bygge videre på eksisterende moduler.
Rollen til et plattformsteknikkteam er å opprette en intern utviklerplattform (IDP) som overskrider begrensningene ved tradisjonell applikasjonsutvikling ved å innlemme rammeverk som Kubernetes, og som fremmer et selvbetjent miljø som gir utviklerne større handlingsrom.
Håndverkerprinsippet gjelder også testing: En kompetent, utforskende tester som behersker automatisering, er sannsynligvis den mest effektive kvalitetssikringstesteren man kan finne. Utfordringen ligger imidlertid i skalerbarheten. Testautomatisering eksisterer ofte i siloer, der enkeltpersoner utarbeider løsninger ved hjelp av verktøy som Selenium på sine egne måter. Når disse personene slutter eller blir forfremmet, fører det ofte til en fullstendig overhaling av eksisterende systemer utført av etterfølgerne, som kan ha en annen tilnærming til bruken av verktøyene.
Delte testplattformer: Fremme samarbeid
En delt testplattform vil derimot muliggjøre et produktivt samarbeid mellom profesjonelle testere, forretningsbrukere og utviklere. En slik plattform, som Copado's Robot Testing, vil ikke bare legge til rette for deling og gjenbruk av tester, data og resultater, men også fremme åpenhet i kvalitetsvurderingen. Med infrastruktur som kode (enda et kult navn på noe som bygger på sunn fornuft) kan testmiljøer distribueres effektivt i skyen, noe som gir alle interessenter tilgang ved behov og større åpenhet.
I mikrotjenesteepoken må funksjonaliteten til individuelle komponenter, orkestrert av plattformer som Docker og Kubernetes, granskes med tanke på kognitiv belastning og brukerpåvirkning. Her kommer prinsippene for systempålitelighetsteknikk (SRE) inn i bildet, slik at systemene er pålitelige og driftsteamene er utstyrt med robuste varslingsverktøy som Puppet og overvåkingsløsninger for å opprettholde observerbarhet.
Utfordringer innen plattformsteknikk
Til tross for de åpenbare fordelene er plattformarbeid ikke uten utfordringer. Det krever omhyggelig administrasjon og kontinuerlig utvikling. Mange dyktige produktselskaper sliter med å utvikle en felles plattform for produktene sine, noe som gjør det urealistisk å forvente at IT-avdelinger har disse egenskapene innebygd. Derfor vinner brede applikasjonsplattformer på høyt nivå, som Salesforce, og utviklerplattformer, som Git eller Azure DevOps, stadig større terreng. Det samme skjer med testplattformer, men litt saktere.
Ettersom applikasjoner bygges ved å sette sammen komponenter fra en delt plattform, blir kvaliteten og robustheten til denne plattformen avgjørende. Ethvert problem med plattformen kan potensielt påvirke alle applikasjoner som er bygget oppå den. Derfor må plattformen og applikasjonene utvikles parallelt, samtidig som plattformen alltid må ligge i forkant for å sikre stabilitet.
Testing av plattformen må skilles fra testingen av applikasjonene, enten du tester i produksjon eller ikke. Førstnevnte har en tendens til å være mer teknisk, med fokus på enhetstesting, API-er, skalerbarhet og ytelse, mens sistnevnte i større grad er forretningsprosessbasert og av natur innebærer ende-til-ende-testing.
Opprettholde kvalitet gjennom hele plattformens livssyklus
Etter hvert som organisasjoner tar i bruk skybaserte tilnærminger, er plattformens robusthet avgjørende. Ethvert problem i plattformen kan få omfattende konsekvenser, og derfor er et tydelig skille mellom plattformtesting og applikasjonstesting avgjørende. Dette skillet muliggjør en målrettet tilnærming til skalerbarhet og ytelse, der førstnevnte fokuserer på tekniske aspekter som API-er, mens sistnevnte fokuserer på sluttbrukerfunksjonalitet.
More Articles
Programvare og verktøy for plattformsteknikk forklart
I plattformsteknikk brukes ulike programvareverktøy til å administrere og effektivisere prosessene som inngår i bygging, utrulling og vedlikehold av infrastruktur og applikasjoner.
Se for eksempel på et verktøy som Postman. Postman ble opprinnelig utviklet som et sideprosjekt for å forenkle API-arbeidsflyten i utvikling og testing, og er et utmerket verktøy for individuelle testere. Når det imidlertid integreres i en arbeidsflyt for kontinuerlig integrasjon/kontinuerlig levering (CI/CD), blir funksjonaliteten betydelig utvidet og får et bredere bruksområde i en skyplattform. Det muliggjør rask og enkel testing av API-er og gir brukeren umiddelbare tilbakemeldinger.
Etter hvert som teamet vokser, blir begrensningene ved Postman tydelige. Selv om det er utmerket for manuell testing og utforskning, kommer det til kort i samarbeidsmiljøer der det kreves automatiserte, repeterbare og skalerbare tester. Når en programvareoperasjon utvides, blir elementer som kommunikasjon, deling og gjenbruk avgjørende, og disse overskygger ofte enkeltpersonens prestasjoner.
Andre viktige verktøy for plattformsteknikk omfatter:
- Verktøy for containerisering
- Docker: For å opprette, distribuere og kjøre applikasjoner i containere.
- Kubernetes: En plattform for containerorkestrering som automatiserer utrulling, skalering og drift av applikasjonscontainere på tvers av klynger med verter.
- Verktøy for infrastruktur som kode (IaC):
- Terraform: Brukes til å bygge, endre og versjonere infrastruktur på en sikker og effektiv måte.
- Ansible: Et verktøy med åpen kildekode for klargjøring av programvare, konfigurasjonsstyring og utrulling av applikasjoner.
- Puppet: Et annet populært verktøy for konfigurasjonsstyring.
- Verktøy for kontinuerlig integrasjon/kontinuerlig utrulling (CI/CD):
- Jenkins: En automatiseringsserver med åpen kildekode som brukes til å automatisere deler av programvareutviklingen.
- GitLab CI/CD: Gir en effektiv måte å automatisere faser i applikasjonsutviklingens livssyklus på.
- CircleCI: Tilbyr kontinuerlig integrasjon og levering for å hjelpe utviklingsteam med å lansere kode raskt.
- Verktøy for overvåking og observerbarhet:
- Prometheus: Et overvåkingssystem med åpen kildekode og en tidsseriedatabase.
- Grafana: For visualisering og overvåking av måledata.
- Elasticsearch, Logstash og Kibana (ELK Stack): Populære verktøy for logging og visualisering av data.
- Skytjenesteleverandører:
- Amazon Web Services (AWS): Tilbyr et bredt utvalg av skytjenester.
- Microsoft Azure: Tilbyr tjenester for nettskybasert databehandling.
- Google Cloud Platform (GCP): Tilbyr en samling tjenester for nettskybasert databehandling.
- Versjonskontrollsystemer:
- Git: Et distribuert versjonskontrollsystem for sporing av endringer i kildekode.
- GitHub: En plattform for lagring og administrasjon av Git-repositorier.
- Verktøy for sikkerhet og samsvar:
- HashiCorp Vault: For sikring, lagring og tilgangskontroll for token, passord, sertifikater, API-nøkler og andre hemmeligheter.
- SonarQube: Vurderer kodekvalitet og identifiserer sårbarheter.
- Verktøy for tjenestenettverk:
- Istio: En åpen plattform for å koble sammen, administrere og sikre mikrotjenester.
- Linkerd: Gir mikrotjenester observerbarhet, pålitelighet og sikkerhet.
- Serverløse rammeverk:
- AWS Lambda: Gjør det mulig å kjøre kode uten å klargjøre eller administrere servere.
- Serverless Framework: Forenkler utviklingen av applikasjoner med serverløse arkitekturer.
- Databaseadministrasjon:
- MongoDB: En populær NoSQL-database.
- PostgreSQL: En avansert relasjonsdatabase med åpen kildekode.
Løftet fra plattformsteknikk
Selv om plattformsteknikk lover økt produktivitet for utviklere, er det lettere sagt enn gjort å realisere dette potensialet. Plattformen må administreres grundig, testes for stabilitet og bør ikke bli en flaskehals. Dette ambisiøse målet krever en samordnet innsats på tvers av DevOps-teamene, fra DevOps-ingeniøren til produktteamet. En vellykket implementering avhenger av sømløs orkestrering, effektive leveransepipelinjer og en forpliktelse til kontinuerlig integrasjon og kontinuerlig utrulling. Effektive testmetoder og et verktøysett med fokus på automatisering er forutsetninger for vellykket plattformsteknikk.
Interessert i mer informasjon om kunstig intelligens og programvaretesting? Meld deg på nyhetsbrevet for QA-ledere for å få med deg de nyeste trendene.




