Id-databases jgħixu f'Kubernetes?

Id-databases jgħixu f'Kubernetes?

B'xi mod, storikament, l-industrija tal-IT hija maqsuma f'żewġ kampijiet kundizzjonali għal kwalunkwe raġuni: dawk li huma "favur" u dawk li huma "kontra". Barra minn hekk, is-suġġett tat-tilwim jista' jkun kompletament arbitrarju. Liema OS huwa aħjar: Win jew Linux? Fuq smartphone Android jew iOS? Għandek taħżen kollox fis-sħab jew poġġih fuq ħażna RAID kiesħa u poġġi l-viti f'sikur? In-nies PHP għandhom id-dritt li jissejħu programmaturi? Dawn it-tilwim huma, xi drabi, esklussivament ta’ natura eżistenzjali u m’għandhom l-ebda bażi ħlief interess sportiv.

Ġara li bil-miġja tal-kontenituri u din il-kċina kollha għeżież b'docker u k8s kundizzjonali, bdew id-dibattiti "għal" u "kontra" l-użu ta 'kapaċitajiet ġodda f'diversi oqsma tal-backend. (Ejja nagħmlu riżerva bil-quddiem li għalkemm Kubernetes ħafna drabi jkun indikat bħala orkestratur f'din id-diskussjoni, l-għażla ta' din l-għodda partikolari mhijiex ta' importanza fundamentali. Minflok, tista' tissostitwixxi kwalunkwe waħda oħra li tidher l-aktar konvenjenti u familjari għalik. .)

U, jidher, din tkun sempliċi tilwima bejn żewġ naħat tal-istess munita. Bla sens u bla ħniena daqs il-konfront etern bejn Win vs Linux, li fih jeżistu nies adegwati x'imkien fin-nofs. Iżda fil-każ tal-kontejners, mhux kollox huwa daqshekk sempliċi. Normalment f'tilwimiet bħal dawn ma jkun hemm l-ebda naħa t-tajba, iżda fil-każ ta '"użu" jew "ma tużax" kontenituri għall-ħażna tad-databases, kollox jinbidel ta' taħt fuq. Għax f’ċertu sens, kemm il-partitarji kif ukoll l-avversarji ta’ dan l-approċċ għandhom raġun.

Naħa sabiħa

L-argument tad-Dawl Side jista’ jiġi deskritt fil-qosor f’frażi waħda: “Hello, 2k19 huwa barra t-tieqa!” Jidher qisu populiżmu, ovvjament, imma jekk tidħol fis-sitwazzjoni fid-dettall, għandha l-vantaġġi tagħha. Ejja issolvihom issa.

Ejja ngħidu li għandek proġett web kbir. Inizjalment setgħet inbniet fuq il-bażi ta’ approċċ ta’ mikroservizz, jew f’xi punt waslet għaliha permezz ta’ triq evoluzzjonarja – dan mhux importanti ħafna, fil-fatt. Int xerred il-proġett tagħna f'mikroservizzi separati, waqqaft orkestrazzjoni, ibbilanċjar tat-tagħbija, u skalar. U issa, b'kuxjenza safja, tixrob mojito f'hammock waqt habra effects flok tqajjem servers waqa'. Imma fl-azzjonijiet kollha trid tkun konsistenti. Ħafna drabi, l-applikazzjoni nnifisha biss—il-kodiċi—hija fil-kontejners. X'għandna minbarra l-kodiċi?

Dak id-dritt, data. Il-qalba ta' kwalunkwe proġett hija d-dejta tiegħu: din tista' tkun jew DBMS tipiku - MySQL, Postgre, MongoDB, jew ħażna użata għat-tfittxija (ElasticSearch), ħażna ta' valur ewlieni għall-caching - pereżempju, redis, eċċ. Bħalissa m'aħniex se nitkellmu dwar għażliet ta 'implimentazzjoni ta' backend mgħawweġ meta d-database tiġġarraf minħabba mistoqsijiet miktuba ħażin, u minflok nitkellmu dwar l-iżgurar tat-tolleranza tal-ħsarat ta 'din id-database stess taħt it-tagħbija tal-klijent. Wara kollox, meta nikkontelizzaw l-applikazzjoni tagħna u nħalluha tiskala liberament biex tipproċessa kwalunkwe numru ta 'talbiet deħlin, dan naturalment iżid it-tagħbija fuq id-database.

