Basis van cloud en containers

Er worden twee omgevingen met dezelfde configuratie als productie voorbereid; in de ene blijft de huidige versie draaien, terwijl in de andere de nieuwe versie wordt geïnstalleerd en gecontroleerd, en daarna wordt de loadbalancer in één keer daarnaar omgeschakeld. Is er een probleem, dan keert men door terug te schakelen snel terug naar de oude versie. Welke releasemethode is dit?

  1. ABlue-green deployment
  2. BCanary release
  3. CRolling update
Antwoord en toelichting tonen

Antwoord: A. Blue-green deployment

Een blue-green deployment bereidt twee omgevingen (blauw en groen) voor en schakelt het verkeer van de gebruikers in één keer om naar de nieuwe omgeving. De oude omgeving blijft een tijd ongewijzigd staan; als er een probleem optreedt, herstelt eenvoudig terugschakelen de oude versie. Anderzijds zijn rond het omschakelen resources voor twee omgevingen nodig, en wijzigingen in het databaseschema moeten zo worden doorgevoerd dat zowel de oude als de nieuwe versie ermee kan werken. Een canary release stelt de nieuwe versie aan slechts een deel van de aanvragen bloot, en een rolling update vervangt servers een paar tegelijk.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van cloud en containers

  1. Een dienst die 12.000 aanvragen per uur ontvangt, voert voor een nieuwe versie een canary release uit en stuurt slechts 5% van de aanvragen naar die versie. De nieuwe versie heeft een bug waardoor 3% van de ontvangen aanvragen mislukt; die wordt na een uur opgemerkt, en alle aanvragen gaan weer naar de oude versie. Hoeveel aanvragen zijn in dat uur door de bug mislukt?
  2. Een containerimage dat door een CI/CD-pipeline is gebouwd, is in de stagingomgeving getest en goedgekeurd. Wat is de meest geschikte manier om dit image naar productie te brengen?
  3. Zoals hierboven wordt het verbindingsdoel van de database niet in het image geschreven, maar bij het starten van de container als omgevingsvariabele doorgegeven. Wat is het belangrijkste voordeel van dit ontwerp?
  4. In een systeem waarin meerdere diensten samenwerken, wil men nagaan door welke diensten één aanvraag van een gebruiker is gegaan, in welke volgorde, en hoeveel tijd ze in elke dienst heeft gekost. Welke soort gegevens voor observability is hiervoor het meest geschikt?
  5. Welke combinatie van de Linux-kernelfuncties waarop containers berusten, namespaces en cgroups (control groups), met hun taak is juist?