Wat is Infrastructure-as-code (IAC)?

Met Infrastructure-as-code (IaC) kunnen ontwikkelaars en operationele teams computerdatacenters automatisch beheren met behulp van machinaal leesbare definitiebestanden.

DevOps demonstratie
Inhoudsopgave
Waarom is IaC belangrijk? Wat zijn de voordelen van IaC? Wat is de verhouding tussen IAC en DevOps? Hoe past IaC in het CI/CD-proces? Best practices voor IaC
IaC, ook wel software-gedefinieerde of programmeerbare infrastructuur genoemd, maakt gebruik van fysieke hardwareconfiguratie en -configuratietools voor herhaalbare digitale configuratiebestanden. IaC gebruikt geavanceerde beschrijvende coderingstaal om de provisioning van de IT-infrastructuur te automatiseren, en maakt handmatig beheer en handmatige provisioning van infrastructuurelementen zoals servers, opslag en databaseverbindingen overbodig. IaC is een belangrijke praktijk van DevOps die een meer gestroomlijnde set processen mogelijk maakt bij het ontwikkelen en implementeren van nieuwe softwareapplicaties. IaC biedt een manier om het beheer van de infrastructuur te 'vervroegen'. Dit betekent dat het onder controle kan blijven van ontwikkelaars of DevOps-teams, en geen handmatige stap is aan het einde van de implementatiepijplijn.

 

Alles uitvouwen Alles samenvouwen Waarom is IaC belangrijk?

Op het eerste gezicht lijkt het misschien dat infrastructuur-als-code echt geen niets nieuws brengt: Het verandert gewoon wat traditioneel een handmatige taak was (het configureren van de IT-infrastructuur) en maakt hiervan een digitale taak. Maar deze omschakeling brengt oplossingen voor verschillende belangrijke problemen waar IT-medewerkers al tientallen jaren kampen.

Problemen met het beheer van de IT-infrastructuur

Het beheer van de IT-infrastructuur is niet alleen complex en arbeidsintensief, maar ook duur. In elke fase van het proces moeten engineers, onderhoudsmonteurs en anderen beschikbaar zijn om essentiële taken uit te voeren. Organisaties moeten kunnen voldoen aan de salarisbehoeften van deze experts. Bovendien zijn hogere beheerkosten vereist om de garantie te bieden dat kan worden voldaan aan de behoeften inzake een juiste coördinatie en implementatie.

Problemen met toezicht en zichtbaarheid zijn ook potentiële problemen in traditionele configuraties. De traditionele infrastructuurconfiguratie is afhankelijk van meerdere personen of teams, waardoor inconsistentie ontstaat en het toezicht en de optimalisatie van prestaties vaak zeer moeilijk worden. Die inconsistentie kan ook leiden tot problemen met een verkeerde configuratie waarbij een onjuiste parameter wordt gebruikt, en dit kan ernstige gevolgen hebben. Een onjuiste configuratie wordt vaak aangewezen als oorzaak van grote storingen in systemen waarvan vele mensen het slachtoffer zijn.

Ten slotte reageert een handmatige configuratie langzaam op de toenemende vraag, omdat ze afhankelijk is van de systeembeheerders die de nieuwe servers moeten instellen. Wanneer de handmatige configuratie nodig is bij pieken van de resources, kan ze een effectieve schaling verhinderen en hebben bedrijven het misschien moeilijk om de toegenomen belasting aan te kunnen. Als er bovendien geen back-upservers beschikbaar zijn, is dit ten koste van de beschikbaarheid van de applicatie.

Problemen met DevOps

In DevOps treden specifieke problemen op als er traditionele configuratietechnieken worden gebruikt. In plaats van onjuiste configuraties en andere problemen tijdens het productieproces te identificeren en te elimineren, zorgt een traditioneel beheer er allesbehalve voor dat deze problemen onopgemerkt blijven tot de looptijd. En door de resources van ontwikkelaars opnieuw toe te wijzen om deze problemen in de looptijd op te lossen, worden organisaties gedwongen om ervaren professionals weg te halen van andere belangrijke taken, zonder dat de kernstoring zelf wordt aangepakt.

Bovendien moet een nieuw geconfigureerde infrastructuur kunnen worden toegevoegd aan de bestaande omgeving van de organisatie. Een handmatige configuratie kan beveiligings- en compliance-problemen veroorzaken in de context van de bredere omgeving, met name omdat de cloud een dynamische en voortdurend veranderende entiteit is.

DevOps Book of Knowledge Lees hoe je collega's DevOps omarmen om inzicht te krijgen in effectieve DevOps-transformatie en -modernisering. Download het e-book
Wat zijn de voordelen van IaC?

