Omgevingsimplementatie verkennen

Voltooid

Stel dat u ooit een noodoproep in het midden van de nacht hebt ontvangen vanwege een vastgelopen server.

In dat geval kent u de pijn van het doorzoeken van meerdere spreadsheets of zelfs uw geheugen, om toegang te krijgen tot de handmatige stappen voor het instellen van een nieuwe computer.

Dan is er ook de moeilijkheid om de ontwikkel- en productieomgevingen consistent te houden.

Een eenvoudigere manier om de mogelijkheid van menselijke fouten bij het initialiseren van machines te verwijderen, is door Infrastructuur als code te gebruiken.

Handmatige implementatie versus infrastructuur als code

Een veelvoorkomende analogie voor het begrijpen van de verschillen tussen handmatige implementatie en infrastructuur als code is het onderscheid tussen huisdieren die eigenaar zijn en vee bezitten.

Wanneer u huisdieren hebt, noemt u ze allemaal en beschouwt u ze als individuen; Als er iets vreselijks gebeurt met een van uw huisdieren, bent u geneigd om veel te verzorgen.

Als je een kudde vee hebt, noem je ze misschien nog steeds, maar je beschouwt hun kudde.

In infrastructuurtermen kunnen er ernstige gevolgen zijn voor een handmatige implementatie als één machine vastloopt en u deze (huisdieren) moet vervangen.

Als u infrastructuur als codebenadering gebruikt, kunt u eenvoudiger een andere machine inrichten zonder de hele infrastructuur (vee) nadelig te beïnvloeden als één machine uitvalt.

Infrastructuur implementeren als code

Met infrastructuur als code legt u uw omgeving (of omgevingen) vast in een tekstbestand (script of definitie).

Uw bestand kan alle netwerken, servers en andere computerresources bevatten.

U kunt het script- of definitiebestand controleren in versiebeheer en dit vervolgens gebruiken als bron voor het bijwerken van bestaande omgevingen of het maken van nieuwe omgevingen.

U kunt bijvoorbeeld een nieuwe server toevoegen door het tekstbestand te bewerken en de release-pijplijn uit te voeren in plaats van deze uit te voeren in de omgeving en handmatig een nieuwe server in te richten.

De volgende tabel bevat de aanzienlijke verschillen tussen handmatige implementatie en infrastructuur als code.

Handmatige implementatie Infrastructuur als code
Snowflake-servers. Een consistente server tussen omgevingen.
Implementatiestappen variëren per omgeving. Omgevingen worden eenvoudig gemaakt of geschaald.
Meer verificatiestappen en uitgebreidere handmatige processen. Volledig geautomatiseerd maken van omgevingsupdates.
Verbeterde documentatie om rekening te houden met verschillen. Overgang naar onveranderbare infrastructuur.
Implementatie in het weekend om tijd te bieden om fouten te herstellen. Gebruik blauw/groen implementaties.
Tragere releasefrequentie om pijn en lange weekenden te minimaliseren. Servers behandelen als vee, niet huisdieren.

Voordelen van infrastructuur als code

De volgende lijst bevat voordelen van infrastructuur als code:

  • Bevordert de controle door het gemakkelijker te traceren wat er is geïmplementeerd, wanneer en hoe. (Met andere woorden, het verbetert de traceerbaarheid).
  • Biedt consistente omgevingen van release tot release.
  • Grotere consistentie in ontwikkel-, test- en productieomgevingen.
  • Automatiseert opschalen en uitschalen van processen.
  • Hiermee kunnen configuraties worden beheerd met versiebeheer.
  • Biedt mogelijkheden voor codebeoordeling en eenheidstests om infrastructuurwijzigingen te beheren.
  • Maakt gebruik van onveranderbare serviceprocessen, wat betekent dat als er een wijziging in een omgeving nodig is, er een nieuwe service wordt geïmplementeerd en de oude service is uitgeschakeld, deze niet wordt bijgewerkt.
  • Hiermee staat u blauw/groene implementaties toe. Deze releasemethodologie minimaliseert downtime waarbij twee identieke omgevingen bestaan: een omgeving is live en de andere niet. Updates worden toegepast op de server die niet live is. Wanneer het testen is geverifieerd en voltooid, wordt deze gewisseld met de verschillende liveservers. Het wordt de nieuwe liveomgeving en de vorige liveomgeving is niet langer de live.
  • De infrastructuur wordt beschouwd als een flexibele resource die kan worden ingericht, ongedaan gemaakt en opnieuw kan worden ingericht als en wanneer dat nodig is.