Umhlahlandlela Wabaqalayo: Ukudala Ipayipi le-DevOps

Uma umusha ku-DevOps, bheka lo mhlahlandlela wezinyathelo ezinhlanu ukuze udale ipayipi lakho lokuqala.

Umhlahlandlela Wabaqalayo: Ukudala Ipayipi le-DevOps

I-DevOps isiphenduke isixazululo esijwayelekile sokulungisa izinqubo zokuthuthukisa isoftware ezihamba kancane, ezingahlangani noma eziphukile. Inkinga ukuthi uma umusha ku-DevOps futhi ungazi ukuthi ungaqala kuphi, ungase ungaqondi lawa masu. Lesi sihloko sizoxoxa ngencazelo yepayipi le-DevOps futhi sizonikeza nemiyalelo yezinyathelo ezinhlanu zokudala elilodwa. Yize lesi sifundo singapheli, kufanele sikunikeze isisekelo sokuqala uhambo lwakho futhi wandise ulwazi lwakho esikhathini esizayo. Kodwa ake siqale ngomlando.

Uhambo lwami lwe-DevOps

Ngike ngasebenza eqenjini le-Citi Group cloud lakha uhlelo lokusebenza lwewebhu lwe-Infrastructure-as-a-Service (IaaS) ukuze ngiphathe ingqalasizinda yamafu ye-Citi, kodwa ngangihlale nginentshisekelo yokuthi ungayenza kanjani inqubo yentuthuko isebenze kahle futhi ilethe izinguquko ezinhle zamasiko ithimba lokuthuthukisa. Ngithole impendulo encwadini enconywe ngu-Greg Lavender, i-CTO ye-Cloud Architecture and Infrastructure e-Citi. Le ncwadi yayibizwa ngokuthi i-Phoenix Project (Iphrojekthi ye-Phoenix), futhi ichaza izimiso ze-DevOps, kodwa ifundeka njengenoveli.

Ithebula elingemuva kwencwadi libonisa ukuthi izinkampani ezihlukene zisebenzisa kaningi kangakanani amasistimu azo endaweni yokukhishwa:

I-Amazon: 23 ngosuku
I-Google: 5 ngosuku
I-Netflix: 500 ngosuku
Facebook: Kanye ngosuku
Twitter: Izikhathi ezi-3 ngesonto
Inkampani ejwayelekile: Kanye njalo ezinyangeni eziyi-9

Kungenzeka kanjani ukuthi ama-Amazon, Google kanye neNetflix ayenzeka? Lokhu kungenxa yokuthi lezi zinkampani zithole ukuthi zingadala kanjani ipayipi le-DevOps elicishe liphelele.

Besikude nalokhu kwaze kwaba yilapho sisebenzisa i-DevOps e-Citi. Ngaleso sikhathi, ithimba lami lalinezindawo ezihlukene, kodwa ukuthunyelwa kuseva yokuthuthukisa kwakungesandla ngokuphelele. Bonke onjiniyela babe nokufinyelela kuseva eyodwa yokuthuthukisa esekelwe ku-IBM WebSphere Application Server Community Edition. Inkinga yayiwukuthi iseva yayivala noma nini lapho abasebenzisi abaningi bezama ukusebenzisa ngesikhathi esisodwa, ngakho onjiniyela kwakudingeka bakhulume ngezinjongo zabo omunye nomunye, okwakubuhlungu kakhulu. Ukwengeza, kube nezinkinga ngokufakwa kwekhodi yokuhlola yezinga eliphansi, izinqubo ezinzima zokuphakela mathupha, kanye nokungakwazi ukulandelela ukusetshenziswa kwekhodi ehlotshaniswa nomsebenzi othile noma indaba yomsebenzisi.

Ngabona ukuthi kukhona okumele kwenziwe ngase ngithola uzakwethu onomqondo ofanayo. Sinqume ukubambisana ekwakheni ipayipi lokuqala le-DevOps - wamisa umshini obonakalayo we-Tomcat kanye neseva yesicelo ngenkathi ngisebenza ku-Jenkins, ngihlanganisa i-Atlassian Jira ne-BitBucket, futhi ngisebenza ekumbozweni kwekhodi yokuhlola. Le phrojekthi eseceleni ibe yimpumelelo kakhulu: sicishe senza izinqubo eziningi ngokuzenzakalelayo, safinyelela cishe u-100% isikhathi sokuphumula kuseva yethu yokuthuthukisa, inqobo nje uma ukulandelela kanye nokufakwa okuthuthukisiwe kokuhlolwa kwekhodi, futhi sengeza ikhono lokuxhumanisa amagatsha e-Git ezindabeni ze-Jira noma ukuthunyelwa. Amathuluzi amaningi esiwasebenzise ukwakha ipayipi lethu le-DevOps abengumthombo ovulekile.

