Edukien aurkibidea[Ezkutatu][Erakutsi]
Azpiegitura-kode gisa, edo IaC, IT azpiegitura konfiguratzeko eta mantentzeko modua irauli du duela hamarkada bat baino gehiago estreinatu zenetik.
Zerbitzari fisikoak pilatzea, sare-konexioak ezartzea eta ekipamendua datu-zentro eskudun batean gordetzeko erabiltzen den azpiegitura berriak konfiguratzea. Softwarea errendimendu eraginkorragoa, errentagarriagoa eta seguruagoa den azpiegitura bat sortzeko erabil daiteke orain.
Gainera, aldaketa historikoen kudeaketatik aldentzeari esker, taldeek orain oso egiaztatutako, baina guztiz gainbegiratu gabeko prozesu berriak inplementa ditzakete, minutu batzuetan baino egunetan, sistemak hornitzeko eta eguneratzeko prozedura estandarrak jarraituz, baita haien konfigurazioa ere.
IArtikulu honetan, gailuen konfigurazioa, hornidura eta hedapena eskalanean automatizatzeko ospe handia duten azpiegitura gisa Kode gisako hamar produktu nagusiak aztertuko ditugu.
Azpiegitura onena 2022rako kode tresna gisa
1. Ansible
Ansible RedHat-ek sortu zuen sinpletasuna sustatzeko helburuarekin. IT modernizatzen laguntzen du eta DevOps taldeei aplikazioak azkarrago, fidagarritasun handiagoz eta modu koordinatuagoan zabaltzen laguntzen die.
Betetzeko estandarrak betetzeaz kezkatu beharrik gabe, erraz sor ditzakezu hainbat konfigurazio berdin-segurtasun oinarriekin. Negozioari dagokionez, Ansiblek abantaila lehiakorra eskaintzen dio erakundeari berrikuntza eta estrategia ezartzeko denbora askatuz, baita IT negozioen eskakizunekin lerrokatuz ere.
Ansiblek "Playbooks" izeneko YAMLn oinarritutako konfigurazio moduluak erabiltzen ditu zure azpiegituraren amaierako egoera IaC tresna gisa ezartzeko. Ansiblek zure moduluak eta pluginak garatzeko aukera ematen dizu modulu lehenetsiek konpondu ezin duten arazoren bat aurkitzen baduzu.
Aplikazioen eta IT azpiegituren hornidura, konfigurazioa eta mantentze-lanak automatizatzeko metodorik errazena dela uste da.
Pros
- Hedapenari, konfigurazioari eta erabiltzeko erraztasunari dagokionez, tresna sinplea da hau.
- Zerbitzariak konfiguratzen ditu eta zuzen egiten ditu.
- Modulu pertsonalizatuek Ansible guztiz pertsonalizatzeko aukera ematen dute. Dagoeneko eskuragarri dauden luzapenen eta modulu gehigarrien biltegi ofizial handi bat ere badago.
- Ingurune bat konfiguratzeko egin behar dituzun makina-mailako zereginak automatizatu behar dira.
- VM eta edukiontzien irudiak probatzeko, egiaztatzeko eta konfiguratzeko, Ansible-k izugarri ondo funtzionatzen du Jenkins-ekin CI kanalizazio batean.
- Ansible agenterik gabekoa denez, jarduera guztiak SSH bidez egiten dira. Horrek esan nahi du ez duzula softwarerik instalatu beharko Ansiblek funtzionatzen duen zerbitzarian.
Cons
- Ansiblek zaila du inbentario handi eta konplikatuei aurre egitea. Inbentarioa prozesatzeko hobekuntzak diferentzia nabarmena izan dezake.
- Komunitateko edizioak programazio integratua falta du.
- Ansibleren doako prestakuntza eta tutoretzek ez dute xehetasun eta erraztasun maila bera ematen lehen aldiz erabiltzaileentzat.
- Baliteke YAML sintaxia ulertzea zaila izatea. Zaila izan daiteke sintaxi-errore baten kokapen zehatza zehaztea.
Prezioak
Plataforma erabiltzen has zaitezke doako probaldiarekin. Premium edizioak ere eskaintzen ditu, baina prezioak ez dira plataforman ageri.
2. Terraform
Gehien erabiliena eta Kode irekiko azpiegitura automatizatzeko tresna HashiCorp Terraform da. Azpiegiturarekin laguntzen du kodearen konfigurazioa, hornidura eta kudeaketa gisa.
Terraform-ek IaC diseinatzea eta eraikitzea errazten du azpiegitura-hornitzaile ugaritan prozesu bakarra erabiliz. Beharrezko azpiegitura kode gisa definitzen da teknika deklaratiboa erabiliz. Azpiegitura berritu edo hornitu aurretik, Terraformek erabiltzaileei aukera ematen die exekuzioaren aurretiko egiaztapena egin, ezarpenek espero diren emaitzak betetzen dituzten ikusteko.
CLI prozedura sinple eta koherente baten bidez, aukeratutako arkitektura izan dezakezu hodeiko hornitzaile askotan.
YAzkar sor ditzakezu hainbat ingurune konfigurazio berarekin eta nahi duzun azpiegituraren bizitza osoa kudeatu, giza akatsak ezabatuz eta hornikuntza eta administrazio prozesuan automatizazioa hobetuz.
Hainbat hornitzaile ere onartzen ditu, besteak beste, DigitalOcean, GitHub, Cloudflare eta beste batzuk. Terraformek baliabideak suntsitzea ahalbidetzen duen iturburua kontrolatzeko funtzio bat ere badu. Hodei hibridoekin lan egiten duzunean, funtzionalitate hau ezinbestekoa da, hodei-hornitzaile eta azpiegitura ugaritan planak sor daitezkeelako prozesu bera erabiliz.
Pros
- Azpiegitura-hornitzaile asko onartzen/integratzen dira, besteak beste, AWS, Google Cloud, Datadog, GitLab, Heroku, eta SignalFx.
- Azkar zabaldu azpiegitura kode gisa. Erraza da ingurunea konfiguratzea eta hastea, azkar garatzen.
- Hodeiaren egoeraren kudeaketa zerbitzu-hornitzaileek emandako jatorrizko soluzioak baino askoz gehiago errazten du.
- Terraform-en moduluen sareak zerbitzu-hornitzaile ugariri erantzuten dio.
Cons
- Terraformek grafikorik ez du erabiltzaileen interfazea, eta horrek askoz errazagoa izango luke erabilera.
- Azpiegitura kodea birfaktorizatzeak denbora asko behar du eta askotan baliabide berriak sortzea beharrezkoa da (esaterako, baliabideak izena aldatzean)
- Terraformek bere DSL propioa du, HashiCorp Konfigurazio Lengoaia, eta horrek denbora behar du ohitzeko.
Prezioak
Plataforma erabiltzen has zaitezke bere doako planarekin. 20 $/erabiltzailetik hasten diren ordainpeko planak ere eskaintzen ditu.
3. Chef
Chef negozioan IaC tresnarik ezagunenetako bat da. Chef-ek prozedurazko estilo-lengoaia erabiltzen du, non erabiltzaileak kodea idatzi eta urratsez urrats nahi den egoera nola lortu definitu behar duen. Erabiltzailearen esku dago hedapen-metodorik onena hautatzea.
Chef-ek errezetak eta sukaldaritza liburuak eraikitzeko aukera ematen dizu Rubyn oinarritutako DSL erabiliz.
Errezeta eta sukaldaritza liburu hauek lehendik dauden zerbitzarietan zure aplikazioak eta utilitateak zure gustura konfiguratzeko beharrezkoak diren prozesuak zehazten dituzte. Bere guztizko malgutasunak, integratutako noraeza minimizatzeko eta politikak kode gisa zehazteko gaitasunarekin batera, eskalagarria eta betegarria da edozein CI/CD kanalizaziotan.
Azpiegiturak kudeatzeko irtenbide hau edozein ingurunetan azpiegitura automatizazio prozesu eskalagarri eta segurua inplementatzen eta modelatzen laguntzeko diseinatuta dago.
Pros
- Sukaldariak aurrez ontziratutako txantiloiak ditu, azpiegiturak kudeatzea errazten dutenak, konplexutasun txikitik hasi eta handira bitartekoak.
- Chef oso erraza da funtzionatzeko. Chef-eko material askok antzeko printzipioak jarraitzen dituzte, eta oinarrizko sukaldaritza-liburuak sortzea oso erraza da hasieratik.
- Chef gogor ari da lanean Chef Automate bere potentzial osora iristeko aukera emango dioten integrazio esanguratsuez hornitzeko.
- Sukaldaritza-liburuak sukaldariaren ezaugarri onenetako bat dira, azkar hartzeko aukera ematen baitute.
- Material ugari dago Chef-ekin ia edozein helburu lortzen laguntzeko.
Cons
- Domeinuari dagokion hizkuntza indartsua da, baina praktika pixka bat behar du.
- Tresna aniztasuna nahasgarria izan daiteke; ikuspegi bateratzaile batek gauzak erraztuko lituzke.
- Sukaldariak beldurra eman dezake hasieran. Asko dago hartzeko, eta ikasteko modurik onena denbora hartzea, pazientzia izatea eta praktikatzea zela deskubritu nuen.
Prezioak
Prezioa ez dago eskuragarri plataforman, mesedez jarri harremanetan saltzailearekin prezioak ikusteko.
4. Txotxongilo
Gure zerrendako beste IaC tresnekin alderatuta, Puppet-ek antzekotasun asko ditu Chef-ekin, eta DevOps ingeniari askoren CI/CD kanalizazioen oinarrian dago.
Rubyn oinarritutako DSL bat erabiltzen du zure azpiegituraren amaierako egoera adierazteko, baita bete nahi dituzun funtzioak ere. Ondoren, txotxongiloak hutsuneak betetzen ditu, aurretik ezarritako konfigurazio-egoerarako biderik azkarrena irudikatuz.
Puppet azpiegiturak azkar eta segurtasunez hornitzeko IAC tresna multzo bat da. Garatzaile-komunitate handi bat du, softwarearen funtzionaltasuna hobetzen laguntzeko moduluak lagundu dituena.
Puppet-ek ia hodeiko azpiegitura nagusi guztiekin konektatzen du Code plataforma gisa, AWS, Azure, Google Cloud eta VMware barne, hodei anitzeko automatizazioa ahalbidetuz.
Pros
- Iturburu-kontrolarekin konbinatuta, azpiegitura-kode gisa (adibidez, Git) emateko teknika fidagarria eskaintzen du.
- Softwarea modu eraginkorrean instalatzeko aukera ematen dizu xehetasun guztiak ulertu beharrik gabe.
- Sistemaren konfigurazio-noraeza kudeatzen du sistemaren egonkortasuna eta funtzionamendu-denbora handitzeko; konfigurazio-kode bera hainbat aldiz bota daiteke.
- Taldeak DevOps-era bultzatzeko orduan, aktibo baliotsua da garapenak beren aktiboen kudeaketa ahalbidetzen duelako.
Cons
- Ikaskuntza-kurba altua, baina erraz menpera daitekeena, oinarri batzuk ikasiz gero eta Txotxongiloa praktikan erabiltzen bada.
- Plataforma eta datu-zentro desberdinak barne hartzen dituen inplementazio prozesu kolaboratiboago batean, konplexutasuna erabatekoa izan daiteke.
- Ez dator bat egungo azpiegiturekin, berez ez baita Puppet akatsa, baina pentsamendu eta praktiketan aldaketa ikaragarria behar dezake koherentziaz exekutatzeko.
- Ruby ezagutu behar duzu harekin zeregin sofistikatuak egin nahi badituzu.
Prezioak
Prezioa ez dago eskuragarri plataforman, mesedez jarri harremanetan saltzailearekin prezioak ikusteko.
5. AWS hodeiaren eraketa
AWS CloudFormation Infrastructure as Code (IaC) soluzio integratua da AWS hodeiko plataformaren barruan, eta azkar eta erraz inplementatu eta kudeatu dezakezu konektatutako AWS eta hirugarrenen baliabide talde bat, Infrastructure Code gisa erabiliz. Beharrezkoak diren DevOps eta GitOps praktika onak aplikatzeko aukera ematen dizu.
CloudFormation funtsezko beste AWS baliabide batzuekin konektatuz, zure baliabideen eskalagarritasuna kudeatu eta baliabide gehigarrien kudeaketa automatizatu dezakezu.
AWS CloudFormation-ek baliabide hornitzaileak garatzen uzten dizu bere kode irekiko CLI erabiliz hirugarrenen aplikazio-baliabideak hornitzeko eta kudeatzeko AWS jatorrizko baliabideekin batera.
CloudFormation txantiloiak YAML zein JSONn idatz daitezke, eta AWS baliabideak azkar eta erraz kudeatzeko, eskalatzeko eta automatizatzeko erabil daitezke.
Aldaketa guztien aurrebista ere egin dezakezu zabaldu aurretik, eta horri esker, aldaketa multzo batek zure baliabide, zerbitzu eta mendekotasunei nola eragingo dien ikusteko.
Pros
- Eskuz hornitzeko prozesua formalizatzea.
- Uneko konfigurazio bat txantiloi bihur daiteke tresna baten bidez.
- Hainbat txantiloi eta zati daude eskuragarri.
- Azpiegitura kode gisa garaipen bat da automatizazioari dagokionez.
- Hornidura CI/CDan integratu behar da.
- Arkitektoaren eta gauzatzailearen arteko lotura.
- DevOps-eko beste tresna batzuk integratu eta hobetu daitezke.
- CF-rekin lankidetzak zure komando lerroko trebetasunak azkar hobetzen lagunduko dizu.
Cons
- Errore baten deskribapena hobetu behar da.
- Baliabideak eskuz ezabatzea beharrezkoa da. Ezabapena hasi aurretik, baliabideak saltatu edo ezabatu behar diren galdetu dezake.
- Baliabideen edo konfigurazioen konexio nabaria dela eta, baliteke pilak ezabatzea zaila izatea.
Prezioak
Plataforma erabiltzen has zaitezke bere doako mailarekin. Eta prezioak 0.0009 $-tik hasten dira kudeatzaileen eragiketa bakoitzeko.
6. Google Cloud Deployment Manager
Google Cloud Deployment Manager baliabideen sorrera, konfigurazioa, hornidura eta administrazioa automatizatzen dituen Google Cloud Platform azpiegitura inplementatzeko soluzio bat da.
YGoogle hodeiko zerbitzu talde bat erraz osatu eta entitate bakar gisa kudeatu dezakezu. Ereduak YAML edo Python erabiliz garatu ditzakezu, aldaketak inplementatu aurretik aurreikus ditzakezu eta zure inplementazioak aztertu kontsolaren erabiltzaile-interfaze baten bidez.
Azpiegitura kode gisa tresna honek hizkuntza deklaratiboaren ikuspegia erabiltzen du nahi den konfigurazioa adierazteko eta gainerakoa sistemaren esku uzteko. Google Cloud Deployment Manager-ek baliabide asko aldi berean zabaltzeko aukera ematen du, baita baliabideen sorrera eta baliabideen definizio eskakizunen kudeaketa ere.
Inplementazioetarako konfigurazioak kode gisa kudeatzen dira, eta erraz errepika daitezke egoeran koherentzia mantenduz.
Pros
- Hainbat baliabide aldi berean zabaltzeko aukera ematen du.
- Inplementazioko baliabideak gehitzeko, kentzeko edo aldatzeko aukera ematen du.
- Erabiltzaileek konfigurazioa ezartzen dute eta sistemak gainerakoa irudikatzen du deklarazio-hizkuntzaren ikuspegia erabiliz.
- Baliabideen arteko definizio-menpekotasunak sortzen ditu eta horiek sortzen diren sekuentzia kontrolatzen du.
Cons
- Eguneraketak denbora errealean egiten dira. Ezin ditugu gure aplikazioak aldi berean eguneratu, baina zabaldu ditzakegu, eta hori da desabantaila handienetako bat.
- Zerbitzuarekin, ez dago laguntza espezializaturik. Irekitako elementuen erantzun-denbora ez da izan litekeena bezain azkarra.
Prezioak
Google Cloud Deployment Manager-ek ez du eman produktu edo zerbitzu honen prezioa. Hau software-saltzaile eta zerbitzu-hornitzaileentzako prozedura estandarra da. Uneko prezioak ezagutzeko, jarri harremanetan Google Cloud Deployment Managerra.
7. Azure baliabideen kudeatzailea
Azure Resource Manager, Microsoft-ek bere plataforman Azpiegitura kudeatzeko irtenbidea dena, IaC produktu nagusietako bat da. Mendekotasunak eta azpiegiturak kudeatzen ditu Azure Resource Manager txantiloia erabiliz (ARM txantiloiak).
Adibidez, zure baliabideak taldetan antola ditzakezu, ezabatu eta baliabideen sarbide-mailak mugatu, aukera batzuk aipatzearren. Zerbitzu eta baliabideetarako sarbidea kontrolatzea erraza da Azure-rekin, roletan oinarritutako sarbide-kontrolerako (RBAC) euskarri integratua baitator.
Kudeaketa-taldeek, harpidetzak eta baliabide-taldeek, berriz, sarbidearen zabalera finkatzeko aukera ematen dute. Gainera, hierarkia-maila baxuagoek goi-mailako ezarpenak heredatzen dituzte, maila altuagoko politikak behe-mailako talde eta baliabide guztietan ezartzen direla bermatuz.
Pros
- Erabilera erraza da, eta erreserba-pizgarriak kudeatzea erraza da.
- Gaitasun erabilgarrienak harpidetzak kudeatzeko eta proiektu-talde bati baliabide multzo bat esleitzeko dira.
- Azure Resource Manager-ek kudeaketa-zereginetan laguntzen du, hala nola taldeen kudeaketan. Adituentzat ere onuragarria da. Nahiko eraginkorra da proiektuak eta zerbitzuak zentralki kudeatzen laguntzeko.
Cons
- Ez dago erreserba-inplementazioa automatizatzeko edo eskalatzeko lerro bakarra erabiltzailearen interfazean.
- Baliteke erabiltzailearen interfazea hobetzeko gai izatea.
Prezioak
Prezioa ez dago eskuragarri plataforman, mesedez jarri harremanetan saltzailearekin prezioak ikusteko.
8. Pulumi
Pulumi IaC irtenbide bat da, beste Azpiegitura Kode plataformetatik bereizten dena, malgutasun gehigarria eskainiz.
Python, JavaScript, C#, Go eta TypeScript onartzen dira programazio lengoaien artean. Pulumi-k IaC DevOps erabilera-kasu sorta zabalago bat bete dezake eta garatzaile gehienengana irits daiteke bere hizkuntza-laguntza zabalduz.
Hizkuntza gehiagok ere esan nahi du tresna eta esparru gehiago dituzula eskura zure azpiegitura garatzeko eta probatzeko. Pulumiren ezaugarri bereizgarri bat azpiegitura gisa kode tresna gisa Terraform bezalako tresna ezagunen oinarrizko printzipioak eta funtzionaltasuna mantentzen lan bikaina egiten duela da, AWS, GCP eta Azure Cloud hodeiko erraldoiak ere onartzen dituela.
Pros
- Gauzak orduetan baino segundotan egiten dira.
- Aldaketa bakoitza proben eta integratutako politiken bidez balioztatu behar da.
- Pulumi edukitzeko tresna zoragarria da.
Cons
- Momentuz ez dago eragozpenik.
Prezioak
Plataforma erabiltzen has zaitezke bere plan indibidualarekin. 0.00025 $/kreditutik hasten dena ere eskaintzen du.
9. vagrant
Vagrant Hodeiko azpiegitura handien ordez Makina Birtual txiki bat erabili nahi duten profesionalentzako irtenbidea da. HashiCorp-ek sortu zuen, Terraform sortu zuen konpainia berak. Garapen-inguruneak azkar eraikitzen espezializatuta dagoenez, produktua askoz eskala txikiagoan lan egiten duten garatzaileentzat da.
Vagrant erabil dezakezu Makina Birtual bat sortzeko, zure probak exekutatzeko eta VM-ren konfigurazio guztiak Vagrantfile batean gordetzeko. Hau beste garatzaile batzuekin parteka dezakezu emaitza berdinak lortzen dituztela eta ingurune berean funtzionatzen dutela bermatzeko.
VirtualBox, AWS eta birtualizazioa zerbitzu gisa eskaintzen duen hodeiko beste edozein hornitzailerekin batera erabil daiteke. Gainera, Chef eta Puppet bezalako IaC tresnekin bateragarria da.
Pros
- Garapen ingurunea azkar eta erraz konfigura daiteke.
- Garapen/proba ingurune bat proiektuaren aldamio oso eraginkorra duena.
- Komunitate-kutxak eta pluginak estilo askotakoak dira.
- Tokiko garapenerako, Vagrant-ek portuak eta URLak zehaztea errazten du.
- Erraza da hainbat sistema eragile dituzten makinak eraikitzea; horien zerrenda, konfigurazio argibideekin batera, Vagranten webgunean aurki daiteke.
Cons
- Ez du erabiltzaile-interfaze grafikorik, nahiz eta hasiberrientzako erabilgarria izan daitekeen.
- Zure kodearen arabera, konfiguratzeko prozedura zaila izan daiteke.
- Beharrezkoa da komando-lerroa erabiltzea, eta hori zaila izan daiteke teknologia-jabeak ez diren diseinatzaile eta garatzaileentzat.
Prezioak
Plataforma erabiltzen has zaitezke bere komunitate-planarekin, guztiz doakoa dena. Ordaindutako planak ere eskaintzen ditu, $ 5 hilean hasten direnak.
10. (R)?adib
(R)?ex edo Rex automatizazio-esparru soil bat da, erabiltzaileari bere eredu propioa ezartzen ez diona. Ikuspegi deklaratiboen eta inperatiboen nahasketa, push edo tira kudeaketa estiloak, tokiko edo urruneko exekuzioa eta abar erabil ditzakezu rex-ekin.
Kode irekiko inplementazioa eta konfigurazioa kudeatzeko plataforma bat da, Perl Kodegintzan soilik oinarritzen dena, moduluak zure beharretara egokitzeko aukera ematen duena.
Urruneko zerbitzariak kontrolatzeko SSH gaitasunari esker, errepikatzen diren jarduerak konfiguratzea eta automatizatzea erraza da, denbora eta ahalegina aurreztuz.
Pros
- Perl ikasteko hizkuntza erraza da.
- Shh erabiltzen duen agenterik gabeko tresna da.
- Errepika daitezkeen lanak automatizatu egiten dira denbora eta frustrazioa aurrezteko.
Cons
- Momentuz ez dago eragozpenik.
Prezioak
Kode irekikoa denez, guztiek erabil dezakete doan.
Ondorioa
Bere eraginkortasun eta fidagarritasunarekin, Infrastructure as Code da etorkizuneko bidea hodeiko baliabideak kudeatzeko. Aztertu ditugun IaC teknologiek edozein proiektu modu eraginkorragoan exekutatzen lagunduko dute, denbora gehien eskatzen duten prozesuak automatizatuz, giro seguruagoa eta uniformetasuna bermatuz.
Enpresa asko IaC-ra bihurtu dira azken urteotan, eta ondorioz, hodeiko plataformaren WebUI-arekin eta baliabideetan dauden inkoherentziak jorratzeko denbora murriztu da. Gaur egun eskuragarri dauden IaC tresna handienetako batzuk goiko zerrendan sartzen dira. Zerrenda hau ez da zehatza, baina gai honi ekingo diozu.
Utzi erantzun bat