Blue-Green Deployment vs. Canary Deployment: Key Differences

De implementatiefase van softwarelevering speelt een substantiële rol in de hedendaagse softwareontwikkeling, vooral in een cloudomgeving.

Desondanks is het ook een van de meest onderschatte opleveringsfasen. Bedrijven investeren meestal niet genoeg tijd en energie om de implementatie snel, betrouwbaar, geautomatiseerd of iets dergelijks te maken.

Meestal zie ik nog steeds verschillende vormen van handmatige inzetprocedures. In betere gevallen tenminste met een goed gedocumenteerde stappenchecklist. In het ergste geval slechts willekeurige plannen die in de laatste minuten door improvisatie zijn ontstaan.

Geautomatiseerde implementatieprocedures zijn altijd een doel op afstand en een tijdelijke aanduiding voor de routekaart voor de korte tot middellange termijn, maar de daadwerkelijke weg er naartoe is hobbelig en onvoorspelbaar. Maar het hebben van een volledig geautomatiseerde en betrouwbare implementatieprocedure is de sleutel tot aanzienlijke besparingen in de loop van de tijd. U kunt dan de moeite wegnemen die het grootste deel van het ontwikkelteam gewoonlijk besteedt aan het implementeren van elke productierelease.

De implementatiestrategieën van Canary en Blue-Inexperienced profiteren van al deze voordelen en voegen meer, hoge beschikbaarheid en snelle installatie- en rollback-processen toe. Waardoor het staff nog vaker en zonder slapeloze nachten kan releasen. Laten we eens kijken naar wat ze brengen en hoe ze verschillen.

Blauw-groene implementatie: een overzicht

Een diagram dat de verschillende fasen van een project weergeeft.
Bron: cncf.io

Blue-Inexperienced-implementatie vermindert de downtime en het risico van nieuwe softwareversies door twee identieke omgevingen te creëren: actief (blauw) en inactief (groen).

De actieve omgeving is de plek waar de huidige versie van de software program draait en waar gebruikers productieverkeer genereren. In de inactieve omgeving wordt de nieuwe versie van de software program geïmplementeerd en getest.

Zodra de nieuwe versie is getest en gereed is, wordt het verkeer overgeschakeld van de actieve omgeving naar de inactieve omgeving, waardoor dit de nieuwe actieve omgeving wordt. U kunt dit proces indien nodig herhalen.

Lees ook: Blauwgroene implementatie en zijn rol in DevOps uitgelegd

Belangrijkste kenmerken en voordelen

Dit zijn de specifieke kenmerken van het Blauw-Groene implementatieproces:

  • Twee identieke omgevingen zijn identiek vanuit het oogpunt van knowledge en processen. In de blauwe (actieve) omgeving voeren productiegebruikers hun dagelijkse processen uit. In de groene (inactieve) omgeving wordt de nieuwe implementatie geïnstalleerd en deze is altijd gesynchroniseerd met de blauwe.
  • Verkeerswissel die u kunt doen van de actieve omgeving naar de inactieve omgeving, waardoor dit de nieuwe actieve omgeving wordt. De overstap is onmiddellijk. Alle inzet behoort nu tot het verleden. Er is geen downtime-venster. Gebruikers hoeven niets te doen om de nieuwe omgeving te bereiken.
  • Een snelle terugdraaiing bij problemen is een gevolg. Dit zorgt voor minimale downtime als er iets misgaat met de nieuwe versie van de software program en de applicatie blijft maximaal beschikbaar.
  • Geautomatiseerd testen is een belangrijk facet van de Blue-Inexperienced-implementatie. Het zorgt ervoor dat de nieuwe versie van de software program grondig wordt getest voordat deze in de actieve omgeving wordt geïmplementeerd.
  • Deze implementatie maakt deel uit van een proceed leveringspijplijn, wat uiteindelijk betekent dat software program sneller en frequenter in productie wordt gebracht. Omdat de implementatie al heeft plaatsgevonden en je alleen nog maar de verkeerswissel zelf hoeft te doen, gaat het zo snel dat je dit elke dag kunt doen. Ervan uitgaande dat u snel bent in testactiviteiten.