Manje sengiyaqonda ukuthi ipayipi lethu le-DevOps lalilula kangakanani: asizange sisebenzise izandiso ezifana namafayela e-Jenkins noma i-Ansible. Nokho, lelipayipi elilula lasebenza kahle, mhlawumbe ngenxa yomgomo wePareto (owaziwa nangokuthi umthetho wama-80/20).

Isingeniso Esifushane ku-DevOps kanye ne-CI/CD Pipeline

Uma ubuza abantu abambalwa, "Iyini i-DevOps?", cishe uzothola izimpendulo eziningana ezahlukene. I-DevOps, njenge-Agile, iye yavela ukuze ihlanganise imikhakha eminingi eyahlukene, kodwa abantu abaningi bazovumelana ezintweni ezimbalwa: I-DevOps iwumkhuba wokuthuthukisa isofthiwe noma umjikelezo wokuphila wokuthuthukiswa kwesofthiwe (SDLC) okuyisisekelo sayo esishintsha isiko lapho abathuthukisi nabangewona onjiniyela bakhona endaweni lapho:

Imisebenzi ebikade yenziwa ngesandla yenziwe ngokuzenzakalelayo;
Wonke umuntu wenza lokho akwenza kahle kakhulu;
Inani lokusetshenziswa esikhathini esithile liyakhuphuka; Ukuhamba kuyakhula;
Ukwanda kokuvumelana nezimo.

Yize ukuba namathuluzi esoftware afanele akuyona ukuphela kwento oyidingayo ukuze udale indawo ye-DevOps, amanye amathuluzi abalulekile. Ithuluzi eliyinhloko ukuhlanganiswa okuqhubekayo nokuthunyelwa okuqhubekayo (CI/CD). Kulo mzila, izindawo zinezigaba ezihlukene (isb. I-DEV, i-INT, i-TST, i-QA, i-UAT, i-STG, i-PROD), imisebenzi eminingi iyazenzakalela, futhi onjiniyela bangabhala ikhodi yekhwalithi ephezulu, bazuze ubungqabavu bokuthuthuka, namazinga aphezulu okuthunyelwa.

Lesi sihloko sichaza indlela enezinyathelo ezinhlanu zokudala ipayipi le-DevOps njengale eboniswe kumdwebo olandelayo kusetshenziswa amathuluzi omthombo ovulekile.

Isinyathelo 1: Izindlela ze-CI/CD

Into yokuqala oyidingayo ithuluzi le-CI/CD. I-Jenkins, ithuluzi lomthombo ovulekile elisuselwe ku-Java futhi linikezwe ilayisense ngaphansi kwelayisense ye-MIT, iyithuluzi elenze i-DevOps yaduma futhi isiphenduke indinganiso ye-de facto.

Ngakho uyini uJenkins? Kucabange njengohlobo oluthile lwesilawuli kude esimangalisayo esingakhuluma futhi sihlele izinsiza namathuluzi ahlukahlukene. Ngokwalo, ithuluzi le-CI/CD elifana ne-Jenkins alinamsebenzi, kodwa liba namandla kakhulu njengoba lixhuma kumathuluzi nezinsizakalo ezahlukene.

I-Jenkins ingelinye nje lamathuluzi amaningi omthombo ovulekile we-CI/CD ongawasebenzisa ukwakha ipayipi lakho le-DevOps.

I-Jenkins: I-Creative Commons kanye ne-MIT
I-Travis CI: MIT
I-CruiseControl:BSD
I-Buildbot: GPL
I-Apache Gump: I-Apache 2.0
I-Cabie: GNU

Nakhu ukuthi izinqubo ze-DevOps zibukeka kanjani ngethuluzi le-CI/CD:

Umhlahlandlela Wabaqalayo: Ukudala Ipayipi le-DevOps

