DevOps gida hasiberrientzako

Zein da DevOps-en garrantzia, zer esan nahi duen IT profesionalentzat, metodoen, esparruen eta tresnen deskribapena.

DevOps gida hasiberrientzako

Asko gertatu da DevOps terminoa IT munduan hartu zuenetik. Kode irekiko ekosistemaren zati handi bat izanik, garrantzitsua da zergatik hasi zen eta zer esan nahi duen IT karrerarako.

Zer da DevOps

Definizio bakarra ez dagoen arren, uste dut DevOps garapen- eta eragiketa-taldeen arteko lankidetza ahalbidetzen duen teknologia-esparru bat dela, kodea ekoizpen-inguruneetan azkarrago zabaltzeko, errepikatzeko eta automatizatzeko gaitasunarekin. Artikulu honen gainerako zatia erreklamazio hau desegitea emango dugu.

"DevOps" hitza "garapena" eta "eragiketak" hitzen konbinazioa da. DevOps aplikazioak eta zerbitzuak emateko abiadura handitzen laguntzen du. Horri esker, erakundeek beren bezeroei modu eraginkorrean zerbitzatzen diete eta merkatuan lehiakorragoak izan daitezen. Besterik gabe, DevOps garapenaren eta IT eragiketen arteko lerrokatzea da, komunikazio eta lankidetza eraginkorragoak dituena.

DevOps-ek garapen, eragiketa eta negozio taldeen arteko elkarlana funtsezkotzat jotzen den kultura dakar. Ez da tresnei buruz bakarrik, erakunde bateko DevOps-ek bezeroei ere mesede egiten die etengabe. Erremintak dira bere zutabeetako bat, pertsonekin eta prozesuekin batera. DevOps-ek erakundeen gaitasuna handitzen du kalitate handiko soluzioak ahalik eta denbora laburrenean emateko. DevOps-ek prozesu guztiak automatizatzen ditu, eraikuntzatik inplementaziora, aplikazioa edo produktua.

DevOps eztabaida garatzaileen, bizimodua lortzeko softwarea idazten duten pertsonen eta software hori mantentzeaz arduratzen diren operadoreen arteko harremanean zentratzen da.

Garapen taldearentzat erronkak

Garatzaileak gogotsu eta antolakuntza-arazoak konpontzeko ikuspegi eta teknologia berriak ezartzeko gogotsu egon ohi dira. Hala ere, arazo batzuk ere izaten dituzte:

  • Merkatu lehiakorrak presio handia sortzen du produktua garaiz entregatzeko.
  • Produkziorako prest dagoen kodea kudeatzeaz eta eginbide berriak sartzeaz arduratu behar dira.
  • Askapen-zikloa luzea izan daiteke, beraz, garapen-taldeak hainbat hipotesi egin behar ditu aplikazioak ezarri aurretik. Egoera honetan, denbora gehiago behar da ekoizpen- edo proba-ingurune batera inplementatzean sortzen diren arazoak konpontzeko.

Eragiketa-taldeak dituen erronkak

Eragiketa-taldeek historikoki IT zerbitzuen egonkortasunean eta fidagarritasunean zentratu izan dira. Horregatik, operazio-taldeek egonkortasuna bilatzen dute baliabideen, teknologiaren edo planteamenduen aldaketen bidez. Haien zereginak honakoak dira:

  • Kudeatu baliabideen esleipena eskaria handitzen den heinean.
  • Kudeatu ekoizpen-ingurunean erabiltzeko beharrezkoak diren diseinu- edo pertsonalizazio-aldaketak.
  • Produkzio-arazoak diagnostikatu eta konpondu aplikazioak auto-hedatu ondoren.

DevOps-ek nola konpontzen dituen garapen eta eragiketen arazoak

Aplikazio-funtzio ugari aldi berean zabaldu beharrean, enpresak bezeroei eginbide kopuru txiki bat zabaltzen ahal dieten ikusten saiatzen ari dira kaleratze-iterazio batzuen bidez. Ikuspegi honek abantaila ugari ditu, hala nola, softwarearen kalitate hobea, bezeroen iritzia azkarragoa, etab. Horrek, aldi berean, bezeroen gogobetetze handia bermatzen du. Helburu hauek lortzeko, enpresek honako hauek egin behar dituzte:

  • Murriztu hutsegite-tasa bertsio berriak kaleratzen dituzunean
  • Inplementazio maiztasuna handitu
  • Lortu batez besteko denbora azkarragoa berreskuratzeko aplikazio berri bat kaleratuz gero.
  • Murriztu zuzenketak egiteko denbora

