Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ
Bini l-ewwel katina DevOps tiegħek f'ħames passi għal dawk li jibdew.

DevOps sar rimedju għal proċessi ta 'żvilupp bil-mod wisq, skonnettjati u b'xi mod ieħor problematiċi. Imma għandek bżonn għarfien minimu f'DevOps. Se jkopri kunċetti bħall-katina DevOps u kif toħloq wieħed f'ħames passi. Din mhix gwida kompluta, iżda biss "ħuta" li tista 'titwessa'. Nibdew bl-istorja.

L-introduzzjoni tiegħi għal DevOps

Jien kont naħdem mas-sħab f'Citi Group u niżviluppa applikazzjoni tal-web IaaS biex timmaniġġja l-infrastruttura tas-sħab ta' Citi, iżda dejjem kont interessat kif nottimizza l-katina tal-iżvilupp u ntejjeb il-kultura fost l-iżviluppaturi. Greg Lavender, is-CTO tagħna għall-Arkitettura u l-Infrastruttura tal-Cloud, irrakkomanda dan il-ktieb lili. Proġett "Phoenix". Jispjega l-prinċipji DevOps sabiħ u jaqra bħal rumanz.

It-tabella fuq wara turi kemm-il darba l-kumpaniji joħorġu verżjonijiet ġodda:

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Amazon, Google u Netflix kif jirnexxilhom joħorġu daqshekk? U huwa sempliċi: dehret kif joħolqu katina DevOps kważi perfetta.

L-affarijiet kienu differenti ħafna għalina f'Citi sakemm qlibna għal DevOps. Imbagħad it-tim tiegħi kellu ambjenti differenti, iżda għamilna l-kunsinna lis-server tal-iżvilupp manwalment. L-iżviluppaturi kollha kellhom aċċess għal server ta' żvilupp wieħed biss ibbażat fuq IBM WebSphere Application Server Community Edition. B'tentattiv simultanju biex jagħti, is-server "waqa'", u kull darba kellna "bil-uġigħ" ninnegozjaw bejnietna. Kellna wkoll kopertura insuffiċjenti tal-kodiċi bit-testijiet, proċess ta 'kunsinna manwali li jieħu ħafna ħin, u l-ebda mod kif insegwu l-kunsinna tal-kodiċi bl-għajnuna ta' xi kompitu jew rekwiżit tal-klijent.

Kien ċar li hemm bżonn li ssir xi ħaġa b’mod urġenti, u sibt kollega tal-istess fehma. Iddeċidejna li noħolqu l-ewwel katina DevOps flimkien - waqqaf magna virtwali u server tal-applikazzjoni Tomcat, u jien ħa ħsieb Jenkins, integrazzjoni ma 'Atlassian Jira u BitBucket, kif ukoll kopertura tal-kodiċi bit-testijiet. Il-proġett kien ta 'suċċess: aħna awtomatizzajna bis-sħiħ il-katina tal-iżvilupp, ksibna kważi 100% uptime fuq is-server tal-iżvilupp, stajna jimmonitorjaw u jtejbu l-kopertura tal-kodiċi bit-testijiet, u fergħa Git setgħet tkun marbuta ma' kunsinna u ħruġ Jira. U kważi l-għodod kollha li użajna biex nibnu l-katina DevOps kienu sors miftuħ.

Fil-fatt, il-katina ġiet issimplifikata, għaliex lanqas applikajna konfigurazzjonijiet avvanzati bl-użu ta 'Jenkins jew Ansible. Imma rnexxielna. Forsi din hija konsegwenza tal-prinċipju Pareto (magħruf ukoll bħala r-regola 80/20).

Deskrizzjoni qasira tal-Katina DevOps u CI/CD

DevOps għandu definizzjonijiet differenti. DevOps, bħal Agile, jinkludi dixxiplini differenti. Iżda ħafna se jaqbel mad-definizzjoni li ġejja: DevOps huwa metodu, jew ċiklu tal-ħajja, ta 'żvilupp ta' softwer, li l-prinċipju ewlieni tiegħu huwa li tinħoloq kultura fejn l-iżviluppaturi u impjegati oħra jkunu "fuq l-istess wavelength", ix-xogħol manwali huwa awtomatizzat, kulħadd jagħmel dak li hu l-aħjar, tiżdied il-frekwenza tal-kunsinni, tiżdied il-produttività tax-xogħol, tiżdied il-flessibilità.

Filwaqt li l-għodod waħedhom mhumiex biżżejjed biex jinħoloq ambjent DevOps, huma indispensabbli. L-aktar importanti minn dawn hija l-integrazzjoni kontinwa u t-twassil kontinwu (CI/CD). Hemm stadji differenti fil-katina għal kull ambjent (eż. DEV (żvilupp), INT (integrazzjoni), TST (ittestjar), QA (assigurazzjoni tal-kwalità), UAT (ittestjar tal-aċċettazzjoni tal-utent), STG (preparazzjoni), PROD (użu)) , il-kompiti manwali huma awtomatizzati, l-iżviluppaturi jistgħu jipproduċu kodiċi ta 'kwalità, iwassluh, u jistgħu faċilment jerġgħu jibnu.