Kanarie-implementatie: een overzicht

Een diagram dat de verschillende fasen van een project weergeeft.
Bron: cncf.io

De Canary-implementatie voert een geleidelijke launch van nieuwe functies of updates uit voor een kleine subset van gebruikers voordat deze naar het hele gebruikersbestand wordt uitgerold.

Deze aanpak houdt in dat er een nieuwe versie van de software program wordt gemaakt en deze wordt geïmplementeerd bij een kleine groep, terwijl de oude versie blijft draaien voor de relaxation van de gebruikers. Het ontwikkelingsteam houdt de nieuwe versie nauwlettend in de gaten om ervoor te zorgen dat deze stabiel is en presteert zoals verwacht.

Als alles goed gaat, wordt de nieuwe versie uitgerold naar meer gebruikers totdat deze uiteindelijk het hele gebruikersbestand bereikt. Op deze manier minimaliseert het projectteam het risico op het introduceren van bugs of andere problemen die gevolgen kunnen hebben voor alle gebruikers tegelijk.

Het doel is om het risico van de introductie van nieuwe functies bij een groot gebruikersbestand te verkleinen. De overgang naar de nieuwe versie verloopt daardoor veel soepeler.

Lees ook: Canary-implementatie en zijn rol in DevOps uitgelegd

Belangrijkste kenmerken en voordelen

Dit zijn de specifieke kenmerken van het Canary-implementatieproces:

  • Implementeer de nieuwe versie eerst voor een klein deel van de gebruikers en rol deze vervolgens geleidelijk uit naar meer gebruikers. U minimaliseert het risico op het introduceren van bugs of andere problemen die gevolgen kunnen hebben voor alle gebruikers tegelijk.
  • Houd de nieuwe versie nauwlettend in de gaten om er zeker van te zijn dat deze stabiel is en naar verwachting presteert. Ontwikkelaars kunnen sneller suggestions ontvangen over de nieuwe versie, waardoor ze de nodige aanpassingen kunnen aanbrengen voordat ze voor het hele gebruikersbestand worden geïmplementeerd.
  • Als er zich problemen voordoen, kunt u de implementatie snel en eenvoudig terugdraaien naar de vorige versie. Dit helpt het vertrouwen van ontwikkelaars en belanghebbenden in het implementatieproces te vergroten, omdat het het risico verkleint dat er problemen worden geïntroduceerd die van invloed kunnen zijn op de gebruikerservaring.
  • Automatiseer het implementatieproces zoveel mogelijk om het risico op menselijke fouten te verkleinen.

Samenvatting: Blauw-Groene inzet versus Canarische inzet

Functie Blauw-groene implementatie Kanarie-implementatie
Gegevenssynchronisatie Constante gegevenssynchronisatie tussen blauwe en groene omgevingen. Een subset van gebruikers of servers ontvangt de nieuwe versie; de relaxation gaat verder met de huidige versie.
Activeringsproces Schakel over van actieve naar inactieve omgeving wanneer er een nieuwe versie klaar is. Geleidelijke uitrol naar een gedefinieerde subset van gebruikers die actief nieuwe versies testen.
Ervaring van productiegebruikers Geen productiestilstand; naadloos schakelen tussen actieve omgevingen. Een subset van productiegebruikers take a look at actief de nieuwe versie; mogelijke problemen voor deze groep.
Hoge beschikbaarheid versus feedbacksnelheid Prioriteit op hoge beschikbaarheid. Prioriteit op snellere suggestions en gecontroleerde uitrol.
Risicobeperking Vermindering van de mogelijkheid tot uitgifte door geleidelijke vrijgave aan een subgroep van gebruikers. Testen voornamelijk in inactieve omgevingen; testers kunnen mogelijk niet alle problemen uit de echte wereld onderkennen.
Testbenadering Testen voornamelijk in inactieve omgevingen; testers kunnen mogelijk niet alle problemen uit de echte wereld onderkennen. Productiegebruikers fungeren als testers en ontdekken vroegtijdig problemen uit de echte wereld.
Opmerkelijke gebruiksscenario’s Netflix, Amazon, Etsy, LinkedIn en IBM gebruiken Blue-Inexperienced. Netflix en Google gebruiken Canary, samen met geautomatiseerde exams en geleidelijke uitrol.