DevOps-ek zeregin horiek guztiak egiten ditu eta etenik gabeko entrega ziurtatzen laguntzen du. Erakundeek DevOps erabiltzen ari dira duela urte batzuk imajinaezinak ziren produktibitate-mailak lortzeko. Egunean hamarnaka, ehunka eta milaka inplementazio egiten dituzte mundu mailako fidagarritasuna, egonkortasuna eta segurtasuna eskaintzen dituzten bitartean. (Loteen tamainari buruzko informazio gehiago eta softwarearen entregan duten eragina).

DevOps iraganeko metodologien ondoriozko hainbat arazo konpontzen saiatzen da, besteak beste:

  • Garapen eta eragiketa taldeen arteko lana isolatzea
  • Probak eta hedapena diseinatu eta eraiki ondoren gertatzen diren fase bereiziak dira eta eraikitze-zikloek baino denbora gehiago behar dute.
  • Gehiegizko denbora probatzen, hedatzen eta diseinatzen igarotzen da negozioaren oinarrizko zerbitzuak eraikitzen zentratu beharrean
  • Eskuzko kodea zabaltzea ekoizpenean akatsak eraginez
  • Garapen- eta eragiketa-taldeen egutegietan desberdintasunek atzerapen gehigarriak eragiten dituzte

DevOps gida hasiberrientzako

DevOps, Agile eta IT tradizionalaren arteko konfrontazioa

DevOps beste IT praktikekin hitz egiten da askotan, bereziki Agile eta Waterfall IT.

Agile softwarea ekoizteko printzipio, balio eta praktiken multzoa da. Beraz, adibidez, software bihurtu nahi duzun ideiaren bat baduzu, Agile printzipio eta balioak erabil ditzakezu. Baina software hau garapen edo proba ingurune batean bakarrik exekutatu daiteke. Modu erraz eta seguru bat behar duzu zure softwarea produkziora azkar eta errepikatuz eramateko, eta bidea DevOps tresna eta tekniken bidez da. Softwarearen garapen arina garapen prozesuetan zentratzen da eta DevOps garapena eta hedapenaz arduratzen da modu seguru eta fidagarrienean.

Ur-jauzien eredu tradizionala DevOps-ekin alderatzea modu ona da DevOps-ek ekartzen dituen onurak ulertzeko. Ondorengo adibidean aplikazioa lau aste barru martxan egongo dela suposatzen du, garapena % 85 amaituta dagoela, aplikazioa zuzenean egongo dela eta kodea bidaltzeko zerbitzariak erosteko prozesua hasi berri dela.

Prozesu tradizionalak
Prozesuak DevOps-en

Zerbitzari berrien eskaera egin ondoren, garapen-taldeak probak lantzen ditu. Lantaldeak azpiegitura zabaltzeko enpresek behar duten dokumentazio zabala lantzen du.
Zerbitzari berrien eskaera egin ondoren, garapen- eta eragiketa-taldeek elkarrekin lan egiten dute zerbitzari berriak instalatzeko prozesuetan eta izapideetan. Horri esker, zure azpiegitura-eskakizunak hobeto ulertzen dituzu.

Hutsegiteko, erredundantziari, datu-zentroen kokapenei eta biltegiratze-baldintzei buruzko informazioa gaizki irudikatuta dago, domeinuaren ezagutza sakona duen garapen-talde baten ekarpenik ez dagoelako.
hutsegiteari, erredundantziari, hondamendien berreskurapenari, datu-zentroen kokapenari eta biltegiratze-baldintzei buruzko xehetasunak ezagutzen eta zuzenak dira garapen-taldearen ekarpenari esker.

Eragiketa-taldeak ez du ideiarik gabe garapen-taldearen aurrerapenaz. Gainera, jarraipen-plan bat garatzen du bere ideietan oinarrituta.

