Sizoqala ibhulogi yethu ngokushicilelwa okusekelwe enkulumweni yakamuva yomqondisi wethu wezobuchwepheshe
Meyi 31 engqungqutheleni
Uma unethuba lokuchitha ihora
Ukulethwa Okuqhubekayo nge-Docker
Ngaphansi Ukulethwa Okuqhubekayo siyaluqonda uchungechunge lwemicimbi njengomphumela wokuthi ikhodi yohlelo lokusebenza evela endaweni ye-Git ize kuqala ekukhiqizweni, bese igcina kungobo yomlando. Kubukeka kanjena: I-Git → Yakha → Isivivinyo → Khipha → Sebenza.
Iningi lombiko ligxile esiteji sokwakha (ukuhlanganiswa kwesicelo), futhi izihloko ezikhishwa nokusebenza zithintwa kafushane. Sizokhuluma ngezinkinga namaphethini akuvumela ukuthi uwaxazulule, futhi ukusetshenziswa okuqondile kwalawa maphethini kungase kwehluke.
Kungani i-Docker idingeka lapha nhlobo? Akukhona lutho ukuthi sinqume ukukhuluma ngezinqubo Zokulethwa Okuqhubekayo kumongo waleli thuluzi Lomthombo Ovulekile. Nakuba wonke umbiko uzinikele ekusetshenzisweni kwawo, izizathu eziningi ziyadalulwa uma kubhekwa iphethini eyinhloko yokukhishwa kwekhodi yohlelo lokusebenza.
Iphethini yokukhishwa eyinhloko
Ngakho-ke, lapho sikhipha izinguqulo ezintsha zohlelo lokusebenza, ngokuqinisekile sibhekene nazo inkinga yesikhathi sokuphumula, ekhiqizwe ngesikhathi kushintshwa iseva yokukhiqiza. Ithrafikhi esuka kunguqulo yakudala yohlelo lokusebenza iye kwentsha ayikwazi ukushintsha ngokushesha: okokuqala kufanele siqinisekise ukuthi inguqulo entsha ayilandwa ngempumelelo kuphela, kodwa futhi "ifudunyeziwe" (okungukuthi, isilungele ngokuphelele ukunikeza izicelo).
Ngakho-ke, isikhathi esithile zombili izinguqulo zohlelo lokusebenza (ezindala nezintsha) zizosebenza kanyekanye. Okuholela ngokuzenzakalelayo ku ukungqubuzana kwezinsiza ezabiwe: inethiwekhi, isistimu yefayela, i-IPC, njll. Nge-Docker, le nkinga ixazululwa kalula ngokusebenzisa izinguqulo ezihlukene zohlelo lokusebenza ezitsheni ezihlukene, lapho ukuhlukaniswa kwensiza kuqinisekiswa ngaphakathi komsingathi ofanayo (iseva/umshini obonakalayo). Vele, ungadlula ngamanye amaqhinga ngaphandle kokufakwa nhlobo, kepha uma kukhona ithuluzi elenziwe ngomumo nelilungele, khona-ke kunesizathu esiphambene - ukungakunaki.
I-Containerization inikeza ezinye izinzuzo eziningi lapho kuthunyelwa. Noma yiluphi uhlelo lokusebenza luncike inguqulo ethile (noma ububanzi benguqulo) umhumushi, ukutholakala kwamamojula/izandiso, njll., kanye nezinguqulo zazo. Futhi lokhu akusebenzi nje kuphela endaweni esebenza ngokushesha, kodwa nakuyo yonke imvelo, kuhlanganise isofthiwe yesistimu kanye nenguqulo yayo (kufika ekusabalaliseni kwe-Linux esetshenzisiwe). Ngenxa yokuthi iziqukathi aziqukethe ikhodi yohlelo lokusebenza kuphela, kodwa futhi nesistimu efakwe ngaphambili kanye nesofthiwe yohlelo lokusebenza yezinguqulo ezidingekayo, ungakhohlwa ngezinkinga ngokuncika.
Ake sifingqe iphethini yokukhishwa eyinhloko izinguqulo ezintsha kucatshangelwa izici ezilandelayo:
- Ekuqaleni, inguqulo endala yohlelo lokusebenza isebenza esitsheni sokuqala.
- Inguqulo entsha bese ikhishwa futhi "ifudunyezwe" esitsheni sesibili. Kuyaphawuleka ukuthi le nguqulo entsha ngokwayo ngeke iphathe ikhodi yohlelo lokusebenza ebuyekeziwe kuphela, kodwa futhi nanoma yikuphi ukuncika kwayo, kanye nezingxenye zesistimu (isibonelo, inguqulo entsha ye-OpenSSL noma yonke ukusatshalaliswa).
- Uma inguqulo entsha isilungele ngokugcwele ukunikeza izicelo, ithrafikhi iyashintsha isuka esitsheni sokuqala iye kwesesibili.
- Inguqulo endala manje ingamiswa.
Le ndlela yokuthumela izinguqulo ezihlukene zohlelo lokusebenza ezitsheni ezihlukene inikeza okunye ukunethezeka - ukubuyisela emuva ngokushesha enguqulweni endala (ngemuva kwakho konke, kwanele ukushintsha ithrafikhi esitsheni oyifunayo).
Isincomo sokuqala sokugcina sizwakala njengento uKaputeni angazange ayithole iphutha: “[lapho uhlela ukulethwa okuqhubekayo nge-Docker] Sebenzisa i-Docker [futhi uqonde ukuthi inikezani]" Khumbula, lena akuyona inhlamvu yesiliva ezoxazulula zonke izinkinga, kodwa ithuluzi elinikeza isisekelo esihle.
Ukukhiqiza kabusha
Ngokuthi “ukukhiqiza kabusha” sisho isethi ejwayelekile yezinkinga okuhlangatshezwana nazo lapho kusetshenziswa izinhlelo zokusebenza. Sikhuluma ngamacala anjalo:
- Imibhalo ehloliwe umnyango wekhwalithi ukuze ihlelwe kufanele ikhiqizwe ngokunembile ekukhiqizweni.
- Izicelo zishicilelwa kumaseva angathola amaphakheji avela ezibukweni zekhosombe ezahlukene (ngokuhamba kwesikhathi ayabuyekezwa, kanye nazo izinguqulo zezinhlelo zokusebenza ezifakiwe).
- “Konke kungisebenzela endaweni!” (...futhi onjiniyela abavunyelwe ukukhiqiza.)
- Udinga ukuhlola okuthile enguqulweni endala (efakwe kungobo yomlando).
- ...
Ingqikithi yabo evamile igxila eqinisweni lokuthi ukuhambisana ngokugcwele kwezindawo ezisetshenziswayo (kanye nokungabikho kwesici somuntu) kuyadingeka. Singakuqinisekisa kanjani ukukhiqiza kabusha? Yenza izithombe ze-Docker ngokusekelwe kukhodi evela ku-Git, bese uyisebenzisela noma yimuphi umsebenzi: kumasayithi okuhlola, ekukhiqizeni, emishinini yendawo yabahleli bezinhlelo... Ngesikhathi esifanayo, kubalulekile ukunciphisa izenzo ezenziwayo. после ukuhlanganisa isithombe: uma kulula, mancane amathuba okuba namaphutha.
Ingqalasizinda ikhodi
Uma izimfuneko zengqalasizinda (ukutholakala kwesofthiwe yeseva, inguqulo yayo, njll.) zingenziwanga ngokusemthethweni futhi "zihleliwe," khona-ke ukukhishwa kwanoma isiphi isibuyekezo sohlelo lokusebenza kungaholela emiphumeleni eyinhlekelele. Isibonelo, esiteji usuvele ushintshele ku-PHP 7.0 futhi wabhala kabusha ikhodi ngokufanele - khona-ke ukuvela kwayo ekukhiqizeni nge-PHP ethile endala (5.5) kuzomangaza othile. Ungase ungakhohlwa mayelana noshintsho olukhulu enguqulweni yomhumushi, kodwa "udeveli usemininingwaneni": isimangaliso singase sibe yisibuyekezo esincane sanoma yikuphi ukuncika.
Indlela yokuxazulula le nkinga yaziwa ngokuthi I-IaC (Ingqalasizinda njengeKhodi, “ingqalasizinda njengekhodi”) futhi kuhilela ukugcina izidingo zengqalasizinda kanye nekhodi yesicelo. Ngokuyisebenzisa, abathuthukisi kanye nochwepheshe be-DevOps bangasebenza nekhosombe lesicelo le-Git elifanayo, kodwa ezingxenyeni ezihlukene zalo. Kusuka kule khodi, kwakhiwa isithombe se-Docker ku-Git, lapho kuthunyelwa khona uhlelo kucatshangelwa yonke imininingwane yengqalasizinda. Kalula nje, imibhalo (imithetho) yokuhlanganisa izithombe kufanele ibe kunqolobane efanayo nekhodi yomthombo futhi ihlanganiswe ndawonye.
Endabeni yesakhiwo sohlelo lokusebenza lwezendlalelo eziningi - isibonelo, kukhona i-nginx, emi phambi kwesicelo esivele sisebenza ngaphakathi kwesitsha se-Docker - Izithombe ze-Docker kufanele zidalwe kusuka kukhodi ku-Git isendlalelo ngasinye. Khona-ke isithombe sokuqala sizoqukatha uhlelo lokusebenza olunotolika nokunye okuncikile kokuthi "vala", futhi isithombe sesibili sizoqukatha i-nginx ekhuphukayo.
Izithombe ze-Docker, ukuxhumana ne-Git
Sihlukanisa zonke izithombe ze-Docker eziqoqwe ku-Git zibe izigaba ezimbili: ezesikhashana nezokukhululwa. Izithombe zesikhashana okumakwe ngegama legatsha ku-Git, kungacishwa ngokuzibophezela okulandelayo futhi kukhishwe ukuze kuhlolwe kuqala (hhayi okokukhiqiza). Lona umehluko wabo oyinhloko kwabakhululiwe: ngeke wazi ukuthi yikuphi ukuzibophezela okukuzo.
Kunengqondo ukuqoqa ezithombeni zesikhashana: igatsha eliyinhloko (ungalikhipha ngokuzenzakalelayo endaweni ehlukile ukuze ubone njalo inguqulo yamanje ye-master), amagatsha anokukhishwa, amagatsha ezinto ezintsha ezithile.
Ngemuva kokuthi ukubuka kuqala kwezithombe zesikhashana kufike esidingweni sokuhunyushelwa ekukhiqizeni, onjiniyela bafaka umaka othile. Kuqoqwe ngokuzenzakalelayo ngomaka khulula isithombe (ithegi yayo ihambisana nethegi evela ku-Git) futhi ikhishelwa esiteji. Uma iqinisekiswa ngempumelelo umnyango wekhwalithi, iya ekukhiqizeni.
i-dapp
Konke okuchazwe (ukukhishwa, ukuhlanganiswa kwesithombe, ukulungiswa okulandelayo) kungenziwa ngokuzimela kusetshenziswa imibhalo ye-Bash namanye amathuluzi "athuthukisiwe". Kodwa uma wenza lokhu, khona-ke ngesikhathi esithile ukuqaliswa kuzoholela enkingeni enkulu kanye nokulawulwa okungalungile. Ngokuqonda lokhu, size ukuzokwakha okwethu okukhethekile kokugeleza komsebenzi wokwakha i-CI/CD - i-dapp.
Ikhodi yayo yomthombo ibhalwe ku-Ruby, umthombo ovulekile futhi ishicilelwe kuyo
Kubuyekezwe Agasti 13, 2019: okwamanje iphrojekthi i-dapp iqanjwe kabusha ku
Kubernetes
Elinye ithuluzi elenziwe ngomumo le-Open Source eselivele lithole ukuqashelwa okubalulekile endaweni yobungcweti Kubernetes, iqoqo labaphathi be-Docker. Isihloko sokusetshenziswa kwayo ekusebenzeni kwamaphrojekthi akhelwe ku-Docker singaphezu kobubanzi bombiko, ngakho-ke isethulo sikhawulelwe ekubukezweni kwezici ezithile ezithakazelisayo.
Ukuze kukhishwe, i-Kubernetes inikeza:
- i-readiness probe — ukuhlola ukulungela kwenguqulo entsha yohlelo lokusebenza (ukushintsha ithrafikhi kuyo);
- ukuvuselela kabusha - isibuyekezo sesithombe esilandelanayo kuqoqo leziqukathi (ukuvalwa, ukuvuselela, ukulungiselela ukwethulwa, ukushintsha kwethrafikhi);
- i-synchronous update - ukuvuselela isithombe eqoqweni ngendlela ehlukile: okokuqala engxenyeni yeziqukathi, bese kuthi kwezinye;
- ukukhishwa kwe-canary - kwethula isithombe esisha enanini elilinganiselwe (elincane) leziqukathi ukuze kuqashwe okudidayo.
Njengoba Ukulethwa Okuqhubekayo kungekona nje ukukhishwa kwenguqulo entsha, i-Kubernetes inamakhono amaningana okulungisa ingqalasizinda elandelayo: ukuqapha okwakhelwe ngaphakathi nokugawulwa kwazo zonke iziqukathi, ukukala okuzenzakalelayo, njll. Konke lokhu sekuvele kuyasebenza futhi kulinde okufanele. ukuqaliswa ezinqubweni zakho.
Izincomo zokugcina
- Sebenzisa i-Docker.
- Dala izithombe ze-Docker zezicelo zazo zonke izidingo zakho.
- Landela isimiso "Ingqalasizinda ikhodi."
- Xhuma i-Git ku-Docker.
- Lawula ukuhleleka kokukhishwa.
- Sebenzisa inkundla eseyenziwe ngomumo (Kubernetes noma enye).
Amavidiyo namaslayidi
Ividiyo evela ekusebenzeni (cishe ihora)
Ukwethulwa kombiko:
PS
Eminye imibiko ngesihloko esikubhulogi yethu:
- «
i-werf - ithuluzi lethu le-CI / CD ku-Kubernetes (uhlolojikelele nombiko wevidiyo) » (Dmitry Stolyarov; Meyi 27, 2019 ku-DevOpsConf); - «
Databases kanye Kubernetes » (Dmitry Stolyarov; Novemba 8, 2018 ku-HighLoad++); - «
I-CI/CD Imikhuba Engcono Kakhulu nge-Kubernetes kanye ne-GitLab » (Dmitry Stolyarov; Novemba 7, 2017 ku-HighLoad++); - «
Okuhlangenwe nakho kwethu ne-Kubernetes kumaphrojekthi amancane » (Dmitry Stolyarov; Juni 6, 2017 e-RootConf).
Source: www.habr.com