Din in-nota tiddeskrivi kif toħloq katina DevOps f'ħames passi, kif muri fl-istampa hawn taħt, bl-użu ta 'għodod ta' sors miftuħ.

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Ejja nibdew għan-negozju.

Pass 1: Pjattaforma CI/CD

L-ewwelnett, għandek bżonn għodda CI/CD. Jenkins hija għodda CI/CD open-source liċenzjata mill-MIT miktuba bil-Java li popolarizzat il-moviment DevOps u saret l-istandard de facto għas-CICD.

X'inhu Jenkins? Immaġina li għandek pannell tal-kontroll maġiku għal varjetà ta 'servizzi u għodod. Waħidha, għodda CI/CD bħal Jenkins hija inutli, iżda b'għodod u servizzi differenti, issir b'saħħitha.

Minbarra Jenkins, hemm ħafna għodod oħra ta 'sors miftuħ, agħżel kwalunkwe.

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Hawn kif jidher proċess DevOps b'għodda CI/CD

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Għandek għodda CI/CD f'localhost, iżda għad m'hemmx ħafna x'tagħmel. Ejja ngħaddu għall-pass li jmiss.

Pass 2: Verżjoni

L-aħjar mod (u forsi l-aktar faċli) biex tittestja l-maġija ta 'għodda CI/CD huwa li tintegraha ma' għodda ta 'ġestjoni tal-kontroll tas-sors (SCM). Għaliex għandek bżonn kontroll tal-verżjoni? Ejja ngħidu li qed tagħmel applikazzjoni. Tiktebha bil-Java, Python, C++, Go, Ruby, JavaScript, jew kwalunkwe lingwa oħra li hija vagun u karrettun żgħir. Dak li tikteb jissejjaħ kodiċi tas-sors. Għall-ewwel, speċjalment jekk qed taħdem waħdu, tista 'tiffranka kollox f'direttorju lokali. Iżda hekk kif il-proġett jikber u aktar nies jingħaqdu, għandek bżonn mod kif taqsam il-bidliet fil-kodiċi iżda tevita kunflitti meta tgħaqqad il-bidliet. U għandek bżonn ukoll li b'xi mod tirrestawra l-verżjonijiet preċedenti mingħajr ma tuża backups u tuża l-metodu ta 'kopja-pejst għall-fajls tal-kodiċi.

U hawn mingħajr SCM imkien. L-SCM jaħżen il-kodiċi f'repożitorji, jimmaniġġja verżjonijiet tiegħu, u jikkoordinah fost l-iżviluppaturi.

Hemm ħafna għodod SCM, iżda Git ħaqqha sar l-istandard de facto. Nagħtikom parir biex tużah, iżda hemm għażliet oħra.

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Hawn hu kif jidher il-pipeline DevOps wara li żżid l-SCM.

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

L-għodda CI/CD tista 'awtomatizza t-tlugħ u t-tniżżil tal-kodiċi tas-sors u l-kollaborazzjoni tat-tim. Mhux ħażin? Imma issa kif tagħmel applikazzjoni ta 'ħidma minn dan, maħbub minn biljuni ta' utenti?

Pass 3: Ibni Għodda ta 'Awtomazzjoni

Kollox sejjer kif suppost. Tista 'ttella' kodiċi u tikkommetti bidliet għall-kontroll tas-sors, u tistieden lill-ħbieb biex jaħdmu miegħek. Imma għad m'għandekx app. Biex din tkun applikazzjoni tal-web, trid tiġi kkumpilata u ppakkjata għad-distribuzzjoni jew titħaddem bħala eżekutibbli. (Lingwa ta' programmar interpretata bħal JavaScript jew PHP m'għandhiex għalfejn tiġi kkompilata.)

Uża għodda ta 'awtomazzjoni tal-bini. Tkun xi tkun l-għodda li tagħżel, tiġbor il-kodiċi fil-format it-tajjeb u awtomat it-tindif, il-kumpilazzjoni, l-ittestjar u l-kunsinna. L-għodod tal-bini jvarjaw skont il-lingwa, iżda l-għażliet ta’ sors miftuħ li ġejjin huma komunement użati.

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Perfetta! Issa ejja daħħal il-fajls tal-konfigurazzjoni tal-għodda tal-awtomazzjoni tal-bini fil-kontroll tas-sors sabiex l-għodda CI/CD tibnihom.

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Tħossok tajjeb. Imma dan kollu fejn hu biex joħroġ issa?

Pass 4: Web Application Server

Allura, għandek fajl ippakkjat li jista 'jiġi eżegwit jew rolled out. Biex applikazzjoni tkun tassew utli, irid ikollha xi tip ta’ servizz jew interface, imma trid tpoġġiha kollha x’imkien.