Eragiketa-taldeak guztiz ezagutzen du garapen-taldeak egindako aurrerapenaz. Garapen taldearekin ere elkarreragiten du eta elkarrekin lan egiten dute IT eta negozio beharrak asetzen dituen jarraipen plan bat garatzeko. Aplikazioen errendimendua kontrolatzeko (APM) tresnak ere erabiltzen dituzte.

Aplikazio bat abiarazi aurretik egindako karga-probak aplikazioa huts egiten du, eta abiarazte atzeratu egiten da.
Aplikazio bat exekutatu aurretik egiten den karga-probak errendimendu txarra eragiten du. Garapen-taldeak azkar konpontzen ditu botila-lepoak eta aplikazioa garaiz abiarazten da.

DevOps bizi-zikloa

DevOps-ek orokorrean onartutako praktika batzuk hartzea dakar.

Etengabeko plangintza

Etengabeko plangintza printzipio lean oinarritzen da txiki hasteko, negozioaren edo ikuspegiaren balioa probatzeko, etengabe egokitzeko, aurrerapenak neurtzeko, bezeroen beharretatik ikasteko, norabidea aldatzeko behar den moduan arintasuna egokitzeko eta negozio-plana berrasmatzeko behar diren baliabideak eta irteerak identifikatuz.

Garapen bateratua

Elkarlaneko garapen-prozesuari esker, enpresei, garapen-taldeei eta proba-taldeei ordu-eremu ezberdinetan banatuta, kalitatezko softwarea etengabe emateko aukera ematen du. Honek plataforma anitzeko garapena, hizkuntza arteko programazioaren euskarria, erabiltzaileen istorioak sortzea, ideiak garatzea eta bizi-zikloaren kudeaketa barne hartzen ditu. Garapen kolaboratiboak etengabeko integrazioaren prozesua eta praktika barne hartzen ditu, maiz kodeen integrazioa eta eraikuntza automatizatuak sustatzen dituena. Kodea aplikazio batean maiz zabalduz gero, integrazio-arazoak bizi-zikloaren hasieran identifikatzen dira (errazago konpontzen direnean) eta integrazio-esfortzu orokorra murrizten da etengabeko feedbackaren bidez, proiektuak etengabeko aurrerapena erakusten baitu.

Etengabeko probak

Etengabeko probak proben kostua murrizten du garapen-taldeei abiadura eta kalitatea orekatzen laguntzen dielako. Era berean, probak ezabatzen ditu zerbitzuen birtualizazioaren bidez eta sistemak aldatzen diren heinean erraz partekatu, zabaldu eta eguneratu daitezkeen proba-ingurune birtualizatuak sortzea errazten du. Gaitasun hauek proba-inguruneak hornitzeko eta mantentzeko kostua murrizten dute eta proba-zikloen denborak laburtzen dituzte, integrazio-probak bizitza-zikloan lehenago egitea ahalbidetuz.

Etengabeko kaleratzea eta hedapena

Teknika hauek oinarrizko praktika bat ekartzen dute: etengabeko kaleratzea eta hedapena. Hau funtsezko prozesuak automatizatzen dituen kanalizazio etengabe batek bermatzen du. Eskuzko urratsak, baliabideen itxarote-denborak eta birlanketak murrizten ditu botoi bat sakatzean inplementazioa gaituz, kaleratze gehiago, errore gutxiago eta erabateko gardentasuna lortuz.

Automatizazioak funtsezko eginkizuna du softwarearen kaleratze egonkorra eta fidagarria bermatzeko. Erronka handienetako bat eskuzko prozesuak hartu eta automatizatzea da, hala nola eraikitzea, erregresioa, hedapena eta azpiegiturak sortzea. Horrek iturburu-kodearen bertsio-kontrola behar du; proba eta zabaltze eszenatokiak; azpiegitura eta aplikazioen konfigurazio datuak; eta aplikazioaren mende dauden liburutegiak eta paketeak. Beste faktore garrantzitsu bat ingurune guztien egoera kontsultatzeko gaitasuna da.

Etengabeko jarraipena

