Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Molweni, abahlali baseKhabrovsk. Iiklasi ezikwiqela lokuqala lekhosi ziqala namhlanje "I-PostgreSQL". Ngokuphathelele kulo mba, singathanda ukukuxelela malunga nendlela i-webinar evulekileyo kule khosi yenzeke ngayo.

Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Π’ isifundo esivulekileyo esilandelayo sathetha ngemingeni ye-SQL yogcino-lwazi ejongene nayo ngexesha lamafu kunye ne-Kubernetes. Kwangaxeshanye, sijonge indlela ii-database ze-SQL ezizilungelelanisa ngayo kwaye ziguquke phantsi kweempembelelo zale mingeni.

I-webinar yabanjwa Valery Bezrukov, Google Cloud Practice Delivery Manager kwi-EPAM Systems.

Xa imithi yayimincinci...

Okokuqala, masikhumbule indlela ukhetho lwe-DBMS lwaqala ngayo ekupheleni kwekhulu leminyaka edlulileyo. Nangona kunjalo, oku akuyi kuba nzima, kuba ukhetho lwe-DBMS ngaloo mihla lwaqala kwaye lwaphela Oracle.

Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Ngasekupheleni kweminyaka yoo-90s nasekuqaleni koo-2, kwakungekho ndlela yokukhetha xa kufikwa kugcino-lwazi olunokwehla kwimizi-mveliso. Ewe, bekukho i-IBM DBXNUMX, iSybase kunye nolunye ugcino lwedatha oluye lweza kwaye lwahamba, kodwa ngokubanzi bebengabonakali kangako ngokuchasene nemvelaphi ye-Oracle. Ngako oko, izakhono zeenjineli zaloo maxesha ngandlel 'ithile zazibotshelelwe kukhetho olwalukho.

I-Oracle DBA kwafuneka ikwazi uku:

  • faka i-Oracle Server ukusuka kwikhithi yokuhambisa;
  • qwalasela iseva ye-Oracle:

  • init.ora;
  • umphulaphuli.ora;

-dala:

  • izithuba zeetafile;
  • amacebo;
  • abasebenzisi;

- yenza i-backup kwaye ubuyisele;
β€” ukwenza uhlolo;
- jongana nezicelo ezingafanelekanga.

Kwangaxeshanye, kwakungekho mfuneko ikhethekileyo evela kwi-Oracle DBA:

  • ube nako ukukhetha eyona DBMS ilungileyo okanye obunye ubuchwephesha bokugcina nokucubungula idatha;
  • bonelela ngokufumaneka okuphezulu kunye nokulinganisa okuthe tye (oku ibingasoloko ingumba we-DBA);
  • ulwazi olulungileyo lwendawo yesifundo, iziseko zophuhliso, ulwakhiwo lwesicelo, i-OS;
  • layisha kwaye ukhuphe idatha, fuduka idatha phakathi kwee-DBMS ezahlukeneyo.

Ngokubanzi, ukuba sithetha ngokhetho ngaloo mihla, kufana nokukhetha kwivenkile yaseSoviet ngasekupheleni kweminyaka engama-80:

Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Lethu ixesha

Ukususela ngoko, ngokuqinisekileyo, imithi ikhulile, ihlabathi litshintshile, kwaye yaba yinto enje:

Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Imarike yeDBMS nayo itshintshile, njengoko kunokubonwa ngokucacileyo kwingxelo yamva nje evela kuGartner:

Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Kwaye apha kufuneka kuqatshelwe ukuba amafu, ukuthandwa kwawo kukhula, ahlala kwi-niche yawo. Ukuba sifunda ingxelo efanayo yeGartner, siya kubona ezi zigqibo zilandelayo:

  1. Abathengi abaninzi basendleleni yokuhambisa izicelo kwilifu.
  2. Itekhnoloji entsha iqala ukuvela efini kwaye ayisiyonyani ukuba bayakuze bafudukele kwiziseko ezingezizo ilifu.
  3. Imodeli yokuhlawula-njengoko-uhambayo sele iyinto eqhelekileyo. Wonke umntu ufuna ukuhlawula kuphela oko bakusebenzisayo, kwaye oku ayisiyonto isiqhelo, kodwa yingxelo nje yenyani.

