Madhatabhesi anogara muKubernetes?

Madhatabhesi anogara muKubernetes?

Neimwe nzira, munhoroondo, iyo IT indasitiri yakakamurwa kuita maviri emamiriro emisasa chero chikonzero: avo vari "nokuda" uye avo "vanopesana". Uyezve, nyaya yekukakavadzana inogona kunge isingaite zvachose. Ndeipi OS iri nani: Win kana Linux? Pane Android kana iOS smartphone? Iwe unofanirwa kuchengeta zvese mumakore kana kuzviisa pane inotonhora RAID kuchengetedza uye kuisa screws munzvimbo yakachengeteka? Vanhu vePHP vane kodzero yekunzi programmers? Makakatanwa aya, dzimwe nguva, anongove aripo chete uye haana hwaro kunze kwekufarira zvemitambo.

Zvakangoitika kuti nekuuya kwemidziyo uye chikafu ichi chese chinodiwa chine docker uye mamiriro k8s, nharo "ye" uye "kupokana" nekushandiswa kwehunyanzvi hutsva munzvimbo dzakasiyana dzekumashure dzakatanga. (Ngatichengetedzei pachine nguva kuti kunyangwe Kubernetes achizonyanya kuratidzwa semuimbi munhaurirano iyi, kusarudzwa kwechombo ichi hakuna kukosha kwakakosha. Pane kudaro, unogona kutsiva chero chimwe chinoita sechakunakira uye chaunoziva kwauri. .)

Uye, zvinoita sekunge, iyi ingangove gakava riri nyore pakati pemativi maviri emari imwe chete. Sehupenzi uye husina tsitsi sekupokana kusingaperi pakati peWin vs Linux, umo vanhu vakakwana varipo kumwe pakati. Asi munyaya yemidziyo, hazvisi zvese zviri nyore. Kazhinji mumakakatanwa akadaro hapana divi rakarurama, asi kana iri "kushandisa" kana "kusashandisa" midziyo yekuchengetedza dhatabhesi, zvese zvinotendeuka. Nokuti mune imwe pfungwa, vose vatsigiri uye vanopikisa nzira iyi yakarurama.

Rutivi rwakajeka

Nharo yeChiedza Side inogona kutsanangurwa muchidimbu mumutsara mumwe: "Mhoro, 2k19 iri kunze kwehwindo!" Zvinoita senge populism, hongu, asi kana iwe ukanyatsoongorora mamiriro acho ezvinhu, ine zvayakanakira. Ngatizvigadzirise izvozvi.

Ngatitii une chirongwa chikuru chewebhu. Inogona kunge yakagadzirwa pakutanga pahwaro hwe microservice nzira, kana pane imwe nguva yakasvika mairi kuburikidza nekushanduka-shanduka - izvi hazvina kunyanya kukosha, chaizvoizvo. Iwe wakaparadzira purojekiti yedu kuita mamicroservices akasiyana, kumisikidza orchestration, kuremedza kuenzanisa, uye kuyera. Uye zvino, nehana yakachena, unorova mojito mune hammock panguva yehabra mhedzisiro pane kusimudza maseva akadonha. Asi muzviito zvose unofanira kuwirirana. Kazhinji, iyo chete application pachayo-iyo kodhi-inoiswa mumidziyo. Chii chimwe chatinacho kunze kwekodhi?

Ndizvozvo, data. Mwoyo wechero chirongwa idata rayo: iyi inogona kunge iri yakajairika DBMS - MySQL, Postgre, MongoDB, kana chengetedzo inoshandiswa kutsvaga (ElasticSearch), kiyi-yakakosha kuchengetedza caching - semuenzaniso, redis, nezvimwe. Parizvino isu hatisi. isu tichataura nezve yakakombama backend yekumisikidza sarudzo kana dhatabhesi raparara nekuda kwemibvunzo isina kunyorwa zvakanaka, uye panzvimbo pacho isu tichataura nezve kuvimbisa kukanganisa kushivirira kweiyi dhatabhesi pasi pemutengi mutoro. Mushure mezvose, kana isu tichiisa midziyo yedu yekushandisa uye tichiibvumira kuyera zvakasununguka kugadzirisa chero nhamba yezvikumbiro zvinouya, izvi zvinowanzowedzera mutoro pane dhatabhesi.