Etengabeko monitorizazioak enpresa-mailako txostenak eskaintzen ditu, garapen-taldeei ekoizpen-inguruneetako aplikazioen erabilgarritasuna eta errendimendua ulertzen laguntzen diena, produkziora zabaldu aurretik. Etengabeko jarraipenak ematen duen feedback goiztiarra funtsezkoa da akatsen kostua murrizteko eta proiektuak norabide egokian bideratzeko. Praktika honek sarritan aplikazioen errendimenduarekin erlazionatutako neurketak agerian uzten dituzten monitorizazio tresnak biltzen ditu.

Etengabeko iritzia eta optimizazioa

Etengabeko iritziak eta optimizazioak bezeroaren fluxuaren irudikapen bisuala eskaintzen du eta arazo-eremuak zehazten ditu. Iritzia salmenta aurreko eta ondorengo faseetan sar daiteke balioa maximizatzeko eta transakzio gehiago behar bezala burutzen direla ziurtatzeko. Horrek guztiak bere portaeran eta negozio-eragina eragiten duten bezeroen arazoen jatorria berehala bistaratzen du.

DevOps gida hasiberrientzako

DevOps-en abantailak

DevOps-ek ingurune bat sortzen lagun dezake, non garatzaileek eta eragiketak taldean lan egiten duten helburu komunak lortzeko. Prozesu honen mugarri garrantzitsu bat etengabeko integrazioa eta etengabeko entrega (CI/CD) ezartzea da. Teknika horiei esker, taldeek softwarea azkarrago merkaturatzeko aukera izango dute akats gutxiagorekin.

DevOps-en abantaila garrantzitsuak hauek dira:

  • Aurreikusgarritasuna: DevOps-ek porrot-tasa nabarmen txikiagoa eskaintzen du bertsio berrietarako.
  • Mantengarritasuna: DevOps-ek erraz berreskuratzea ahalbidetzen du bertsio berri batek huts egiten badu edo aplikazio bat jaisten bada.
  • Erreproduzigarritasuna: Eraikuntza edo kode baten bertsio-kontrolak lehenagoko bertsioak leheneratu ahal izango dituzu behar duzunean.
  • Kalitate handiagoa: azpiegitura-arazoak konpontzeak aplikazioen garapenaren kalitatea hobetzen du.
  • Merkaturatzeko denbora: softwarearen entrega optimizatzeak merkaturatzeko denbora % 50 murrizten du.
  • Arriskuen murrizketa: softwarearen bizi-zikloan segurtasuna ezartzeak bizi-ziklo osoan akatsen kopurua murrizten du.
  • Kostu-eraginkortasuna: software garapenean kostu-eraginkortasuna bilatzea goi-zuzendaritzako erakargarria da.
  • Egonkortasuna: software-sistema egonkorragoa, seguruagoa da eta aldaketak ikuskatu daitezke.
  • Kode-oinarri handiago bat zati kudeagarrietan zatitzea: DevOps garapen-metodo arinetan oinarritzen da, eta horri esker, kode-oinarri handi bat zati txikiago eta kudeagarrietan apurtzea.

DevOps printzipioak

DevOps hartzeak eboluzionatu (eta eboluzionatzen jarraitzen duten) hainbat printzipio sortu zituen. Soluzio-hornitzaile gehienek hainbat teknikaren aldaketak garatu dituzte. Printzipio hauek guztiak DevOps-en ikuspegi holistiko batean oinarritzen dira, eta edozein tamainatako erakundeek erabil ditzakete.

Garatu eta probatu produkzio antzeko ingurune batean

Ideia da garapen eta kalitatea bermatzeko (QA) taldeei ekoizpen-sistemak bezala jokatzen duten sistemak garatzea eta probatzea, aplikazioak nola jokatzen duen eta nola funtzionatzen duen ikus dezaten inplementatzeko prest egon baino askoz lehenago.

Aplikazioa bere bizitza-zikloan ahalik eta lehen konektatu behar da ekoizpen-sistemetara, hiru arazo nagusiei aurre egiteko. Lehenik eta behin, aplikazioa ingurune errealetik gertu dagoen ingurune batean probatzeko aukera ematen du. Bigarrenik, aplikazioak entregatzeko prozesuak aldez aurretik probatu eta balioztatzeko aukera ematen du. Hirugarrenik, eragiketa-taldeari bizitza-zikloaren hasieran probatzeko aukera ematen dio bere inguruneak nola jokatuko duen aplikazioak zabaltzen direnean, eta horrela, oso pertsonalizatutako eta aplikazioetan oinarritutako ingurune bat sortzeko aukera ematen du.

