Enhavtabelo[Kaŝi][Montri]
Infrastrukturo estas grava parto de la programaro-procezo ĉar ĝi rekte respondecas pri la glata funkciado de programaro. Serviloj, ŝarĝbalanciloj, fajroŝirmiloj, datumbazoj kaj komplikaj konteneroj estas ĉiuj ekzemploj de infrastrukturo.
Ĉar infrastrukturmalfacilaĵoj trapenetras la tutan evoluprocezon, ili estas gravaj preter produktadsituacioj.
Ili inkluzivas CI/KD-platformojn, aranĝajn mediojn kaj testajn ilojn, interalie.
Ĉar la komplekseco de la programaro pliiĝas, ĉi tiuj infrastrukturaj defioj iĝas pli kritikaj. La tradicia tekniko de mane administri infrastrukturon rapide fariĝas neskalebla solvo por kongrui kun la aspiroj de la hodiaŭaj rapidaj disvolvaj programoj bazitaj sur DevOps.
Kiel rezulto, Infrastructure as Code (IaC) fariĝis la fakta evolusolvo hodiaŭ. Infrastrukturo kiel kodo (IaC) ebligas vin grimpi kaj spuri infrastrukturajn ŝanĝojn kiam ili aperas.
Ni rigardos pli proksime al Infrastrukturo kiel Kodo en ĉi tiu peco, inkluzive de ĝiaj avantaĝoj, kial ĝi estas esenca kaj pli. Do, ni komencu.
Kio estas la Infrastrukturo kiel Kodo?
Infrastrukturo kiel Kodo estas la procezo provizi kaj agordi medion uzante kodon prefere ol mane agordi la taŭgajn aparatojn kaj sistemojn. Programistoj rulas skriptojn post difinado de kodaj parametroj, kaj la platformo IaC aŭtomate generas la nuban infrastrukturon.
Tiaj aŭtomatigitaj IT-agordoj permesas al teamoj rapide konstrui la necesan nuban agordon por testi kaj funkcii sian produkton. Infrastrukturo kiel Kodo ebligas al programistoj konstrui kian ajn infrastrukturan komponenton ili volas, kiel ekzemple retoj, ŝarĝbalanciloj, datumbazoj, virtualaj maŝinoj kaj konektospecoj.
Laŭ laikaj esprimoj, ĝi estas la procezo de provizado kaj administrado de infrastrukturo specifita uzante kodon prefere ol permane. IaC ankaŭ estas grava DevOps-tekniko, kiu estas bezonata por rapida paŝada programaro-livera vivociklo.
Ĝi permesas al DevOps-teamoj rapide konstrui kaj versio infrastrukturon en la sama maniero kiel fontkodo estas versionita, kaj ankaŭ spuri ĉi tiujn versiojn por minimumigi nekongruecon inter IT-medioj, kiuj povas kaŭzi gravajn problemojn dum deplojo.
Deklaraj kontraŭ imperativoj aliroj al IaC
IaC povas esti kontaktita en du manieroj: deklara aŭ imperativo.
IaC-ilo starigos la sistemon por vi se vi uzas deklaran aliron, kiu priskribas la celitan staton de la sistemo, inkluzive de kiaj rimedoj vi postulas kaj ajnajn kvalitojn ili devus havi.
Deklara aliro ankaŭ konservas spuron de la nuna stato de viaj sistemaj objektoj, faciligante administri la malfunkcion de via infrastrukturo. Nepra metodo, aliflanke, skizas la apartajn instrukciojn kiuj devas esti efektivigitaj en la ĝusta ordo por krei la celitan agordon.
Multaj IaC-teknologioj uzas deklaran aliron al provizanta infrastrukturo kaj faros ĝin aŭtomate. Deklara IaC-ilo aplikos modifojn al la dezirata stato por vi se vi faros ilin. Vi devos ekscii kiel apliki tiujn ĝustigojn se vi uzas esencan ilon. IaC-iloj ofte kapablas funkcii en ambaŭ reĝimoj, kvankam ili preferas unu super la alia.
Kiel funkcias Infrastrukturo kiel kodo?
Por tute efektivigi infrastrukturon kiel kodon, kelkaj postuloj devas esti en la loko.
Platformo por nuba gastigado kiel servo (IaaS)
La unua kaj plej grava bezono estas fora alira gastigado. La agorda administra ilo devas konektiĝi al la fora gastiganto kaj fari ŝanĝojn tie. Via teamo devas garantii, ke la agorda administra ilo havas aliron se la malproksima infrastrukturo estas memadministrata.
API-oj sur la platformo de nuba gastigado ebligita de IaaS ebligas al klientoj konstrui, forigi kaj ŝanĝi infrastrukturajn rimedojn laŭ postulo. Agordaj administradsistemoj povas uzi ĉi tiujn APIojn por aŭtomatigi ĉi tiujn agadojn eĉ plu. Cifereca Oceano, Amazon AWS kaj Microsoft Azure estas tri ĉefaj IaaS-sistemoj.
Platformo por agorda administrado
La ilaro, kiu konektas al la IaaS-API-oj kaj aŭtomatigas tipajn operaciojn, estas la sekva antaŭkondiĉo por kompletigi IaC. Grupo de homoj povas kunlabori por produkti kolekton de skriptoj kaj iloj. Tamen, ĝi bezonus gravan kvanton da penado, daŭran bontenadon kaj minimuman revenon de investo. Terraform, Ansible, Salt Stack kaj Chef estas nur kelkaj el la malfermfontaj agordaj iloj, kiuj pritraktas ĉi tiun defion.
Versio-Kontrola Sistemo
Agorda administradplatformo uzas tekstdosierojn skribitajn en markadlingvo kiel ekzemple YAML por disponigi taskojn kaj sekvencojn por la platformo por ekzekuti. Ĉi tiuj tekstdosieroj povas esti traktataj kiel aplikaĵokodo kaj konservitaj en versiokontrola deponejo. Tiraj petoj kaj kodaj recenzoj estas permesitaj en la deponejo, kiu funkcias kiel ununura punkto de vero. La versio-kontrolsistemo Git estas la plej populara.
Kun ĉi tiuj antaŭkondiĉoj, konsideru la sekvan scenaron: programisto volas aldoni novan aplikaĵservon al sistemo. Ĉi tiu ekzemplo ilustras procezon de IaC.
- En ilia preferata agorda administradplatformo, Terraform, la programisto modifas YAML-agordan tekstdosieron. La ŝanĝoj deklaras, ke nova gastiga servilo estas postulata.
- En la Git-deponejo, la programisto faras ŝanĝojn al trajtobranĉo. La programisto kreas tiran peton ĉar la Git-deponejo de la projekto estas gastigita sur Bitbucket. Alia membro de la teamo trarigardas la tiran peton kaj rimarkas la novajn infrastrukturajn plibonigojn. La tirpeto estas aprobita de teamano, kaj la programisto integras la ŝanĝon en la ĉefan branĉon de la deponejo.
- La agorda platformo estas bezonata ĉe ĉi tiu paŝo por plenumi ĝisdatigon. La programisto povas mane komenci la ĝisdatigon. Ĉar la teamo uzas Bitbucket, ili havas aliron al Bitbucket Pipelines kaj povas uzi unu por aŭtomatigi ĉi tiun proceduron.
- Terraform ligas al la IaaS de la teamo post ekzekuto. Terraform uzas la IaaS API por ruli sekvencon de komandoj kiuj ĝisdatigas la IaaS al la antaŭvidita infrastruktura agordo.
IaC Profitoj
IaC helpas organizojn administri iliajn IT-infrastrukturpostulojn en diversaj manieroj per aŭtomatigitaj proceduroj. Kelkaj el la avantaĝoj de instalo de IaC estas kiel sekvas:
- Konsistenco: IaC povas pliigi konsistencon kaj malpliigi erarojn, kiuj ofte okazas dum manaj agordoj. Ĝi ankaŭ malhelpas agordon, kiu povus okazi dum mana operacio. IaC ebligas vin malhelpi nedokumentitajn, ad-hoc-agordajn modifojn per kodigo kaj dokumentado de viaj agordaj normoj.
- Efikeco: Kodigado de via infrastrukturo kreas provizantan ŝablonon, faciligante sisteman agordon, prizorgadon kaj administradon. Ĝi konstruas flekseblan, ripeteblan kaj skaleblan infrastrukturon. Kiel rezulto, DevOps povas akceli ĉiun etapon de programaro, rezultigante pli da programoj publikigataj ĉiutage.
- Reduktita kosto: IaC ebligas virtualajn maŝinojn administri programe, forigante la bezonon de manlibro-agordo kaj ĝisdatigoj. Uzante la saman kodon, unu funkciigisto povas instali kaj administri unu maŝinon aŭ 1000 ekzemplerojn. Kiel rezulto, malpli da dungitoj estas postulataj kaj nova ilaro ne plu necesas, rezultigante konsiderindajn ŝparojn.
- Rapido: IaC reduktas la tempon necesan por programistoj por provizi sian infrastrukturon igante ĝin simpla skripto. Kiel rezulto, aplikaĵdeplojoj ne plu estas prokrastitaj de infrastrukturo, kaj nova programaro povas esti liverita konsiderinde pli rapide.
- Redukti Riskon: Kiel IaC instigas versio kontrolo, viaj agordaj dosieroj, kiel ajna alia programara fontkoda dosiero, povas esti spuritaj. Sekve, la risko estas reduktita.
Kiun problemon IaC solvas?
Infrastrukturo kiel Kodo estis kreita por trakti la temon de liberigo-dukto-medio-drivo. Sen IaC, teamoj respondecas pri konservado de la agordoj de ĉiu deplojmedio. Ĉiu medio evoluas al neĝero, unika aranĝo kiu ne povas esti reproduktita aŭtomate.
Dum deplojoj, faktkonflikto inter medioj kaŭzas problemojn. Neĝflokoj bezonas manajn operaciojn malfacile administreblajn kaj kontribuantaj al eraroj en administrado kaj prizorgado de infrastrukturoj.
Infrastrukturo kiel Kodo aliĝas al la ideo de idempotenco.
Idempotence rilatas al la fakto ke deploja komando ĉiam agordas la celmedion en la sama maniero, nekonsiderante la komenca stato de la medio. Idempotenco estas atingita aŭ aŭtomate fiksante ekzistantan celon aŭ malakceptante la ekzistantan celon kaj rekomencante.
Kiel rezulto, uzante IaC, teamoj modifas la mediopriskribon kaj version de la agorda modelo, kiu ofte estas skribita en bone dokumentitaj kodformatoj kiel JSON. La modelo estas prizorgita en la eldona dukto por agordi celajn mediojn. La teamo redaktas la fonton, ne la celon, se ili bezonas fari ŝanĝojn.
Kiel gravas IaC en DevOps?
Efektivigo de DevOps kaj daŭra integriĝo/kontinua livero (CI/KD) metodaroj postulas la uzon de IaC. Ĝi liberigas programistojn de la plimulto de provizantaj respondecoj, permesante al ili nur ruli skripton por ekfunkciigi sian infrastrukturon.
Kiel rezulto, aplikaĵdeplojoj ne estas haltigitaj dum infrastrukturo estas konstruita, kaj sistemadministrantoj ne estas ŝarĝitaj per tempopostulaj manaj taskoj. De integriĝo kaj testado tra livero kaj deplojo, CI/KD dependas de konstanta aŭtomatigo kaj kontinua monitorado dum la aplikaĵa vivociklo. Konstanta medio estas postulata por ke aŭtomatigo funkciu.
Kiam la disvolva teamo liveras aplikaĵojn aŭ agordas mediojn unudirekte kaj la operacia teamo instalas kaj agordas la medion alimaniere, aŭtomatigi aplikaĵdeplojojn ne eblas.
DevOps-metodaro vicigas evoluajn kaj operaciajn teamojn, rezultigante malpli da eraroj, manaj deplojoj kaj nekonsekvencoj. Ĉar ambaŭ disvolvaj kaj operaciaj teamoj povas utiligi la saman priskribon de la aplikaĵa deplojo, IaC helpas vin sinkronigi evoluon kaj operaciojn, ebligante DevOps-aliron.
Ĉiu medio, inkluzive de via produktadmedio, devus sekvi la saman deplojmetodon. Ĉiufoje kiam IaC estas utiligita, identa medio estas kreita.
konkludo
DevOps dependas multe de infrastrukturo kiel kodo. Infrastrukturo kiel Kodo estas la natura sekva paŝo por fari viajn operaciojn estonte pretajn en mondo kie interrompaj teknologioj daŭre transformas la IT-sektoron.
Ĝi ebligas al vi realigi la plenan potencialon de cloud computing, reduktas erarojn asociitajn kun mana IT-infrastrukturadministrado, kaj plibonigas la rapidecon kun kiu programaro estas evoluigita. Ĉio ĉi estas plenumita dum malpliigo de operaciaj elspezoj.
Lasi Respondon