Yintoni ngoku?

Namhlanje sonke sisefini. Kwaye imibuzo ephakamayo kuthi yimibuzo yokuzikhethela. Kwaye inkulu, nokuba sithetha kuphela malunga nokukhethwa kweetekhnoloji zeDBMS kwifomathi ye-On-indawo. Siphinde silawule iinkonzo kunye ne-SaaS. Ngaloo ndlela, ukhetho luba nzima ngakumbi ngonyaka.

Kunye nemibuzo yokhetho, kukho kwakhona imiba ethintelayo:

  • ixabiso. Iiteknoloji ezininzi zisadla imali;
  • izakhono. Ukuba sithetha nge-software yamahhala, ngoko umbuzo wezakhono uvela, ekubeni isofthiwe yamahhala idinga ubuchule obaneleyo kubantu abayisebenzisayo nabayisebenzisayo;
  • iyasebenza. Ayizizo zonke iinkonzo ezikhoyo kwilifu kwaye zakhiwe, zitsho, nakwiPostgres ezifanayo, zineempawu ezifanayo nePostgres Kwindawo. Lo ngumba obalulekileyo ekufuneka waziwe kwaye uqondwe. Ngaphezu koko, le nto ibaluleke ngakumbi kunolwazi lwezakhono ezifihlakeleyo ze-DBMS enye.

Yintoni elindelekileyo kwi-DA/DE ngoku:

  • ukuqonda kakuhle ummandla wesifundo kunye noyilo lwesicelo;
  • ukukwazi ukukhetha ngokuchanekileyo iteknoloji yeDBMS efanelekileyo, ngokuqwalasela umsebenzi okhoyo;
  • ukukwazi ukukhetha indlela efanelekileyo yokuphumeza iteknoloji ekhethiweyo kumxholo wemida ekhoyo;
  • ukukwazi ukwenza ukudluliselwa kwedatha kunye nokufuduka;
  • ukukwazi ukuphumeza nokusebenza izisombululo ezikhethiweyo.

Ngezantsi umzekelo ngokusekelwe kwi-GCP ibonisa indlela ukhetho lwetekhnoloji enye okanye enye yokusebenza ngedatha esebenza ngokuxhomekeke kubume bayo:

Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Nceda uqaphele ukuba i-PostgreSQL ayibandakanywanga kwi-schema, kwaye oku kungenxa yokuba ifihliwe phantsi kwesigama I-SQL yamafu. Kwaye xa sifika kwi-Cloud SQL, kufuneka senze ukhetho kwakhona:

Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Kufuneka kuqatshelwe ukuba olu khetho aluhlali lucacile, ngoko ke abaphuhlisi besicelo bahlala bekhokelwa yi-intuition.

Iyonke:

  1. Okukhona usiya phambili, kokukhona ucinezela ngakumbi umbuzo wokhetho. Kwaye nokuba ukhangele kuphela kwi-GCP, iinkonzo ezilawulwayo kunye ne-SaaS, ke ukukhankanywa kwe-RDBMS kubonakala kuphela kwinqanaba le-4 (kwaye i-Spanner ikufuphi). Ngaphezu koko, ukhetho lwePostgreSQL luvela kwisinyathelo sesi-5, kwaye ecaleni kwayo kukho i-MySQL kunye ne-SQL Server, oko kukuthi. kukho into eninzi, kodwa kufuneka ukhethe.
  2. Asimele silibale malunga nezithintelo kwimvelaphi yezilingo. Ngokusisiseko wonke umntu ufuna iSpanner, kodwa iyabiza. Ngenxa yoko, isicelo esiqhelekileyo sijongeka ngolu hlobo: "Nceda usenze iSpanner kodwa ngexabiso le-Cloud SQL, niziingcali!"

Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Ndingenza ntoni?