Fil-fatt, il-kanal għall-aċċess għad-database u s-server li fuqu taħdem isiru l-għajn tal-labra fil-backend sabiħ tagħna fil-kontejners. Fl-istess ħin, il-motiv ewlieni tal-virtwalizzazzjoni tal-kontejners huwa l-mobilità u l-flessibilità tal-istruttura, li tippermettilna norganizzaw id-distribuzzjoni tal-ogħla tagħbija madwar l-infrastruttura kollha disponibbli għalina bl-aktar mod effiċjenti possibbli. Jiġifieri, jekk ma nwettqux il-kontejners u ma nħaddmux l-elementi eżistenti kollha tas-sistema madwar il-cluster, qed nagħmlu żball serju ħafna.

Huwa ħafna aktar loġiku li tiġbor mhux biss l-applikazzjoni nnifisha, iżda wkoll is-servizzi responsabbli għall-ħażna tad-dejta. Permezz ta 'clustering u skjerament ta' servers tal-web li jaħdmu b'mod indipendenti u jqassmu t-tagħbija bejniethom f'k8s, diġà qed insolvu l-problema tas-sinkronizzazzjoni tad-dejta - l-istess kummenti fuq il-postijiet, jekk nieħdu xi pjattaforma tal-midja jew tal-blog bħala eżempju. Fi kwalunkwe każ, għandna rappreżentazzjoni intra-cluster, anki virtwali, tad-database bħala ExternalService. Il-mistoqsija hija li d-database nnifisha għadha mhix miġbura - is-servers tal-web skjerati fil-kubu jieħdu informazzjoni dwar bidliet mid-database tal-ġlieda statika tagħna, li ddur separatament.

Tħoss qabda? Aħna nużaw k8s jew Swarm biex iqassmu t-tagħbija u nevitaw il-ħabta tas-server tal-web prinċipali, iżda ma nagħmlux dan għad-database. Imma jekk id-database tiġġarraf, allura l-infrastruttura miġbura kollha tagħna ma tagħmilx sens - x'inhuma ta' ġid il-paġni tal-web vojta li jirritornaw żball fl-aċċess tad-database?

Huwa għalhekk li huwa meħtieġ li tiġbor mhux biss servers tal-web, kif isir normalment, iżda wkoll l-infrastruttura tad-database. B’hekk biss nistgħu niżguraw struttura li taħdem bis-sħiħ f’tim wieħed, iżda fl-istess ħin indipendenti minn xulxin. Barra minn hekk, anki jekk nofs il-backend tagħna "jiġġarraf" taħt tagħbija, il-bqija se jgħix, u s-sistema tas-sinkronizzazzjoni tad-databases ma 'xulxin fi ħdan il-cluster u l-abbiltà li tiskala bla tmiem u tiskjera clusters ġodda tgħin biex tintlaħaq malajr il-kapaċità meħtieġa - kieku biss kien hemm xkafef fiċ-ċentru tad-data.

Barra minn hekk, il-mudell tad-database mqassam fi gruppi jippermettilek li tieħu din id-database stess fejn tkun meħtieġa; Jekk qed nitkellmu dwar servizz globali, allura huwa pjuttost illoġiku li tixgħel cluster tal-web x'imkien fiż-żona ta 'San Francisco u fl-istess ħin tibgħat pakketti meta taċċessa database fir-reġjun ta' Moska u lura.

Ukoll, il-kontejners tad-database jippermettilek li tibni l-elementi kollha tas-sistema fl-istess livell ta 'estrazzjoni. Li, min-naħa tiegħu, jagħmilha possibbli li din is-sistema stess tiġi mmaniġġjata direttament mill-kodiċi, mill-iżviluppaturi, mingħajr l-involviment attiv tal-amministraturi. L-iżviluppaturi ħasbu li kien meħtieġ DBMS separat għas-sottoproġett il-ġdid - faċli! kiteb fajl yaml, tella' fil-cluster u lest.

U ovvjament, it-tħaddim intern huwa ssimplifikat ħafna. Għidli, kemm-il darba għalaqt għajnejk meta membru ġdid tat-tim poġġa idejh fid-database tal-ġlieda kontra x-xogħol? Liema, fil-fatt, hija l-unika waħda li għandek u qed iddur bħalissa? Naturalment, aħna lkoll adulti hawn, u x'imkien għandna backup frisk, u saħansitra aktar 'il bogħod - wara l-ixkaffa bil-ħjar tan-nanna u skis qodma - backup ieħor, forsi anke f'ħażna kiesħa, minħabba li l-uffiċċju tiegħek kien diġà fuq nar darba. Iżda l-istess, kull introduzzjoni ta 'membru tat-tim ġdid b'aċċess għall-infrastruttura tal-ġlieda kontra u, ovvjament, għad-database tal-ġlieda kontra hija barmil ta' validol għal kulħadd madwar. Ukoll, min jaf lilu, newbie, forsi huwa cross-handed? Huwa tal-biża, inti taqbel.