Een effectieve infrastructuur-as-code biedt oplossingen voor veel van de problemen en inefficiënties die gepaard gaan met de traditionele infrastructuurconfiguratie. Met IAC kunnen organisaties profiteren van de volgende voordelen:

Grotere snelheid

Met IaC kan eenvoudig en snel een volledige infrastructuur worden gecreëerd, gewoon door een script uit te voeren. Dit is mogelijk in elke fase van de levenscyclus van de softwareontwikkeling, ongeacht de omgeving.

Betrouwbare consistentie

Wanneer de configuratie onder de verantwoordelijkheid van menselijk IT-personeel en menselijke operationele teams valt, zijn afwijkingen onvermijdelijk. Maar als de IaC-bestanden de belangrijkste bron van waarheid zijn, kunnen organisaties tools en beleidsregels voor configuratiegegevensbeheer toevoegen om de juiste configuraties zo vaak als nodig op een consistente wijze te implementeren.

Verbeterde tracking en aansprakelijkheid

Een soms over het hoofd gezien voordeel van IaC-bestanden is dat ze een duidelijk overzicht van alle wijzigingen bijhouden. Teams kunnen eenvoudig bekijken welke wijzigingen zijn aangebracht, wanneer en (in het geval dat aansprakelijkheid een probleem wordt) door wie. En omdat IaC eerdere versies bewaart in een toegankelijke opslagplaats, kunnen ontwikkelaars teruggaan naar eerdere versies en eerdere omgevingen opnieuw implementeren in het geval dat er problemen optreden.

Optimale efficiëntie

Door de implementatie van infrastructuurarchitecturen te codificeren en te automatiseren, kunnen organisaties de efficiëntie en productiviteit tijdens de gehele ontwikkelingslevenscyclus aanzienlijk verhogen. Het testen kan gelijktijdig plaatsvinden in meerdere faseringsomgevingen, die zelf in enkele minuten kunnen worden gemaakt en geïmplementeerd. Tegelijkertijd maakt IaC het eenvoudig om continue integratie en continue implementatietechnieken op te nemen.

Lagere kosten

Alles bij elkaar genomen zijn de grootste voordelen van IaC wellicht de lagere kosten en hogere rendementen. Door de configuratie en implementatie te automatiseren, besparen organisaties veel van de kosten die gekoppeld zijn aan hardware, personeel, training en beheer, terwijl het ervaren IT-personeel zijn energie kan richten op taken die meer waarde opleveren.

Voeg daarbij de bovengenoemde snelheid, consistentie en efficiëntie, en het wordt duidelijker hoe IaC-investeringen extreem snel worden terugverdiend.

Wat is de verhouding tussen IAC en DevOps?

IaC gebruikt hetzelfde versiebeheer als DevOps voor broncode. DevOps behandelt IaC eigenlijk zoals elke andere codeontwikkeling in de DevOps toolchain. Dit betekent dat wijzigingen in infrastructuurcode worden beheerd naast de overige DevOps-taken.

DevOps kan ook beleidsregels toepassen op de IaC-wijzigingen, en geautomatiseerde tracking en goedkeuring van wijzigingen mogelijk maken, bijvoorbeeld via het gebruik van ServiceNow DevOps voor geautomatiseerde wijzigingen. IaC stelt DevOps ook in staat om in elke fase van de ontwikkelingscyclus eenvoudig productie-identieke testomgevingen te creëren, waardoor de kans op mogelijk kritieke implementatieproblemen wordt verkleind. Met IaC is DevOps beter in staat om effectief te coördineren met behulp van consistente werkwijzen en tools, en om applicaties en infrastructuur snel, betrouwbaar en schaalbaar te leveren, om aan de vraag te voldoen.

Hoe past IaC in het CI/CD-proces?

In het CI/CD-proces wordt infrastructuur-als-code-beheer verschoven van IT-personeel naar ontwikkelaars. Hierdoor kunnen DevOps-teams de wijzigingen in de infrastructuur op dezelfde manier behandelen als alle andere stukken code, en DevOps en SRE-tools (site reliability engineering) en -producten gebruiken om toezicht te houden gedurende de gehele waardestroom.

Prijzen voor ServiceNow DevOps Bekijk de prijzen voor ServiceNow DevOps. Ga voor een snellere aanpak zonder risico en voorkom frictie tussen IT-activiteiten en -ontwikkeling. Bekijk prijzen
Best practices voor IaC

Het optimaal benutten van een IaC-strategie betekent het identificeren en volgen van best practices. Deze beproefde suggesties kunnen een effectieve IaC-benadering van de configuratie en implementatie garanderen.

Vermijd documentatie voor specificaties