Ngaphandle kokubanga ukuba yeyona nyani igqibeleleyo, masithi oku kulandelayo:

Kufuneka sitshintshe indlela yethu yokufunda:

  • akukho sizathu sokufundisa indlela ii-DBAs ezazifundiswa ngayo ngaphambili;
  • ulwazi ngemveliso enye alusaneli;
  • kodwa ukwazi ezininzi kwinqanaba elinye akunakwenzeka.

Akufunekanga wazi kuphela kwaye hayi ukuba yimalini imveliso, kodwa:

  • ukusetyenziswa kwimeko yokusetyenziswa kwayo;
  • iindlela ezahlukeneyo zokusasazwa;
  • izinto eziluncedo kunye nezingeloncedo kwindlela nganye;
  • iimveliso ezifanayo kunye nezizezinye ukwenza ukhetho olunolwazi nolufanelekileyo kwaye ungasoloko uxhasa imveliso eqhelekileyo.

Kufuneka kwakhona ukwazi ukufuduka idatha kwaye uqonde imigaqo esisiseko yokudibanisa ne-ETL.

Ityala lokwenyani

Kwixesha elidlulileyo, bekuyimfuneko ukwenza i-backend yesicelo seselula. Ngethuba lokuqalisa umsebenzi kulo, i-backend yayisele iphuhlisiwe kwaye ilungele ukuphunyezwa, kwaye iqela lophuhliso lichithe malunga neminyaka emibini kule projekthi. Kwasetwa le misebenzi ilandelayo:

  • ukwakha i-CI/CD;
  • ukuphonononga ulwakhiwo;
  • sebenzisa yonke into.

Isicelo ngokwaso sasiyi-microservices, kwaye ikhowudi yePython / Django yaphuhliswa ukusuka ekuqaleni kwaye ngokuthe ngqo kwi-GCP. Ngokubhekiselele kubaphulaphuli ekujoliswe kubo, kwakucingelwa ukuba kuya kubakho imimandla emibini - i-US kunye ne-EU, kwaye i-traffic yasasazwa nge-balancer ye-Global Load. Yonke iMisebenzi kunye nomsebenzi wokubala usebenze kwi-Google Kubernetes Engine.

Ngokuphathelele idatha, kwakukho izakhiwo ezi-3:

  • Ugcino lwamafu;
  • Uvimba weenkcukacha;
  • Cloud SQL (PostgreSQL).

Usinda njani kwisiseko sedatha ye-SQL kwinkulungwane yama-21: amafu, i-Kubernetes kunye ne-PostgreSQL multimaster

Omnye unokuzibuza ukuba kutheni kukhethwe i-Cloud SQL? Ukuthetha inyaniso, umbuzo onjalo uye wabangela uhlobo oluthile lokuphumla kwiminyaka yamuva nje - kukho imvakalelo yokuba abantu baye baba neentloni malunga nokugcinwa kwedatha yobudlelwane, kodwa nangona kunjalo baqhubeka besebenzisa ngokusebenzayo ;-).

Ngokuphathelele imeko yethu, i-Cloud SQL yakhethwa ngezi zizathu zilandelayo:

  1. Njengoko kukhankanyiwe, isicelo saphuhliswa kusetyenziswa i-Django, kwaye inemodeli yokwenza imephu yedatha eqhubekayo ukusuka kwisiseko sedatha ye-SQL ukuya kwizinto zePython (i-Django ORM).
  2. Isakhelo ngokwaso sixhase uluhlu olunesiphelo lweeDBMS:

  • iPostgreSQL;
  • UMariaDB;
  • MySQL;
  • Umlomo;
  • I-SQLite.

