INHOUDSOPGAWE[Versteek][Wys]
Infrastruktuur is 'n belangrike deel van die sagteware-ontwikkelingsproses aangesien dit direk verantwoordelik is vir 'n sagtewaretoepassing se gladde werking. Bedieners, lasbalanseerders, brandmure, databasisse en ingewikkelde houerklusters is almal voorbeelde van infrastruktuur.
Omdat infrastruktuurprobleme die hele ontwikkelingsproses deurdring, is dit buite produksiesituasies relevant.
Dit sluit onder meer CI/CD-platforms, verhoogomgewings en toetsinstrumente in.
Soos die kompleksiteit van die sagtewareproduk toeneem, word hierdie infrastruktuuruitdagings meer kritiek. Die tradisionele tegniek om infrastruktuur handmatig te bestuur, word vinnig 'n onskaalbare oplossing om te pas by die aspirasies van vandag se DevOps-gebaseerde vinnige sagteware-ontwikkelingsiklusse.
Gevolglik het Infrastruktuur as Kode (IaC) vandag die de facto-ontwikkelingsoplossing geword. Infrastruktuur as kode (IaC) stel jou in staat om infrastruktuurveranderinge te skaal en na te spoor soos dit ontstaan.
Ons sal in hierdie stuk infrastruktuur as kode van nader kyk, insluitend die voordele daarvan, hoekom dit noodsaaklik is, en meer. So, kom ons begin.
Wat is die Infrastruktuur as kode?
Infrastruktuur as kode is die proses om 'n omgewing te verskaf en op te stel deur kode te gebruik eerder as om die toepaslike toestelle en stelsels handmatig te konfigureer. Ontwikkelaars voer skrifte uit nadat kodeparameters gedefinieer is, en die IaC-platform genereer outomaties die wolkinfrastruktuur.
Sulke geoutomatiseerde IT-konfigurasies stel spanne in staat om vinnig die nodige wolkinstelling te bou om hul produk te toets en uit te voer. Infrastruktuur as kode stel ontwikkelaars in staat om enige infrastruktuurkomponent te bou wat hulle wil hê, soos netwerke, lasbalanseerders, databasisse, virtuele masjiene en verbindingssoorte.
In leketerme is dit die proses van verskaffing en bestuur van infrastruktuur wat gespesifiseer is deur kode eerder as met die hand te gebruik. IaC is ook 'n belangrike DevOps-tegniek wat benodig word vir 'n vinnige sagteware-afleweringslewensiklus.
Dit stel DevOps-spanne in staat om vinnig infrastruktuur te bou en weer te gee op dieselfde manier as wat die bronkode weergegee word, asook om hierdie weergawes op te spoor om teenstrydigheid tussen IT-omgewings te verminder, wat groot probleme tydens ontplooiing kan veroorsaak.
Verklarende vs. noodsaaklike benaderings tot IaC
IaC kan op twee maniere benader word: verklarend of gebiedend.
'n IaC-instrument sal die stelsel vir jou opstel as jy 'n verklarende benadering gebruik, wat die beoogde toestand van die stelsel beskryf, insluitend watter hulpbronne jy benodig en enige eienskappe wat hulle behoort te hê.
'n Verklarende benadering hou ook rekord van die huidige toestand van jou stelselvoorwerpe, wat dit makliker maak om die stilstand van jou infrastruktuur te bestuur. 'n Imperatiewe metode, aan die ander kant, beskryf die spesifieke instruksies wat in die regte volgorde uitgevoer moet word om die beoogde konfigurasie te skep.
Baie IaC-tegnologieë gebruik 'n verklarende benadering tot die voorsiening van infrastruktuur en sal dit outomaties doen. 'n Verklarende IaC-instrument sal wysigings aan die verlangde toestand vir jou toepas as jy dit maak. Jy sal moet uitvind hoe om daardie aanpassings toe te pas as jy 'n noodsaaklike hulpmiddel gebruik. IaC-gereedskap is dikwels in staat om in beide modusse te werk, hoewel hulle die een bo die ander verkies.
Hoe werk Infrastruktuur as kode?
Om infrastruktuur volledig as kode te implementeer, moet 'n paar vereistes in plek wees.
'n Platform vir wolkgasheer as 'n diens (IaaS)
Die eerste en belangrikste behoefte is gasheer vir afstandtoegang. Die konfigurasiebestuurnutsmiddel moet aan die afgeleë gasheer koppel en veranderinge daar aanbring. Jou span moet waarborg dat die konfigurasiebestuurnutsmiddel toegang het as die verafgeleë infrastruktuur selfbestuur word.
API's op die IaaS-geaktiveerde wolkgasheerplatform stel kliënte in staat om infrastruktuurhulpbronne op aanvraag te bou, te verwyder en te verander. Konfigurasiebestuurstelsels kan hierdie API's gebruik om hierdie aktiwiteite nog verder te outomatiseer. Digital Ocean, Amazon AWS en Microsoft Azure is drie groot IaaS-stelsels.
'n Platform vir konfigurasiebestuur
Die gereedskappakket wat aan die IaaS API's koppel en tipiese bedrywighede outomatiseer, is die volgende voorvereiste vir die voltooiing van IaC. 'n Groep mense kan saamwerk om 'n versameling skrifte en gereedskap te produseer. Dit sal egter 'n aansienlike hoeveelheid moeite, deurlopende instandhouding en 'n minimale opbrengs op belegging verg. Terraform, Ansible, Salt Stack en Chef is net 'n paar van die oopbron-konfigurasiebestuurnutsmiddels wat hierdie uitdaging hanteer.
Weergawe beheer stelsel
'n Konfigurasiebestuurplatform gebruik tekslêers wat in 'n opmerktaal soos YAML geskryf is om take en rye te verskaf vir die platform om uit te voer. Hierdie tekslêers kan as toepassingskode hanteer word en in 'n weergawebeheerbewaarplek gestoor word. Trekversoeke en kodebeoordelings word in die bewaarplek toegelaat, wat as 'n enkele punt van waarheid dien. Die weergawebeheerstelsel Git is die gewildste.
Met hierdie voorvereistes in plek, oorweeg die volgende scenario: 'n ontwikkelaar wil 'n nuwe toepassingsdiens by 'n stelsel voeg. Hierdie voorbeeld illustreer 'n IaC-proses.
- In hul voorkeurkonfigurasiebestuursplatform, Terraform, wysig die ontwikkelaar 'n YAML-konfigurasietekslêer. Die veranderinge verklaar dat 'n nuwe gasheerbediener vereis word.
- In die Git-bewaarplek verbind die ontwikkelaar veranderinge aan 'n kenmerktak. Die ontwikkelaar skep 'n trekversoek aangesien die projek se Git-bewaarplek op Bitbucket gehuisves word. Nog 'n lid van die span kyk deur die trekversoek en let op die nuwe infrastruktuurverbeterings. Die trekversoek word deur 'n spanlid goedgekeur, en die ontwikkelaar integreer die verandering in die bewaarplek se hooftak.
- Die konfigurasieplatform word in hierdie stap vereis om 'n opdatering uit te voer. Die ontwikkelaar kan die opdatering met die hand begin. Omdat die span Bitbucket gebruik, het hulle toegang tot Bitbucket Pipelines en kan een gebruik om hierdie prosedure te outomatiseer.
- Terraform koppel aan die span se IaaS na uitvoering. Terraform gebruik die IaaS API om 'n reeks opdragte uit te voer wat die IaaS opdateer na die verwagte infrastruktuurkonfigurasie.
IaC-voordele
IaC help organisasies met die bestuur van hul IT-infrastruktuur-eise op 'n verskeidenheid maniere deur geoutomatiseerde prosedures. Sommige van die voordele van die installering van IaC is soos volg:
- Konsekwentheid: IaC kan konsekwentheid verhoog en foute wat gereeld voorkom tydens handmatige instellings verminder. Dit voorkom ook konfigurasieverskuiwing wat tydens 'n handbewerking kan voorkom. IaC laat jou toe om ongedokumenteerde, ad-hoc-konfigurasiewysigings te voorkom deur jou konfigurasiestandaarde te kodifiseer en te dokumenteer.
- Doeltreffendheid: Kodifisering van jou infrastruktuur skep 'n voorsieningsjabloon, wat stelselkonfigurasie, instandhouding en administrasie makliker maak. Dit bou 'n buigsame, herhaalbare en skaalbare infrastruktuur. As gevolg hiervan kan DevOps elke stadium van sagteware-ontwikkeling bespoedig, wat daartoe lei dat meer toepassings op 'n daaglikse basis gepubliseer word.
- Verlaagde koste: IaC stel virtuele masjiene in staat om programmaties bestuur te word, wat die behoefte aan handmatige hardewarekonfigurasie en -opgraderings verwyder. Deur dieselfde stuk kode te gebruik, kan een operateur een masjien of 1000 eenhede installeer en bestuur. Gevolglik word minder werknemers benodig en nuwe toerusting word nie meer benodig nie, wat aansienlike kostebesparings tot gevolg het.
- Spoed: IaC verminder die tyd wat dit neem vir ontwikkelaars om hul infrastruktuur te verskaf deur dit in 'n eenvoudige skrif te verander. As gevolg hiervan word toepassing-ontplooiings nie meer deur infrastruktuur vertraag nie, en nuwe sagteware kan aansienlik vinniger gelewer word.
- Verminder risiko: Soos IaC aanmoedig weergawe beheer, kan jou konfigurasielêers, soos enige ander sagtewarebronkodelêer, opgespoor word. As gevolg hiervan word die risiko verminder.
Watter probleem los IaC op?
Infrastruktuur as kode is geskep om die kwessie van vrystellingspypleidingomgewingverskuiwing aan te spreek. Sonder IaC is spanne verantwoordelik vir die instandhouding van die instellings van elke ontplooiingsomgewing. Elke omgewing ontwikkel in 'n sneeuvlok, 'n unieke rangskikking wat nie outomaties herhaal kan word nie.
Tydens ontplooiing veroorsaak inkonsekwentheid tussen omgewings probleme. Sneeuvlokkies benodig handbewerkings wat moeilik is om te bestuur en bydra tot foute in infrastruktuuradministrasie en instandhouding.
Infrastruktuur as Kode voldoen aan die idee van idempotensie.
Idempotensie verwys na die feit dat 'n ontplooiingsopdrag altyd die teikenomgewing op dieselfde manier konfigureer, ongeag die omgewing se begintoestand. Idempotensie word bereik deur óf outomaties 'n bestaande teiken te stel óf die bestaande teiken te verwerp en oor te begin.
As gevolg hiervan, met behulp van IaC, verander spanne die omgewingsbeskrywing en weergawe van die konfigurasiemodel, wat dikwels in goed gedokumenteerde kodeformate soos JSON geskryf word. Die model word in die vrystellingspyplyn uitgevoer om teikenomgewings op te stel. Die span wysig die bron, nie die teiken nie, as hulle veranderinge moet aanbring.
Hoe maak IaC saak in DevOps?
Die implementering van DevOps en deurlopende integrasie/deurlopende aflewering (CI/CD) metodologieë vereis die gebruik van IaC. Dit onthef ontwikkelaars van die meeste voorsieningsverantwoordelikhede, wat hulle in staat stel om net 'n skrip te laat loop om hul infrastruktuur aan die gang te kry.
As gevolg hiervan, word toepassing-ontplooiings nie geblokkeer terwyl infrastruktuur gebou word nie, en word stelselbeheerders nie belas met tydrowende handtake nie. Van integrasie en toetsing tot aflewering en ontplooiing, maak CI/CD staat op konstante outomatisering en deurlopende monitering regdeur die toepassinglewensiklus. 'n Konstante omgewing is nodig vir outomatisering om te werk.
Wanneer die ontwikkelingspan programme aflewer of omgewings op een manier opstel en die bedryfspan die omgewing op 'n ander manier installeer en konfigureer, is die outomatisering van toepassing-ontplooiings nie moontlik nie.
'n DevOps-metodologie bring ontwikkeling- en bedryfspanne in lyn, wat lei tot minder foute, handmatige ontplooiings en teenstrydighede. Omdat beide ontwikkeling- en bedryfspanne dieselfde beskrywing van die toepassing-ontplooiing kan gebruik, help IaC jou om ontwikkeling en bedrywighede te sinchroniseer, wat 'n DevOps-benadering moontlik maak.
Elke omgewing, insluitend jou produksie-omgewing, moet dieselfde ontplooiingsmetode volg. Elke keer as IaC gebruik word, word 'n identiese omgewing geskep.
Gevolgtrekking
DevOps maak baie staat op infrastruktuur as kode. Infrastruktuur as kode is die natuurlike volgende stap om jou bedrywighede toekomsgereed te maak in 'n wêreld waar ontwrigtende tegnologie die IT-sektor voortdurend transformeer.
Dit stel jou in staat om die volle potensiaal van cloud computing, verminder foute wat verband hou met handmatige IT-infrastruktuurbestuur, en verbeter die spoed waarmee sagteware ontwikkel word. Dit alles word bewerkstellig terwyl bedryfsuitgawes verminder word.
Lewer Kommentaar