Il-kontenerizzazzjoni u, fil-fatt, it-topoloġija fiżika distribwita tad-database tal-proġett tiegħek tgħin biex tevita mumenti ta’ validazzjoni bħal dawn. M'għandekx fiduċja newbie? KOLLOX SEW! Ejja nagħtuh il-cluster tiegħu stess biex jaħdem miegħu u skonnettja d-database mir-raggruppamenti l-oħra - sinkronizzazzjoni biss permezz ta’ push manwali u rotazzjoni sinkronika ta’ żewġ ċwievet (waħda għall-mexxej tat-tim, l-oħra għall-amministratur). U kulħadd kuntent.

U issa wasal iż-żmien li tinbidel f'avversarji tal-clustering tad-database.

Naħa dlam

Filwaqt li nargumentaw għaliex ma jaqbilx li d-database nżommu f’kontejners u nkomplu nħaddmuha fuq server ċentrali wieħed, aħna mhux se nibqgħu għar-retorika tal-ortodossji u dikjarazzjonijiet bħal "in-nanniet mexxew databases fuq il-ħardwer, u aħna wkoll!" Minflok, ejja nippruvaw noħorġu b'sitwazzjoni li fiha l-kontejnerizzazzjoni fil-fatt tħallas dividendi tanġibbli.

Naqbel, il-proġetti li verament jeħtieġu bażi f'kontenitur jistgħu jingħaddu fuq is-swaba 'ta' id waħda billi mhux l-aħjar operatur tal-magni tat-tħin. Fil-biċċa l-kbira, anke l-użu ta 'k8s jew Docker Swarm innifsu huwa żejjed - ħafna drabi dawn l-għodod jiġu rrikorjati minħabba l-hype ġenerali tat-teknoloġiji u l-attitudnijiet ta' "li jista 'jkollu" fil-persuna tas-sessi biex timbotta kollox fil- sħab u kontenituri. Tajjeb, għax issa hija moda u kulħadd jagħmel dan.

F'mill-inqas nofs il-każijiet, l-użu ta 'Kubernetis jew sempliċement Docker fuq proġett huwa żejjed. Il-kwistjoni hija li mhux it-timijiet kollha jew il-kumpaniji ta 'esternalizzazzjoni mikrija biex iżommu l-infrastruttura tal-klijent huma konxji ta' dan. Huwa agħar meta l-kontenituri huma imposti, minħabba li tiswa ċertu ammont ta 'muniti lill-klijent.

B'mod ġenerali, hemm opinjoni li l-mafja tad-docker/cube qed tfarrak b'mod stupid lill-klijenti li jesternalizzaw dawn il-kwistjonijiet tal-infrastruttura. Wara kollox, sabiex naħdmu ma 'clusters, għandna bżonn inġiniera li huma kapaċi għal dan u ġeneralment jifhmu l-arkitettura tas-soluzzjoni implimentata. Darba diġà ddeskrivejna l-każ tagħna bil-pubblikazzjoni tar-Repubblika - hemmhekk tħarreġna lit-tim tal-klijent biex jaħdem fir-realtajiet ta 'Kubernetis, u kulħadd kien sodisfatt. U kien deċenti. Ħafna drabi, l-"implimentaturi" tal-k8s jieħdu ostaġġ tal-infrastruttura tal-klijent - għaliex issa huma biss jifhmu kif jaħdem kollox hemm; m'hemm l-ebda speċjalisti min-naħa tal-klijent.

Issa immaġina li b'dan il-mod aħna jesternalizzaw mhux biss il-parti tal-web server, iżda wkoll il-manutenzjoni tad-database. Aħna għidna li BD hija l-qalb, u t-telf tal-qalb huwa fatali għal kull organiżmu ħaj. Fil-qosor, il-prospetti mhumiex l-aħjar. Allura, minflok hype Kubernetis, ħafna proġetti sempliċement m'għandhomx jolqtu bit-tariffa normali għall-AWS, li se ssolvi l-problemi kollha bit-tagħbija fuq is-sit/proġett tagħhom. Iżda l-AWS m'għadhiex moda, u l-ispettakli jiswew aktar mill-flus - sfortunatament, fl-ambjent tal-IT ukoll.

KOLLOX SEW. Forsi l-proġett verament jeħtieġ raggruppament, imma jekk kollox huwa ċar b'applikazzjonijiet mingħajr stat, allura kif nistgħu norganizzaw konnettività tan-netwerk deċenti għal database raggruppata?

