Få fart på utrullingen

En av årets viktigste utviklingstrender er Devops, som samkjører smidig utvikling med fossefallsdrift.

Publisert Sist oppdatert

Smidig utviklingsfilosofi har vunnet fram for applikasjonsutvikling de siste ti åra, med scrum/mølje-metodikk som den mest populære.

Bedre prosjekter og raske resultater bidrar til populariteten.

Samtidig er mindre gjort når det kommer til utrulling og drift, og feilhåndtering og fikser går langt i fra like greit når app-en er sluppet fra utvikling og rulles ut i produksjonsmiljøet.

I driftsmiljøene er det ulike implementeringer av strukturerte kvalitetssystemer. Slike ITIL-inspirerte systemer er i praksis fossefallsmetodikk, og konflikten mot smidig utvikling er like åpenbar som om vi snakket om to typer utviklerfilosofi.

(Forvirret over kompliserte utviklerutrykk? Se ordforklaringer i bunnen av denne artikkelen)

I magisk kvadrant

Det er her samkjøringen under hatten "Devops" kommer inn. Analysebyråene Gartner og Ovum listet dette som en av de sterkeste trendene for 2012. Så seint som i juli listet Gartner dette som element i deres berømmelige magiske kvadrant knyttet til levetidshåndtering av applikasjoner.

Ideen bak Devops er å lage en strukturert samkjøring mellom utviklere og driftere, slik at nye tjenester og applikasjoner kommer i produksjon fortest mulig. Det ligger også en returkanal som skal samkjøre feilfiks med endringshåndtering på en slik måte at farten på denne type service også går opp.

Frikopling fra drift

Målet er flere tjenester raskere til brukere og kunder, og raskere behandling av tilbakemeldinger og feil. Dette skal skje uten at sikkerhet og stabilitet i driftsmiljøet rammes.

-- Smidige rutiner er en de facto utviklerstandard, og løser mye av utfordringene i effektiv utvikling av programvarekode, nærhet til kundene og deres krav, og tester av koden som sådan. Men smidig filosofi frikoples lett fra krav og organisasjon. Dermed slipper utviklerne ferdig testet kode som så igjen må testes og tilpasses det aktuelle driftsmiljøet. Da begynner tiden fort å gå, sier Martin Rydén, nordisk produktsjef for Rational-løsningene i IBM.

Rational inneholder utvikler- og prosjektverktøyene i programvaredivisjonen til IBM. Rydén er veteran i IBM med fartstid siden 1999, og har vært produktsjef det siste året.

-- Gjeldende kvalitetsforventning hos utviklere er også at det skal leveres utviklete applikasjoner og tjenester med bra nok kvalitet. Bug-fiks og justering kommer etter praktisk bruk. Det går gjerne på tvers av kravene til kvalitet som ligger i et itil-systemert driftsmiljø, forklarer Rydén.

Stabilitet blir problematisk

Et typisk krav, ikke ueffent, for gode it-systemer er høy stabilitet med lite nedetid. Det fungerer fryktelig dårlig med fersk programvare med akseptabel kvalitet – der ligger det implisitt bugs og fare for feil. I en app-verden kan det gå, i en itil-oppetidsverden er det ødeleggende.

Devops har vokst fram som et resultat av medarbeiderne i it-tjenesten fant seg selv i en veritabel storm av app-er og applikasjoner som de hadde null kontroll over forløpet til, men med krav om rask implementering. For utviklerne førte samme situasjon til fragmentering av app-er og fikser, og misfornøyde kunder som fikk for lite levert for seint.

-- Dette er særskilt viktig i miljøer som bank- og finans, der kundene krever nye tjenester og systemene ikke kan feile over lang tid. Dette er også miljøer som er Java-tunge. Devops er derfor systemer som gir nye muligheter i et område der Java spiller en tung rolle, poengterer Rydén.

Passer med Java