Ngokufanelekileyo, i-PostgreSQL yakhethwa kolu luhlu kunokuba i-intuitively (kakuhle, ayisiyiyo i-Oracle yokukhetha, ngokwenene).

Yintoni ebingekho:

  • isicelo sisetyenziswe kuphela kwimimandla ye-2, kwaye enye ye-3 ibonakala kwiiplani (e-Asia);
  • Uvimba weenkcukacha wawukwingingqi yaseMntla Melika (Iowa);
  • kwicala lomthengi kwakukho iinkxalabo malunga nokuba kunokwenzeka ufikelelo ulibaziseko ukusuka eYurophu naseAsia kunye iziphazamiso enkonzweni kwimeko yokuphumla kwe-DBMS.

Ngaphandle kwento yokuba i-Django ngokwayo inokusebenza kunye nedatha eninzi ngokuhambelanayo kwaye ihlukanise ngokufunda nokubhala, kwakungekho nto ingako yokubhala kwisicelo (ngaphezulu kwe-90% iyafundwa). Kwaye ngokubanzi, kwaye ngokubanzi, ukuba kwakunokwenzeka ukwenza funda-ikopi yesiseko esiphambili eYurophu naseAsia, oku kuya kuba sisisombululo sokulalanisa. Kulungile, yintoni enzima ngayo?

Ubunzima kukuba umthengi akazange afune ukuyeka ukusebenzisa iinkonzo ezilawulwayo kunye ne-Cloud SQL. Kwaye amandla e-Cloud SQL okwangoku alinganiselwe. Cloud SQL ixhasa ukufumaneka okuPhezulu (HA) kunye neReplica yokuFunda (RR), kodwa iRR efanayo ixhaswa kuphela kummandla omnye. Emva kokwenza isiseko sedatha kummandla waseMelika, awukwazi ukwenza ikopi yokufunda kummandla waseYurophu usebenzisa i-Cloud SQL, nangona i-Postgres ngokwayo ingakuthinteli ekwenzeni oku. Imbalelwano nabasebenzi bakaGoogle ayikhokelelanga ndawo kwaye iphele ngezithembiso zesitayile esithi "siyayazi ingxaki kwaye siyayilungisa, ngenye imini umcimbi uya kusonjululwa."

Ukuba sidwelisa amandla e-Cloud SQL ngokufutshane, iya kujongeka ngolu hlobo:

1. Ukufumaneka okuphezulu (HA):

  • kwingingqi enye;
  • ngokuphindaphinda kwedisk;
  • Iinjini zePostgreSQL azisetyenziswa;
  • ulawulo oluzenzekelayo kunye nolawulo olunokwenzeka-ukuhluleka / ukungaphumeleli;
  • Xa utshintsha, i-DBMS ayifumaneki imizuzu emininzi.

2. Funda iReplica (RR):

  • kwingingqi enye;
  • imo yokulinda eshushu;
  • I-PostgreSQL yokuhambisa uphindaphindo.

Ukongeza, njengoko kuqhelekile, xa ukhetha iteknoloji uhlala ujongene nabanye izithintelo:

  • umthengi akafunanga ukwenza amaziko kunye nokusebenzisa i-IaaS, ngaphandle kwe-GKE;
  • umxhasi akanakuthanda ukuzifaka kwi-PostgreSQL/MySQL;
  • Ewe, ngokubanzi, i-Google Spanner iya kuba ifanelekile ukuba ibingeloxabiso layo, nangona kunjalo, i-Django ORM ayinakusebenza nayo, kodwa yinto entle.

Ukuqwalasela le meko, umthengi wafumana umbuzo olandelayo: "Ngaba unokwenza into efanayo ukuze ifane neGoogle Spanner, kodwa iphinde isebenze ne-Django ORM?"

Isisombululo sokhetho lwe-0

