Platformsteknologi og DevOps er to tilnærminger som arbeider for å forbedre programvareutviklingsprosesser. Begge har som mål å effektivisere utviklingen av produkter, men de gjør det med ulike metoder.
DevOps fokuserer på å fremme samarbeid mellom utviklere og driftsteam. Platformsteknologi, derimot, skaper og vedlikeholder en sentralisert plattform. Her får DevOps-team tilgang til automatiserte, selvbetjente verktøy og arbeidsflyter som kan gjenbrukes.
Denne artikkelen utforsker platformsteknologi og DevOps, ser på hva hver tilnærming innebærer, og diskuterer fordelene deres. Vi vil også se på forskjellene og hvordan disse to disiplinene kan utvikle seg i fremtiden.
Hva er platformsteknologi?
Platformsteknologi handler om å designe, bygge og vedlikeholde infrastrukturen som trengs for programvareutvikling, med sikte på å øke utviklernes trivsel og produktivitet. Det gir utviklerne delte, gjenbrukbare og selvbetjente verktøy som er tilgjengelige fra et sentralt sted.
Platformsteknologer fokuserer på å skape og vedlikeholde de underliggende plattformene, verktøyene og prosessene som programvareutvikling er avhengig av. Dette bidrar til å øke påliteligheten og skalerbarheten til utviklingsinfrastrukturen, noe som igjen gir raskere levering av programvareprodukter.
I praksis vil utviklingsprosesser, teknologi og verktøy endre seg etter hvert som et produkt vokser og blir mer komplekst. Platformsteknologi sikrer at utviklingsprosesser og verktøy kontinuerlig utvikles i takt med produktet.
Dette inkluderer håndtering av utfordringer knyttet til testing, lagring, overholdelse av forskrifter og mer. Denne tilnærmingen sikrer at alt som trengs for å møte nye krav, er tilgjengelig i tide.
Platformsteknologer designer, bygger og administrerer verktøy og arbeidsflyter som utviklerne trenger for å jobbe effektivt og levere applikasjoner raskt. Med selvbetjent tilgang kan utviklere bruke verktøyene og funksjonene fritt, uten å måtte være avhengig av andre team.
For eksempel trenger ikke utviklere å be om tillatelse for å starte et nytt utviklingsmiljø. Slike godkjenningsprosesser kan være trege og føre til ineffektiv produktutvikling.
Selvbetjeningstilgangen løser disse problemene og gir utviklere rask tilgang til et bredt utvalg av funksjoner og muligheter.
Hvordan platformsteknologi utvikler seg
Platformsteknologi skaper et organisert sett med tjenester, prosesser, verktøy og ressurser som utviklere kan bruke uten å måtte administrere eller forstå dem i detalj. Denne tilnærmingen dekker et bredt spekter av utviklingsbehov.
Etter hvert som programvareapplikasjoner og utviklingsinfrastruktur blir mer komplekse, blir det vanskelig for utviklere å holde tritt. Det kan kreves at utviklere administrerer infrastruktur, men de har kanskje ikke de nødvendige ferdighetene eller ressursene for å håndtere ny teknologi.
Når team blir bedt om å håndtere oppgaver som overstiger deres kapasitet, synker produktiviteten, og risikoen for feil øker. Platformsteknologi fremstår som en løsning som kan forbedre utviklernes erfaring og øke hastigheten på produktlevering. Plattformen gir tilgang til skreddersydde, validerte selvbetjeningsverktøy og arbeidsflyter som kan gjenbrukes.
Platformsteknologi lager en intern utviklingsplattform der utviklere kan bygge produktene sine. Denne plattformen samler alle teknologier og verktøy for å skape en sentralisert samling av selvbetjeningsverktøy og prosesser.
Denne ingeniørdisiplinen bruker et bredt spekter av verktøy som gir utviklere frihet til å velge de de ønsker.
Bildekilde: Platformengineering.org
Når den er på plass, gir den en «gylden vei» som DevOps-team kan bruke for å utvikle produkter. Det er en selvbetjent infrastruktur der utviklere kan sette opp utviklingsmiljøet med de verktøyene de trenger, uten å måtte vente på godkjenning.
Platformsteknologi kan sees på som det neste steget for DevOps, og kan hjelpe store selskaper med å utvikle selvbetjente konfigurasjoner og standarder som de tilbyr som interne produkter. Det hjelper utviklere med å følge DevOps-prinsipper, men tilnærmingen kan variere fra organisasjon til organisasjon.
Fordeler med interne utviklingsplattformer
Platformsteknologi tilbyr en rekke fordeler, og selskaper bør ikke nøle med å implementere den. De viktigste fordelene inkluderer:
- Det bidrar til å raskere levere programvareapplikasjoner, noe som hjelper bedrifter med å realisere forretningsverdi i tide.
- Gir gjenbrukbare verktøy med selvbetjeningsfunksjoner og automatiserte infrastrukturoperasjoner. Dette forbedrer produktiviteten, utviklernes erfaring, DevOps-praksis og skaper en sikker og skalerbar utviklingspipeline.
- Akselererer programvareutvikling. De resulterende interne utviklingsplattformene tilbyr automatiserte prosesser og selvbetjent infrastruktur, noe som reduserer bortkastet tid og byråkrati.
- Forbedrer spesialisering og fokus: Utviklere kan konsentrere seg om utvikling. CI/CD-rørledningen, infrastrukturen og distribusjonssystemer er komplekse og krever spesialiserte ferdigheter. Med platformsteknologi trenger ikke utviklere å forstå systemene, og kan fokusere på å utvikle programvare.
Hva er DevOps?
DevOps er en tilnærming som har som mål å øke effektiviteten og frekvensen av programvareutgivelser. Den bryter ned barrierene mellom team og fremmer samarbeid.
Denne utviklingsmetoden bruker automatisering, kontinuerlig overvåking, integrasjon, kontinuerlig levering, testing, konfigurasjonsadministrasjon og verktøy for hendelseshåndtering for å støtte prosessene i CI/CD-pipelinen.
Utviklere samarbeider med driftsteam for å redusere utviklingstiden og hjelpe bedrifter med å lansere nye produkter og funksjoner raskt og ofte.
Målet med DevOps er å automatisere og forkorte tilbakemeldingssløyfen og programvareutviklingssyklusen. Den effektiviserer fasene av programvareutvikling, som planlegging, oppretting, bygging, konfigurasjon, overvåking og verifisering.
Fordeler med DevOps
DevOps gir mange fordeler, blant annet:
- Raskere utvikling og distribusjon av programvare og funksjoner
- Forbedret og stabilt arbeidsmiljø
- Bedre produktkvalitet
- Kontinuerlig levering av programvareprodukter og funksjoner
- Bedre, pålitelige og raskere problemløsningsteknikker
- Reduserte kostnader for programvareutvikling
Platformsteknologi vs. DevOps
Her er noen av de viktigste forskjellene mellom platformsteknologi og DevOps:
Platformsteknologi | DevOps |
Bygger en intern utviklingsplattform som minimerer behovet for koordinering. | DevOps-praksis har som mål å forbedre koordinering og samarbeid mellom utviklere og drift. |
Skaper en selvbetjeningsplattform for DevOps-verktøy, prosesser og arbeidsflyter. | DevOps-teamet velger ofte verktøyene som hjelper dem med å nå sine mål. |
En disiplin som gir DevOps-team en skalerbar, sentralisert selvbetjeningsplattform for sine arbeidsflyter og verktøy. | Forbedrer samarbeidet mellom utviklings- og driftsteam. |
En organisasjon kan først implementere plattformen etter at DevOps er implementert. | DevOps-miljøet implementeres før plattformen. |
Definerer validerte og utprøvde verktøy og arbeidsflyter som DevOps-team bruker basert på utviklernes behov. | Involvert i stadier av utviklings- og driftslivssyklusen som planlegging, koding, bygging, testing, drift, overvåking, distribusjon og utgivelse av programvare og funksjoner. |
Jobber med å støtte interne produkter og funksjoner, men håndterer ikke kunder og eksterne brukere direkte. | DevOps-teamene er ansvarlige for å håndtere kunder og brukere. |
Involverer bare distribusjon, drift og overvåking. | Jobber ikke på forretningsprosjekter, men skaper og vedlikeholder plattformen som DevOps-team trenger for å gjøre jobben sin. |
DevOps-team kan ta og jobbe med forretningsprosjekter mens de utvikler programvare. |
Verktøykombinasjonene i en intern utviklingsplattform kan variere mellom ulike miljøer.
Typiske platformsteknologiverktøy:
- Kubernetes
- Crossplane
- GitLab CI
- Backstage
- ArgoCD
- Ques
DevOps-verktøy forbedrer samarbeid, automatisering og andre prosesser som forbedrer produktkvalitet og leveringstid. Tilgjengeligheten av verktøy og kompetanse har ført til at mange organisasjoner har tatt i bruk DevOps. I praksis bruker team ulike kombinasjoner av verktøy.
Noen populære verktøy inkluderer:
- Jenkins
- Docker
- Puppet
- Gradle
- CircleCi
- Buddy
- Git
- Github
- Chef
- Kubernetes
- Ansible
- Terraform
Platformsteknologi utvikles etter hvert som DevOps modnes og skaleres
I dag ser vi at platformsteknologi utvikles etter hvert som DevOps modnes og skaleres. Det ser ut til å være det neste steget i utviklingen av DevOps. DevOps har nesten nådd et modenhetsstadium, og platformsteknologi ser ut til å være neste fase. Men med skalering kommer også nye utfordringer og muligheter.
Platformsteknologi gir selvbetjening, gjenbrukbare prosesser og verktøy. Dette gjør at utviklere slipper å finne opp hjulet på nytt. De trenger ikke å utvikle nye verktøy, men kan bruke det som allerede fungerer. DevOps-praksis følger gjerne en viss utviklingssti mot modenhet.
DevOps-modenhetsmodellen viser hele DevOps-utviklingsreisen. Den hjelper med å identifisere tre ting:
- Vurdere nåværende status for DevOps-praksis
- Identifisere områder som trenger forbedring
- Definere trinnene som trengs for å nå DevOps-målene
En organisasjon kan vurdere sin kapasitet innen kultur og strategi, automatisering, struktur og prosesser, samt samarbeid og deling.
Ideelt sett omfatter DevOps-modenhetsmodellen følgende fem transformasjonstrinn:
- Innledende fase: Her skilles tradisjonelle utviklingssiloer i utvikler- og driftsteam.
- Administrert fase: Her endres tankesettet til utviklerteamene til å fokusere på smidig utviklingspraksis. Det implementeres også automatisering for operasjonene, samtidig som det oppmuntres til samarbeid mellom Dev- og Ops-teamene.
- Definert fase: Transformasjonsreisen starter ved å bruke definerte prosesser og automatiske prosedyrer.
- Målt: Prosessene og arbeidsflytene evalueres og forbedres kontinuerlig.
- Optimalisert: Organisasjonen ser fordelene med DevOps og løser eventuelle hull for å forbedre effektiviteten.
Etter hvert som DevOps modnes og skaleres, når den de målte og optimaliserte stadiene, hvor organisasjonen begynner å analysere praksisen og verktøyene. Dette inkluderer å sjekke hvordan team bruker verktøy for å løse det samme problemet. Det er da man får en mulighet til å identifisere problemområder og ineffektivitet.
For å optimalisere systemene kan organisasjoner bruke platformsteknologi til å lage selvbetjente, gjenbrukbare verktøy. Disse verktøyene kan så administreres fra et sentralt sted, noe som gjør det mulig for team å bruke de samme verktøyene og prosessene i stedet for å utvikle egne.
Kan platformsteknologi dominere DevOps?
Platformsteknologi er en implementering av DevOps-praksis og -konsepter, og ikke en erstatning for det. DevOps handler om å bruke prosesser, verktøy og samarbeid for å forbedre programvarekvaliteten og utviklingssyklusen. Det benytter ulike praksiser og verktøy for å effektivisere utvikling, overvåking og administrasjon.
Platformsteknologi tar disse prosessene, verktøyene og beste praksisene, og binder dem sammen for å skape gjenbrukbare, selvbetjente tjenester og verktøy. Disse kan brukes av ulike team i hele organisasjonen.
Platformsteknologi øker utviklernes produktivitet ved å sikre konsistens og effektivitet. Den gir en brukervennlig utviklingsplattform som tilbyr selvbetjente gjenbrukbare verktøy med automatiske infrastrukturprosesser.
Utviklere kan få tilgang til gjenbrukbare konfigurerbare komponenter og tjenester. Plattformen tilbyr fordeler som standardiserte produksjonskomponenter, verktøy og automatiserte prosesser.
For eksempel, hvis hvert produktteam ønsker å implementere en tjeneste for hemmelighetsadministrasjon, kan det oppstå mange ulike mekanismer i organisasjonen. I stedet for at hvert team bygger sin egen mekanisme, kan platformsteknologi tilby tjenesten sentralt.
Dette fører til et standardprodukt, gjenbrukbarhet og redusert bortkastet tid. Det gir også repeterbarhet, som er et viktig element i DevOps-modenhetsmodellen.
Fremtiden for platformsteknologi og DevOps
Fremtiden for både platformsteknologi og DevOps ser lovende ut. De nåværende implementeringene av platformsteknologi gir allerede en rekke fordeler, og dette vil bare øke etter hvert som disiplinen utvikler seg.
Dette vil gjøre arbeidet til DevOps-teamene enklere, slik at de kan fokusere mer på å bygge applikasjoner i stedet for å prøve å forstå infrastruktur og produksjonsmiljøer.
Selv om hovedfokuset er på kjøretidsmiljøet (infrastruktur, programvareutgivelsespipeline), gir det også sekundære funksjoner som sertifikat- og hemmelighetsstyring, kaosøvelser og automatisert katastrofegjenoppretting. Dette vil sannsynligvis utvikle seg etter hvert.
Noen selskaper velger å fortsette med DevOps uten platformsteknologi, men på sikt kan de bli mindre konkurransedyktige, spesielt hvis de har flere DevOps-team som bruker ulike mekanismer for å utføre samme oppgave.
Platformsteknologi støtter standardisering av utviklingssyklusen. Bruken av det vil sannsynligvis øke etter hvert som det utvikler seg og omfatter flere områder enn bare verktøy og prosesser. Det vil fortsette å endre seg etter hvert som praksiser, teknologier og andre deler av feltet utvikler seg.
For å forbedre effektivitet og produktkvalitet bør organisasjoner vurdere platformsteknologi, som gir team tilgang til standard, selvbetjente produkter fra et sentralisert sted. Dette vil akselerere utviklingen, og samtidig forbedre forretningsverdi og inntekter. Gartner spår at omtrent 80 % av selskapene vil ha etablert platformsteknologiteam innen 2026.
Konklusjon
Platformsteknologi er en nyttig disiplin for å forbedre prosesser for programvarelevering, uten å gå på kompromiss med sikkerhet, effektivitet eller kvalitet. Teknikken automatiserer og forenkler ressursforsyning og -administrasjon. Dette gjør det mulig for utviklere å levere programvare og funksjoner raskere, og gi verdi til kundene.
Platformsteknologi er en effektiv måte å skalere opp og utnytte fordelene med DevOps.
Du kan også lese om DevOps-automatisering.