Kodi ma database amakhala ku Kubernetes?

Kodi ma database amakhala ku Kubernetes?

Mwanjira ina, mbiriyakale, makampani a IT amagawidwa m'misasa iwiri yovomerezeka pazifukwa zilizonse: omwe ali "chifukwa" ndi omwe "akutsutsana". Komanso, nkhani ya mikangano ingakhale yosasinthasintha. Ndi OS iti yomwe ili bwino: Win kapena Linux? Pa foni yamakono ya Android kapena iOS? Kodi muyenera kusunga chilichonse m'mitambo kapena kuziyika pamalo ozizira a RAID ndikuyika zomangira pamalo otetezeka? Kodi anthu a PHP ali ndi ufulu kutchedwa opanga mapulogalamu? Mikangano iyi, nthawi zina, imakhalapo mwachilengedwe ndipo ilibe maziko ena kusiyapo chidwi zamasewera.

Zinangochitika kuti pakubwera zitsulo ndi zakudya zonse zokondedwa izi ndi docker ndi k8s zovomerezeka, mikangano "ya" ndi "motsutsa" kugwiritsa ntchito mphamvu zatsopano m'madera osiyanasiyana a backend inayamba. (Tiyeni tisungiretu pasadakhale kuti ngakhale Kubernetes nthawi zambiri aziwonetsedwa ngati woyimba pazokambiranazi, kusankha kwa chida ichi sikuli kofunikira. M'malo mwake, mutha kulowetsa china chilichonse chomwe chikuwoneka chosavuta komanso chodziwika bwino kwa inu. .)

Ndipo, zikuwoneka, uwu ungakhale mkangano wosavuta pakati pa mbali ziwiri za ndalama imodzi. Zopanda nzeru komanso zopanda chifundo monga kulimbana kwamuyaya pakati pa Win vs Linux, momwe anthu okwanira alipo penapake pakati. Koma pankhani ya kontena, sikuti zonse ndizosavuta. Nthawi zambiri pamikangano yotere palibe mbali yolondola, koma ngati "kugwiritsa ntchito" kapena "osagwiritsa ntchito" zotengera zosungirako zosungira, chilichonse chimatembenukira pansi. Chifukwa mwanjira inayake, onse othandizira ndi otsutsa njira iyi ndi olondola.

Mbali yowala

Mkangano wa Light Side ukhoza kufotokozedwa mwachidule m'mawu amodzi: "Moni, 2k19 ili kunja kwawindo!" Zikumveka ngati populism, ndithudi, koma ngati inu fufuzani mwatsatanetsatane zinthu, izo zili ndi ubwino wake. Tiyeni tikonze izo tsopano.

Tiyerekeze kuti muli ndi ntchito yayikulu pa intaneti. Zitha kumangidwa poyambira pogwiritsa ntchito njira ya microservice, kapena nthawi ina idabwera kudzera munjira yachisinthiko - izi sizofunikira kwenikweni. Munabalalitsa pulojekiti yathu kukhala ma microservices osiyana, kukhazikitsa orchestration, kusanja katundu, ndi makulitsidwe. Ndipo tsopano, ndi chikumbumtima choyera, mumamwa mojito mu hammock panthawi ya zotsatira za habra m'malo mokweza ma seva akugwa. Koma muzochita zonse muyenera kukhala osasinthasintha. Nthawi zambiri, pulogalamu yokhayo yokha - code - ndiyomwe imakhala. Ndi chiyani chinanso chomwe tili nacho pambali pa code?

Ndiko kulondola, data. Mtima wa polojekiti iliyonse ndi deta yake: izi zikhoza kukhala DBMS - MySQL, Postgre, MongoDB, kapena zosungirako zomwe zimagwiritsidwa ntchito pofufuza (ElasticSearch), kusungirako mtengo wa caching - mwachitsanzo, redis, ndi zina zotero. tikambirana za njira zokhotakhota zoyendetsera nkhokwe pomwe nkhokwe ikagwa chifukwa cha mafunso osalembedwa bwino, ndipo m'malo mwake tikambirana za kuwonetsetsa kulolerana kolakwika kwa database yomwe ili pansi pa kasitomala. Kupatula apo, tikayika pulogalamu yathu ndikuyilola kuti ikwaniritse zopempha zilizonse zomwe zikubwera, izi zimawonjezera katundu pankhokwe.

