Reisen mot effektiv plattformutvikling

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

Plattformutvikling revolusjonerer programvareutvikling ved å standardisere verktøy og praksiser for maksimal produktivitet og skalerbarhet, støttet av solid DevOps, strategisk testing og fokus på automatisering.

Programvarefagfolk er notorisk flinke til å finne på kule navn for selvfølgeligheter. «Plattformsteknikk» er et nylig eksempel, som kombinerer etablerte prinsipper med innovasjonen fra skybaserte rammeverk.

I bunn og grunn handler plattformsteknikk om å samle programvareutviklingen ved å ta i bruk et konsekvent, administrert verktøysett, og dermed legge grunnlaget for økt produktivitet i teamet. 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 vedlikehold av høy tilgjengelighet og katastrofegjenoppretting.

Dette fagområdet er avgjørende for å sikre robuste, skalerbare og trygge tekniske miljøer som muliggjør effektiv utvikling og distribusjon av applikasjoner.

Plattformsteknikk markerer utviklingen fra isolert innsats til et harmonisert økosystem, og forbedrer utvikleropplevelsen og driftseffektiviteten.

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

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 prioriterer imidlertid snart kunsten å samarbeide – kommunikasjon, samhandling 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 plattformsteknikerteam er å skape en intern utviklerplattform (IDP) som overskrider begrensningene i 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, automatiseringsdyktig utforskende tester er sannsynligvis den mest effektive QA-ressursen 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 av etterfølgerne, som kan ha en annen tilnærming til bruken av verktøyene. 

Delte testplattformer: fremmer samarbeid

En delt testplattform ville derimot muliggjøre et produktivt samarbeid mellom profesjonelle testere, forretningsbrukere og utviklere. En slik plattform, som Copados Robot Testing, ville 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å en selvfølgelighet) kan testmiljøer distribueres effektivt i skyen, noe som gir alle interessenter tilgang ved behov og innsyn.

I mikrotjenesteæraen må funksjonaliteten til individuelle komponenter, orkestrert av plattformer som Docker og Kubernetes, vurderes nøye med tanke på kognitiv belastning og brukerinnvirkning. Her kommer prinsippene for ingeniørarbeid for pålitelighet i nettsteder (SRE) inn, og sikrer at systemene er pålitelige og at 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 plattformsteknikk 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 denne kompetansen innebygd. Derfor vinner brede applikasjonsplattformer på høyt nivå, som Salesforce, og utviklerplattformer, som Git eller Azure DevOps, stadig større utbredelse. Det samme skjer med testplattformer, men litt saktere.

Siden applikasjoner konstrueres 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 på 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 basert på forretningsprosesser og av natur er ende-til-ende-testing.

Opprettholde kvalitet gjennom 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å funksjonalitet for sluttbrukeren.

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.

Ta et verktøy som Postman som eksempel. Postman ble opprinnelig utviklet som et sideprosjekt for å forenkle API-arbeidsflyten under 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 funksjonene langt mer omfattende og tjener et bredere formål 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 verktøyet 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 de overskygger ofte den enkeltes ytelse.

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 trygg og effektiv måte.
    • Ansible: Et åpen kildekode-verktøy 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 server med åpen kildekode for automatisering, brukt til å automatisere deler av programvareutviklingen.
    • GitLab CI/CD: Tilbyr en effektiv måte å automatisere trinnene i applikasjonens utviklingslivssyklus på.
    • CircleCI: Tilbyr kontinuerlig integrasjon og levering for å hjelpe utviklingsteam med å distribuere 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 nettskytjenester.
    • Google Cloud Platform (GCP): Tilbyr en samling nettskytjenester.
  • Versjonskontrollsystemer:
    • Git: Et distribuert versjonskontrollsystem for å spore endringer i kildekode.
    • GitHub: En plattform for lagring og administrasjon av Git-repositorier.
  • Verktøy for sikkerhet og samsvar:
    • HashiCorp Vault: For å sikre, lagre og kontrollere tilgangen til token-er, 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 synlighet, 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 nøye, 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 utviklings- og leveringsforløp og en forpliktelse til kontinuerlig integrasjon og kontinuerlig utrulling. Effektive testmetoder og et verktøysett med fokus på automatisering er en forutsetning for vellykket plattformsteknikk.

Interessert i mer informasjon om kunstig intelligens og programvaretesting? Meld deg på QA Lead-nyhetsbrevet for å få med deg de nyeste trendene.

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