Muchokwadi, chiteshi chekuwana iyo dhatabhesi uye sevha yainomhanyirira inova ziso retsono mune yedu yakanaka midziyo yekumashure. Panguva imwecheteyo, chinangwa chikuru chemudziyo virtualization ndiko kufamba uye kuchinjika kwechimiro, izvo zvinotitendera kuronga kugoverwa kwepamusoro mitoro pane yese zvivakwa zvinowanikwa kwatiri zvinobudirira sezvinobvira. Ndokunge, kana tikasaisa midziyo uye kuburitsa zvese zviripo zvehurongwa pane cluster, tiri kuita chikanganiso chakanyanya.

Izvo zvine musoro zvakanyanya kuunganidza kwete chete iyo application pachayo, asiwo masevhisi ane basa rekuchengetedza data. Nekuunganidza uye kutumira maseva ewebhu anoshanda akazvimirira uye kugovera mutoro pakati pavo mumak8s, isu tiri kutogadzirisa dambudziko rekuyananisa data - iwo mazwi akafanana pane zvakatumirwa, kana tikatora mimwe midhiya kana blog chikuva semuenzaniso. Chero zvazvingaitika, isu tine intra-cluster, kunyangwe chaiyo, inomiririra dhatabhesi seExternalService. Mubvunzo ndewokuti dhatabhesi pachayo haisati yaungana - mawebhu maseva akaiswa mucube anotora ruzivo nezve shanduko kubva kune yedu static yekurwa dhatabhesi, iyo inotenderera yakaparadzana.

Unonzwa kubata? Isu tinoshandisa k8s kana Swarm kugovera mutoro uye kudzivirira kukanganisa iyo main web server, asi isu hatiiti izvi kune dhatabhesi. Asi kana iyo dhatabhesi ikaparara, saka yedu yese yakaunganidzwa zvivakwa hazvina musoro - ndezvipi zvakanaka mapeji ewebhu asina chinhu anodzosera kukanganisa kwekuwana database?

Ndicho chikonzero nei zvichidikanwa kuunganidza kwete chete sevhavha yewebhu, sezvinowanzoitwa, asiwo dhatabhesi dhatabhesi. Nenzira iyi chete tinogona kuve nechokwadi chechimiro chinoshanda zvizere muchikwata chimwe, asi panguva imwechete yakazvimirira kubva kune mumwe. Uyezve, kunyangwe hafu yebackend yedu "yakadonha" pasi pemutoro, iyo yese ichapona, uye sisitimu yekubatanidza dhatabhesi pamwe chete mukati mesumbu uye kugona kusingaperi kuyera uye kuendesa masumbu matsva kuchabatsira nekukurumidza kusvika kune inodiwa kugona - dai maive nema racks mu data center .

Uye zvakare, iyo dhatabhesi modhi yakagoverwa mumasumbu inobvumidza iwe kutora iyi chaiyo dhatabhesi kwainodiwa; Kana isu tichitaura nezvesevhisi yepasirese, saka hazvina musoro kupeta webhu sumbu pane imwe nzvimbo munharaunda yeSan Francisco uye panguva imwe chete kutumira mapaketi paunenge uchiwana dhatabhesi mudunhu reMoscow uye kumashure.

Zvakare, kutakura kweiyo dhatabhesi kunobvumidza iwe kuti uvake zvese zvinhu zve system padanho rakafanana rekubvisa. Izvo, zvakare, zvinoita kuti zvikwanise kubata iyi chaiyo sisitimu kubva kukodhi, nevagadziri, pasina kubatanidzwa kwevatariri. Vagadziri vakafunga kuti DBMS yakaparadzana yaidiwa kune subproject nyowani - iri nyore! akanyora yaml faira, ndokuisa kune iyo cluster uye wapedza.

Uye zvechokwadi, kushanda kwemukati kunorerutswa zvakanyanya. Ndiudze, kangani iwe wakavhara maziso ako apo nhengo itsva yechikwata ichiisa maoko ake mudhatabhesi yekurwa yebasa? Ndeipi, chokwadi, ndiyo yega yaunayo uye iri kutenderera izvozvi? Ehe, isu tose tiri vanhu vakuru pano, uye kumwe kunhu tine backup nyowani, uye kunyange kure kure - kuseri kwesherufu nemagaka ambuya uye skis yekare - imwe backup, pamwe kunyange munzvimbo inotonhora, nekuti hofisi yako yanga yatobvira moto kamwe. Asi zvakangofanana, kuiswa kwega kwega kwenhengo yechikwata chitsva ine mukana wekurwisa zvivakwa uye, hongu, kune dhatabhesi yekurwisa ibucket re validol kune wese munhu akatenderedza. Zvakanaka, ndiani anomuziva, mutsva, pamwe ane-cross-handed? Zvinotyisa, unobvuma.

