Edukien aurkibidea[Ezkutatu][Erakutsi]
Azpiegitura softwarearen garapen-prozesuaren zati garrantzitsu bat da, software-aplikazio baten funtzionamendu onaren erantzule zuzena baita. Zerbitzariak, karga-orekatzaileak, suebakiak, datu-baseak eta edukiontzi-kluster konplikatuak dira azpiegituraren adibideak.
Azpiegitura-zailtasunak garapen-prozesu osoa hartzen dutenez, ekoizpen-egoeretatik haratago garrantzitsuak dira.
Besteak beste, CI/CD plataformak, eszena-inguruneak eta proba-tresnak daude.
Software produktuaren konplexutasuna handitzen den heinean, azpiegitura-erronka hauek larriagoak bihurtzen dira. Azpiegitura eskuz kudeatzeko teknika tradizionala soluzio eskalaezina bihurtzen da gaur egungo DevOps-en oinarritutako software garapen-ziklo azkarren asmoekin bat egiteko.
Ondorioz, Infrastructure as Code (IaC) de facto garapenerako irtenbidea bihurtu da gaur egun. Azpiegitura-kode gisa (IaC) azpiegitura-aldaketak sortzen diren heinean eskalatu eta jarraitzeko aukera ematen dizu.
Azpiegitura Kode gisa sakonago aztertuko dugu pieza honetan, bere onurak, zergatik den ezinbestekoa eta abar barne. Beraz, has gaitezen.
Zer da Azpiegitura Kode gisa?
Azpiegitura Kode gisa ingurune bat kodea erabiliz hornitzeko eta konfiguratzeko prozesua da, gailu eta sistema egokiak eskuz konfiguratu beharrean. Garatzaileek script-ak exekutatzen dituzte kode-parametroak definitu ondoren, eta IaC plataformak automatikoki sortzen du hodeiko azpiegitura.
Horrelako IT konfigurazio automatizatuei esker, taldeek beren produktua probatzeko eta exekutatzeko beharrezko hodeiko ezarpenak azkar eraiki ditzakete. Azpiegiturak kode gisa garatzaileek nahi duten azpiegitura-osagaia eraiki dezakete, hala nola sareak, karga orekatzaileak, datu-baseak, makina birtualak eta konexio motak.
Jendearen hitzetan, eskuz baino kodea erabiliz zehaztutako azpiegitura hornitzeko eta kudeatzeko prozesua da. IaC ere DevOps teknika garrantzitsua da, softwarearen entrega azkarreko bizi-ziklo baterako beharrezkoa dena.
DevOps taldeei azpiegitura azkar eraikitzeko eta bertsioratzeko aukera ematen die iturburu-kodea bertsionatu den moduan, baita bertsio horien jarraipena ere IT inguruneen arteko koherentzia gutxitzeko, eta horrek arazo handiak sor ditzake inplementazioan zehar.
IaCrako planteamendu deklaratiboak vs
IaC bi modutara hurbil daiteke: deklaratiboa edo inperatiboa.
IaC tresna batek sistema konfiguratuko dizu planteamendu deklaratiboa erabiltzen baduzu, sistemaren aurreikusitako egoera deskribatzen duena, zein baliabide behar dituzun eta izan behar dituzten kalitateak barne.
Adierazpen-ikuspegi batek zure sistemako objektuen egungo egoeraren jarraipena egiten du, zure azpiegituraren geldialdi-denbora kudeatzea erraztuz. Metodo ezinbesteko batek, berriz, nahi den konfigurazioa sortzeko ordena egokian exekutatu behar diren argibide partikularrak zehazten ditu.
IaC teknologia askok ikuspegi deklaratiboa erabiltzen dute hornidura-azpiegiturak eta automatikoki egingo dute. Adierazpen IaC tresna batek nahi duzun egoerari aldaketak aplikatuko dizkio egiten badituzu. Doikuntza horiek nola aplikatu jakin beharko duzu funtsezko tresna bat erabiltzen ari bazara. IaC tresnak bi moduetan funtzionatzeko gai dira maiz, nahiz eta bata bestearen alde egiten duten.
Nola funtzionatzen du Azpiegiturak kode gisa?
Azpiegitura kode gisa guztiz ezartzeko, baldintza batzuk bete behar dira.
Hodeiko ostalaritza zerbitzu gisa (IaaS) plataforma bat
Lehen eta garrantzitsuena urruneko sarbidearen hostinga da. Konfigurazioa kudeatzeko tresnak urruneko ostalarira konektatu eta bertan aldaketak egin behar ditu. Zure taldeak bermatu behar du konfigurazioa kudeatzeko tresnak sarbidea duela urrutiko azpiegitura autokudeatzen bada.
IaaS gaitutako hodeiko ostalaritza plataformako APIei esker, bezeroek eskaeraren arabera azpiegitura baliabideak eraiki, kendu eta alda ditzakete. Konfigurazioa kudeatzeko sistemek API hauek erabil ditzakete jarduera horiek are gehiago automatizatzeko. Digital Ocean, Amazon AWS eta Microsoft Azure hiru IaaS sistema nagusi dira.
Konfigurazioa kudeatzeko plataforma
IaaS APIetara konektatzen den eta ohiko eragiketak automatizatzen dituen tresna multzoa da IaC osatzeko hurrengo baldintza. Pertsona talde batek elkarrekin lan egin dezake gidoi eta tresnen bilduma bat sortzeko. Hala ere, esfortzu handia, etengabeko mantentzea eta inbertsioaren itzulera minimoa beharko luke. Terraform, Ansible, Salt Stack eta Chef erronka hau kudeatzen duten kode irekiko konfigurazioa kudeatzeko tresnetako batzuk dira.
Bertsioaren kontroleko sistema
Konfigurazioa kudeatzeko plataforma batek YAML bezalako marka-lengoaian idatzitako testu-fitxategiak erabiltzen ditu plataformak exekutatzeko zereginak eta sekuentziak eskaintzeko. Testu-fitxategi hauek aplikazio-kode gisa trata daitezke eta bertsio-kontroleko biltegi batean gorde daitezke. Tira-eskaerak eta kodearen berrikuspenak biltegian onartzen dira, egiaren puntu bakar gisa jokatzen duena. Bertsio-kontrol sistema Git da ezagunena.
Baldintza hauek ezarrita, kontuan hartu honako eszenatoki hau: garatzaile batek aplikazio-zerbitzu berri bat gehitu nahi du sistema batean. Adibide honek IaC prozesu bat erakusten du.
- Beren konfigurazio-kudeaketako plataforman, Terraform, garatzaileak YAML konfigurazio testu-fitxategi bat aldatzen du. Aldaketek diote ostalaritza zerbitzari berri bat behar dela.
- Git biltegian, garatzaileak eginbideen adar batean aldaketak konprometitzen ditu. Garatzaileak pull eskaera bat sortzen du proiektuaren Git biltegia Bitbucket-en ostatatuta dagoelako. Taldeko beste kide batek pull eskaera aztertu eta azpiegitura berrien hobekuntzak nabaritu ditu. Tira-eskaera taldekide batek onartzen du, eta garatzaileak aldaketa biltegiaren adar nagusian integratzen du.
- Urrats honetan konfigurazio plataforma beharrezkoa da eguneraketa bat egiteko. Garatzaileak eskuz abiarazi dezake eguneratzea. Taldeak Bitbucket erabiltzen duenez, Bitbucket Pipelines-era sarbidea dute eta prozedura hau automatizatzeko bat erabil dezakete.
- Terraform taldearen IaaSra konektatzen da exekutatu ondoren. Terraformek IaaS APIa erabiltzen du IaaS aurreikusitako azpiegituraren konfiguraziora eguneratzen duten komando-sekuentzia bat exekutatzeko.
IaC Abantailak
IaC-k erakundeei laguntzen die beren IT azpiegituren eskaerak kudeatzen hainbat modutan prozedura automatizatuen bidez. IaC instalatzearen abantailetako batzuk hauek dira:
- Koherentzia: IaC-k koherentzia areagotu eta eskuzko ezarpenetan maiz gertatzen diren akatsak gutxitu ditzake. Eskuzko eragiketa batean gerta daitekeen konfigurazio-noraeza ere saihesten du. IaC-k dokumenturik gabeko konfigurazio-aldaketak saihesteko aukera ematen dizu, zure konfigurazio estandarrak kodetuz eta dokumentatuz.
- Eraginkortasuna: zure azpiegitura kodetzeak hornidura txantiloi bat sortzen du, sistemaren konfigurazioa, mantentzea eta administrazioa erraztuz. Azpiegitura malgua, errepikagarria eta eskalagarria eraikitzen du. Ondorioz, DevOps-ek softwarearen garapenaren fase bakoitza bizkortu dezake, eta ondorioz, egunero aplikazio gehiago argitaratzen dira.
- Kostu murriztua: IaC-k makina birtualak programatikoki kudeatzea ahalbidetzen du, eskuzko hardware konfigurazio eta eguneratze beharra kenduz. Kode zati bera erabiliz, operadore batek makina bat edo 1000 unitate instalatu eta kudeatu ditzake. Ondorioz, langile gutxiago behar dira eta ekipamendu berririk ez da beharrezkoa, eta ondorioz, kostuak aurrezten dira.
- Abiadura: IaC-k garatzaileek beren azpiegitura hornitzeko behar duten denbora murrizten du script soil batean bihurtuz. Ondorioz, aplikazioen inplementazioa jada ez da azpiegiturak atzeratzen, eta software berria dezente azkarrago entregatu daiteke.
- Arriskua murriztea: IaC-k bultzatzen duen moduan bertsioaren kontrola, zure konfigurazio-fitxategiak, beste edozein software-iturburu-kode-fitxategiak bezala, jarraitu daitezke. Ondorioz, arriskua murrizten da.
Zein arazo konpontzen du IaC-k?
Infrastructure as Code askapen-bideen ingurunearen noraezearen arazoari aurre egiteko sortu zen. IaC gabe, taldeek inplementazio-ingurune bakoitzaren ezarpenak mantentzeaz arduratzen dira. Ingurune bakoitza elur maluta bilakatzen da, automatikoki errepikatu ezin den antolaketa bakarrean.
Inplementazioetan, inguruneen arteko inkoherentziak arazoak sortzen ditu. Elur-malutek eskuzko eragiketak behar dituzte, kudeatzeko zailak diren eta azpiegituren kudeaketan eta mantentze-lanetan akatsak egiten laguntzen dutenak.
Azpiegitura Kode gisa idempotentziaren ideiari atxikitzen zaio.
Idempotentzia inplementazio-komando batek xede-ingurunea beti modu berean konfiguratzen duela adierazten du, ingurunearen hasierako egoera edozein dela ere. Idempotentzia lehendik dagoen helburu bat automatikoki ezarriz edo lehendik dagoen helburua baztertuz eta berriro hasiz lortzen da.
Ondorioz, IaC erabiliz, taldeek ingurunearen deskribapena eta konfigurazio-ereduaren bertsioa aldatzen dute, sarritan ondo dokumentatutako kode formatuetan idatzita dagoen JSON bezalakoa. Eredua kaleratzeko kanalizazioan exekutatzen da xede-inguruneak konfiguratzeko. Taldeak iturburua editatzen du, ez xedea, aldaketak egin behar baditu.
Nola axola da IaC DevOps-en?
DevOps eta etengabeko integrazio/emanaldi jarraitua (CI/CD) metodologiak ezartzeak IaC erabiltzea beharrezkoa da. Garatzaileei hornidura-erantzukizun gehienetatik kentzen die, haien azpiegitura martxan jartzeko script bat besterik ez exekutatu ahal izateko.
Ondorioz, aplikazioen inplementazioak ez dira gelditzen azpiegitura eraikitzen den bitartean, eta sistema-administratzaileak ez dira denbora behar duten eskuzko zereginekin zamatzen. Integraziotik eta probak entregatu eta inplementatuz, CI/CD etengabeko automatizazioan eta etengabeko monitorizazioan oinarritzen da aplikazioaren bizi-ziklo osoan. Automatizazioak funtziona dezan etengabeko ingurunea behar da.
Garapen-taldeak aplikazioak edo inguruneak modu batera konfiguratzen dituenean eta eragiketa-taldeak ingurunea beste modu batean instalatzen eta konfiguratzen duenean, ezin izango da aplikazioen inplementazioa automatizatzea.
DevOps metodologia batek garapen- eta eragiketa-taldeak lerrokatzen ditu, eta ondorioz akats, eskuzko inplementazio eta inkoherentzia gutxiago sortzen dira. Garapen eta eragiketa taldeek aplikazioaren inplementazioaren deskribapen bera erabil dezaketenez, IaC-k garapena eta eragiketak sinkronizatzen laguntzen dizu, DevOps ikuspegia ahalbidetuz.
Ingurune guztiek, zure ekoizpen ingurunea barne, inplementazio-metodo bera jarraitu beharko lukete. IaC erabiltzen den bakoitzean, ingurune berdina sortzen da.
Ondorioa
DevOps azpiegituran oinarritzen da kode gisa. Azpiegitura Kode gisa zure eragiketak etorkizunerako prest izateko hurrengo urrats naturala da teknologia disruptiboak IT sektorea etengabe eraldatzen ari diren mundu batean.
Potentzial osoaz jabetzeko aukera ematen dizu cloud computing, eskuzko IT azpiegituren kudeaketarekin lotutako akatsak murrizten ditu eta softwarea garatzeko abiadura hobetzen du. Hori guztia funtzionamendu gastuak murrizten diren bitartean lortzen da.
Utzi erantzun bat