Han mener at Java-miljøer har en særskilt interesse i å se nærmere på Devops. Tjenesteorienteringen er der, og Devops gir en mulighet for at nye Java-app-er kommer i produksjon raskt. Integrasjonstest mot nye tjenester blir enklere. Java er sterkt til stede i store bank- og finanssystemer, der effektiv testing av relasjoner og avhengigheter er en forutsetning for at nye digitale tjenester skal kunne tilbys.

Den store utfordringen er ikke den tekniske siden. Det er organisatorisk og kulturelt endringer må på plass. Den mindre tekniske utfordringen er at de færreste organisasjoner har lagt til rette for raske utrullinger fra utvikling til produksjon. Men man kan ikke koste på seg å bruke tid i dette leddet lenger. Marked og kunder krever flere og bedre tjenester og de vil ha raske leveringer – både av utvikling og utrulling.

Verdiløs før produksjon

Tanken bak Devops er å smelte sammen utvikling med utrulling og drift ut fra en forretningsorientering. Denne er at verdien av en ny applikasjon er null inntil den tas i bruk. Det er derfor en felles i interesse for både utviklere og it-tjenesteleverandøren å få opp farten fra krav til applikasjonen starter å tjene inn penger.

Det sentrale grepet er å utvikle slik at hver bygg av applikasjonen i teorien skal gå i produksjon. Dette gjøres ved at testing av koden ikke lenger bare gjøres av koden som sådan, men også av implikasjonene for drift. Dette involverer overvåking, sikkerhet, yteevne og at app-en testes på ekte data, kopiert ut fra driftsmiljøet. Spesielt overvåking av app er viktig å få testet – kan den overvåkes, kan den administreres. Dette forutsetter automatisering og gjensidig tillit mellom tjenesteleverandører og utviklere.

Dersom det fungerer som det skal, vil raske leveringer også innebære at returkanalen med feilmeldinger og nye krav ikke blåser driftsstabiliteten av skinnene. Kjernen er at endringshåndteringen og endringsdatabasen takler at denne prosessen skal gå fort. Det forutsetter dermed at så mye som mulig at testingen kan automatiseres, slik at tempoet er høyt og kostnadene lave.

Tillit og automasjon

For at dette skal fungere, er det ikke nødvendigvis slik at dette må ligge i enten utviklings- eller driftsmiljøet. Det er fullt ut mulig, og av og til ønskelig, at dette ledes av en utenfor begge miljøet. Riktignok må vedkommende ha tilstrekkelig med kontrollmekanismer.

-- En effektiv måte å forankre dette er å legge det inn i ledermålsystemene, som en del av KPI-ene der, sier Rydén.

Han forteller at IBM naturlig nok støtter dette gjennom utviklerverktøy som ligger i Rational-familien, og at de har et samarbeid med Tivoli-familien av programvare fra IBM. Tivoli er administrasjons og automasjonsprogramvaren hos IBM Software.

-- Det er også en utfordring å få til testmiljø som faktisk er stort nok til å få testet applikasjoner skikkelig i svært stor skala. Egne nettskytjenester i det vi kaller "SmartCloud" skal gjøre denne testmuligheten mulig selv for svært små utviklermiljø, understreket Rydén.

Omleggingen til denne måten å gjøre programvareutvikling på er ikke gjort i en håndvending. Rydén mener at det er forutsetning at organisasjonen allerede er testdrevet. Deretter tar man app for app og tar i bruk Devops for utvikling og implementering.

DevOps:

Kombinasjon av Development og Operations, utvikling og drift. Utviklermetodikk hvor kommunikasjon, samarbeid og integrasjon mellom utviklere og it-leverandørorganisasjon er grunnlag for rask utvikling og implementering av nye applikasjoner.

Agile Software Development:

Smidig programvareutvikling – filosofien som ligger i grunn for et sett med utviklermetoder der samarbeid og fleksibel organisering kombinert med egenkontroll, tydelige tidsfrister og iherdig testing og rask endringshåndtering skal gi rask kodeutvikling og løsningslevering.

Scrum:

Etter rugby-spillet, «mølje», den mest brukte smidige utviklingsmetodikken.

ITIL:

De-facto samleuttrykk for flere typer sett med kvalitetsrutiner for produksjon av stabil og forutsigbar it-drift.