Basis van cloud en containers

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?

  1. AHet image voor productie opnieuw bouwen uit dezelfde broncode en dat naar productie brengen
  2. BHet geteste image opnieuw taggen als latest en in de productieomgeving latest ophalen (pull)
  3. CHet geteste image zelf naar productie brengen door het met zijn digest op te geven, en de verschillen tussen de omgevingen via de configuratie aanleveren
Antwoord en toelichting tonen

Antwoord: C. Het geteste image zelf naar productie brengen door het met zijn digest op te geven, en de verschillen tussen de omgevingen via de configuratie aanleveren

In een pipeline wordt het artefact van de build (hier het image) als onveranderlijk behandeld, en hetzelfde artefact wordt van staging naar productie doorgezet. Zelfs uit dezelfde broncode kan een nieuwe build andere versies van de bibliotheken of het basisimage oppikken waarvan hij afhangt, zodat iets anders dan wat getest is, in productie terechtkomt. Een tag kan later naar een ander image worden verplaatst; om zeker te zijn dat naar hetzelfde image wordt verwezen, gebruikt men de digest, die door de inhoud wordt bepaald. Verschillen tussen omgevingen, zoals verbindingsdoelen, worden niet in het image ingebouwd, maar aangeleverd via configuratie zoals omgevingsvariabelen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van cloud en containers

  1. 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?
  2. 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?
  3. Welke combinatie van de Linux-kernelfuncties waarop containers berusten, namespaces en cgroups (control groups), met hun taak is juist?
  4. Op een Linux-host wordt met Docker een container gestart uit een image dat op een andere distributie dan die van de host is gebaseerd, en daarin worden uname -r (een opdracht die de release van de kernel toont) en cat /etc/os-release (een opdracht die informatie over de distributie toont) uitgevoerd. Welke beschrijving van de resultaten is juist?
  5. Welke beschrijving van de relatie tussen een containerimage en een container is juist?