Hvad er DevOps?
Hvis du følger vores blog, ved du allerede, hvad DevOps er. Hvis ikke, er her en hurtig opsummering og en artikel, som du kan læse om DevOps-kulturen:
DevOps-metodologien forbedrer kommunikationen mellem dine udviklere og Ops på projekter. Målene med DevOps er følgende:
- Spar tid på løsning af hændelser
- Lancér nye funktioner hurtigere
- Reducer risici gennem automatisering af processer
- Signifikant øget tilfredshed hos dine kunder, og dine udviklere på samme tid.
For at gøre dette taler vi om feedback loop. Det er et DevOps-koncept, der er baseret på at måle effekten af udviklingen for at kende dens effektivitet og fortsætte med at lære. Dette feedbackloop er nøglen til at nå DevOps-målene og til at forbedre din software og dit teams proces med succes. Det vil også hjælpe dine teams med at levere kvalitetskode.
I dag drager 20 % af alle applikationsudviklingsprojekter ifølge IDC fordel af en DevOps-tilgang. I 2021 vil dette tal stige til mellem 35 og 40 %. Det er ikke tilfældigt, at så mange it-teams er ved at indføre DevOps-metoden til projektet.
DevOps-principperne
Anvendelse af DevOps-metoden i dit team til softwareudvikling kommer til at ændre din organisation radikalt. Det vil ændre den måde, som dit udviklerteam koder og implementerer releases på. Den er baseret på 6 nøgleprincipper:
- Automatisering
- Iteration
- Selvbetjening
- Kontinuerlig forbedring
- Kontinuerlig testning
- Samarbejde
Automatisering gør det muligt for udviklere og Ops at forenkle processen og gør det muligt for teams at være mere produktive. Da automatisering reducerer antallet af manuelle handlinger, forbedrer det udviklingskvaliteten og softwarens sikkerhed. Mens iteration fremskynder udviklingsprocessen takket være hurtigere slutbrugerfeedback. Selvbetjeningen fremskynder også udgivelserne ved at give udviklerne mulighed for selv at implementere applikationer on-demand. Kontinuerlig forbedring er med til at gøre processen mere flydende. Efter hver hændelse er det faktisk en del af DevOps-processen at foretage en post mortem-undersøgelse. En post mortem er en registrering af hver enkelt hændelse, dens indvirkning, de foranstaltninger, der er truffet for at løse den, årsagen til problemet og de foranstaltninger, der er truffet for at forhindre, at det sker igen. Kontinuerlig testning giver mulighed for hurtigere udgivelser og højere kvalitet på samme tid. Og endelig, men ikke mindst, er samarbejdet mellem udviklere og operativ afdeling nøglen til at kombinere indsatsen og opnå hurtigere succes.
DevOps-processen
DevOps-processen består af en række trin. Her er et diagram, der kan hjælpe dig med at visualisere:
I rækkefølgen er DevOps-processens trin følgende:
- Planlæg: Dette er den del af projektet, hvor du organiserer opgaverne, tidsplanerne og opsætter dine projektstyringsværktøjer. Ideen er at planlægge opgaverne ved hjælp af brugerhistorieprocessen fra den agile metodologi. Skriv billetter i form af en brugerhistorie vil give udviklere og Ops mulighed for at forstå, hvilken udvikling der skal udføres og hvorfor. En perfekt brugerhistorie som en hvad (hvem, hvor, hvor, udløser), et hvorfor og acceptkriterier. (Eksempel: Som bruger, i min kundekonto, når jeg klikker på “option”, åbner jeg en popup, og jeg kan ændre mit navn og fornavn).
- Kode: Her foretager udviklerne kodeudvikling og kodegennemgang. Når koden er klar, sammenføjer de den. I DevOps-praksis er det vigtigt at dele et kodeværktøj mellem Ops- og udviklerteams, f.eks. Github eller Gitlab.
- Build: Dette trin er det første i retning af automatisering. Målet her er at bygge kildekoden til et ønsket format, kompilere, teste og udrulle et bestemt sted i infrastrukturen. Når dette trin er sat op, kan værktøjerne til kontinuerlig integration (CI) og levering (CD) kontrollere og verificere kildekoden fra Source Code Management og bygge den.
- Test: Den kontinuerlige testproces reducerer risici. Automatiske tests sikrer, at ingen fejl bliver implementeret i produktionen. Du er nødt til at implementere testværktøjer i din arbejdsgang for at sikre den bedste udviklingskvalitet for din software.
- Frigivelse: Koden har bestået testprocessen (kontinuerlig integration) og er klar til at blive implementeret.
- Deploy: Det operationelle team er ved at implementere den nye funktion i produktionen. Men da automatisering er et af DevOps-principperne, er det muligt at opsætte kontinuerlig implementering.
- Betjen/konfigurer infrastruktur: Ops opbygger eller vedligeholder en skalerbar infrastruktur, infrastruktur som kode og kontrollerer sikkerhedsproblemer og loghåndtering.
- Overvåger: Overvågning er et vigtigt skridt, da det gør det muligt at løse hændelser hurtigere og skabe en bedre oplevelse for slutbrugeren.
Da DevOps har til formål at øge dine kunders tilfredshed betydeligt, starter dine teams naturligvis igen trinene med en ny funktion til din software eller applikation. Derfor tegner vi altid DevOps som et uendeligt loop.
Implementering af DevOps i dit team
Hvis dit team endnu ikke har implementeret en DevOps-proces eller endda en Agile-proces, kan det virke forvirrende, især fordi det betyder at skifte ikke kun organisationen, men også kulturen i dit team.
For at indføre DevOps i dit team skal du tage dig god tid, gå skridt for skridt og ikke haste det. Her er hvordan du gradvist kan implementere denne nye kultur og organisation:
- Start med at ændre tankegangen i dine teams. Uden værktøjer kan DevOps-processen ikke eksistere, men det er ikke nok, udviklere og Ops skal forstå og være interesseret i hinandens arbejde. Kort sagt skal udviklere og Ops lære at samarbejde.
- Implementer en agil udviklingsproces. De fleste DevOps-projekter anvender Scrum- eller Kanban-metodologierne fra Agile.
- For at kunne gennemføre det fjerde trin bør du indføre cloud computing (privat, offentlig eller hybrid cloud).
- Automatiser din softwareudrulning takket være kontinuerlig integration (CI), så udviklerne nemt kan skubbe en ny funktion.
- Brug kontinuerlig testning af software for at reducere risici.
- Implementer kontinuerlig implementering (CD), færre manuelle handlinger er der, hurtigere kan du implementere nye udgivelser i produktionen.
Hold dig for øje, at tilføjelsen af disse processer vil ændre din organisation og skabe nye behov. For eksempel kan dit team have brug for uddannelse til de nye DevOps-værktøjer, der er blevet implementeret.
Du vil nå det ægte DevOps-miljø, når din udviklingsproces vil være så automatiseret og agil som muligt. Hvis du har spørgsmål til et af trinene i processen, er du velkommen til at kontakte os.