QA - Bloggen

Glöm DevOps och sikta på NoOps istället!

Skriven av QESTIT Team | 2024-06-04 08:43

Det har pratats otroligt mycket om DevOps de senaste åren, ibland ses det nästan som någon form av universallösning för alla möjliga former av utmaningar inom traditionell mjukvaruutveckling. Men faktum är att utmaningarna med DevOps är många, så många att det inte ens är lönt att försöka lista dem. Därför vill jag uppmana dig att sikta på NoOps istället, vilket är betydligt enklare och smidigare!  

 

DevOps

DevOps är ett resultat av den agila metodikens behov av snabba cykler och handlar om samarbetet mellan utveckling (Dev) och IT Operations (Ops). Det handlar om att möjliggöra en kultur och miljö där det går att bygga, testa och lansera ofta, snabbt och tillförlitligt. Fokus ligger på kulturella och strukturella förändringar med syfte att föra samman de som utvecklar och de som ansvarar för infrastrukturen. Det finns inte en specifik definition eller beskrivning av DevOps utan det är varierande blandningar av kultur, struktur, arbetssätt och en uppsättning av verktyg som används. DevOps är ett koncept där gränsen mellan utvecklings- och operations-team är suddig och medlemmarna i varje team tar något av det andra teamets ansvar. I ett NoOps-scenario skulle dessa två team vara ett och samma.

 

 

Vanliga utmaningar med DevOps 

Utmaningarna med DevOps är som sagt många, men låt oss titta på de mest uppenbara: 

 

  • DevOps är inte definierat. Ingen kan beskriva DevOps och alla försök till beskrivningar skiljer sig från varandra. Kortfattat, alla pratar om DevOps men ingen vet vad som menas med det. Hur inför man något som är så pass odefinierat och luddigt? Jo, man skapar sin egen tolkning och version. Ofta blir det tyvärr det sämsta av två världar, man behåller begränsningarna av det gamla och får inte nyttan av det nya.
  • DevOps evOps används också ofta felaktigt som synonym till Continuous Deployment eller Continuous Delivery vilket skapar ännu mer förvirring och otydlighet.

  • Förmodligen borde DevOps handla om att möjliggöra en kultur och miljö där det går att bygga, testa och lansera ofta, snabbt och tillförlitligt. Med fokus på kulturella och strukturella förändringar med syfte att föra samman utveckling (Dev) och IT Operations (Ops). Det här är ingen liten utmaning och jag har aldrig sett någon lyckas med detta. Utveckling pratar Agilt och IT Operations pratar ITIL, två världar som i det närmaste är oförenliga. Och om det skulle lyckas, hur gör man då? Skapar en tredje konstellation, ett DevOps-team? Hur får man då tre olika team, kulturer och intressen att få samsyn?

Glöm därför DevOps och sikta istället på NoOps som är väldefinierat, enkelt och tydligt!

 

 

Vad är NoOps?

NoOps (No Operations) är ett koncept där IT-miljön är så automatiserad och abstraherad från den underliggande infrastrukturen att det inte finns något behov av ett dedikerat IT Operations-team för att hantera drift, förvaltning och infrastruktur.

Forrester myntade begreppet NoOps, som de definierar som "målet att helt automatisera distributionen, övervakningen och hanteringen av applikationer och den infrastruktur som de kör på."

 

De två huvudsakliga drivkrafterna bakom NoOps är ökad IT-automatisering och cloud computing. NoOps är ett koncept där utvecklings-teamet också är operations-teamet och tar helhetsansvar för allt från design, utveckling, test, driftsättning, monitorering och förvaltning i en kontinuerlig, iterativ och inkrementell loop. Det centrala är den höga graden av automation mellan alla dessa faser i loopen. Detta uppnås med en uppsättning av verktyg som används i en så kallad toolchain där varje verktyg passar in i en eller flera av faserna.

 

Enligt Glenn O'Donnell (Forresters Senior Analyst) som är medförfattare till rapporten "Augment DevOps with NoOps", är det troligt att vissa verksamhetspositioner kommer att bli onödiga medan andra kommer att utvecklas från en teknisk inriktning till ett mer affärsinriktat fokus.

 

 

Traditionellt

Traditionellt ansvarar utvecklingsorganisationen för att samla in affärskrav, skriva kod, testa (QA) och om kraven är uppfyllda - släppa mjukvaran till driftsorganisationen (IT Operations) som distribuerar och underhåller systemet från den punkten. I ett NoOps-scenario skulle underhåll och andra uppgifter som utförs av driftsorganisationen automatiseras.

 

 

Drift & Förvaltning sker före produktionssättning

Med NoOps sker mycket av det traditionella IT Operations-arbetet innan kod når ut i produktion. Varje release inkluderar övervakning, loggning och A / B-tester. CI-pipelines kör automatiskt enhetstester, säkerhetsskannrar och policykontroller vid varje commit. CD-pipelines kör automatiskt flera nivåer av tester, paketering och deployment sker automatiskt. Tester, monitorering, loggning, säkerhet och icke-funktionella krav implementeras nu före release istället för under panik i efterdyningarna av ett kritiskt avbrott.

 

Att ha krav, design, utveckling, test, drift, säkerhet, förvaltning, användare och till och med viktiga affärsaktörer involverade från början säkerställer att dessa automatiserade uppgifter och kontroller är på plats, korrekta och effektiva innan det är för sent.

 

 

Slutsats

Termen "NoOps" kan vara impopulär för vissa medlemmar i DevOps-rörelsen, eftersom vissa anser att den utesluter IT Operations. Vi vill istället beskriva det som att NoOps är nästa nivå av - och målet med DevOps.