Containerization uye, kutaura zvazviri, iyo yakagoverwa yemuviri topology yedhatabhesi repurojekiti yako inobatsira kudzivirira nguva dzakadai dzekusimbisa. Usavimbe neachangozvarwa? OK! Ngatimupei sumbu rake rekushanda naro uye nekubvisa dhatabhesi kubva kune mamwe masumbu - kuwiriranisa chete nemanyorero push uye synchronous kutenderera kwemakiyi maviri (rimwe rekutungamira kwechikwata, rimwe kune admin). Uye munhu wose anofara.

Uye ikozvino yave nguva yekuchinja kuva vapikisi ve database clustering.

Divi rakasviba

Tichipokana kuti nei zvisina kukodzera kuisa dhatabhesi uye kuenderera mberi nekuimhanyisa pane imwe yepakati server, isu hatisi kuzomira kune rhetoric yeorthodoxies uye zvirevo zvakaita se "sekuru vakamhanyisa dhatabhesi pane Hardware, uye isu tichadaro!" Pane kudaro, ngatiedzei kuuya nemamiriro ezvinhu ekuti containerization yaizonyatso bhadhara zvinobatika.

Bvumiranai, mapurojekiti anonyatsoda hwaro mumudziyo anogona kuverengerwa paminwe yeruoko rumwe kwete akanakisa muchina wekugaya. Kune chikamu chikuru, kunyangwe kushandiswa kwek8s kana Docker Swarm pachayo hakuna basa - kazhinji maturusi aya anoshandiswa nekuda kwehuzhinji hwehunyanzvi hwetekinoroji uye maitiro e "wemasimbaose" mumunhu wevarume kusundira zvese mukati. makore nemidziyo. Zvakanaka, nokuti ikozvino fashoni uye munhu wose anozviita.

Muinenge hafu yemakesi, kushandisa Kubernetis kana kungoita Docker pane chirongwa hakuna basa. Nyaya iripo ndeyekuti havasi vese zvikwata kana makambani ekunze anobhadharwa kuchengetedza zvivakwa zvemutengi anoziva izvi. Izvo zvakanyanya kuipa kana midziyo yaiswa, nekuti inodhura imwe mari yemari kumutengi.

Kazhinji, pane fungidziro yekuti docker/cube mafia iri kupusa zvekupwanya vatengi vanoburitsa idzi nyaya dzezvivakwa. Mushure mezvose, kuti tishande nemasumbu, tinoda mainjiniya anokwanisa kuita izvi uye kazhinji anonzwisisa magadzirirwo emhinduro yakaitwa. Isu takambotsanangura nyaya yedu nekudhindwa kweRepublic - ipapo takadzidzisa timu yemutengi kushanda muchokwadi cheKubernetis, uye munhu wese akagutsikana. Uye zvaive zvakanaka. Kazhinji, k8s "vashandisi" vanotora nhapwa yemutengi - nekuti izvozvi chete ndivo vanonzwisisa kuti zvese zvinoshanda sei ipapo; hapana nyanzvi kudivi remutengi.

Iye zvino fungidzira kuti nenzira iyi isu tinoburitsa kwete chete webhu server chikamu, asiwo kuchengetedza dhatabhesi. Takati BD mwoyo, uye kurasikirwa nemoyo kunouraya chero chipenyu chipenyu. Muchidimbu, tarisiro dzacho hadzisi dzakanakisisa. Saka, panzvimbo ye hype Kubernetis, mapurojekiti mazhinji haafanire kungonetseka neyakajairwa mutero weAWS, iyo inogadzirisa matambudziko ese nemutoro pane yavo saiti/purojekiti. Asi AWS haisisiri fashoni, uye show-offs yakakosha kupfuura mari - zvinosuruvarisa, munharaunda yeIT zvakare.

