Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Hello, dadka deggan Khabrovsk. Fasalada kooxda koowaad ee koorsada ayaa bilaabanaya maanta "PostgreSQL". Marka la eego, waxaan jeclaan lahayn inaan kuu sheegno sida uu u dhacay webinar-ka furan ee koorsadan.

Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Π’ casharka furan ee xiga Waxaan ka hadalnay caqabadaha SQL databases ay la kulmaan xilligii daruuraha iyo Kubernetes. Isla mar ahaantaana, waxaanu eegnay sida xogaha SQL ay ula qabsadaan una beddelaan saamaynta caqabadahan.

Webinar ayaa la qabtay Valery Bezrukov, Google Cloud Practice Delivery Manager at EPAM Systems.

Marka dhirtu yaraayeen...

Marka hore, aan xasuusano sida doorashada DBMS ay ku bilaabatay dhamaadkii qarnigii la soo dhaafay. Si kastaba ha ahaatee, tani ma noqon doonto mid adag, sababtoo ah doorashada DBMS waagaas way bilaabatay oo dhammaatay Oracle.

Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Dhammaadkii 90-meeyadii iyo horraantii 2-meeyadii, ma jirin wax door ah oo la kala dooran karo marka ay timaado xog-ururinta la miisaami karo. Haa, waxaa jiray IBM DBXNUMX, Sybase iyo xog-ururin kale oo yimid oo baxay, laakiin guud ahaan aad loogama dareemin asalka Oracle. Sidaa awgeed, xirfadaha injineerada waayadaas waxay si uun ugu xidhnayd doorashada keliya ee jirtay.

Oracle DBA waxay ahayd inay awooddo:

  • ku rakib Oracle Server ka xirmada qaybinta;
  • habee Oracle Server:

  • init.ora;
  • dhegeyste.ora;

-abuur:

  • meelaha miiska;
  • nidaamyada;
  • isticmaalayaasha;

- samee gurmad iyo soo celin;
- la socoshada;
- la tacaal codsiyada hoose.

Isla mar ahaantaana, ma jirin shuruud gaar ah oo ka timid Oracle DBA:

  • awood u leh inuu doorto DBMS-ga ugu fiican ama tignoolajiyada kale ee kaydinta iyo habaynta xogta;
  • Bixi helitaan sare iyo miisaan toosan (tani had iyo jeer ma ahayn arrin DBA ah);
  • aqoonta wanaagsan ee aagga maadada, kaabayaasha, naqshadaha codsiga, OS;
  • rari oo deji xogta, u guuri xogta u dhaxaysa DBMS-yada kala duwan.

Guud ahaan, haddii aan ka hadalno doorashada maalmahaas, waxay u egtahay doorashada dukaanka Soofiyeedka ee 80-meeyadii:

Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Waqtigeenna

Intaa ka dib, dabcan, dhirtu way kortay, dunidu way is beddeshay, waxayna noqotay sida tan:

Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Suuqa DBMS sidoo kale wuu isbedelay, sida si cad looga arki karo warbixintii ugu dambeysay ee Gartner:

Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Oo halkan waa in la ogaadaa in daruuraha, kuwaas oo caan ku ah ay sii kordhayaan, ay qabsadeen niche. Haddii aan akhrino isla warbixinta Gartner, waxaan arki doonaa gabagabada soo socota:

  1. Macaamiil badan ayaa ku socda dariiqa u wareejinta codsiyada daruuraha.
  2. Farsamooyin cusub ayaa marka hore ka muuqda daruuraha mana aha xaqiiqo ah in ay weligood u guuri doonaan kaabayaasha aan daruuriga ahayn.
  3. Qaabka qiimaha lacag bixinta marka aad tagto ayaa noqday wax caadi ah. Qof kastaa wuxuu rabaa in uu bixiyo oo kaliya waxa ay isticmaalaan, tani ma aha xitaa isbeddel, laakiin si fudud bayaanada dhabta ah.

Maxaa hadda?

Maanta dhammaanteen waxaan ku jirnaa daruur. Su'aalaha inagu soo dhacayana waa su'aalo doorasho. Waana mid aad u weyn, xitaa haddii aan ka hadalno kaliya doorashada tignoolajiyada DBMS ee qaabka goobta. Waxaan sidoo kale leenahay adeegyo la maareeyey iyo SaaS. Markaa, doorashadu waxay noqotaa mid aad u adag sannad kasta.