Unethuluzi le-CI/CD elisebenza ku-localhost yakho, kodwa akukho okuningi ongakwenza okwamanje. Asiqhubekele esigabeni esilandelayo sohambo lwe-DevOps.

Isinyathelo sesi-2: Phatha Amasistimu Wokulawula Umthombo

Indlela engcono kakhulu (futhi mhlawumbe elula) yokuqinisekisa ukuthi ithuluzi lakho le-CI/CD lingenza umlingo walo iwukuhlanganisa nethuluzi lokulawula ikhodi yomthombo (SCM). Kungani udinga ukulawula komthombo? Ake sithi wenza isicelo. Noma kunini lapho udala uhlelo, uyahlela, futhi akunandaba ukuthi usebenzisa i-Java, i-Python, i-C++, i-Go, i-Ruby, i-JavaScript, nanoma yiziphi izigidigidi zezilimi zokuhlela. Ikhodi oyibhalayo ibizwa ngokuthi ikhodi yomthombo. Ekuqaleni, ikakhulukazi uma usebenza wedwa, kungenzeka ukuthi kulungile ukubeka yonke into kuhla lwemibhalo yendawo. Kodwa njengoba iphrojekthi ikhula futhi umeme abanye abantu ukuthi basebenzisane, udinga indlela yokuvimbela ukungqubuzana ngenkathi wabelana ngokulungiswa ngempumelelo. Udinga futhi indlela yokubuyisela izinguqulo zangaphambilini, ngoba ukudala izipele nokukopisha/ukunamathisela kuzo sekungasasebenzi. Wena (kanye nozakwenu) nidinga okuthile okungcono.

Kulapho ukulawulwa kwekhodi yomthombo kuba khona cishe isidingo. Leli thuluzi ligcina ikhodi yakho kumakhosombe, lilandelela izinguqulo, futhi lixhumanisa umsebenzi wabahlanganyeli bephrojekthi.

Ngenkathi kunamathuluzi amaningi okulawula umthombo laphaya, i-Git iyindinganiso, futhi kufanele. Ngincoma kakhulu ukusebenzisa i-Git, nakuba kukhona ezinye izinketho zomthombo ovulekile uma uthanda.

I-Git: GPLv2 kanye ne-LGPL v2.1
Ukuguqulwa: I-Apache 2.0
Isistimu Yezinguqulo Ezifanayo (CVS): GNU
Umthombo: LGPL
I-Mercurial: GNU GPL v2+

Yile ndlela ipayipi le-DevOps elibukeka ngayo ngokungezwa kwezilawuli zekhodi yomthombo.

Umhlahlandlela Wabaqalayo: Ukudala Ipayipi le-DevOps

Ithuluzi le-CI/CD lingenza ngokuzenzakalelayo izinqubo zokubuyekeza, ukutholwa kwekhodi yomthombo, nokusebenzisana phakathi kwamalungu. Akukubi? Kodwa uyiguqula kanjani ibe uhlelo lokusebenza ukuze izigidigidi zabantu zikwazi ukuzisebenzisa futhi zikwazise?

Isinyathelo sesi-3: Dala Ithuluzi Lokwakha Okuzenzakalelayo

Kuhle! Ungabuyekeza ikhodi futhi wenze izinguquko ekulawuleni umthombo, futhi umeme abangani bakho ukuze bahlanganyele ekuthuthukisweni. Kodwa awukakadali uhlelo lokusebenza. Ukwenza uhlelo lwewebhu, kufanele luhlanganiswe futhi lupakishwe ngefomethi yeqoqo elingasebenziseka noma lusebenze njengefayela elisebenzisekayo. (Qaphela ukuthi ulimi lohlelo olutolikiwe olufana ne-JavaScript noma i-PHP aludingi ukuhlanganiswa).

Sebenzisa ithuluzi lokwakha elizenzakalelayo. Kungakhathalekile ukuthi yiliphi ithuluzi lokwakha elizenzakalelayo onquma ukulisebenzisa, wonke anenhloso efanayo: yakha ikhodi yomthombo ibe yifomethi oyifunayo futhi wenze ngokuzenzakalelayo umsebenzi wokuhlanza, ukuhlanganisa, ukuhlola, nokuthumela endaweni ethile. Amathuluzi okwakha azohluka kuye ngolimi lwakho lokuhlela, kodwa nazi izinketho zomthombo ovulekile ovamile.