M'malo mwake, njira yopezera nkhokwe ndi seva yomwe imayendera imakhala diso la singano m'mbuyo mwathu wokongola. Nthawi yomweyo, cholinga chachikulu cha chidebe chowoneka bwino ndikuyenda komanso kusinthasintha kwa kapangidwe kake, komwe kumatilola kuti tikonzekere kugawa katundu wapamwamba kwambiri pamagawo onse omwe akupezeka kwa ife moyenera momwe tingathere. Ndiye kuti, ngati sitisunga ndi kutulutsa zinthu zonse zomwe zilipo kale pamagulu onse, tikulakwitsa kwambiri.

Ndizomveka kuphatikizira osati pulogalamu yokhayo, komanso mautumiki omwe ali ndi udindo wosunga deta. Mwa kusonkhanitsa ndi kutumiza ma seva a pa intaneti omwe amagwira ntchito pawokha ndikugawa katundu pakati pawo mu k8s, tikuthetsa kale vuto la kulunzanitsa deta - ndemanga zomwezo pazolemba, ngati titenga zofalitsa kapena blog monga chitsanzo. Mulimonsemo, tili ndi gulu lamkati, ngakhale lodziwika bwino, loyimira nkhokwe ngati ExternalService. Funso ndilakuti nkhokwe yokhayo sinaphatikizidwebe - ma seva omwe ayikidwa mu cube amatenga zambiri zosintha kuchokera ku database yathu yankhondo yokhazikika, yomwe imazungulira padera.

Kodi mukumva kugwira? Timagwiritsa ntchito ma k8s kapena Swarm kugawa katunduyo ndikupewa kuwononga seva yayikulu, koma sitichita izi pazosungira. Koma ngati nkhokwe ikawonongeka, ndiye kuti zida zathu zonse zophatikizika sizikupanga nzeru - masamba opanda kanthu ali ndi phindu lanji omwe amabwezera cholakwika chofikira pa database?

Ichi ndichifukwa chake ndikofunikira kuphatikiza osati ma seva okha, monga zimachitikira nthawi zambiri, komanso maziko a database. Ndi njira iyi yokha yomwe tingatsimikizire dongosolo lomwe limagwira ntchito mokwanira mu gulu limodzi, koma panthawi imodzimodziyo popanda wina ndi mzake. Komanso, ngakhale theka la "backend" lathu "litagwa" pansi pa katundu, ena onse adzapulumuka, ndipo dongosolo logwirizanitsa nkhokwe wina ndi mzake mkati mwa masango ndi kuthekera kosalekeza ndi kuyika magulu atsopano kudzathandiza mwamsanga kufika pamlingo wofunikira - ngati panali zoyikapo mu data center .

Kuphatikiza apo, mawonekedwe a database omwe amagawidwa m'magulu amakulolani kuti mutenge nawo nkhokweyi komwe ikufunika; Ngati tikulankhula za ntchito yapadziko lonse lapansi, ndiye kuti sizomveka kuzunguliza gulu lawebusayiti kwinakwake ku San Francisco ndipo nthawi yomweyo kutumiza mapaketi mukalowa mdera la Moscow ndikubwerera.

Komanso, kuyika kwa database kumakupatsani mwayi wopanga zinthu zonse zamakina pamlingo wofanana. Zomwe, zimapangitsa kuti zikhale zotheka kuyang'anira dongosolo lomweli mwachindunji kuchokera ku code, ndi omanga, popanda kutenga nawo mbali kwa otsogolera. Opangawo adaganiza kuti DBMS yosiyana ikufunika pagawo latsopanoli - losavuta! adalemba fayilo yaml, ndikuyiyika pagululo ndipo mwamaliza.

Ndipo, ndithudi, ntchito yamkati imakhala yosavuta. Ndiuzeni, ndi kangati mwatseka maso anu pomwe membala watsopano watimu ayika manja ake munkhokwe kuti agwire ntchito? Ndi iti yokha yomwe muli nayo ndipo ikuzungulira pompano? Zachidziwikire, tonse ndife achikulire pano, ndipo kwinakwake tili ndi zosunga zobwezeretsera zatsopano, komanso kutali - kuseri kwa alumali ndi nkhaka za agogo ndi ma skis akale - zosunga zobwezeretsera zina, mwina ngakhale posungira kozizira, chifukwa ofesi yanu idayaka kale. Koma chimodzimodzi, kuyambika kulikonse kwa membala watsopano wa gulu yemwe ali ndi mwayi wopeza zida zomenyera nkhondo ndipo, zowonadi, ku database yankhondo ndi ndowa ya validol kwa aliyense wozungulira. Chabwino, ndani amamudziwa, wangoyamba kumene, mwina ali wodutsana? Ndizowopsa, muvomereza.