Waxa weheliya su'aalaha doorashada, waxa kale oo jira arrimaha xaddidaya:

  • qiimaha. Tignoolajiyada badan ayaa weli ku kacaya lacag;
  • xirfado. Haddii aan ka hadleyno software bilaash ah, markaa su'aasha xirfadaha ayaa soo baxaysa, maadaama software bilaash ah uu u baahan yahay karti ku filan oo ka yimaada dadka geynaya oo shaqeeya;
  • shaqaynaysa. Ma aha dhammaan adeegyada laga heli karo daruuraha oo la dhisay, dheh, xitaa isla Postgres, waxay leeyihiin astaamo la mid ah kuwa Postgres On-premises. Tani waa arrin lagama maarmaan ah oo u baahan in la ogaado oo la fahmo. Waxaa intaa dheer, qodobkani wuxuu noqonayaa mid ka muhiimsan aqoonta qaar ka mid ah awoodaha qarsoon ee hal DBMS.

Maxaa laga filayaa DA/DE hadda:

  • fahamka wanaagsan ee aagga maadada iyo qaab-dhismeedka codsiga;
  • awoodda si sax ah loo doorto tignoolajiyada DBMS ee ku habboon, iyada oo la tixgelinayo hawsha gacanta lagu hayo;
  • awoodda lagu dooranayo habka ugu wanaagsan ee lagu hirgelinayo tignoolajiyada la doortay ee macnaha xaddidan ee jira;
  • awoodda lagu sameeyo wareejinta xogta iyo socdaalka;
  • awood uu ku fuliyo oo uu ku shaqeeyo xalal la doortay.

Tusaalaha hoose ku salaysan GCP wuxuu muujiyaa sida xulashada hal ama tignoolajiyada kale ee ku shaqeynta xogta ay u shaqeyso iyadoo ku xiran qaab dhismeedkeeda:

Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Fadlan ogow in PostgreSQL aysan ku jirin qorshaha, tanina waa sababta oo ah waxay ku hoos qarsoon tahay ereybixinta. Cloud SQL. Oo markaan gaadhno Cloud SQL, waxaan u baahanahay inaan sameyno doorasho mar kale:

Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Waa in la ogaadaa in doorashadani aysan mar walba caddayn, sidaas darteed horumarinta codsiyada waxaa badanaa hagaya dareenka.

Wadarta:

  1. Inta aad sii socoto, su'aasha doorashadu waxay noqonaysaa mid aad u dhib badan. Xitaa haddii aad eegto kaliya GCP, adeegyada la maareeyay iyo SaaS, ka dibna qaar ka mid ah sheegidda RDBMS waxay u muuqataa kaliya tallaabada 4-aad (oo waxaa ku dhow Spanner). Intaa waxaa dheer, doorashada PostgreSQL waxay ka muuqataa tallaabada 5-aad, oo ku xigta waxaa jira MySQL iyo SQL Server, taas oo ah wax walba waa badan yihiin, laakiin waa inaad doorataa.
  2. Waa in aynaan iloobin xannibaadaha ka dhanka ah asalka jirrabaadda. Asal ahaan qof kastaa wuxuu rabaa Spanner, laakiin waa qaali. Natiijo ahaan, codsiga caadiga ah wuxuu u eg yahay sidan: "Fadlan naga dhig Spanner laakiin qiimaha Cloud SQL, waxaad tahay xirfadlayaal!"

Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Maxaan sameynaa?

Anagoo aan sheegan in aan nahay runta ugu dambeysa, aynu nidhaahno sidan soo socota:

Waxaan u baahanahay inaan bedelno habka aan wax u baranno:

  • wax faa'iido ah ma leh in la baro sidii DBA-yada hore loo bari jiray;
  • aqoonta hal badeeco hadda kuma filna;
  • laakiin garashada daraasiin heerka mid ah waa wax aan macquul aheyn.

Waxaad u baahan tahay inaad ogaato ma aha oo kaliya inta alaabtu tahay, laakiin:

  • isticmaalka kiis codsigiisa;
  • hababka kala duwan ee geynta;
  • faa'iidooyinka iyo khasaaraha hab kasta;
  • Alaabooyin la mid ah iyo kuwa kale si loo sameeyo doorasho xog ogaal ah oo wanaagsan oo aan had iyo jeer doorbidin badeecad la yaqaan.

Waxaad sidoo kale u baahan tahay inaad awood u yeelato inaad u haajirto xogta oo aad fahamto mabaadi'da aasaasiga ah ee la-qabsashada ETL.

Kiis dhab ah