Into yokuqala ethi qatha engqondweni:

  • hlala ngaphakathi CloudSQL;
  • akusayi kubakho kuphindaphindwa kokwakhelwe ngaphakathi phakathi kwemimandla nangaluphi na uhlobo;
  • zama ukuqhoboshela ikopi ekhoyo kwiLifu leSQL ngePostgreSQL;
  • uqalise umzekelo wePostgreSQL kwenye indawo kwaye ngandlela thile, kodwa ubuncinci ungachukumisi inkosi.

Ewe, kwavela ukuba oku akunakwenziwa, kuba akukho ukufikelela kumninimzi (kwiprojekthi eyahlukileyo ngokupheleleyo) - pg_hba njalo njalo, kwaye akukho ukufikelela phantsi kwe-superuser.

Isisombululo sokhetho lwe-1

Emva kokucingisisa ngakumbi kunye nokuthathela ingqalelo iimeko zangaphambili, uloliwe wengcinga watshintsha ngandlel’ ithile:

  • Sisazama ukuhlala ngaphakathi kwe-CloudSQL, kodwa sitshintshela kwi-MySQL, kuba i-Cloud SQL nge-MySQL inenkosi yangaphandle, ethi:

β€” ngummeli weMySQL yangaphandle;
- ijongeka njengomzekelo weMySQL;
-yenzelwe ukufuduka idatha ukusuka kwamanye amafu okanye kwi-On-indawo.

Ekubeni ukuseta ukuphindaphinda kwe-MySQL akufuni ukufikelela kumamkeli, ngokomgaqo yonke into yayisebenza, kodwa yayingazinzanga kwaye iphazamisekile. Kwaye xa sihamba phambili, kwaba yinto eyoyikeka ngokupheleleyo, kuba sahambisa isakhiwo sonke nge-terraform, kwaye ngokukhawuleza kwavela ukuba inkosi yangaphandle ayixhaswanga yi-terraform. Ewe, iGoogle ine-CLI, kodwa ngesizathu esithile yonke into yasebenza apha rhoqo emva koko-ngamanye amaxesha iyadalwa, ngamanye amaxesha ayidalwanga. Mhlawumbi ngenxa yokuba i-CLI yenzelwe ukufuduka kwedatha yangaphandle, kwaye kungekhona i-replicas.

Ngokwenyani, ngeli xesha kuye kwacaca ukuba i-Cloud SQL ayifanelekanga kwaphela. Njengoko besitsho, senze konke esinako.

Isisombululo sokhetho lwe-2

Ekubeni kwakungenakwenzeka ukuhlala ngaphakathi kwesakhelo se-Cloud SQL, sizame ukuqulunqa iimfuno zesisombululo se-compromise. Iimfuno zaye zaba zezi zilandelayo:

  • ukusebenza kwi-Kubernetes, ukusetyenziswa okuphezulu kwezixhobo kunye nobuchule be-Kubernetes (DCS, ...) kunye ne-GCP (LB, ...);
  • ukungabikho kwe-ballast ukusuka kwiqela lezinto ezingadingekile kwifu njenge-HA proxy;
  • ukukwazi ukuqhuba i-PostgreSQL okanye i-MySQL kwindawo enkulu ye-HA; kweminye imimandla - i-HA evela kwi-RR yommandla oyintloko kunye nekopi yayo (yokuthembeka);
  • iinkosi ezininzi (bendingafuni ukunxibelelana naye, kodwa ibingabalulekanga kakhulu)

.
Ngenxa yezi mfuno, pDBMS efanelekileyo kunye neenketho zokubopha:

  • MySQL Galera;
  • CockroachDB;
  • Izixhobo zePostgreSQL

:
- pgpool-II;
β€” Umfundisi.

MySQL Galera

Itekhnoloji yeMySQL yeGalera yaphuhliswa yiCodership kwaye iyiplagi ye-InnoDB. Ezizodwa:

  • iinkosi ezininzi;
  • uphindaphindo oluhambelanayo;
  • ukufunda nakweyiphi na indawo;
  • ukurekhoda kuyo nayiphi na indawo;
  • indlela ye-HA eyakhelwe-ngaphakathi;
  • Kukho itshati yeHelm evela kwiBitnami.