Kuyika nkhonya komanso, makamaka, kugawidwa kwazomwe zasungidwa mu nkhokwe ya projekiti yanu kumathandizira kupewa nthawi zotsimikizika ngati izi. Osakhulupirira watsopano? CHABWINO! Tiyeni timupatse gulu lake kuti agwire nalo ntchito ndikuchotsa nkhokwe kuchokera kumagulu ena - kulunzanitsa kokha ndikukankhira pamanja ndikusinthasintha kofanana kwa makiyi awiri (imodzi ya otsogolera gulu, inayo ya admin). Ndipo aliyense ali wokondwa.

Ndipo tsopano ndi nthawi yoti musinthe kukhala otsutsa magulu a database.

Mbali yakuda

Kutsutsana chifukwa chake sikuli koyenera kuyika nkhokwe ndikupitiliza kuyiyendetsa pa seva imodzi yapakati, sitidzatsata zonena za zikhulupiriro ndi mawu ngati "agogo aakazi adagwiritsa ntchito nkhokwe pa hardware, nafenso tidzatero!" M'malo mwake, tiyeni tiyese kubwera ndi mkhalidwe womwe kontena ingapereke zopindulitsa zowoneka.

Gwirizanani, mapulojekiti omwe amafunikira maziko mu chidebe amatha kuwerengedwa pa zala za dzanja limodzi osati wogwiritsa ntchito makina opangira mphero. Nthawi zambiri, ngakhale kugwiritsa ntchito k8s kapena Docker Swarm palokha kumakhala kofunikira - nthawi zambiri zida izi zimagwiritsidwa ntchito chifukwa chaukadaulo waukadaulo komanso malingaliro a "wamphamvuyonse" mwa amuna kuti azikankhira chilichonse munjira. mitambo ndi zotengera. Chabwino, chifukwa tsopano ndizowoneka bwino ndipo aliyense amachita.

Pafupifupi theka lamilandu, kugwiritsa ntchito Kubernetis kapena Docker pa projekiti ndikosowa. Vuto ndilakuti si magulu onse kapena makampani ogulitsa ntchito omwe amalembedwa kuti asungire zida za kasitomala akudziwa izi. Ndizovuta kwambiri pamene zotengera zimayikidwa, chifukwa zimawononga ndalama zina kwa kasitomala.

Nthawi zambiri, pali lingaliro loti a docker/cube mafia akuphwanya mopusa makasitomala omwe amatulutsa izi. Kupatula apo, kuti tigwire ntchito ndi magulu, timafunikira mainjiniya omwe amatha kuchita izi ndipo amamvetsetsa bwino momwe yankho lakhazikitsidwa. Nthawi ina tidafotokoza kale nkhani yathu ndi kufalitsa kwa Republic - kumeneko tidaphunzitsa gulu la kasitomala kuti ligwire ntchito zenizeni za Kubernetis, ndipo aliyense adakhutitsidwa. Ndipo zinali zabwino. Nthawi zambiri, "othandizira" a k8s amatengera kasitomala - chifukwa tsopano ndi omwe amamvetsetsa momwe chilichonse chimagwirira ntchito pamenepo; palibe akatswiri kumbali ya kasitomala.

Tsopano taganizirani kuti mwanjira imeneyi sitimapereka gawo la seva yapaintaneti, komanso kukonza ma database. Tinanena kuti BD ndi mtima, ndipo kutayika kwa mtima kumapha chamoyo chilichonse. Mwachidule, ziyembekezo sizopambana. Chifukwa chake, m'malo mwa hype Kubernetis, ma projekiti ambiri sayenera kuvutikira ndi mtengo wamba wa AWS, womwe ungathetse mavuto onse ndi katundu pamasamba / projekiti yawo. Koma AWS siilinso yafashoni, ndipo zowonetsera ndizofunika kwambiri kuposa ndalama - mwatsoka, m'malo a IT nawonso.