Blauw-groene implementatie versus Canarische implementatie: kenmerken

Inzet

Blauw-groene implementatie betekent twee omgevingen (blauw en groen). Maar tegelijkertijd zijn de twee omgevingen qua knowledge voortdurend synchroon. Dit vergroot de vraag naar permanente gegevenssynchronisatieprocessen tussen de twee omgevingen.

Zodra de nieuwe versie is getest en gereed wordt geacht, wordt het verkeer overgeschakeld van de actieve omgeving naar de inactieve omgeving, waardoor dit de nieuwe actieve omgeving wordt.

U bent geen tijd kwijt aan het implementeren van nieuwe code en er is geen sprake van productie-uitval. Alle productiegebruikers werken de hele tijd in de momenteel actieve omgeving en merken de overstap niet eens.

Een diagram dat laat zien hoe de csc van Amazon werkt.
Bron: aws.amazon.com

Bij Canary-implementatie wordt een nieuwe versie van de software program geïmplementeerd bij een kleine groep gebruikers, terwijl de meeste gebruikers of servers de huidige versie blijven gebruiken. Dit is een geleidelijke implementatie in plaats van een volledige overstap. Testers zijn in dit geval directe productiegebruikers, ook al vormen ze slechts een gedefinieerde subset. Deze groep take a look at de nieuwe versie actief met productieprocessen, en wanneer deze uiteindelijk stabiel is, zal de nieuwe versie zich verspreiden naar de relaxation van de gebruikers.

Blue-Inexperienced-implementatie is uw keuze als hoge beschikbaarheid de prioriteit heeft. U kunt de voorkeur geven aan Canary-implementatie als u de voorkeur geeft aan snellere suggestions en een meer gecontroleerde (hoewel langzamere) implementatie.

Beperking van risicoverschillen

Blue-Inexperienced-implementatie verkleint het risico op releasefouten door snel over te schakelen naar de stabiele vorige versie. Voor iedere gebruiker en direct. Het is duidelijk dat er nog steeds een risico bestaat dat nieuwe functies voor de gebruikers worden uitgesteld in geval van terugdraaien, maar in ieder geval zal geen van de gebruikers worden geblokkeerd vanwege een aantal kritieke problemen uit de nieuwe launch.

De risicobeperkende strategie voor de inzet van Canarische Eilanden ligt in de geleidelijke vermindering van de kans op problemen. Omdat de nieuwe functies worden vrijgegeven aan een subgroep van productiegebruikers, gebruiken ze die softwareversie al enige tijd voordat de launch naar alle gebruikers wordt verspreid. De kans is zeer groot dat de eerste gebruikers dergelijke problemen snel zullen ondervinden.

Verschil in testbenadering

De Blue-Inexperienced-implementatie laat de testprocessen uitsluitend over aan de inactieve omgeving. Hier kunnen ontwikkelaars, testers en various belanghebbenden testen wat ze willen. U kunt altijd hetzelfde gedrag verwachten alsof de exams rechtstreeks op de actieve productieomgeving zouden worden uitgevoerd (aangezien de gegevens en configuratie altijd gesynchroniseerd zijn tussen de twee omgevingen).

Uw testers voeren dus de testshow uit, en er is nog steeds de mogelijkheid dat ze niet alle problemen onderkennen die echte productiegebruikers zouden doen. Dat is echter niet echt een probleem, aangezien het schakelen tussen inactieve en actieve omgevingen altijd snel gaat. Vervolgens kunt u ontwikkelaars het probleem laten oplossen en de overstap opnieuw uitvoeren.

