Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin
Hasiberrientzako zure lehen DevOps katea eraikitzea bost urratsetan.

DevOps panazea bihurtu da garapen prozesu motelegi, deskonektatu eta bestela problematikoentzat. Baina DevOps-en gutxieneko ezagutza behar duzu. DevOps katea bezalako kontzeptuak landuko ditu eta bost urratsetan bat nola sortu. Hau ez da gida osoa, zabal daitekeen β€œarraina” baizik. Has gaitezen historiatik.

Nire DevOps-en aurkezpena

Hodeiekin lan egiten nuen Citi Group-en eta IaaS web aplikazio bat garatzen nuen Citiren hodeiko azpiegitura kudeatzeko, baina beti izan dut interesa nola garatu garapen-katea nola optimizatu eta garatzaileen artean kultura hobetzeko. Greg Lavender-ek, Hodeiko Arkitektura eta Azpiegituretako gure CTO, liburu hau gomendatu zidan. "Phoenix" proiektua. DevOps printzipioak ederki azaltzen ditu eta eleberri bat bezala irakurtzen du.

Atzealdeko taulan enpresek bertsio berriak zenbateko maiztasuna zabaltzen dituzten erakusten du:

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Nola lortzen dute Amazonek, Googlek eta Netflixek hainbeste zabaltzea? Eta erraza da: DevOps kate ia perfektua nola sortu asmatu zuten.

Gauzak oso desberdinak ziren guretzat Citi-n DevOpsera aldatu ginen arte. Orduan nire taldeak ingurune desberdinak izan zituen, baina garapen zerbitzariari eskuz egin genion entrega. Garatzaile guztiek IBM WebSphere Application Server Community Edition-n oinarritutako garapen-zerbitzari bakarrerako sarbidea zuten. Aldi berean entregatzeko saiakera batekin, zerbitzaria "erortu egin zen", eta aldi bakoitzean gure artean "minez" negoziatu behar izan genuen. Probekin kode-estaldura nahikoa ere ez genuen, eskuzko entrega-prozesu luzea eta zereginen edo bezeroen eskakizunen laguntzarekin kodearen entregaren jarraipena egiteko modurik ere ez genuen.

Argi zegoen premiazko zerbait egin behar zela, eta antzeko lankide bat aurkitu nuen. Lehenengo DevOps katea elkarrekin sortzea erabaki genuen: makina birtual bat eta Tomcat aplikazio zerbitzari bat konfiguratu zituen, eta Jenkins, Atlassian Jira eta BitBucket-ekin integratzeaz gain, kode estaldura probekin arduratu nintzen. Proiektua arrakastatsua izan zen: garapen-katea guztiz automatizatu genuen, garapen-zerbitzarian ia % 100eko funtzionamendua lortu genuen, testekin kode-estaldura kontrolatu eta hobetzeko gai izan ginen eta Git adar bat Jira entrega eta arazo bati lotu zitekeen. Eta DevOps katea eraikitzeko erabili genituen ia tresna guztiak kode irekikoak ziren.

Izan ere, katea sinplifikatu zen, Jenkins edo Ansible erabiliz konfigurazio aurreratuak ere ez genituelako aplikatu. Baina lortu genuen. Agian hau printzipioaren ondorioa da Pareto (80/20 araua ezaguna).

DevOps eta CI/CD katearen deskribapen laburra

DevOps-ek definizio desberdinak ditu. DevOps, Agile bezala, diziplina desberdinak barne hartzen ditu. Baina gehienak ados egongo dira honako definizio honekin: DevOps software garapenaren metodo edo bizi-ziklo bat da, zeinaren printzipio nagusia garatzaileak eta gainerako langileak "uhin-luzera berean" dauden kultura bat sortzea da, esku-lana automatizatuta dagoen. bakoitzak bere onena egiten du, bidalketen maiztasuna handitzen da, lanaren produktibitatea handitzen da, malgutasuna handitzen da.

Tresnak bakarrik DevOps ingurune bat sortzeko nahikoak ez diren arren, ezinbestekoak dira. Horietatik garrantzitsuena etengabeko integrazioa eta etengabeko entrega (CI/CD) dira. Ingurune bakoitzeko katean etapa desberdinak daude (adibidez, DEV (garapena), INT (integrazioa), TST (probak), QA (kalitatea bermatzea), UAT (erabiltzaileak onartzeko probak), STG (prestaketa), PROD (erabilera)) , eskuzko zereginak automatizatu egiten dira, garatzaileek kalitatezko kodea ekoitzi dezakete, entregatu eta erraz berreraiki dezakete.