Waqtiyadii la soo dhaafay, waxay ahayd lagama maarmaan in la sameeyo dhabarka codsiga mobilada. Markii la bilaabay shaqada, dhabarka hore ayaa loo sameeyay oo diyaar u ahaa hirgelinta, kooxda horumarinta waxay ku qaadatay ilaa laba sano mashruucan. Waxaa la dejiyay hawlaha soo socda:

  • dhis CI/CD;
  • dib u eegista dhismaha;
  • kulligood hawl gal.

Codsiga laftiisu wuxuu ahaa adeeg-yaro, Python/Django code-na waxa laga soo saaray xoq oo si toos ah GCP. Dhanka dhagaystayaasha la beegsanayo, waxaa loo malaynayay inay jiri doonaan laba gobol - US iyo EU, taraafikadana waxaa loo qaybiyay dheellitirka Load Global. Dhammaan culeysyada shaqada iyo xisaabinta culeyska shaqada waxay ku socdeen Google Kubernetes Engine.

Xagga xogta, waxaa jiray 3 qaab:

  • Kaydinta daruuraha;
  • Kaydka Xogta;
  • Cloud SQL (PostgreSQL).

Sida looga badbaado xogta SQL qarniga 21aad: daruuraha, Kubernetes iyo PostgreSQL multimaster

Waxaa laga yaabaa in la is weydiiyo sababta Cloud SQL loo doortay? Si aad runta u sheegto, su'aashan oo kale waxay keentay nooc ka mid ah hakad xun sannadihii la soo dhaafay - waxaa jira dareen ah in dadku ay ka xishoodeen xog-ururinta xiriirka, laakiin si kastaba ha ahaatee waxay sii wadaan inay si firfircoon u isticmaalaan ;-).

Xagga kiiskeena, Cloud SQL waxaa loo doortay sababaha soo socda awgood:

  1. Sida aan soo sheegnay, codsiga waxaa la sameeyay iyadoo la adeegsanayo Django, waxayna leedahay qaab lagu sawiro xogta joogtada ah ee xogta SQL ilaa walxaha Python (Django ORM).
  2. Qaab dhismeedka laftiisa ayaa taageeray liis cadaalad ah oo kooban oo DBMS-yada:

  • PostgreSQL;
  • MariaDB;
  • MySQL;
  • afafka;
  • SQLite

Sidaa darteed, PostgreSQL ayaa liiskan laga doortay si dareen leh (si fiican, ma aha Oracle in la doorto, runtii).

Maxaa ka maqnaa:

  • Codsiga waxaa la geeyay 2 gobol oo keliya, mid 3aadna wuxuu ka soo muuqday qorshayaasha (Aasiya);
  • Xogtu waxay ku taallaa gobolka Waqooyiga Ameerika (Iowa);
  • Dhanka macmiisha waxaa jiray walaac ku saabsan suurtagalnimada daahitaanka helitaanka ka yimid Yurub iyo Aasiya iyo carqaladayn adeega haddii ay dhacdo wakhtiga dhimista ee DBMS.

In kasta oo xaqiiqda ah in Django lafteedu ay la shaqeyn karto dhowr kayd oo isku mid ah oo isku mid ah oo u qaybinaysa akhrinta iyo qorista, ma jirin wax qoraal ah oo ku saabsan codsiga (in ka badan 90% waa akhrin). Iyo guud ahaan, iyo guud ahaan, haddii ay suurtagal tahay in la sameeyo akhrin-koobida saldhigga ugu weyn ee Yurub iyo AasiyaTani waxay noqon doontaa xal dhexdhexaad ah. Hagaag, maxaa ka dhib badan?

Dhibaatadu waxay ahayd in macmiilku aanu rabin inuu ka tago isticmaalka adeegyada la maareeyay iyo Cloud SQL. Awoodaha Cloud SQL ayaa hadda xaddidan. Cloud SQL waxay taageertaa helitaan Sare (HA) iyo Read Replica (RR), laakiin isla RR ayaa kaliya lagu taageeraa hal gobol. Markaad ka samaysay kaydka xogta gobolka Maraykanka, ma samayn kartid nuqul ka akhriso gobolka Yurub adoo isticmaalaya Cloud SQL, in kasta oo Postgres lafteedu aanay kaa hor istaagin inaad tan samayso. Xidhiidhka shaqaalaha Google meelna ma keenin oo wuxuu ku dhamaaday balamo qaabkii "waan ognahay dhibka oo waanu ka shaqaynaynaa, maalin uun arinta waa la xalin doonaa."

Haddii aan si kooban u taxno awoodaha Cloud SQL, waxay u ekaan doontaa sidan:

1. Helitaanka sare (HA):

  • gudaha hal gobol;
  • iyada oo loo marayo ku celcelinta diskka;
  • Matoorada PostgreSQL lama isticmaalo;
  • xakamaynta tooska ah iyo gacanta ee suurtogalka ah - guuldarreysiga/dib-u-celinta;
  • Markaad bedesho, DBMS lama heli karo dhowr daqiiqo.

2. Akhri nuqul ka mid ah (RR):

  • gudaha hal gobol;
  • heegan kulul;
  • Ku celcelinta qulqulka PostgreSQL

Intaa waxaa dheer, sida caadada ah, markaad dooranayso tignoolajiyada waxaad had iyo jeer la kulantaa qaar xaddidid:

  • macmiilku ma rabin inuu abuuro hay'ado oo isticmaalo IaaS, marka laga reebo GKE;
  • Macmiilku ma jeclayn inuu geeyo PostgreSQL/MySQL adeega iskaa ah;
  • Hagaag, guud ahaan, Google Spanner wuxuu noqon lahaa mid ku habboon haddii aysan ahayn qiimaheeda, si kastaba ha noqotee, Django ORM lama shaqeyn karo, laakiin waa wax wanaagsan.

Iyadoo la tixgelinayo xaaladda, macmiilku wuxuu helay su'aal dabagal ah: "Ma samayn kartaa wax la mid ah si ay u noqoto Google Spanner, laakiin sidoo kale waxay la shaqeysaa Django ORM?"

Xulashada Xalka No. 0

Waxa ugu horreeya ee maskaxda ku soo dhaca:

  • joog gudaha CloudSQL;
  • ma jiri doono isku-dhaf ku dhisan oo u dhexeeya gobollada nooc kastaba ha ahaatee;
  • isku day inaad ku lifaaqdo nuqul ka mid ah Cloud SQL ee jira PostgreSQL;
  • ku bilow tusaale PostgreSQL meel iyo si uun, laakiin ugu yaraan ha taaban sayid.

Hoogay, waxaa soo baxday in tan aan la samayn karin, sababtoo ah ma jirto marin loo heli karo martida loo yahay (waxay ku jirtaa mashruuc kala duwan oo dhan) - pg_hba iyo wixii la mid ah, sidoo kale ma jiraan wax marin ah oo hoos yimaada superuser.

Xulashada Xalka No. 1

Dib u milicsi dheerad ah ka dib, xisaabtana ku darsaday duruufihii hore, tareenkii fikirka ayaa xoogaa isbedelay:

  • Waxaan wali isku dayeynaa inaan ku sii jirno CloudSQL, laakiin waxaan u wareegaynaa MySQL, sababtoo ah Cloud SQL ee MySQL waxay leedahay sayid dibadeed, kaas oo:

- waa wakiil MySQL dibadda ah;
- waxay u egtahay tusaale MySQL ah;
- loo ikhtiraacay xogta ka guurista daruuraha kale ama goobta.

Maadaama dejinta MySQL ku celcelinta uma baahna gelitaanka martida loo yahay, mabda 'ahaan wax walba way shaqeeyeen, laakiin waxay ahayd mid aan degganayn oo aan ku habboonayn. Oo markii aan sii soconnay, waxay noqotay mid gebi ahaanba cabsi leh, sababtoo ah waxaan geynay dhismaha oo dhan oo leh terraform, waxaana si lama filaan ah u soo baxday in sayidkii dibadda uusan taageerin terraform. Haa, Google wuxuu leeyahay CLI, laakiin sabab qaar ka mid ah wax walba ayaa halkan ka shaqeeyay had iyo jeer - mar waa la abuuray, marna lama abuurin. Malaha sababta oo ah CLI waxaa loo alifay haajiridda xogta dibadda, ee looma samayn nuqullo.

Dhab ahaantii, wakhtigan waxaa caddaatay in Cloud SQL aanu ku habboonayn gabi ahaanba. Sida ay yiraahdaan, waxaan sameynay wax walba oo aan kari karno.

Xulashada Xalka No. 2

Maaddaama aysan suurtagal ahayn in lagu sii jiro qaab-dhismeedka Cloud SQL, waxaan isku daynay inaan samayno shuruudo xal tanaasul ah. Shuruudaha ayaa noqday kuwan soo socda:

  • Ka shaqaynta Kubernetes, isticmaalka ugu badan ee agabka iyo awoodaha Kubernetes (DCS, ...) iyo GCP (LB, ...);
  • ballast la'aanta ka timaadda waxyaabo aan loo baahnayn oo daruur ah sida wakiilka HA;
  • Awoodda lagu socodsiiyo PostgreSQL ama MySQL ee gobolka ugu weyn ee HA; gobollada kale - HA laga bilaabo RR ee gobolka ugu weyn oo lagu daray nuqulkeeda (halaynta);
  • multi master (Ma rabin inaan la xiriiro isaga, laakiin aad muhiim uma ahayn)