Isihloko
Ilayisense
Ulimi lokuhlela

Ama-Maven
I-Apache 2.0
Java

I-Ant
I-Apache 2.0
Java

I-Gradle
I-Apache 2.0
Java

Bazel
I-Apache 2.0
Java

Yenza
I-GNU
N / A

IGrunt
MIT
i-JavaScript

Gulp
MIT
i-JavaScript

Umakhi
Apache
Ruby

Ukuqamba
MIT
Ruby

I-AAP
I-GNU
Python

Ama-SCON
MIT
Python

I-BitBake
GPLv2
Python

Ikhekhe
MIT
C#

I-ASDF
I-Expat (MIT)
LISP

I-Cabal
BSD
Haskell

Kuhle! Ungafaka amafayela okumisa ithuluzi lokwakha elizenzakalelayo ohlelweni lwakho lokulawula umthombo futhi uvumele ithuluzi lakho le-CI/CD lihlanganise yonke into.

Umhlahlandlela Wabaqalayo: Ukudala Ipayipi le-DevOps

Konke kuhamba kahle, akunjalo? Kodwa ungasifaka kuphi isicelo sakho?

Isinyathelo sesi-4: Iseva Yohlelo Lwewebhu

Okwamanje, unefayela elipakishiwe elingasebenziseka noma lifakeke. Ukuze noma yiluphi uhlelo lokusebenza lube usizo ngempela, kufanele lunikeze uhlobo oluthile lwesevisi noma isixhumi esibonakalayo, kodwa udinga isitsha sokusingatha uhlelo lwakho lokusebenza.

Iseva yohlelo lokusebenza lwewebhu iyisitsha esinjalo. Iseva ihlinzeka ngendawo lapho ingqondo yephakheji esetshenziswayo ingachazwa khona. Iseva iphinde inikeze isixhumi esibonakalayo futhi inikeza izinsizakalo zewebhu ngokudalula amasokhethi emhlabeni wangaphandle. Udinga iseva ye-HTTP, kanye nendawo ethile (njengomshini obonakalayo) ukuze uyifake. Okwamanje, ake sicabange ukuthi uzofunda okwengeziwe ngalokhu (yize ngizomboza iziqukathi ezingezansi).

Kunamaseva amaningi ohlelo lokusebenza lwewebhu yomthombo ovulekile.

Isihloko
Ilayisense
Ulimi lokuhlela

Tomcat
I-Apache 2.0
Java

I-Jetty
I-Apache 2.0
Java

I-WildFly
I-GNU Lesser Public
Java

I-GlassFish
I-CDDL ne-GNU Esesidlangalaleni Kancane
Java

I-Django
3-Isigaba BSD
Python

I-Tornado
I-Apache 2.0
Python

IGunicorn
MIT
Python

Python
MIT
Python

Imisindo
MIT
Ruby

I-Node.js
MIT
-Javascript

Ipayipi lakho le-DevOps cishe selilungele ukusetshenziswa. Umsebenzi omuhle!

Umhlahlandlela Wabaqalayo: Ukudala Ipayipi le-DevOps

Ngenkathi ungama lapho futhi uphathe ukuhlanganiswa ngokwakho, ikhwalithi yekhodi iyinto ebalulekile ukuze umthuthukisi wohlelo lokusebenza akhathazeke ngayo.

Isinyathelo sesi-5: Ukufakwa Kokuhlolwa Kwekhodi

Ukwenza izivivinyo kungaba enye imfuneko enzima, kodwa onjiniyela kufanele babambe noma yiziphi iziphazamisi kuhlelo lokusebenza kusenesikhathi futhi bathuthukise ikhwalithi yekhodi ukuze baqinisekise ukuthi abasebenzisi bokugcina bayaneliseka. Ngenhlanhla, kunamathuluzi amaningi omthombo ovulekile okuhlola ikhodi yakho nokwenza izincomo zokuthuthukisa ikhwalithi yayo. Okungcono nakakhulu ukuthi amathuluzi amaningi e-CI/CD angaxhumeka kulawa mathuluzi futhi enze inqubo ngokuzenzakalelayo.

Ukuhlolwa kwekhodi kuqukethe izingxenye ezimbili: izinhlaka zokuhlola ikhodi ezikusiza ukuthi ubhale futhi wenze izivivinyo, namathuluzi eziphakamiso akusiza ukuthi uthuthukise ikhwalithi yekhodi yakho.