Ohar honek DevOps kate bat bost urratsetan nola sortu deskribatzen du, beheko irudian ikusten den moduan, kode irekiko tresnak erabiliz.

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Jar gaitezen negozioari.

1. urratsa: CI/CD Plataforma

Lehenik eta behin, CI/CD tresna bat behar duzu. Jenkins Javan idatzitako CI/CD tresna MIT lizentziadun eta kode irekiko bat da, DevOps mugimendua ezagun egin zuen eta CICDren de facto estandarra bihurtu da.

Zer da Jenkins? Imajinatu hainbat zerbitzu eta tresnatarako kontrol panel magiko bat duzula. Berez, Jenkins bezalako CI/CD tresna batek ez du ezertarako balio, baina tresna eta zerbitzu ezberdinekin, ahalguztidun bihurtzen da.

Jenkins-ez gain, kode irekiko beste tresna asko daude, aukeratu edozein.

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Hona hemen DevOps prozesu bat CI/CD tresna batekin nolakoa den

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

CI/CD tresna bat duzu localhost-en, baina oraindik ez dago gauza handirik egiteko. Joan gaitezen hurrengo urratsera.

2. urratsa: bertsioa egitea

CI/CD tresna baten magia probatzeko modurik onena (eta dudarik gabe errazena) iturri-kontrolaren kudeaketa (SCM) tresna batekin integratzea da. Zergatik behar duzu bertsio-kontrola? Demagun eskaera bat egiten ari zarela. Java, Python, C++, Go, Ruby, JavaScript edo bagoi bat eta gurditxo bat den beste edozein hizkuntzan idazten duzu. Idazten duzunari iturburu kodea deitzen zaio. Hasieran, batez ere bakarrik lanean ari bazara, dena gorde dezakezu tokiko direktorio batean. Baina proiektua hazten doan heinean eta jende gehiago sartzen den heinean, kode-aldaketak partekatzeko modu bat behar duzu, baina gatazkak saihestu aldaketak bateratzean. Eta aurreko bertsioak nolabait leheneratu behar dituzu babeskopiak erabili gabe eta kode fitxategietarako kopiatu-itsatsi metodoa erabiliz.

Eta hemen SCMrik gabe inon. SCM-k kodea biltegietan gordetzen du, haren bertsioak kudeatzen ditu eta garatzaileen artean koordinatzen du.

SCM tresna asko daude, baina Git merezita bihurtu da de facto estandarra. Erabiltzea gomendatzen dizut, baina beste aukera batzuk daude.

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Hona hemen DevOps kanalizazioa SCM gehitu ondoren.

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

CI/CD tresnak iturburu-kodea igo eta deskargatu eta taldeen lankidetza automatiza dezake. Ez dago gaizki? Baina orain nola egin funtzionatzeko aplikazio bat milaka milioi erabiltzailek maite duten honetatik?

3. urratsa: Automatizazio tresna eraiki

Dena behar bezala doa. Kodea kargatu eta iturburu-kontrolean aldaketak konprometi ditzakezu, eta lagunak zurekin lan egitera gonbida ditzakezu. Baina oraindik ez duzu aplikaziorik. Hau web-aplikazio bat izateko, konpilatu eta paketatu behar da banatzeko edo exekutagarri gisa exekutatu. (JavaScript edo PHP bezalako interpretatutako programazio-lengoaia ez da konpilatu beharrik).

Erabili eraikuntza automatikorako tresna bat. Aukeratzen duzun tresna edozein dela ere, kodea formatu egokian muntatuko du eta garbiketa, konpilazioa, probak eta entrega automatizatuko ditu. Eraikitzeko tresnak hizkuntzaren arabera aldatzen dira, baina kode irekiko aukera hauek erabili ohi dira.

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Perfektua! Orain txerta ditzagun eraikuntza automatizazio tresnaren konfigurazio fitxategiak iturburu-kontrolean, CI/CD tresnak eraiki ditzan.

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Ongi sentitzen da. Baina non dago hori guztia orain zabaltzeko?

4. urratsa: Web aplikazioen zerbitzaria

