Table of Contents[Ferstopje][Toanje]
Ynfrastruktuer is in wichtich ûnderdiel fan it softwareûntwikkelingsproses, om't it direkt ferantwurdlik is foar de soepele wurking fan in softwareapplikaasje. Servers, load balancers, firewalls, databases en yngewikkelde kontenerklusters binne allegear foarbylden fan ynfrastruktuer.
Om't ynfrastruktuerswierrichheden it heule ûntwikkelingsproses trochkringe, binne se relevant bûten produksjesituaasjes.
Se omfetsje ûnder oaren CI / CD-platfoarms, staging-omjouwings, en test-ark.
As de kompleksiteit fan it softwareprodukt tanimt, wurde dizze útdagings foar ynfrastruktuer kritysker. De tradisjonele technyk fan it manuell behearen fan ynfrastruktuer wurdt rap in ûnskaalbere oplossing om oerien te kommen mei de aspiraasjes fan hjoeddeistige DevOps-basearre rappe softwareûntwikkelingssyklusen.
As resultaat is Infrastructure as Code (IaC) hjoed de dei de facto ûntwikkelingsoplossing wurden. Ynfrastruktuer as koade (IaC) lit jo ynfrastruktuerwizigingen skaalje en folgje as se ûntsteane.
Wy sille yn dit stik ynfrastruktuer as koade yn tichterby besjen, ynklusyf de foardielen, wêrom't it wichtich is, en mear. Dus, lit ús begjinne.
Wat is de Ynfrastruktuer as koade?
Ynfrastruktuer as koade is it proses fan it leverjen en konfigurearjen fan in omjouwing mei koade ynstee fan it manuell konfigurearjen fan de passende apparaten en systemen. Untwikkelders rinne skripts nei it definiearjen fan koadeparameters, en it IaC-platfoarm genereart automatysk de wolkynfrastruktuer.
Sokke automatisearre IT-konfiguraasjes kinne teams fluch de nedige wolkynstelling konstruearje foar it testen en útfieren fan har produkt. Ynfrastruktuer as koade stelt ûntwikkelders yn steat om elke ynfrastruktuerkomponint te bouwen dy't se wolle, lykas netwurken, load balancers, databases, firtuele masines, en ferbiningstypen.
Yn termen fan leken is it it proses fan it leverjen en behearen fan ynfrastruktuer oantsjutte mei koade ynstee fan mei de hân. IaC is ek in wichtige DevOps-technyk dy't nedich is foar in rappe libbenssyklus fan softwarelevering.
It stelt DevOps-teams yn steat om ynfrastruktuer fluch te konstruearjen en te ferzjen op deselde manier as de boarnekoade ferzje wurdt, en ek dizze ferzjes te folgjen om ynkonsistinsje tusken IT-omjouwings te minimalisearjen, wat grutte problemen kinne feroarsaakje by ynset.
Ferklearjende tsjin ymperatyf oanpak foar IaC
IaC kin op twa manieren benadere wurde: deklaratyf of ymperatyf.
In IaC-ark sil it systeem foar jo ynstelle as jo in deklarative oanpak brûke, dy't de bedoelde steat fan it systeem beskriuwt, ynklusyf hokker boarnen jo nedich binne en alle kwaliteiten dy't se moatte hawwe.
In deklarative oanpak hâldt ek de aktuele tastân fan jo systeemobjekten by, wêrtroch it makliker is om de downtime fan jo ynfrastruktuer te behearjen. In ymperatyf metoade, oan 'e oare kant, sketst de bepaalde ynstruksjes dy't moatte wurde útfierd yn' e juste folchoarder om de bedoelde konfiguraasje te meitsjen.
In protte IaC-technologyen brûke in deklarative oanpak foar it leverjen fan ynfrastruktuer en sille it automatysk dwaan. In deklaratyf IaC-ark sil wizigingen tapasse foar de winske steat foar jo as jo se meitsje. Jo moatte útfine hoe't jo dizze oanpassingen tapasse as jo in essensjeel ark brûke. IaC-ark binne faak yn steat om yn beide modi te wurkjen, hoewol se de iene foar de oare favorisearje.
Hoe wurket Ynfrastruktuer as koade?
Om ynfrastruktuer folslein as koade út te fieren, moatte in pear easken yn plak wêze.
In platfoarm foar wolkhosting as in tsjinst (IaaS)
De earste en wichtichste need is hosting op ôfstân. It ark foar konfiguraasjebehear moat ferbine mei de host op ôfstân en dêr feroarings oanmeitsje. Jo team moat garandearje dat it ark foar konfiguraasjebehear tagong hat as de ynfrastruktuer op ôfstân sels beheard wurdt.
API's op it IaaS-ynskeakele wolkhostingplatfoarm kinne klanten ynfrastruktuerboarnen bouwe, ferwiderje en feroarje op fraach. Konfiguraasjebehearsystemen kinne dizze API's brûke om dizze aktiviteiten noch fierder te automatisearjen. Digital Ocean, Amazon AWS, en Microsoft Azure binne trije grutte IaaS-systemen.
In platfoarm foar konfiguraasjebehear
De arksuite dy't oanslút op de IaaS API's en automatisearret typyske operaasjes is de folgjende betingst foar it foltôgjen fan IaC. In groep minsken kin gearwurkje om in samling skripts en ark te meitsjen. It soe lykwols in signifikant bedrach fan ynspanning nedich wêze, trochgeand ûnderhâld, en in minimaal rendemint op ynvestearring. Terraform, Ansible, Salt Stack en Chef binne mar in pear fan 'e ark foar iepen boarne konfiguraasjebehear dy't dizze útdaging behannelje.
Ferzje Control System
In platfoarm foar konfiguraasjebehear brûkt tekstbestannen skreaun yn in markuptaal lykas YAML om taken en sekwinsjes te leverjen foar it platfoarm om út te fieren. Dizze tekstbestannen kinne wurde behannele as applikaasjekoade en opslein yn in ferzjekontrôle-repository. Pull-oanfragen en koadebeoardielingen binne tastien yn it repository, dat fungearret as ien punt fan wierheid. It ferzjekontrôlesysteem Git is it populêrste.
Mei dizze betingsten yn plak, beskôgje it folgjende senario: in ûntwikkelder wol in nije applikaasjetsjinst tafoegje oan in systeem. Dit foarbyld yllustrearret in IaC proses.
- Yn har foarkar platfoarm foar konfiguraasjebehear, Terraform, feroaret de ûntwikkelder in YAML-konfiguraasjetekstbestân. De wizigingen jouwe oan dat in nije hostingtsjinner fereaske is.
- Yn it Git-repository set de ûntwikkelder wizigingen yn oan in funksje-tûke. De ûntwikkelder makket in pull-fersyk om't it Git-repository fan it projekt wurdt hosted op Bitbucket. In oar lid fan it team sjocht it pull-fersyk troch en merkt de nije ferbetterings fan ynfrastruktuer op. It pull-fersyk wurdt goedkard troch in teamlid, en de ûntwikkelder yntegreart de feroaring yn 'e haadtûke fan' e repository.
- It konfiguraasjeplatfoarm is op dizze stap fereaske om in update út te fieren. De ûntwikkelder kin de fernijing manuell begjinne. Om't it team Bitbucket brûkt, hawwe se tagong ta Bitbucket Pipelines en kinne se ien brûke om dizze proseduere te automatisearjen.
- Terraform ferbynt mei de IaaS fan it team nei útfiering. Terraform brûkt de IaaS API om in folchoarder fan kommando's út te fieren dy't de IaaS bywurkje nei de ferwachte ynfrastruktuerkonfiguraasje.
IaC Benefits
IaC helpt organisaasjes by it behearen fan har easken foar IT-ynfrastruktuer op ferskate manieren fia automatisearre prosedueres. Guon fan 'e foardielen fan it ynstallearjen fan IaC binne as folget:
- Konsistinsje: IaC kin konsistinsje ferheegje en flaters ferminderje dy't faak foarkomme by hânmjittige ynstellingen. It foarkomt ek konfiguraasjedrift dy't kin foarkomme tidens in manuele operaasje. IaC lit jo net-dokumintearre, ad-hoc konfiguraasjewizigingen foarkomme troch jo konfiguraasjenoarmen te kodifisearjen en te dokumintearjen.
- Effisjinsje: Kodifikaasje fan jo ynfrastruktuer makket in foarsjenningssjabloan, wêrtroch systeemkonfiguraasje, ûnderhâld en administraasje makliker wurde. It bout in fleksibele, werheljebere en skalberbere ynfrastruktuer. As resultaat kin DevOps elke faze fan softwareûntwikkeling fersnelle, wat resulteart yn mear apps dy't op deistige basis wurde publisearre.
- Reduzearre kosten: IaC makket it mooglik om programmatysk te behearjen fan firtuele masines, wêrtroch't de needsaak foar hânmjittige hardwarekonfiguraasje en upgrades fuorthelle wurde. Mei itselde stikje koade kin ien operator ien masine as 1000 ienheden ynstallearje en beheare. Dêrtroch binne minder wurknimmers nedich en is nije gear net mear nedich, wat in flinke kostenbesparring hat.
- Snelheid: IaC fermindert de tiid dy't it nimt foar ûntwikkelders om har ynfrastruktuer te leverjen troch it te feroarjen yn in ienfâldich skript. As gefolch, applikaasjes ynset wurde net langer fertrage troch ynfrastruktuer, en nije software kin wurde levere oanmerklik flugger.
- Ferminderje risiko: As IaC stimulearret ferzje, kinne jo konfiguraasjetriemmen, lykas elke oare softwareboarnekoadebestân, wurde traced. As gefolch, it risiko wurdt fermindere.
Hokker probleem lost IaC op?
Ynfrastruktuer as koade is makke om it probleem oan te pakken fan drift fan frijlitting fan pipeline-omjouwing. Sûnder IaC binne teams ferantwurdlik foar it behâld fan de ynstellingen fan elke ynsetomjouwing. Elke omjouwing evoluearret yn in snieflak, in ienige arranzjemint dy't net automatysk kin wurde replikearre.
Tidens ynset feroarsake inkonsistinsje tusken omjouwings problemen. Snieflokken hawwe hânmjittige operaasjes nedich dy't lestich te behearjen binne en bydrage oan flaters yn ynfrastruktueradministraasje en ûnderhâld.
Ynfrastruktuer as Code hâldt him oan it idee fan idempotinsje.
Idempotence ferwiist nei it feit dat in ynset kommando altyd konfigurearret de doelomjouwing op deselde wize, nettsjinsteande de begjinstân fan de omjouwing. Idempotinsje wurdt berikt troch of automatysk in besteande doel yn te stellen of it besteande doel te ûntslaan en opnij te begjinnen.
As gefolch, mei help fan IaC, teams feroarje de omjouwing beskriuwing en ferzje fan it konfiguraasje model, dat wurdt faak skreaun yn goed dokumintearre koade formaten lykas JSON. It model wurdt útfierd yn 'e releasepipeline om doelomjouwings yn te stellen. It team bewurket de boarne, net it doel, as se wizigingen moatte meitsje.
Hoe makket IaC saak yn DevOps?
It ymplementearjen fan DevOps en metoaden foar trochgeande yntegraasje / trochgeande levering (CI / CD) fereasket it gebrûk fan IaC. It ûntlêst ûntwikkelders fan 'e mearderheid fan foarsjenningsferantwurdlikheden, wêrtroch't se gewoan in skript kinne útfiere om har ynfrastruktuer op en rint te krijen.
As gefolch, applikaasjes ynset wurde net stilstean wylst ynfrastruktuer wurdt boud, en sysadmins wurde net belêste mei tiidslinend hânmjittich taken. Fan yntegraasje en testen fia levering en ynset, fertrout CI / CD op konstante automatisearring en trochgeande tafersjoch yn 'e heule libbenssyklus fan' e applikaasje. In konstante omjouwing is nedich foar automatisearring om te wurkjen.
As it ûntwikkelteam apps leveret of omjouwings op ien manier konfigurearret en it operaasjeteam de omjouwing op in oare manier ynstalleart en konfigurearret, is it automatisearjen fan applikaasje-ynset net mooglik.
In DevOps-metodology bringt ûntwikkelings- en operaasjeteams op lijn, wat resulteart yn minder flaters, manuele ynset en ynkonsistinsjes. Om't sawol ûntwikkeling- as operaasjeteams deselde beskriuwing fan 'e applikaasje-ynset kinne brûke, helpt IaC jo ûntwikkeling en operaasjes te syngronisearjen, wêrtroch in DevOps-oanpak mooglik is.
Elke omjouwing, ynklusyf jo produksjeomjouwing, moat deselde ynsetmetoade folgje. Elke kear as IaC wurdt brûkt, wurdt in identike omjouwing makke.
Konklúzje
DevOps fertrout swier op ynfrastruktuer as koade. Ynfrastruktuer as koade is de natuerlike folgjende stap yn it meitsjen fan jo operaasjes takomstree yn in wrâld wêryn disruptive technologyen de IT-sektor kontinu transformearje.
It stelt jo yn steat om it folsleine potensjeel fan te realisearjen wolk Computing, ferminderet flaters ferbûn mei hânmjittich IT ynfrastruktuer behear, en ferbetteret de snelheid wêrmei software wurdt ûntwikkele. Dit alles wurdt berikt by it ferminderjen fan bedriuwskosten.
Leave a Reply