Siza kuqalisa iblogi yethu ngeempapasho ezisekelwe kwiintetho zamva nje zomlawuli wethu wezobugcisa
Ngomhla wama-31 kuCanzibe kwinkomfa
Ukuba unethuba lokuchitha iyure
Ukuhanjiswa okuqhubekekayo kunye neDocker
Ngaphantsi Ukuhambisa ngokuqhubekayo siqonda ikhonkco leziganeko ngenxa yokuba ikhowudi yesicelo evela kwindawo yokugcina i-Git iza kuqala kwimveliso, kwaye iphelela kwindawo yokugcina. Ijongeka ngolu hlobo: IGit β Yakha β Uvavanyo β Khupha β Sebenza.
Uninzi lwengxelo lunikezelwe kwinqanaba lokwakha (indibano yesicelo), kwaye ukukhutshwa kwezihloko kunye nokusebenza kuchukunyiswe ngokufutshane. Siza kuthetha ngeengxaki kunye neepatheni ezikuvumela ukuba uzisombulule, kwaye ukuphunyezwa okuthe ngqo kwale patheni kunokwahluka.
Kutheni iDocker ifuneka apha konke konke? Ayisiyonto ukuba sigqibe kwelokuba sithethe malunga neendlela zokuZisa ngokuqhubekayo kumxholo wesi sixhobo soMthombo oVulekileyo. Nangona yonke ingxelo inikezelwe ekusebenziseni kwayo, izizathu ezininzi zibonakaliswe xa kuqwalaselwa iphethini ephambili yokukhutshwa kwekhowudi yesicelo.
Ipatheni yokukhupha engundoqo
Ke, xa sikhupha iinguqulelo ezintsha zesicelo, ngokuqinisekileyo sijongene nazo ingxaki yexesha lokuphumla, eveliswe ngexesha lokutshintshwa komncedisi wemveliso. I-traffic esuka kuhlelo oludala lwesicelo ukuya kwentsha ayinakutshintshela ngokukhawuleza: okokuqala kufuneka siqinisekise ukuba inguqulelo entsha ayikhutshelwanga ngempumelelo kuphela, kodwa "yafudumala" (oko kukuthi, ilungele ngokupheleleyo ukukhonza izicelo).
Ke, kangangexesha elithile zombini iinguqulelo zesicelo (ezindala nezintsha) ziya kusebenza ngaxeshanye. Okukhokelela ngokuzenzekelayo kwi ungquzulwano lwezibonelelo ekwabelwana ngalo: inethiwekhi, inkqubo yefayile, IPC, njl. Nge-Docker, le ngxaki isonjululwa ngokulula ngokuqhuba iinguqulelo ezahlukeneyo zesicelo kwizikhongozeli ezahlukileyo, apho ukwahlulwa kovimba kuqinisekiswa ngaphakathi komkhosi omnye (umncedisi/umatshini obambekayo). Ewe kunjalo, unokufikelela ngamanye amaqhinga ngaphandle kokugquma konke, kodwa ukuba kukho isixhobo esenziwe eselenziwe kwaye esifanelekileyo, ke kukho isizathu esichaseneyo - ungasihoyi.
I-Containerization ibonelela ngezinye izibonelelo ezininzi xa zisetyenziswa. Nasiphi na isicelo sixhomekeke kwi inguqulelo ethile (okanye uluhlu lwenguqulelo) itoliki, ukufumaneka kweemodyuli/izandiso, njalo njalo, kunye neenguqulelo zazo. Kwaye oku akusebenzi nje kuphela kwimeko-bume ephunyeziweyo, kodwa nakwimeko-bume yonke, kuquka inkqubo yesoftware kunye noguqulelo lwayo (ukuya kunikezelo lweLinux olusetyenzisiweyo). Ngenxa yokuba izikhongozeli aziqukethe ikhowudi yesicelo kuphela, kodwa kunye nenkqubo efakwe ngaphambili kunye nesofthiwe yesicelo seenguqulelo ezifunekayo, unokulibala malunga neengxaki ngokuxhomekeka.
Makhe sishwankathele ipateni yokukhutshwa engundoqo iinguqulelo ezintsha kuthathelwa ingqalelo le miba ilandelayo:
- Ekuqaleni, uguqulelo oludala lwesicelo lusebenza kwisikhongozeli sokuqala.
- Uguqulelo olutsha luqengqeleka kwaye "lufudunyezwe" kwisitya sesibini. Kuyaphawuleka ukuba le nguqulo entsha ngokwayo ayinakuthwala ikhowudi yesicelo ehlaziyiweyo kuphela, kodwa nayo nayiphi na into exhomekeke kuyo, kunye namacandelo enkqubo (umzekelo, inguqulelo entsha ye-OpenSSL okanye usasazo lonke).
- Xa inguqulelo entsha ikulungele ngokupheleleyo ukukhonza izicelo, itrafikhi iyatshintsha ukusuka kwisitya sokuqala ukuya kwesesibini.
- Inguqulelo endala inokuyekwa.
Le ndlela yokuhambisa iinguqulelo ezahlukeneyo zesicelo kwizikhongozeli ezahlukeneyo ibonelela ngolunye uncedo - ukubuyisela umva ngokukhawuleza kwinguqulo endala (emva koko, kwanele ukutshintshela i-traffic kwisitya esifunwayo).
Isindululo sokuqala sokugqibela sivakala njengento engazange ibonwe nguKapteni: β[xa uququzelela ukuhanjiswa okuQhubekayo kunye neDocker] Sebenzisa iDocker [kwaye uqonde ukuba inika ntoni]" Khumbula, oku akusiyo i-bullet yesilivere eya kusombulula zonke iingxaki, kodwa isixhobo esinika isiseko esihle.
Ukuvelisa kwakhona
Ngokuthi "ukuveliswa kwakhona" sithetha isethi ngokubanzi yeengxaki ezifunyenwe xa usetyenziso lwezicelo. Sithetha ngeemeko ezinjalo:
- Izikripthi ezijongwe lisebe lomgangatho ukuze zenziwe nokwenziwa ngokutsha ngokuchanekileyo kwimveliso.
- Izicelo zipapashwa kwiiseva ezinokufumana iipakethe ezivela kwizibuko ezahlukeneyo zokugcina (ekuhambeni kwexesha zihlaziywa, kunye nazo iinguqulelo zezicelo ezifakiweyo).
- βYonke into indisebenzela ekuhlaleni!β (... kwaye abaphuhlisi abavumelekanga kwimveliso.)
- Kufuneka ujonge into endala (egciniweyo) inguqulelo.
- ...
Ukubaluleka kwabo ngokubanzi kubilisa kwinto yokuba ukuthotyelwa ngokupheleleyo kweemeko ezisetyenziswayo (kunye nokungabikho kwento yomntu) kuyimfuneko. Singakuqinisekisa njani ukuzala kwakhona? Yenza imifanekiso yeDocker ngokusekelwe kwikhowudi esuka kwiGit, kwaye ke uyisebenzise kuyo nayiphi na imisebenzi: kwiindawo zokuvavanya, kwimveliso, koomatshini bendawo beprogram ... Ngelo xesha, kubalulekile ukunciphisa izenzo ezenziwayo. ΠΏΠΎΡΠ»Π΅ ukudibanisa umfanekiso: kulula ngakumbi, kunokubakho iimpazamo.
Iziseko zophuhliso yikhowudi
Ukuba iimfuno zeziseko zophuhliso (ubukho besoftware yeseva, uguqulelo lwayo, njl.njl.) azenziwanga kwaye "zicwangcisiwe," ngoko ke ukukhutshwa kwalo naluphi na uhlaziyo lwesicelo kunokukhokelela kwiziphumo ezibi. Umzekelo, kwistaging sele utshintshele kwi-PHP 7.0 kwaye uphinde ubhale ikhowudi ngokufanelekileyo - emva koko ukubonakala kwayo kwimveliso kunye ne-PHP endala (5.5) ngokuqinisekileyo kuya kumangalisa umntu. Awukwazi ukulibala malunga noshintsho olukhulu kwinguqulelo yetoliki, kodwa "umtyholi ukwiinkcukacha": ukumangaliswa kusenokuba kuhlaziyo oluncinane lwalo naluphi na ukuxhomekeka.
Indlela yokusombulula le ngxaki yaziwa ngokuba IaC (Iziseko ezingundoqo njengeKhowudi, "iziseko zophuhliso njengekhowudi") kwaye ibandakanya ukugcina iimfuno zeziseko zophuhliso kunye nekhowudi yesicelo. Ukuyisebenzisa, abaphuhlisi kunye neengcali ze-DevOps banokusebenza kunye ne-Git application repository, kodwa kwiindawo ezahlukeneyo zayo. Ukusuka kule khowudi, umfanekiso we-Docker wenziwa kwi-Git, apho isicelo sisetyenziswe ngokuqwalasela zonke iinkcukacha zesiseko. Ukubeka ngokulula, izikripthi (imithetho) yokudibanisa imifanekiso kufuneka ibe kwindawo yokugcina kunye nekhowudi yomthombo kwaye idibaniswe kunye.
Kwimeko yolwakhiwo lwesicelo se-multi-layer-umzekelo, kukho i-nginx, emi phambi kwesicelo esele sisebenza ngaphakathi kwisitya se-Docker - imifanekiso ye-Docker kufuneka yenziwe kwikhowudi kwi-Git kuluhlu ngalunye. Emva koko umfanekiso wokuqala uya kuba nesicelo kunye netoliki kunye nezinye "ezisondeleyo" ezixhomekeke, kwaye umfanekiso wesibini uya kuqulatha i-nginx ephezulu.
Imifanekiso yeDocker, unxibelelwano kunye neGit
Sahlulahlula yonke imifanekiso yeDocker eqokelelwe kwiGit ibe ziindidi ezimbini: okwethutyana kunye nokukhululwa. Imifanekiso yethutyana ephawulwe ngegama lesebe kwi-Git, inokubhalwa ngaphezulu ngesibophelelo esilandelayo kwaye ikhutshelwe ngaphandle kuphela imboniso (hayi yemveliso). Lo ngumahluko wabo ophambili kwezi zikhutshiweyo: soze wazi ukuba yeyiphi isithembiso esikubo.
Kunengqiqo ukuqokelela kwimifanekiso yesikhashana: i-master branch (unokuyikhupha ngokuzenzekelayo kwindawo eyahlukileyo ukuze ubone rhoqo inguqu yangoku yenkosi), amasebe anokukhutshwa, amasebe ezinto ezintsha.
Emva kokubonwa kwemifanekiso yethutyana kuza kwimfuno yokuguqulelwa kwimveliso, abaphuhlisi babeka ithegi ethile. Iqokelelwe ngokuzenzekelayo ngethegi khulula umfanekiso (ithegi yayo ihambelana nethegi esuka kwiGit) kwaye ikhutshelwe ngaphandle kwistaging. Ukuba iqinisekiswa ngempumelelo lisebe lomgangatho, iya kwimveliso.
idapp
Yonke into echazwe (ukukhutshwa, ukuhlanganiswa komfanekiso, ukulungiswa okulandelayo) kunokuphunyezwa ngokuzimeleyo ngokusebenzisa izikripthi zeBash kunye nezinye izixhobo "eziphuculweyo". Kodwa ukuba wenza oku, ngoko ngexesha elithile ukuphunyezwa kuya kubangela ubunzima obukhulu kunye nokulawulwa kakubi. Ukuqonda oku, size ukwenza eyethu i-Workflow utility ekhethekileyo yokwakha iCI/CD - idapp.
Ikhowudi yayo yomthombo ibhalwe kwiRuby, umthombo ovulekileyo kwaye upapashwe kuyo
Ihlaziywe ngo-Agasti 13, 2019: ngoku yiprojekthi idapp ithiywe kwakhona ku
Kubernetes
Esinye isixhobo esisele senziwe senziwe nguMthombo oVulekileyo esele sifumene ukuqatshelwa okubalulekileyo kwimekobume yobungcali Kubernetes, iqela lolawulo lweDocker. Isihloko sokusetyenziswa kwayo ekusebenzeni kweeprojekthi ezakhiwe kwi-Docker ingaphaya kobubanzi bengxelo, ngoko umboniso unqunyelwe kwisishwankathelo sezinye iimpawu ezinomdla.
Ukukhutshwa, iKubernetes ibonelela:
- iprobe yokulungela - ukujonga ukulungela kwenguqulelo entsha yesicelo (ukutshintsha itrafikhi kuyo);
- uhlaziyo oluqengqelekayo - uhlaziyo lomfanekiso olulandelelanayo kwiqela lezikhongozeli (ukuvalwa, uhlaziyo, ukulungiselela ukuqaliswa, ukutshintsha kwetrafikhi);
- ukuhlaziywa kwe-synchronous - ukuhlaziya umfanekiso kwi-cluster kunye nendlela eyahlukileyo: okokuqala kwisiqingatha sezikhongozeli, emva koko kwezinye;
- ukukhutshwa kwe-canary - ukusungula umfanekiso omtsha kwinani eliqingqiweyo (elincinci) leekhonteyina ukujonga izinto ezingaqhelekanga.
Ekubeni ukuhanjiswa ngokuqhubekayo akukona nje ukukhutshwa kwenguqu entsha, i-Kubernetes inamathuba amaninzi okugcinwa kweziseko ezingundoqo ezilandelayo: ukubeka iliso eyakhelwe-ngaphakathi kunye nokugawulwa kwemithi kuzo zonke izitya, ukulinganisa ngokuzenzekelayo, njl. ukuphunyezwa kwiinkqubo zakho.
Iingcebiso zokugqibela
- Sebenzisa iDocker.
- Yenza imifanekiso yeDocker yezicelo kuzo zonke iimfuno zakho.
- Landela umgaqo othi βIziseko zophuhliso yikhowudi.β
- Xhuma iGit kwiDocker.
- Ukulawula ulandelelwano lokuqaliswa.
- Sebenzisa iqonga esele lilungile (Kubernetes okanye enye).
Iividiyo kunye nezilayidi
Ividiyo esuka kumdlalo (malunga neyure)
Ukunikezelwa kwengxelo:
PS
Ezinye iingxelo ngesihloko kwibhlog yethu:
- Β«
i-werf - isixhobo sethu seCI / CD kwi-Kubernetes (umboniso kunye nengxelo yevidiyo) Β» (Dmitry Stolyarov; Meyi 27, 2019 kwi-DevOpsConf); - Β«
Iidatabase kunye neKubernetes Β» (UDmitry Stolyarov; ngoNovemba 8, 2018 kwi-HighLoad ++); - Β«
I-CI/CD Yezona Ziqheliso zibalaseleyo kunye ne-Kubernetes kunye ne-GitLab Β» (UDmitry Stolyarov; ngoNovemba 7, 2017 kwi-HighLoad ++); - Β«
Amava ethu noKubernetes kwiiprojekthi ezincinci Β» (UDmitry Stolyarov; NgoJuni 6, 2017 kwi-RootConf).
umthombo: www.habr.com