Amasistimu okuhlola amakhodi

Isihloko
Ilayisense
Ulimi lokuhlela

JUnit
I-Eclipse Ilayisense Yomphakathi
Java

I-EasyMock
Apache
Java

i-mockito
MIT
Java

I-PowerMock
I-Apache 2.0
Java

I-Pytest
MIT
Python

I-hypothesis
I-Mozilla
Python

Ubuthi
MIT
Python

Izinhlelo zokuncoma zokuthuthukisa amakhodi

Isihloko
Ilayisense
Ulimi lokuhlela

Cobertura
I-GNU
Java

I-CodeCover
I-Eclipse Public (EPL)
Java

I-Coverage.py
I-Apache 2.0
Python

Emma
Ilayisensi Yomphakathi Ejwayelekile
Java

I-JaCoCo
I-Eclipse Ilayisense Yomphakathi
Java

I-hypothesis
I-Mozilla
Python

Ubuthi
MIT
Python

Jasmine
MIT
i-JavaScript

Karma
MIT
i-JavaScript

Mocha
MIT
i-JavaScript

kukhona
MIT
i-JavaScript

Qaphela ukuthi iningi lamathuluzi nezinhlaka ezishiwo ngenhla zibhalelwe i-Java, i-Python ne-JavaScript, njengoba i-C++ ne-C# kuyizilimi zokuhlela zokuphathelene (yize i-GCC ingumthombo ovulekile).

Manje njengoba ususebenzise amathuluzi okuhlola, ipayipi lakho le-DevOps kufanele libukeke lifana nomdwebo oboniswe ekuqaleni kwalesi sifundo.

Izinyathelo Ezengeziwe

Izitsha

Njengoba ngishilo, ungabamba iseva yakho emshinini obonakalayo noma iseva, kepha iziqukathi ziyisixazululo esidumile.

Ziyini iziqukathi? Incazelo emfushane ukuthi umshini we-virtual udinga inani elikhulu lememori yesistimu yokusebenza, edlula usayizi wohlelo lokusebenza, kuyilapho isiqukathi sidinga kuphela amalabhulali ambalwa nokulungiselelwa ukuze kuqalise uhlelo lokusebenza. Ngokusobala, kusenokusetshenziswa okubalulekile komshini obonakalayo, kodwa isiqukathi siyisixazululo esilula sokusingatha uhlelo lokusebenza, okuhlanganisa neseva yohlelo lokusebenza.

Ngenkathi kunezinye izinketho zeziqukathi, ezidume kakhulu yi-Docker ne-Kubernetes.

I-Docker: Apache 2.0
I-Kubernetes: Apache 2.0

Amathuluzi e-automation aphakathi nendawo

Ipayipi lethu le-DevOps ligxile kakhulu ekudaleni izinhlelo zokusebenza ezihlanganyelwayo nasekusetshenzisweni, kodwa ziningi ezinye izinto ezingenziwa ngamathuluzi e-DevOps. Enye yazo ukusetshenziswa kwamathuluzi eNgqalasizinda njenge-Code (IaC), aziwa nangokuthi amathuluzi e-middleware automation. Lawa mathuluzi asiza ukufaka ngokuzenzakalelayo, ukuphatha, neminye imisebenzi ye-middleware. Ngakho-ke, isibonelo, ithuluzi lokuzenzakalela lingakhipha izinhlelo zokusebenza ezifana neseva yohlelo lokusebenza lwewebhu, isizindalwazi, kanye nethuluzi lokuqapha elinezilungiselelo ezifanele futhi likuthumele kuseva yohlelo lokusebenza.

Nawa amanye amathuluzi e-open source mediumware automation:

Okubalulekile: GNU Public
I-SaltStack: I-Apache 2.0
Umpheki: Apache 2.0
Upopayi: Apache noma GPL

Umhlahlandlela Wabaqalayo: Ukudala Ipayipi le-DevOps

Thola imininingwane yokuthi ungawuthola kanjani umsebenzi owufunayo kusukela ekuqaleni noma u-Level Up ngokwamakhono neholo ngokuthatha izifundo ezikhokhelwayo ze-inthanethi e-SkillFactory:

izifundo ezengeziwe

Iwusizo

Source: www.habr.com

Engeza amazwana