Externe documentatie van infrastructuurspecificaties is onnauwkeurig en wordt gemakkelijk uit het oog verloren. Doorbreek de gewoonte van externe documentatie, en codeer specificaties in de configuratiebestanden zelf, waar ze altijd nauwkeurig en beschikbaar zijn.

Behandel code als de enige bron van waarheid

Zoals in het vorige punt is vermeld, verdient het de voorkeur om infrastructuurspecificaties in de configuratiebestanden te coderen in plaats van externe documentatie te gebruiken. En als deze specificaties eenmaal zijn gecodeerd, kunt u deze configuratiebestanden opnieuw raadplegen als de enige bron van waarheid voor alles wat betrekking heeft op infrastructuurbeheer.

Voer grondige tests uit

Een van de voordelen van code ten opzichte van een fysieke configuratie is dat code kan worden getest. Gebruik IaC-testtools om de garantie te hebben dat configuraties vrij zijn van fouten en inconsistenties voordat naar de productie gaan.

Voer altijd een versiecontrole uit

Omdat IaC zo goed past bij de CI/CD-benadering van ontwikkeling, kan het zeer snel evolueren. Zorg er via broncontrole voor dat oude versies veilig beschikbaar blijven naarmate nieuwe wijzigingen worden geïmplementeerd. Hierdoor kunnen teams eerdere versies opnieuw bekijken en opnieuw laden in het geval dat nieuwe implementaties onvoorziene problemen veroorzaken.

ServiceNow en IaC

Zoals hierboven vermeld, is een verkeerde configuratie een grote probleem voor de infrastructuur. Ze wordt aangewezen als de oorzaak van inbreuken op de beveiliging, de blootstelling van privégegevens en aanzienlijke systeemonderbrekingen waar miljoenen gebruikers het slachtoffer van zijn.

In 2020 heeft ServiceNow een bedrijf met de naam Sweagle overgenomen dat nu als DevOps Config deel uitmaakt van de DevOps-portfolio. DevOps Config biedt een centrale locatie voor het beheren van configuratiegegevens. Dit lost de resterende problemen op voor DevOps-teams bij het gebruik van IaC, namelijk:

  • Toegangscontroles kunnen worden toegepast op de configuratiegegevens en alleen bevoegde gebruikers krijgen toestemming om wijzigingen aan te brengen en configuratiebestanden te bepalen voor gebruik in IaC. Dit helpt om wachtwoorden en andere gevoelige gegevens te beschermen en voorkomt wijzigingen die anders zouden kunnen optreden in zelfstandige configuratieprogramma's.
  • Er kunnen beleidsregels worden toegepast op configuratiegegevens. Het is bijvoorbeeld gebruikelijk om verschillende databases te gebruiken voor het testen van een applicatie in plaats van deze in de productie te gebruiken. Het beleid kan valideren dat de databaseconfiguratiestring correct is gewijzigd in IaC tussen interne tests en vrijgave in productie.
  • Het systeem kan leren van eerdere configuraties die tot problemen hebben geleid. Artificial intelligence en machine learning kunnen worden toegepast om te helpen bij het opstellen van nieuwe beleidsregels die ervoor zorgen dat een probleem niet opnieuw optreedt.
  • De centrale plaats voor het beheer van infrastructuurconfiguraties biedt het overzicht dat één opslagplaats toestaat. Een persoon hoeft niet in Git-codeopslagplaatsen, netwerkconfiguratietools en andere bronnen te kijken om configuraties te begrijpen - ze zijn allemaal op één plek beschikbaar. Hierbij bestaat ook de mogelijkheid om een momentopname van eerdere configuratieversies bij te houden, die hulp kan bieden bij latere probleemoplossing.
Functionaliteit die meegroeit met uw bedrijf

Breid DevOps-succes uit binnen de hele onderneming. Ga voor een snellere aanpak zonder risico en voorkom frictie tussen IT-operations en -ontwikkeling.

DevOps demonstratie Contact
Resources Artikelen Wat is ServiceNow? Wat is DevOps? Wat is Kubernetes? Onderzoeksrapporten Het Now Platform uitbreiden met DevOps IDC Agility Assessment: Vergelijk je onderneming Bedrijfswaarde van ServiceNow-serviceactiviteiten Datasheets ITSM Pro: DevOps Change Velocity Wijzigingsbeheer Verzoekbeheer E-books Innovatie stimuleren en de snelheid van IT verbeteren ITIL 4 uitgelegd in 10 minuten Ga snel live met ITSM Whitepapers Inleiding voor Enterprise DevOps Platform DevOps, Observability en AIOps met elkaar verbinden Advanced High Availability-architectuur