Distributionsstrategier
DevOps-metoder omfattar frekventa lanseringscykler som gagnar organisationer och deras slutanvändare på många sätt. Eftersom enskilda distributioner är mindre är de snabbare och mindre stressiga, men saker kan fortfarande gå fel. För att minska risken för problem måste du anta en distributionsstrategi som bäst passar din organisations behov.
Du känner redan till metoden "episk distribution", som vissa kallar "big bang"-strategin. Du vet att den här metoden inte fungerar bra för moderna program. Det finns flera andra strategier som blivit populära vad gäller modern drift. Var och en av dessa har egna styrkor och svagheter beroende på situationen.
Strategi för rullande distribution
Den löpande distributionsstrategin tar en gradvis metod för att introducera nya versioner av kod. Den nya versionen fasas in över tid. Instanserna av den nya koden ökas gradvis samtidigt som instanser av den gamla koden minskas. Detta innebär att gamla och nya instanser existerar samtidigt i organisationen. Till exempel kan du uppgradera programvaran på en server, virtuell dator eller container åt gången.
En fördel med den här strategin är att du kan övervaka den nya koden i produktionsmiljön för att säkerställa att den uppfyller dina prestanda, säkerhet, tillförlitlighet och andra standarder innan den distribueras i stor utsträckning.
Strategi för blågrön distribution
Den blågröna distributionsstrategin använder två separata miljöer som är exakt likadana. En är en testmiljö som innehåller den nya versionen av programvaran medan den andra är den aktuella produktionsmiljön. När du är nöjd med att programvaran fungerar korrekt och uppfyller dina standarder kan du utföra en fullständig övergång från den aktuella produktionsmiljön till den nya så att den nu hanterar all produktionstrafik.
Den blå miljön är din aktuella produktionsmiljö. Den gröna miljön är en exakt kopia av den. Först distribuerar du den nya versionen av programvaran i den gröna miljön, och när du är klar dirigerar du programtrafiken från den blå miljön till den gröna miljön, som nu är din produktionsmiljö.
En fördel med den här strategin är att du kan göra bytet nästan omedelbart, utan stilleståndstid. Det är också enkelt att växla tillbaka till blått om ett problem uppstår när du har skapat den gröna miljön.
Strategi för canary-distribution
Strategin för canary-distribution kombinerar vissa delar av den rullande distributionen med den blågröna distributionen. Du gör inte växeln på en gång, utan distribuerar i stället den nya versionen till en begränsad del av produktionsmiljön och flyttar sedan gradvis all trafik till den nya versionen. Programvaran distribueras i stegvisa steg till ett begränsat antal instanser eller användare tills du har verifierat att den fungerar korrekt och sedan distribueras till resten av infrastrukturen.
Namnet kommer från användningen av kanariefåglar kolgruvor som ett tidigt varningssystem. I en kanariedistribution kan du utföra automatiserad testning och använda övervakning och analys för att få en tidig varning om eventuella problem med den nya versionen i delmängden av instanser eller användare. På så sätt påverkas inte hela produktionsmiljön.
Funktionsflaggor
Funktionsflaggans idé är en annan strategi som kräver lite mer sofistikering från utvecklarnas sida. I stället för att ha två separata versioner av samma programvara, en gammal och en ny (förmodligen med nya funktioner) levererar vi en version av programvaran som innehåller både den gamla programvaran och de nya ändringarna (funktioner och så vidare). De nya ändringarna är som standard vilande och visas inte förrän ”funktionsflaggan” för ändringen aktiveras genom att vändas. Den flaggan kan ha många former, inklusive en rad i en konfigurationsfil, ett kommandoradsargument, ett särskilt svar från en onlineserver som programvaran konsulterar vid start och så vidare.
Ett starkt plus för den här metoden är den lätthet med vilken vi kan återställa om det finns ett problem, eller hur lätt det är att långsamt distribuera ändringar. Vi behöver inte skicka en ny version (med alla delar) till våra servrar eller kunder. I stället behöver vi bara aktivera eller inaktivera en lämplig flagga för att nedgradera eller uppgradera dem.
Bästa metoder för distribution
Oavsett vilken distributionsstrategi du använder finns det viss bästa praxis som hjälper dig att minimera risken när du distribuerar ny programvara eller en ny version av befintlig programvara:
Använd rätt verktyg, till exempel Azure Pipelines, för att skapa en pipeline för kontinuerlig integrering och distribution.
Integrera automatiserad testning.
Använd kommunikationskanaler för att meddela rätt parter om resultatet av testningen; det vill: aviseringsteam om distributioner misslyckas, stöter på problem och så vidare.
Övervaka problem omedelbart efter distributionen.
Ha en plan för att återställa om en ny versionsdistribution inte klarar hälsokontroller eller fungerar korrekt.