DevOps blir ofte omtalt som verktøy, pipelines eller stillingstitler. Men i sin kjerne er DevOps en organisatorisk filosofi og en metodikk som bryter ned tradisjonelle siloer mellom programvareutvikling (Dev) og IT-drift (Ops).
I tradisjonelle IT-organisasjoner har utviklere og driftsteam hatt motstridende insentiver:
Dette resulterte historisk i at utviklere kaster kode “over veggen” til driftsteamet, som deretter må håndtere manuelle distribusjoner, ukjente feil og nedtid. Utfallet ble trege leveranser, lav tillit og høy risiko ved hver eneste produksjonssetting.
+------------------+ Wall of +------------------+
| Utvikling | Confusion | Drift |
| (Dev: Ønsker | =====================> | (Ops: Ønsker |
| rask endring) | | stabilitet) |
+------------------+ +------------------+
DevOps oppstod som en løsning på denne konflikten ved å etablere delt ansvar for hele livssyklusen til en applikasjon—fra første linje kode til produksjonsdrift og overvåkning.
For å lykkes med DevOps må organisasjonen fokusere på fem sentrale byggeklosser:
Verktøy alene løser ingenting hvis ikke kulturen støtter det. DevOps krever en psykologisk trygg kultur hvor feil ses på som læringsmuligheter (post-mortems uten skyldfordeling), og hvor utviklere tar medansvar for drift («You build it, you run it»).
Alt som kan automatiseres bør automatiseres for å eliminere manuelle feilkilder:
I stedet for at et sentralt driftsteam blir en flaskehals, etablerer man Internal Developer Platforms (IDP). Dette gir utviklere selvbetjente verktøy for å opprette databaser, produksjonsmiljøer og overvåkning uten å måtte sende manuelle supportbilletter.
Når kode rulles ut hyppig, må du ha umiddelbar innsikt i hvordan systemet oppfører seg:
Korte iterasjoner og automatisert overvåkning gjør det mulig å oppdage feil på sekunder eller minutter fremfor uker. Ved kritiske feil skal automatisert rollback eller blue/green deployments raskt gjenopprette normal drift.
DevOps er ikke et mål i seg selv, men et middel til å levere bedre verdi til brukerne raskere og tryggere. Ved å kombinere automatisering, plattformtenkning og en kultur for kontinuerlig forbedring, skaper man ingeniørmiljøer som både er mer produktive og morsommere å jobbe i.