Jekk qed nitkellmu dwar soluzzjoni ta 'inġinerija bla xkiel, li hija t-tranżizzjoni għal k8s, allura l-uġigħ ta' ras ewlieni tagħna huwa r-replikazzjoni tad-dejta f'database raggruppata. Xi DBMSs inizjalment huma pjuttost leali għad-distribuzzjoni tad-dejta bejn l-istanzi individwali tagħhom. Ħafna oħrajn mhumiex daqshekk akkoljenti. U ħafna drabi l-argument ewlieni fl-għażla ta 'DBMS għall-proġett tagħna mhix il-kapaċità li tirreplika bi spejjeż minimi tar-riżorsi u l-inġinerija. Speċjalment jekk il-proġett ma kienx ippjanat inizjalment bħala mikroservizz, iżda sempliċement evolva f'din id-direzzjoni.

Aħna naħsbu li m'hemmx għalfejn nitkellmu dwar il-veloċità tad-drajvs tan-netwerk - huma bil-mod. Dawk. Għadna m'għandniex opportunità reali, jekk jiġri xi ħaġa, li nibdew mill-ġdid istanza ta 'DBMS x'imkien fejn hemm aktar, pereżempju, qawwa tal-proċessur jew RAM ħielsa. Aħna se nidħlu malajr ħafna fil-prestazzjoni tas-subsistema tad-disk virtwali. Għaldaqstant, id-DBMS għandu jkun imsammar mas-sett personali tiegħu stess ta 'magni li jinsabu fil-viċin. Jew huwa meħtieġ li b'xi mod tkessaħ separatament is-sinkronizzazzjoni tad-dejta mgħaġġla biżżejjed għar-riżervi suppost.

It-tkomplija tas-suġġett tas-sistemi tal-fajls virtwali: Il-Volumi Docker, sfortunatament, mhumiex mingħajr problemi. B'mod ġenerali, f'materja bħal ħażna ta 'dejta affidabbli fit-tul, nixtieq nagħmel tajjeb bl-aktar skemi teknikament sempliċi. U ż-żieda ta 'saff ta' astrazzjoni ġdid mill-FS tal-kontenitur għall-FS tal-ospitant ġenitur huwa riskju fih innifsu. Imma meta t-tħaddim tas-sistema ta 'appoġġ għall-kontejners tiltaqa' wkoll ma 'diffikultajiet fit-trażmissjoni tad-dejta bejn dawn is-saffi, allura huwa verament diżastru. Bħalissa, il-biċċa l-kbira tal-problemi magħrufa għall-umanità progressiva jidhru li ġew eradikati. Imma tifhem, iktar ma jkun kumpless il-mekkaniżmu, aktar faċli jinkiser.

Fid-dawl ta 'dawn l-"avventuri" kollha, huwa ħafna aktar profittabbli u aktar faċli li żżomm id-database f'post wieħed, u anki jekk għandek bżonn tikkontejnizza l-applikazzjoni, ħalliha taħdem waħedha u permezz tal-portal tad-distribuzzjoni tirċievi komunikazzjoni simultanja mal- database, li tinqara u tinkiteb darba biss u F'post wieħed. Dan l-approċċ inaqqas il-probabbiltà ta' żbalji u desinkronizzazzjoni għall-minimu.

Għal xiex qed inwasslu? Barra minn hekk, il-kontenerizzazzjoni tad-database hija xierqa fejn hemm bżonn reali għaliha. Ma tistax timla database ta' app sħiħa u ddawwarha bħallikieku kellek żewġ tużżani mikroservizzi - ma jaħdimx hekk. U dan għandu jinftiehem b'mod ċar.

Minflok output

Jekk qed tistenna konklużjoni ċara "biex virtwalizza d-database jew le," allura aħna se niddiżappuntak: mhux se jkun hawn. Għax meta tinħoloq xi soluzzjoni infrastrutturali, wieħed irid ikun iggwidat mhux mill-moda u l-progress, iżda, l-ewwel nett, mis-sens komun.

Hemm proġetti li għalihom il-prinċipji u l-għodod li jiġu ma 'Kubernetis jaqblu perfettament, u fi proġetti bħal dawn hemm paċi għall-inqas fiż-żona backend. U hemm proġetti li m'għandhomx bżonn kontejners, iżda infrastruttura normali tas-server, minħabba li huma fundamentalment ma jistgħux jiskalaw mill-ġdid għall-mudell ta 'cluster ta' mikroservizzi, minħabba li se jaqgħu.

Sors: www.habr.com

Żid kumment