Beraz, exekutatu edo zabaldu daitekeen fitxategi paketatu bat duzu. Aplikazio batek benetan erabilgarria izateko, nolabaiteko zerbitzu edo interfaze bat izan behar du, baina dena nonbait jarri behar da.

Web-aplikazio bat web-aplikazioen zerbitzari batean ostata daiteke. Aplikazio-zerbitzariak logika paketatua exekutatu, interfazeak errendatu eta web-zerbitzuak socket baten bidez erakusteko ingurune bat eskaintzen du. HTTP zerbitzari bat eta beste ingurune batzuk (makina birtual bat, adibidez) behar dituzu aplikazioen zerbitzaria instalatzeko. Oraingoz, egin dezagun horri guztiari aurre egiten zoazela (nahiz eta jarraian edukiontziei buruz hitz egingo dudan).

Hainbat web aplikazio zerbitzari ireki daude.

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Dagoeneko ia funtzionatzen duen DevOps kate bat dugu. Lan bikaina!

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Printzipioz, hemen gelditu zaitezke, gero zuk zeuk kudea dezakezu, baina merezi du kodearen kalitateaz hitz egitea.

5. urratsa: proba estaldura

Probak egiteak denbora eta esfortzu handia eskatzen du, baina hobe da akatsak berehala aurkitzea eta kodea hobetzea azken erabiltzaileei atsegin emateko. Horretarako, tresna ireki asko daude kodea probatzeaz gain, nola hobetu aholkatuko dutenak. CI/CD tresna gehienek tresna horietara konektatu eta prozesua automatiza dezakete.

Probak bi zatitan banatzen dira: probak idazteko eta exekutatzeko markoak eta kodearen kalitatea hobetzeko aholkuak dituzten tresnak.

Proba-esparruak

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Kalitatezko aholkuak dituzten tresnak

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Tresna eta esparru horietako gehienak Java, Python eta JavaScript-erako idatzita daude, C++ eta C# jabedunak direlako (GCC kode irekikoa den arren).

Test estaldura tresnak aplikatu ditugu, eta orain DevOps kanalizazioak tutorialaren hasierako irudiaren itxura izan beharko luke.

Urrats osagarriak

edukiontzi

Lehen esan dudan bezala, aplikazio-zerbitzari bat makina birtual batean edo zerbitzari batean ostata daiteke, baina edukiontziak ezagunagoak dira.

Zer dira edukiontziak? Laburbilduz, makina birtualean, sistema eragileak sarritan aplikazioak baino leku gehiago hartzen du, eta edukiontzi bat nahikoa izan ohi da liburutegi eta konfigurazio gutxirekin. Zenbait kasutan, makina birtualak ezinbestekoak dira, baina edukiontziak zerbitzariarekin batera aplikazioa sar dezake kostu gehigarririk gabe.

Edukiontzietarako, Docker eta Kubernetes hartu ohi dira, nahiz eta beste aukera batzuk egon.

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Irakurri Docker eta Kubernetes-i buruzko artikuluak hemen opensource.com:

Middleware automatizatzeko tresnak

Gure DevOps katea lankidetza-eraikuntzan eta aplikazio baten entregan oinarritzen da, baina beste gauza interesgarri batzuk egin ditzakezu DevOps tresnekin. Adibidez, erabili Infrastructure as Code (IaC) tresnak, middleware automatizazio tresna gisa ere ezagutzen direnak. Tresna hauek middlewarearen instalazioa, kudeaketa eta bestelako zereginak automatizatzen laguntzen dute. Adibidez, automatizazio tresna batek aplikazioak (web aplikazioen zerbitzaria, datu-basea, monitorizazio tresnak) konfigurazio egokiekin hartu eta aplikazioen zerbitzarira eraman ditzake.

Hona hemen middleware automatizaziorako tresna irekietarako aukera batzuk:

Dummies gida: DevOps kateak eraikitzea kode irekiko tresnekin

Xehetasunak artikuluetan opensource.com:

Orain zer?

Hau icebergaren punta besterik ez da. DevOps kateak askoz gehiago egin dezake. Hasi CI/CD tresna batekin eta ikusi zer gehiago automatiza dezakezun zure lana errazteko. Ez ahaztu komunikazio tresna irekiak lankidetza eraginkorra lortzeko.

Hona hemen hasiberrientzako DevOps artikulu on gehiago:

DevOps tresna arin irekiekin ere integra dezakezu:

Iturria: www.habr.com

Gehitu iruzkin berria