OK. Zvichida purojekiti inoda chaizvo kuunganidzwa, asi kana zvese zviri pachena nemanyorerwo asina kunyorwa, saka isu tingaronga sei yakanaka network yekubatanidza kune yakaunganidzwa dhatabhesi?

Kana isu tiri kutaura nezve isina musono engineering mhinduro, inova iyo shanduko yek8s, saka musoro wedu mukuru ndeyekudzokororwa kwedata mudhatabhesi rakabatana. Mamwe maDBMS anotanga akavimbika pakugovera data pakati pezviitiko zvavo. Vamwe vazhinji havakugamuchire zvakadaro. Uye kazhinji nharo huru pakusarudza DBMS yepurojekiti yedu hakusi kugona kudzokorodza nezvishoma zviwanikwa uye mari yeinjiniya. Kunyanya kana purojekiti haina kurongwa pakutanga se microservice, asi yakangoshanduka mune iyi nzira.

Isu tinofunga kuti hapana chikonzero chekutaura nezve kumhanya kwema network madhiraivha - anononoka. Avo. Isu hatisati tave nemukana chaiwo, kana chimwe chinhu chikaitika, kutangazve chiitiko cheDBMS pane imwe nzvimbo pane zvakawanda, semuenzaniso, processor simba kana yemahara RAM. Isu tichakurumidza kumhanya mukuita kweiyo virtualized disk subsystem. Saizvozvo, iyo DBMS inofanirwa kurovererwa kune yayo yega seti yemichina iri padyo. Kana kuti zvinodikanwa neimwe nzira kutonhorera pasi zvakaringana nekukurumidza data kuwiriranisa kune inofungidzirwa matura.

Kuenderera mberi nemusoro weiyo chaiyo faira masisitimu: Docker Mavhoriyamu, zvinosuruvarisa, haana matambudziko. Kazhinji, munyaya yakadai seyenguva yakareba yakavimbika yekuchengetedza data, ndinoda kuita neakanyanya hunyanzvi zvirongwa. Uye kuwedzera nyowani yekubvisa musara kubva mumudziyo FS kuenda kuFS yemubereki muenzi injodzi pachayo. Asi kana kushanda kweiyo midziyo yekutsigira system ikasanganawo nematambudziko ekufambisa data pakati pematanho aya, saka injodzi. Panguva ino, zvizhinji zvezvinetso zvinozivikanwa kuvanhu vanofambira mberi zvinoratidzika kuva zvakapedzwa. Asi iwe unonzwisisa, iyo yakanyanya kuoma iyo michina, iyo inotyora nyore nyore.

Tichifunga nezve "adventures" ese aya, ane pundutso uye ari nyore kuchengetedza dhatabhesi munzvimbo imwechete, uye kunyangwe iwe uchida kuisa bhokisi rekushandisa, rega rifambe riri roga uye kuburikidza negedhi rekugovera rigamuchire kutaurirana panguva imwe chete. dhatabhesi, iyo ichaverengwa nekunyorwa kamwe chete uye Munzvimbo imwechete. Iyi nzira inoderedza mukana wekukanganisa uye desynchronization kusvika padiki.

Tiri kutungamirei? Uyezve, dhatabhesi yekuchengetera zvinhu inokodzera painoda chaizvo. Iwe haugone kurongedza yakazara-app dhatabhesi uye nekuitenderedza sekunge iwe une gumi nemaviri microservices - haishande nenzira iyoyo. Uye izvi zvinofanira kunzwisiswa zvakajeka.

Panzvimbo yekubuda

Kana iwe wakamirira mhedziso yakajeka "kuita virtualize iyo dhatabhesi kana kwete," isu tinokuodza moyo: hazvizove pano. Nokuti kana uchigadzira chero sarudzo yezvivakwa, munhu anofanira kutungamirirwa kwete nemafashoni uye kufambira mberi, asi, kutanga kune zvose, nekunzwisisa.

Kune mapurojekiti ayo misimboti uye maturusi anouya neKubernetis anokodzera zvakakwana, uye mumapurojekiti akadaro mune runyararo munharaunda yekumashure. Uye kune mapurojekiti asingade midziyo, asi yakajairwa sevha yezvivakwa, nekuti ivo havagone kudzoreredza kune iyo microservice cluster modhi, nekuti inodonha.

Source: www.habr.com

Voeg