Een diagram dat het proces van een bedrijfsproces weergeeft.
Bron: ibm.com

Met Canary-implementatie kunt u productiegebruikers als testers gebruiken. Dergelijke gebruikers hebben meestal de neiging om meer problemen in een kortere tijd te vinden. Ze voeren eenvoudigweg de dagelijkse bedrijfsprocessen volledig end-to-end uit.

Niet alleen omdat ze zulke testscenario’s en instances hebben geconstrueerd, maar omdat ze het toch moeten doen. Je loopt het risico dat de mensen in de groep een tijdje met ernstige problemen zullen kampen. Maar de meerderheid van de gebruikers heeft er geen final van, en het ontwikkelingsteam kan zich meteen concentreren op de ernstigste problemen in de echte wereld.

Ervaring en gebruikscasussen

Hier zijn enkele van de bekende gebruiksscenario’s waarin dergelijke implementaties al met succes worden uitgevoerd:

  • Netflix gebruikt Blue-Inexperienced-implementatie om nieuwe versies van zijn streamingdienst te implementeren.
  • Amazon en Etsy gebruiken Blue-Inexperienced-implementatie om nieuwe versies van hun e-commerceplatform te implementeren.
  • LinkedIn gebruikt Blue-Inexperienced-implementatie om nieuwe versies van zijn sociale netwerkplatform te implementeren.
  • IBM gebruikt Blue-Inexperienced-implementatie om nieuwe versies van zijn cloudplatform te implementeren.
  • Netflix gebruikt Canary Deployment ook om wijzigingen in zijn streamingdienst door te voeren. Het bedrijf gebruikt een combinatie van geautomatiseerd testen, functievlaggen en A/B-testen om wijzigingen langzaam door te voeren.
  • Google gebruikt Canary Deployment om wijzigingen in zijn clouddiensten door te voeren. Op dezelfde manier maakt het bedrijf gebruik van de voordelen van geautomatiseerd testen, het splitsen van verkeer en het monitoren van de inclusie om wijzigingen geleidelijk door te voeren naar een kleine subset van gebruikers voordat ze voor alle gebruikers worden geïmplementeerd.

Automatisering is de sleutel, en DevOps-pijplijnen zijn absoluut de toekomst van implementatieprocessen. Dat zijn volledig automatische processen met stappen als:

  • Creatie of replace van doelomgevingen op het gebied van providers, gegevens, gebruikers of rechten.
  • Geautomatiseerde implementatie van volledige/deltaversies van de broncodes rechtstreeks vanuit de coderepository.
  • Improve van databaseschema en vernieuwing van gegevens.
  • Geautomatiseerde testuitvoering direct tijdens de implementatieactiviteiten.
  • Geautomatiseerde rollback-processen voor het geval een belangrijke testcase niet succesvol kon worden voltooid.
  • Eliminatie van handmatige interventiestappen tot nul.

Zodra u over dergelijke implementatiepijplijnen beschikt, kunt u de Canarische of Blauw-Groene processen aansluiten of wat u maar wilt. Dit zijn slechts twee van de voorbeelden die al goed hebben bewezen te werken. Maar dit zijn slechts filosofische raamwerken voor het oplossen van de meeste problemen met implementatieactiviteiten. Het is niet eens moeilijk om in de loop van de tijd tussen beide te schakelen of een combinatie van beide te gebruiken.

Laatste woorden

Vasthouden aan handmatige implementatieprocedures is de aanblik van onrijpe ontwikkelingsprocessen of zelfs groups. Als alternatief kan het aantonen hoe inflexibel en monolithisch het specifieke bedrijf is op het gebied van softwarelevering. In beide gevallen betekent het veel werk om de establishment te herstellen. Probeer dus de bovengenoemde implementatiestrategieën voor uw undertaking te implementeren.

Bekijk vervolgens hoe u applicaties in Kubernetes implementeert.

Leave a Comment

porno izle altyazılı porno porno