Konseptet «Alt som kode» (EaC) har opplevd en betydelig vekst de siste årene, drevet av flere sammenfallende faktorer.
Med fremveksten av «infrastruktur som kode» og DevOps-bevegelsen, ble «som kode» et populært uttrykk. Dette skjedde da IT-drift og systemadministratorer begynte å samarbeide for å automatisere endringer i IT-miljøer ved hjelp av gjenbrukbar kode. Deretter versjonskontrollerte de den samme koden på en måte som ligner den utviklere har brukt for å håndtere endringer i applikasjonskode i mange år.
Hvorfor er alt som kode relevant?
De fleste virksomheter er stadig mer avhengige av komplekse systemer. En enkelt server kan ikke dekke alle behov. Man må forholde seg til reguleringer, globalisering og delt maskinvare.
Mange deler av IT-infrastrukturen er outsourcet til selskaper som tilbyr «som en tjeneste» (aaS). Mikrotjenester blir stadig mer populære, i tillegg til de mange API-ene som forbinder systemer.
Det er et behov for infrastrukturadministrasjon for å imøtekomme ulike krav i forskjellige land og sikre etterlevelse. Det er viktig å sikre at alt fungerer smidig. Denne kompleksiteten gjør manuell IT-administrasjon vanskelig.
Vi trenger en metode for å administrere de voksende teknologistakkene som holder organisasjoner i drift. Her har vi en metodikk som er hentet fra utviklernes verden. Den involverer programmering, verktøy og automatisering, og er kjent som «alt som kode».
Hva innebærer «Alt som kode»?
Å behandle alle komponenter i et system som kode defineres som «Alt som kode». Dette betyr at både kildekode og konfigurasjon kan lagres i et depot, som for eksempel Git eller SVN.
I tillegg kan konfigurasjonen lagres fra topp til bunn (kommunikasjonsbrytere, bare-metal-servere, operativsystem, byggekonfigurasjoner, applikasjonsegenskaper, distribusjonskonfigurasjoner som kode) slik at alt kan spores og enkelt gjenskapes.
«Alt som kode» (EaC) inkluderer også systemdesign som lagres som kode. Infrastruktur var sentralt i den tradisjonelle IT-verdenen. Det krevde spesialkompetanse, fysisk maskinvare og kabler for å installeres riktig. Systemene var enten veldig verdifulle eller ble ikke oppdatert like ofte som de ble opprettet av de ansvarlige.
Cloud computing og skybaserte applikasjoner har gjort det enkelt og rimelig å skape virtuell infrastruktur. Koden som konfigurerer virtuelle miljøer, kan lagres i kode, slik at de kan gjenbrukes etter behov.
EaC er et effektivt verktøy for utviklere og IT-ingeniører. Det muliggjør en repeterbar og skalerbar tilnærming til oppgaver som å administrere applikasjonsdistribusjoner eller klargjøre infrastruktur, som ellers ville være kjedelige og manuelle prosesser.
EaC er like fordelaktig for utviklere og IT-ingeniører ved å la dem jobbe mer effektivt. De kan også bruke de samme verktøyene og konfigurasjonsfilene for å skalere operasjonene sine på tvers av forskjellige miljøer. Man drar også nytte av redusert risiko for menneskelige feil ved å benytte «alt som kode»-metoden.
Når alle arbeidsflytene er definert i kode, trenger ikke ingeniører lenger å bekymre seg for å overse noe eller ved et uhell klikke på feil knapp. EaC gjør revisjon mye enklere fordi man kan bruke EaC-konfigurasjoner for å finne ut hva som er gjort med systemene.
Hvorfor blir «Alt som kode» mer populært?
«Alt som kode» (EaC) har hatt stor vekst de siste årene på grunn av flere samvirkende faktorer. En av grunnene er at leverandører av verktøy er mer åpne for å omfavne all kode.
Som et resultat har de tatt i bruk en «EaC-først»-tilnærming for verktøykonfigurasjon og -distribusjon, der de antar at utviklere og IT-ingeniører foretrekker å administrere alt med kodefiler. Kubernetes er et godt eksempel.
Kubernetes kan administreres via et webgrensesnitt om ønskelig, men er designet for å administreres med kodefiler. Det samme gjelder for de fleste offentlige skytjenester og CI-servere. De kan ha valgfrie grafiske grensesnitt, men fungerer best når de administreres via kode.
EaC har blitt drevet av at mange admin- og utviklingsverktøy har blitt enige om felles konfigurasjonsformater. Så godt som alle EaC-kompatible verktøy bruker YAML og JSON som konfigurasjonsspråk.
Utøvere kan bruke samme konfigurasjonsfilformat og metode for å administrere alle verktøyene sine, takket være standardiseringen av formatene. EaCs evne til å administrere og bygge hele applikasjonsleveringsnettverk bidrar til økt popularitet.
Tidligere kunne EaC håndtere bare noen få verktøy i en CI/CD-arbeidsflyt. Nå er EaC eksponentielt mer nyttig, og lar deg administrere alle verktøyene dine via kode. Du kan eliminere andre verktøy og prosesser og sentralisere alle operasjoner ved hjelp av én enkelt tilnærming.
EaC er ikke et nytt konsept i kjernen. Det har eksistert i en stund i isolerte former. Nå er det en utbredt løsning for å håndtere spesifikke DevOps-arbeidsflyter.
Fordeler med «Alt som kode»
Det er flere grunner til at teknologiteam bruker en «alt som kode»-tilnærming i IT-drift.
Konsistens
Administratorer kan bruke enhetlige konfigurasjoner i ulike miljøer. Ingeniører kan unngå inkonsekvente konfigurasjoner ved å bruke «alt som kode», uansett om de konfigurerer infrastruktur, CI/CD-verktøy eller retningslinjer for tilgangskontroll i skyen.
Versjonskontroll
Administratorer kan overvåke hvordan konfigurasjoner endrer seg over tid og sikre at de er versjonskontrollerte. Dette ligner på kildekode. Det er mulig å se hvilke endringer som ble gjort før et problem oppstod eller gå tilbake til en tidligere versjon om nødvendig.
Skalerbarhet
Administratorer kan bruke en konfigurasjon på så mange prosesser eller ressurser som de trenger. Dette er en fordel for selskaper som vokser over tid. IT-team kan lage konfigurasjoner ved hjelp av kode som lar dem legge til instanser av en bestemt ressurs eller prosess uten å måtte rekonfigurere hver enkelt.
Revisjonsmulighet
Administratorer kan automatisk inspisere konfigurasjonsressurser ved å revidere kodefiler. Dette er mye mer effektivt enn å manuelt validere hver ressurs.
Portabilitet
IT-team som bruker «alt som kode» vil oppleve det enklere å definere konfigurasjonene sine med leverandørnøytral kode, i stedet for å administrere dem med forskjellige leverandørers konfigurasjonsverktøy.
For eksempel kan Selenium, et åpen kildekode-rammeverk for testautomatisering, brukes til å lage programvaretestskript. Dette betyr at administratorer raskt kan flytte testmiljøer fra lokale til skyen uten å måtte oppdatere eller lære nye verktøy.
Hvordan implementere «Alt som kode»?
Her er noen måter man kan bruke «alt som kode» på:
Infrastruktur som kode
«Infrastruktur som kode» innebærer at drifts- og utviklingsteam definerer ønsket tilstand for infrastrukturen sin ved hjelp av kode. Det betyr at du definerer infrastrukturen som skal klargjøres, og at du deretter kan endre den etter behov.
Sikkerhet som kode
«Sikkerhet som kode» kan bidra til sikrere systemer. Dette kommer til uttrykk i automatisk skanning etter sikkerhetsfeil og automatiske oppdateringer når det er nødvendig. Programvaren kan brukes til å administrere sikkerheten for IT-avdelinger.
Dette gjelder også håndtering av ulike compliance- og regulatoriske krav. Det kan for eksempel være at du må vise forskjellig innhold til folk i Europa og Amerika. Dette kan gjøres automatisk ved hjelp av en «som kode»-tilnærming.
Arkitektur som kode
«Arkitektur som kode» (AaC) lar deg definere alle komponenter som trengs for å kjøre forretningsapplikasjonen din. Det lar deg også distribuere den til forskjellige miljøer (dev/test, produksjon). Det er en kodeimperativ tilnærming som tillater versjonskontroll, gjennomgang, endringer og revisjoner.
Testing som kode
«Testing som kode» er et godt eksempel på testautomatisering. Det er mulig å automatisere forretningslogikkoperasjoner og UI-interaksjoner ved hjelp av testskript.
Distribusjon som kode
Den moderne distribusjonsflyten er et godt eksempel. Med moderne menes flyter som kan betraktes som kode. De administreres, oppdateres og vedlikeholdes som programvarekomponenter. Kode brukes til å lage avanserte CI/CD-pipelines, både enkle og komplekse.
Viktige ting å huske når du planlegger å implementere «Alt som kode»
- Det gjør det enklere for både IT-ingeniører og programvareutviklere å jobbe mer effektivt.
- For å bruke «alt som kode» i virksomheten din, må du endre tankesett.
- Teamets innsats er avgjørende for suksess.
- En av de mest attraktive egenskapene er muligheten til å følge prosedyrer og standarder av høy kvalitet.
- Det kan være vanskelig å teste infrastrukturkode. Automatiserte tester er nødvendig.
- Du kan ikke definere all infrastruktur for alle miljøer – utvikling, staging og produksjon – i én enkelt fil.
Konklusjon
«Alt som kode» (EaC) er en metode for programvareutvikling og DevOps som bruker kode for å administrere IT-ressurser. EaC har mange bruksområder innen «Infrastruktur som kode» og «Konfigurasjon som kode», i tillegg til andre IT-områder.
Selv om «Alt som kode» kan være et lovende sluttmål for mange organisasjoner, medfører det en investering i tid og ressurser å konvertere deler av en plattform til EaC. Derfor er det viktig å nøye vurdere hvor man bør investere ressursene. Plattformen vil ha deler som kan dra nytte av en EaC-tilnærming. Det viktigste er å identifisere disse områdene.