Applikazzjoni tal-web tista' tiġi ospitata fuq server ta' applikazzjoni tal-web. Is-server tal-applikazzjoni jipprovdi ambjent fejn tista' tesegwixxi loġika ppakkjata, tirrendi interfaces, u tesponi servizzi tal-web fuq socket. Għandek bżonn server HTTP u ftit ambjenti oħra (magna virtwali, pereżempju) biex tinstalla s-server tal-applikazzjoni. Għalissa, ejja nippretendu li qed tittratta dan kollu kif tmur (għalkemm jien ser nitkellem dwar il-kontenituri hawn taħt).

Hemm diversi servers ta' applikazzjoni tal-web miftuħa.

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Diġà għandna katina DevOps kważi taħdem. Xogħol kbir!

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Fil-prinċipju, tista 'tieqaf hawn, allura tista' timmaniġġjaha lilek innifsek, iżda ta 'min titkellem dwar il-kwalità tal-kodiċi.

Pass 5: Kopertura tat-test

L-ittestjar jieħu ħafna ħin u sforz, iżda huwa aħjar li ssib bugs minnufih u ttejjeb il-kodiċi biex togħġob lill-utenti finali. Għal dan il-għan, hemm ħafna għodod miftuħa li mhux biss se jittestjaw il-kodiċi, iżda wkoll jagħtu pariri dwar kif itejbuh. Il-biċċa l-kbira tal-għodod CI/CD jistgħu jingħalqu f'dawn l-għodod u awtomatizzaw il-proċess.

L-ittestjar huwa maqsum f'żewġ partijiet: oqfsa tal-ittestjar għall-kitba u l-eżekuzzjoni tat-testijiet, u għodod b'ideat biex itejbu l-kwalità tal-kodiċi.

Oqfsa tal-Ittestjar

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Għodod bi tips ta 'kwalità

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Ħafna minn dawn l-għodod u oqfsa huma miktuba għal Java, Python, u JavaScript minħabba li C++ u C# huma proprjetarji (għalkemm GCC huwa sors miftuħ).

Applikajna l-għodod tal-kopertura tat-test, u issa l-pipeline DevOps għandu jidher bħall-istampa fil-bidu tat-tutorja.

Passi Addizzjonali

Kontenituri

Kif għidt qabel, server ta 'applikazzjoni jista' jiġi ospitat f'magna virtwali jew server, iżda l-kontenituri huma aktar popolari.

X'inhuma l-kontenituri? Fil-qosor, f'magna virtwali, is-sistema operattiva ħafna drabi tieħu aktar spazju mill-applikazzjoni, u kontenitur normalment ikun biżżejjed bi ftit libreriji u konfigurazzjoni. F'xi każijiet, magni virtwali huma indispensabbli, iżda l-kontenitur jista 'jakkomoda l-applikazzjoni flimkien mas-server mingħajr ebda spiża żejda.

Għall-kontenituri, Docker u Kubernetes normalment jittieħdu, għalkemm hemm għażliet oħra.

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Aqra artikli dwar Docker u Kubernetes fuq opensource.com:

Għodod ta' awtomazzjoni middleware

Il-katina DevOps tagħna hija ffukata fuq il-bini kollaborattiv u t-twassil ta 'applikazzjoni, iżda hemm affarijiet interessanti oħra li tista' tagħmel bl-għodod DevOps. Pereżempju, uża għodda ta' Infrastruttura bħala Kodiċi (IaC), magħrufa wkoll bħala għodod ta' awtomazzjoni middleware. Dawn l-għodod jgħinu fl-awtomatizzazzjoni tal-installazzjoni, il-ġestjoni, u kompiti oħra għall-middleware. Pereżempju, għodda ta 'awtomazzjoni tista' tieħu applikazzjonijiet (server tal-applikazzjoni tal-web, database, għodod ta 'monitoraġġ) bil-konfigurazzjonijiet korretti u timbottahom lejn is-server tal-applikazzjoni.

Hawn huma xi għażliet għal għodod miftuħa għall-awtomazzjoni tal-middleware:

Gwida għall-Manikin: Bini ta' Ktajjen DevOps b'Għodod ta' Sors Miftuħ

Dettalji fl-artikoli opensource.com:

U issa xiex?

Din hija biss il-ponta tal-iceberg. Il-katina DevOps tista 'tagħmel ħafna aktar. Ibda b'għodda CI/CD u ara x'iktar tista' awtomat biex tagħmel ix-xogħol tiegħek aktar faċli. Tinsiex dwar għodod ta’ komunikazzjoni miftuħa għal kollaborazzjoni effettiva.

Hawn huma xi artikli DevOps aktar tajbin għal dawk li jibdew:

Tista' wkoll tintegra DevOps b'għodda b'aġilità miftuħa:

Sors: www.habr.com

Żid kumment