Inplementatu prozesu errepikagarri eta fidagarriekin

Printzipio honi esker, garapen- eta eragiketa-taldeek softwarearen garapen-prozesu arinek onartzen dituzte softwarearen bizitza-ziklo osoan. Automatizazioa funtsezkoa da prozesu iteratiboak, fidagarriak eta errepikagarriak sortzeko. Hori dela eta, erakundeak hedapen eta proba etengabe eta automatizatuak ahalbidetzen dituen banaketa kanal bat sortu behar du. Maiz inplementatzeak taldeei inplementazio-prozesuak probatzeko aukera ematen die, eta, horrela, zuzeneko argitalpenetan inplementazioak huts egiteko arriskua murrizten du.

Lanaren kalitatearen jarraipena eta egiaztapena

Erakundeak onak dira ekoizpenean aplikazioak kontrolatzen, denbora errealean neurketak eta funtsezko errendimendu-adierazleak (KPI) atzemateko tresnak dituztelako. Printzipio honek monitorizazioa bizitza-zikloaren hasieran mugitzen du, proba automatizatuek aplikazio baten ezaugarri funtzionalak eta ez-funtzionalak prozesuaren hasieran kontrolatzen dituztela bermatuz. Aplikazio bat probatu eta zabaltzen den bakoitzean, kalitate-neurriak aztertu eta aztertu behar dira. Jarraipen-tresnek produkzioan sor daitezkeen funtzionamendu- eta kalitate-arazoei buruzko abisua ematen dute. Adierazle horiek eragile guztientzat eskuragarri eta ulergarria den formatuan bildu behar dira.

Feedback Loops hobetzea

DevOps prozesuen helburuetako bat erakundeei erantzuteko eta aldaketak azkarrago egiteko aukera ematea da. Softwarearen entregan, helburu honek erakundeak iritzia goiz jaso behar du eta ondoren egindako ekintza bakoitzetik azkar ikastea. Printzipio honek erakundeek komunikazio-kanalak sortzea eskatzen du, interesdunei iritzia emateko eta elkarreragiteko aukera ematen dietenak. Garapena zure proiektuaren planak edo lehentasunak egokituz egin daiteke. Fabrikazioak produkzio-ingurunea hobetuz jardun dezake.

dev

  • Plangintza: Kanboard, Wekan eta beste Trello alternatiba batzuk; GitLab, Tuleap, Redmine eta beste JIRA alternatiba batzuk; Mattermost, Roit.im, IRC eta beste Slack alternatiba batzuk.
  • Idazketa kodea: Git, Gerrit, Bugzilla; Jenkins eta CI/CDrako kode irekiko beste tresna batzuk
  • Muntaia: Apache Maven, Gradle, Apache Ant, Packer
  • Probak: JUnit, Cucumber, Selenium, Apache JMeter

Ops

  • Askapena, hedapena, eragiketak: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, etab., Netflix Archaius, Terraform
  • Jarraipena: Grafana, Prometheus, Nagios, InfluxDB, Fluentd eta gida honetan bildutako beste batzuk

(*Eragiketa-tresnak eragiketa-taldeek erabilera-ordenaren arabera zenbatu dituzte, baina haien tresneria kaleratze- eta hedatze-tresnen bizi-zikloko faseak gainjarri dira. Irakurgarritasuna errazteko, zenbakikuntza kendu egin da.)

Ondorioz

DevOps gero eta ezagunagoa den metodologia da, garatzaileak eta eragiketak unitate batean biltzea helburu duena. Berezia da, ohiko informatikako eragiketetatik desberdina eta Agile-ren osagarria da (baina ez da hain malgua).

DevOps gida hasiberrientzako

Aurki itzazu nola lortu nahi den lanbide bat hutsetik edo Level Up gaitasunei eta soldatari dagokionez, SkillFactory ordaindutako lineako ikastaroak osatuz:

ikastaro gehiago

baliagarria

Iturria: www.habr.com

Gehitu iruzkin berria