IphenyaneDB

Ngokwenkcazo, le nto iyibhombu ngokupheleleyo kwaye yiprojekthi yomthombo ovulekileyo ebhalwe kwi-Go. Oyena mntu uthatha inxaxheba yiCockroach Labs (eyasungulwa ngabantu abasuka kuGoogle). Le DBMS yobudlelwane yayiyilwe ekuqaleni ukuba isasazwe (kunye nokulinganisa okuthe tye ngaphandle kwebhokisi) kunye nokunyamezela iimpazamo. Ababhali bayo benkampani bachaza injongo "yokudibanisa ubutyebi bokusebenza kweSQL kunye nokufikeleleka okuthe tye okuqhelekileyo kwizisombululo zeNoSQL."

Ibhonasi emnandi yinkxaso yeprotocol yoqhagamshelo lwe-post-gress.

IPgpool

Oku kukongeza kwi-PostgreSQL, eneneni, iqumrhu elitsha elithatha lonke uqhagamshelo kunye nokuluqhuba. Inomlinganisi wayo womthwalo kunye nokwahluli, onelayisenisi phantsi kwelayisensi ye-BSD. Ibonelela ngamathuba awaneleyo, kodwa ikhangeleka ngathi yoyikeka, kuba ubukho bequmrhu elitsha bunokuba ngumthombo wolunye uhambo olongezelelweyo.

uPatroni

Le yinto yokugqibela amehlo am awela kuyo, kwaye, njengoko kwavela, kungekhona ilize. I-Patroni sisixhobo somthombo ovulekileyo, eyona nto iyi-daemon yePython ekuvumela ukuba ugcine ngokuzenzekelayo amaqela e-PostgreSQL aneentlobo ezahlukeneyo zokuphindaphinda kunye nokutshintsha indima ngokuzenzekelayo. Le nto yabonakala inomdla kakhulu, kuba idibanisa kakuhle kunye ne-cuber kwaye ayizisi naziphi na izinto ezintsha.

Ukhethe ntoni ekugqibeleni?

Ukhetho aluzange lube lula:

  1. IphenyaneDB - umlilo, kodwa umnyama;
  2. MySQL Galera - kwakhona akubi, isetyenziswe kwiindawo ezininzi, kodwa i-MySQL;
  3. IPgpool - amaziko amaninzi angeyomfuneko, ukudibanisa ngoko-ke kunye nefu kunye ne-K8s;
  4. uPatroni -Udibaniso olugqwesileyo kunye neeK8s, akukho maqumrhu angeyomfuneko, idibanisa kakuhle ne-GCP LB.

Ngaloo ndlela, ukhetho lwawela kuPatroni.

ezifunyanisiweyo

Lixesha lokushwankathela ngokufutshane. Ewe, ihlabathi leziseko ze-IT litshintshile kakhulu, kwaye esi sisiqalo nje. Kwaye ukuba ngaphambi kokuba amafu abe lolunye uhlobo lwesiseko, ngoku yonke into yahlukile. Ngaphezu koko, izinto ezintsha ezisemafini zihlala zivela, ziya kubonakala kwaye, mhlawumbi, ziya kubonakala kuphela emafini kwaye kuphela emva koko, ngemigudu yokuqalisa, ziya kudluliselwa kwi-On-premises.

Ngokuphathelele iSQL, i-SQL iya kuhlala. Oku kuthetha ukuba kufuneka wazi i-PostgreSQL kunye ne-MySQL kwaye ukwazi ukusebenzisana nazo, kodwa okubaluleke ngakumbi kukuba ukwazi ukuzisebenzisa ngokuchanekileyo.

umthombo: www.habr.com

Yongeza izimvo