CHABWINO. Mwina pulojekitiyi ikufunika kuphatikizika, koma ngati zonse zikuwonekera bwino ndi mapulogalamu osawerengeka, ndiye tingakonzekere bwanji maulumikizidwe abwino a netiweki pagulu lophatikizana?

Ngati tikukamba za yankho laumisiri losasunthika, lomwe ndi lomwe kusintha kwa k8s kuli, ndiye kuti mutu wathu waukulu ndikubwereza kwa data mu nkhokwe yamagulu. Ma DBMS ena poyambilira amakhala okhulupirika pakugawa deta pakati pazochitika zawo. Ena ambiri sakulandiridwa bwino. Ndipo nthawi zambiri mkangano waukulu pakusankha DBMS ya projekiti yathu sikutha kubwereza ndi ndalama zochepa komanso uinjiniya. Makamaka ngati polojekitiyi sinakonzedwe koyambirira ngati microservice, koma idangosinthika mwanjira iyi.

Tikuganiza kuti palibe chifukwa cholankhula za liwiro la ma drive a network - amachedwa. Iwo. Sitikhalabe ndi mwayi weniweni, ngati chinachake chikuchitika, kuyambitsanso chitsanzo cha DBMS kwinakwake komwe kuli zambiri, mwachitsanzo, mphamvu ya purosesa kapena RAM yaulere. Tidzathamangira mwachangu mumayendedwe a Virtualized disk subsystem. Chifukwa chake, DBMS iyenera kukhomeredwa pamakina ake omwe ali pafupi. Kapena m'pofunika mwanjira ina kuziziritsa mokwanira mofulumira deta kalunzanitsidwe kwa akuyenera nkhokwe.

Kupitiliza mutu wamawonekedwe a fayilo: Ma Docker Volumes, mwatsoka, alibe vuto. Nthawi zambiri, pankhani ngati kusungidwa kwa data kwanthawi yayitali, ndikufuna kuchita ndi njira zosavuta zaukadaulo. Ndipo kuwonjezera chowonjezera chatsopano kuchokera ku FS ya chidebe kupita ku FS ya makolo omwe amakhala ndi chiwopsezo chokha. Koma kugwira ntchito kwa makina othandizira othandizira kumakumananso ndi zovuta potumiza deta pakati pa zigawo izi, ndiye kuti ndizowopsa. Pakali pano, mavuto ambiri odziwika kwa anthu opita patsogolo akuwoneka kuti atha. Koma mukumvetsa, makinawo akamavuta kwambiri, m'pamene amasweka mosavuta.

Poganizira za "maulendo" onsewa, ndizopindulitsa kwambiri komanso zosavuta kusunga nkhokwe pamalo amodzi, ndipo ngakhale mungafunike kuyika pulogalamuyo, ilole kuti iziyenda yokha ndipo kudzera pachipata chogawa mulandire kulumikizana nthawi imodzi ndi database, yomwe idzawerengedwa ndi kulembedwa kamodzi kokha komanso Malo amodzi. Njirayi imachepetsa kuthekera kwa zolakwika ndi desynchronization kukhala osachepera.

Kodi tikutsogolera ku chiyani? Kuphatikiza apo, kusungitsa ma database ndikoyenera komwe kuli kofunikira. Simungathe kuyika nkhokwe ya pulogalamu yonse ndikuyizungulira ngati muli ndi ma microservices khumi ndi awiri - sizigwira ntchito motero. Ndipo izi ziyenera kumveka bwino.

M'malo mwa zotsatira

Ngati mukuyembekezera mawu omveka bwino "kuti musinthe nkhokwe kapena ayi," ndiye kuti tikukhumudwitsani: sizikhala pano. Chifukwa popanga njira iliyonse yothetsera zowonongeka, munthu sayenera kutsogoleredwa ndi mafashoni ndi kupita patsogolo, koma, choyamba, mwanzeru.

Pali mapulojekiti omwe mfundo ndi zida zomwe zimabwera ndi Kubernetis zimagwirizana bwino, ndipo muzochita zotere mumakhala mtendere osachepera kudera lakumbuyo. Ndipo pali ma projekiti omwe safuna zotengera, koma ma seva abwinobwino, chifukwa sangathe kubwereranso ku mtundu wa microservice cluster, chifukwa adzagwa.

Source: www.habr.com

Kuwonjezera ndemanga