.
Natiijadii dalabaadkaas, pDBMS ku habboon iyo xulashooyinka xidhitaannada:

  • MySQL Galera;
  • CockroachDB;
  • Qalabka PostgreSQL

:
- pgpool-II;
- Batrooni.

MySQL Galera

Tignoolajiyada MySQL Galera waxaa soo saaray Codership waana plugin u ah InnoDB. Astaamaha:

  • sayid badan;
  • ku celcelinta isku midka ah;
  • wax ka akhrida meel kasta;
  • ku duubida meel kasta;
  • ku dhisan habka HA;
  • Waxaa jira shaxda Helm ee Bitnami.

BaranbaroDB

Marka loo eego sharaxaadda, shaygu gabi ahaanba waa bam waana mashruuc il furan oo ku qoran Go. Ka qaybqaataha ugu weyn waa Shaybaarada Baranbarrada (waxaa aasaasay dad ka socda Google). DBMS-gan xidhiidhka la leh ayaa markii hore loo qaabeeyey in la qaybiyo (iyada oo si toos ah sanduuqa ka soo baxaysa) iyo u dulqaadashada cilladaha. Qoraayaasheeda ka socda shirkadu waxay qeexeen hadafka "isku darka hodantinimada shaqada SQL iyo helitaanka toosan ee loo yaqaan xalalka NoSQL."

Gunnada wanaagsani waa taageerada hab-maamuuska xidhiidhka ka dambeeya.

Pgpool

Kani waa ku-darka PostgreSQL, dhab ahaantii, waa qayb cusub oo la wareegaysa dhammaan isku xidhka oo ka baaraandegto. Waxay leedahay xisaabiye u gaar ah iyo baarser, oo shati ku leh shatiga BSD. Waxay bixisaa fursado badan, laakiin waxay u muuqataa xoogaa cabsi leh, sababtoo ah joogitaanka hay'ad cusub waxay noqon kartaa isha qaar ka mid ah tacaburrada dheeraadka ah.

Batrooni

Tani waa waxa ugu dambeeya ee ay indhahaygu ku dhacaan, iyo, sidii ay noqotay, maahan wax aan micne lahayn. Patroni waa utility il furan, kaas oo asal ahaan ah Python daemon kaas oo kuu oggolaanaya inaad si toos ah u ilaaliso kooxaha PostgreSQL oo leh noocyo kala duwan oo ku celcelin iyo beddel toos ah. Shayga ayaa noqday mid aad u xiiso badan, maadaama ay si fiican u dhexgalaan cuber-ka oo aysan soo bandhigin wax cusub oo cusub.

Maxaad dooratay ugu dambeyntii?

Doorashadu ma fududayn:

  1. BaranbaroDB - dab, laakiin madow;
  2. MySQL Galera - sidoo kale ma xuma, waxaa loo isticmaalaa meelo badan, laakiin MySQL;
  3. Pgpool - waxyaabo badan oo aan loo baahnayn, sidaas darteed isdhexgalka daruuraha iyo K8s;
  4. Batrooni - is dhexgalka ugu fiican ee K8s, ma jiraan hay'ado aan loo baahnayn, waxay si fiican ula midoobaan GCP LB.

Sidaa darteed, doorashadu waxay ku dhacday Patroni.

natiijooyinka

Waa waqtigii si kooban loo soo koobi lahaa. Haa, adduunka kaabayaasha IT si weyn ayaa isbeddelay, tanina waa bilow. Oo haddii ka hor daruuraha ay ahaayeen nooc kale oo kaabayaal ah, hadda wax walba waa ka duwan yihiin. Waxaa intaa dheer, hal-abuurka daruuraha ayaa si joogto ah u muuqda, waxay soo muuqan doonaan, laga yaabee, waxay ka muuqan doonaan daruuraha oo kaliya, ka dibna, dadaalka bilawga ah, ayaa loo wareejin doonaa dhismaha.

Dhanka SQL, SQL wuu noolaan doonaa. Tani waxay ka dhigan tahay inaad u baahan tahay inaad ogaato PostgreSQL iyo MySQL oo aad awoodid inaad la shaqeyso, laakiin xitaa ka sii muhiimsan waa inaad awood u leedahay inaad si sax ah u isticmaasho.

Source: www.habr.com

Add a comment