Basis van cloud en containers

Wat is een geschikte manier om de software op productieservers bij te werken volgens het idee van immutable infrastructure?

  1. AMet SSH inloggen op de draaiende productieservers, de pakketten bijwerken en daarna de dienst herstarten
  2. BNieuwe servers maken uit een nieuw image dat de update bevat, naar die servers overschakelen en de oude servers weggooien zonder ze te wijzigen
  3. CDe configuratiebestanden met de hand herschrijven zonder de productieservers te stoppen, en de wijzigingen in een werklogboek vastleggen
Antwoord en toelichting tonen

Antwoord: B. Nieuwe servers maken uit een nieuw image dat de update bevat, naar die servers overschakelen en de oude servers weggooien zonder ze te wijzigen

Bij immutable infrastructure worden servers (virtuele machines of containers) na het aanmaken nooit meer gewijzigd; als er een wijziging nodig is, worden nieuwe gemaakt uit een image dat de wijziging bevat, en die worden in de plaats gezet. Omdat elke server uit hetzelfde image wordt gemaakt, lopen configuraties niet per server uiteen door opgestapelde handmatige verschillen. Treedt er een probleem op, dan herstelt opnieuw aanmaken uit het vorige image de oude toestand. Alles wat bewaard moet blijven, zoals logs en gegevens, wordt in opslag of databases buiten de servers bewaard.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van cloud en containers

  1. 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?
  2. 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?
  3. 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?
  4. 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?
  5. 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?