Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

Lumela, baahi ba Khabrovsk. Litlelase tsa sehlopha sa pele sa thupelo li qala kajeno "PostgreSQL". Mabapi le sena, re rata ho u joetsa hore na webinar e bulehileng thutong ena e etsahetse joang.

Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

В thuto e latelang e bulehileng re buile ka mathata a SQL a tobanang le ona nakong ea maru le Kubernetes. Ka nako e ts'oanang, re ile ra sheba hore na li-database tsa SQL li ikamahanya joang le ho fetoha ka tlas'a tšusumetso ea mathata ana.

Webinar e ile ea tšoaroa Valery Bezrukov, Google Cloud Practice Delivery Manager ho EPAM Systems.

Ha lifate li ne li le nyenyane ...

Taba ea pele, a re hopoleng hore na khetho ea DBMS e qalile joang qetellong ea lekholo le fetileng la lilemo. Leha ho le joalo, sena se ke ke sa ba thata, hobane khetho ea DBMS matsatsing ao e qalile 'me ea fela oracle.

Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

Ho elella bofelong ba lilemo tsa bo-90 le mathoasong a lilemo tsa bo-2, ho ne ho se na boikhethelo ha ho tluoa tabeng ea li-database tse ka senyehang tsa indasteri. E, ho ne ho e-na le IBM DBXNUMX, Sybase le li-database tse ling tse ileng tsa tla le ho tsamaea, empa ka kakaretso li ne li sa hlokomelehe hakaalo khahlanong le semelo sa Oracle. Ka hona, litsebo tsa baenjiniere ba mehleng eo ka tsela e itseng li ne li amana le khetho e le 'ngoe feela e neng e le teng.

Oracle DBA e ne e tlameha ho tseba ho:

  • kenya Oracle Server ho tloha setsing sa kabo;
  • lokisa Oracle Server:

  • init.ora;
  • momameli.ora;

- theha:

  • libaka tsa tafole;
  • morero;
  • basebelisi;

- etsa bekapo le ho tsosolosa;
- etsa tlhahlobo;
- sebetsana le likopo tse tlase.

Ka nako e ts'oanang, ho ne ho se na tlhoko e khethehileng ho tsoa ho Oracle DBA:

  • ba khona ho khetha DBMS e nepahetseng kapa theknoloji e 'ngoe bakeng sa ho boloka le ho sebetsana le data;
  • fana ka phumaneho e phahameng le scalability e rapameng (sena e ne e se taba ea DBA kamehla);
  • tsebo e ntle ea sebaka sa thuto, lisebelisoa tsa motheo, meralo ea kopo, OS;
  • laela le ho laolla data, tsamaisa data lipakeng tsa li-DBMS tse fapaneng.

Ka kakaretso, haeba re bua ka khetho matsatsing ao, e tšoana le khetho ea lebenkele la Soviet ho elella bofelong ba lilemo tsa bo-80:

Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

Nako ea rona

Ho tloha ka nako eo, ha e le hantle, lifate li hōlile, lefatše le fetohile, 'me la fetoha ntho e kang ena:

Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

'Maraka oa DBMS o boetse o fetohile, joalokaha ho ka bonoa ka ho hlaka tlalehong ea morao-rao e tsoang ho Gartner:

Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

'Me mona ho lokela ho hlokomeloa hore maru, ao botumo ba oona bo ntseng bo eketseha, a nkile sebaka sa bona. Haeba re bala tlaleho e tšoanang ea Gartner, re tla bona liqeto tse latelang:

  1. Bareki ba bangata ba tseleng ea ho tsamaisa lits'ebetso ho ea lerung.
  2. Theknoloji e ncha e qala ho hlaha marung mme ha se 'nete ea hore ba tla ke ba fallele meahong eo e seng ea leru.
  3. Mokhoa oa ho lefa ha u ntse u tsamaea o se o tloaelehile. E mong le e mong o batla ho lefa feela seo a se sebelisang, 'me sena ha se mokhoa, empa ke polelo ea' nete feela.

Ho thoe'ng joale?

Kajeno bohle re lerung. 'Me lipotso tse hlahang bakeng sa rona ke lipotso tsa boikhethelo. 'Me e kholo, leha re bua feela ka khetho ea mahlale a DBMS ka sebopeho sa On-premises. Re boetse re na le litšebeletso tse laoloang le SaaS. Kahoo, khetho e ba thata le ho feta selemo se seng le se seng.

Hammoho le lipotso tsa khetho, ho boetse ho na le lintlha tse fokotsang:

  • theko. Theknoloji e mengata e ntse e bitsa chelete;
  • tsebo. Haeba re bua ka software ea mahala, joale potso ea litsebo e hlaha, kaha software ea mahala e hloka bokhoni bo lekaneng ba batho ba e sebelisang le ba e sebelisang;
  • tshebetso. Ha se litšebeletso tsohle tse fumanehang marung le tse hahiloeng, ho re, esita le ho Postgres e tšoanang, e nang le likarolo tse tšoanang le Postgres On-premises. Ena ke ntlha ea bohlokoa e lokelang ho tsejoa le ho utloisisoa. Ho feta moo, ntlha ena e ba ea bohlokoa ho feta tsebo ea bokhoni bo itseng bo patiloeng ba DBMS e le 'ngoe.

Ho lebelletsoe eng hona joale ho tsoa ho DA/DE:

  • kutloisiso e ntle ea sebaka sa thuto le moralo oa ts'ebeliso;
  • bokhoni ba ho khetha ka nepo theknoloji e nepahetseng ea DBMS, ho ela hloko mosebetsi o teng;
  • bokhoni ba ho khetha mokhoa o nepahetseng oa ho kenya ts'ebetsong thekenoloji e khethiloeng ho latela mefokolo e teng;
  • bokhoni ba ho etsa phetiso ea data le ho falla;
  • bokhoni ba ho kenya ts'ebetsong le ho sebetsa litharollo tse khethiloeng.

Ka tlase mohlala e thehiloeng ho GCP e bonts'a hore na khetho ea theknoloji e le 'ngoe kapa e' ngoe ea ho sebetsa ka data e sebetsa joang ho latela sebopeho sa eona:

Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

Ka kopo hlokomela hore PostgreSQL ha e kenyelelitsoe ho schema, 'me sena ke hobane e patiloe tlas'a poleloana Cloud SQL. Mme ha re fihla Cloud SQL, re hloka ho etsa khetho hape:

Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

Hoa lokela ho hlokomeloa hore khetho ena ha e hlake kamehla, kahoo baetsi ba kopo hangata ba tataisoa ke intuition.

Kakaretso:

  1. Ha u ntse u tsoela pele, ke moo potso ea khetho e ntseng e hatella haholoanyane. 'Me le haeba u sheba feela GCP, litšebeletso tse laoloang le SaaS, joale ho buuoa ho itseng ka RDBMS ho hlaha feela mohato oa 4 ('me moo Spanner e haufi). Hape, khetho ea PostgreSQL e hlaha mohatong oa bohlano, 'me haufi le eona ho boetse ho na le MySQL le SQL Server, ke hore. ho na le lintho tse ngata, empa u lokela ho khetha.
  2. Ha rea ​​lokela ho lebala ka lithibelo khahlanong le semelo sa liteko. Ha e le hantle, motho e mong le e mong o batla Spanner, empa e turu. Ka lebaka leo, kopo e tloaelehileng e shebahala tjena: "Ka kopo, re etsetse Spanner empa ka theko ea Cloud SQL, le litsebi!"

Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

Re lokela ho etsa’ng?

Ntle le ho ipolela hore ke 'nete ea mantlha, ha re bue se latelang:

Re hloka ho fetola mokhoa oa rona oa ho ithuta:

  • ha ho na thuso ea ho ruta tsela eo li-DBA li neng li rutoa ka eona pele;
  • tsebo ea sehlahisoa se le seng ha e sa lekana;
  • empa ho tseba tse ngata boemong ba e le 'ngoe ha ho khonehe.

U hloka ho tseba eseng feela, eseng hore na sehlahisoa ke bokae, empa:

  • tšebeliso ea tšebeliso ea eona;
  • mekhoa e fapaneng ea phepelo;
  • melemo le mathata a mokhoa o mong le o mong;
  • lihlahisoa tse ts'oanang le tse ling ho etsa khetho e nang le tsebo le e nepahetseng eseng kamehla molemong oa sehlahisoa se tsebahalang.

U boetse u hloka ho khona ho falla data le ho utloisisa melao-motheo ea ho kopanya le ETL.

Taba ea sebele

Nakong e fetileng, ho ne ho hlokahala ho theha backend bakeng sa kopo ea mohala. Nakong eo mosebetsi o neng o qala ho eona, backend e ne e se e ntlafalitsoe 'me e se e loketse ho kenngoa ts'ebetsong,' me sehlopha sa nts'etsopele se qetile lilemo tse ka bang peli morerong ona. Mesebetsi e latelang e ne e behiloe:

  • haha ​​CI/CD;
  • hlahloba kaho;
  • kenya tsohle tshebetsong.

Kopo ka boeona e ne e le li-microservices, 'me khoutu ea Python / Django e ile ea ntlafatsoa ho tloha qalong le ka ho toba ho GCP. Ha e le bamameli ba shebiloeng, ho ne ho nahanoa hore ho tla ba le libaka tse peli - US le EU, 'me sephethephethe se ne se ajoa ka Global Load balancer. Meroalo eohle ea mesebetsi le mesebetsi e bakiloeng e ne e sebetsa ho Google Kubernetes Engine.

Ha e le data, ho ne ho na le libopeho tse 3:

  • Cloud Storage;
  • Lebenkele la boitsebiso;
  • Cloud SQL (PostgreSQL).

Mokhoa oa ho pholoha database ea SQL lekholong la bo21 la lilemo: maru, Kubernetes le PostgreSQL multimaster

Motho a ka ipotsa hore na hobaneng Cloud SQL e khethiloe? Ho bua 'nete, potso e joalo e bakile khefu e itseng e sa thabiseng lilemong tsa morao tjena - ho na le maikutlo a hore batho ba se ba le lihlong mabapi le li-database tsa likamano, empa leha ho le joalo ba tsoela pele ho li sebelisa ka mafolofolo ;-).

Ha e le nyeoe ea rona, Cloud SQL e khethiloe ka mabaka a latelang:

  1. Joalo ka ha ho boletsoe, ts'ebeliso e entsoe ho sebelisoa Django, 'me e na le mohlala oa ho etsa limmapa tsa data tse phehellang ho tloha polokelong ea SQL ho ea ho lintho tsa Python (Django ORM).
  2. Moralo ona ka boeona o tšehelitse lethathamo le lekanyelitsoeng la li-DBMS:

  • PostgreSQL;
  • MariaDB;
  • MySQL;
  • lipolelo;
  • SQLite.

Ka hona, PostgreSQL e khethiloe lethathamong lena ka mokhoa o hlakileng (hantle, ha se Oracle ho khetha, ehlile).

Se neng se haella:

  • kopo e ile ea sebelisoa feela libakeng tsa 2, 'me ea 3 e hlahile mererong (Asia);
  • Database e ne e le sebakeng sa Amerika Leboea (Iowa);
  • ka lehlakoreng la moreki ho ne ho e-na le matšoenyeho mabapi le ho khoneha tieho ea phihlello ho tloha Europe le Asia le tšitiso tšebeletsong haeba ho na le nako ea ho fokotsa DBMS.

Leha taba ea hore Django ka boeona e ka sebetsa le li-database tse 'maloa ka mokhoa o ts'oanang' me ea li arola ka ho bala le ho ngola, ho ne ho se na mongolo o mongata ts'ebelisong (ho feta 90% ea ho bala). 'Me ka kakaretso, le ka kakaretso, haeba ho ne ho khoneha ho etsa joalo bala-replica ea mantlha ea mantlha Europe le Asia, ena e ka ba tharollo ea ho sekisetsa. Hantle, ke eng e rarahaneng ka eona?

Bothata e ne e le hore moreki o ne a sa batle ho tlohela ho sebelisa lits'ebeletso tse laoloang le Cloud SQL. 'Me bokhoni ba Cloud SQL hajoale bo lekanyelitsoe. Cloud SQL e ts'ehetsa ho fumaneha ho Holimo (HA) le Read Replica (RR), empa RR e ts'oanang e ts'ehetsoa sebakeng se le seng feela. Ha u se u thehile database sebakeng sa Amerika, u ke ke ua etsa replica ea ho bala sebakeng sa Europe u sebelisa Cloud SQL, leha Postgres ka boeona e sa u thibele ho etsa sena. Ho ngollana le basebetsi ba Google ha ho moo ho ileng ha fella ka litšepiso ka mokhoa oa "re tseba bothata 'me re ntse re sebetsana le bona, ka letsatsi le leng bothata bo tla rarolloa."

Haeba re thathamisa bokhoni ba Cloud SQL ka bokhutšoanyane, e tla shebahala tjena:

1. Ho fumaneha ho phahameng (HA):

  • ka hare ho sebaka se le seng;
  • ka ho pheta-pheta disk;
  • Lienjineri tsa PostgreSQL ha li sebelisoe;
  • ho laola ka mokhoa o itekanetseng le oa matsoho ho khoneha - failover / failback;
  • Ha o chencha, DBMS ha e fumanehe metsotso e mengata.

2. Bala Replica (RR):

  • ka hare ho sebaka se le seng;
  • hot standby;
  • PostgreSQL phallela phetiso.

Ho phaella moo, joalo ka tloaelo, ha u khetha theknoloji u lula u tobana le tse ling lithibelo:

  • moreki o ne a sa batle ho theha mekhatlo le ho sebelisa IaaS, ntle le ka GKE;
  • moreki a ke ke a rata ho ipehela PostgreSQL/MySQL;
  • Ka kakaretso, Google Spanner e ne e tla ba e loketseng haeba e ne e se ka theko ea eona, leha ho le joalo, Django ORM e ke ke ea sebetsa le eona, empa ke ntho e ntle.

Ha ho nahanoa ka boemo bona, moreki o ile a fumana potso e latelang: "Na u ka etsa ntho e tšoanang hore e tšoane le Google Spanner, empa hape e sebetse le Django ORM?"

Khetho ea tharollo No. 0

Ntho ea pele e ileng ea fihla kelellong:

  • lula ka har'a CloudSQL;
  • ho ke ke ha ba le phetiso e hahelletsoeng lipakeng tsa libaka ka mokhoa ofe kapa ofe;
  • leka ho hokela replica ho Cloud SQL e teng ka PostgreSQL;
  • qala mohlala oa PostgreSQL kae-kae le ka tsela e itseng, empa bonyane u se ke ua ama monghali.

Oho, ho ile ha fumaneha hore sena se ke ke sa etsoa, ​​​​hobane ha ho na mokhoa oa ho fumana moeti (o ka morero o fapaneng ka ho feletseng) - pg_hba joalo-joalo, 'me ha ho na mokhoa oa ho fumana tlas'a superuser.

Khetho ea tharollo No. 1

Ka mor'a ho nahanisisa ka ho eketsehileng le ho nahanela maemo a fetileng, tsela ea ho nahana e fetohile ka tsela e itseng:

  • Re ntse re leka ho lula ka har'a CloudSQL, empa re fetohela ho MySQL, hobane Cloud SQL ka MySQL e na le master ea kantle, e leng:

- ke moemeli oa MySQL ea kantle;
- e shebahala joalo ka mohlala oa MySQL;
- e qapiloe bakeng sa ho falla ha data ho tsoa marung a mang kapa libakeng tse ling.

Kaha ho theha phetiso ea MySQL ha ho hloke ho fihlella moamoheli, ha e le hantle ntho e 'ngoe le e' ngoe e ne e sebetsa, empa e ne e sa tsitsa ebile e sa tsitsa. 'Me ha re fetela pele, e ile ea e-ba e tšosang ka ho feletseng, hobane re ile ra sebelisa mohaho oohle ka terraform,' me ka tšohanyetso ho ile ha fumaneha hore monghali oa ka ntle o ne a sa tšehetsoe ke terraform. E, Google e na le CLI, empa ka mabaka a mang ntho e 'ngoe le e' ngoe e ne e sebetsa mona nako le nako - ka linako tse ling e bōpiloe, ka linako tse ling ha e bōptjoe. Mohlomong hobane CLI e qapiloe bakeng sa phalliso ea data ea kantle, eseng bakeng sa likopi.

Haele hantle, nakong ena ho ile ha hlaka hore Cloud SQL ha e ea lokela ho hang. Joalokaha ba re, re entse sohle seo re ka se khonang.

Khetho ea tharollo No. 2

Kaha ho ne ho sa khonehe ho lula ka har'a moralo oa Cloud SQL, re ile ra leka ho etsa litlhoko tsa tharollo ea ho sekisetsa. Litlhoko li ile tsa fetoha tse latelang:

  • sebetsa ho Kubernetes, tšebeliso e phahameng ea lisebelisoa le bokhoni ba Kubernetes (DCS, ...) le GCP (LB, ...);
  • khaello ea ballast ho tloha letotong la lintho tse sa hlokahaleng ka leru joaloka HA proxy;
  • bokhoni ba ho tsamaisa PostgreSQL kapa MySQL sebakeng se seholo sa HA; libakeng tse ling - HA ho tloha RR ea sebaka se seholo hammoho le kopi ea eona (bakeng sa ho tšepahala);
  • multi master (ke ne ke sa batle ho ikopanya le eena, empa ho ne ho se bohlokoa haholo)

.
Ka lebaka la litlhoko tsena, leqDBMS e loketseng le likhetho tse tlamang:

  • MySQL Galera;
  • CockroachDB;
  • Lisebelisoa tsa PostgreSQL

:
- pgpool-II;
— Motšehetsi.

MySQL Galera

Theknoloji ea MySQL Galera e entsoe ke Codership 'me ke plugin bakeng sa InnoDB. Tse ikhethang:

  • litsebi tse ngata;
  • katiso e lumellanang;
  • ho bala ho tloha node efe kapa efe;
  • ho rekota ho node efe kapa efe;
  • e hahiloeng ka HA mochine;
  • Ho na le chate ea Helm e tsoang Bitnami.

LepheleDB

Ho ea ka tlhaloso, ntho eo ke bomo ka ho feletseng 'me ke morero o bulehileng oa mohloli o ngotsoeng ho Go. Monka-karolo ea ka sehloohong ke Cockroach Labs (e thehiloeng ke batho ba Google). DBMS ena e amanang le eona qalong e ne e etselitsoe ho ajoa (ka ho phahamisa ka ntle ho lebokose) le ho mamella liphoso. Bangoli ba eona ho tsoa k'hamphaning ba hlalositse sepheo sa "ho kopanya katleho ea ts'ebetso ea SQL le phihlello e otlolohileng e tloaelehileng ea tharollo ea NoSQL."

Bonase e ntle ke ts'ehetso bakeng sa protocol ea khokahano ea post-gress.

Pgpool

Ena ke tlatsetso ho PostgreSQL, ha e le hantle, ke mokhatlo o mocha o nkang likhokahano tsohle le ho li sebetsa. E na le balancer ea eona ea mojaro le parser, e ngolisitsoeng ka tlas'a laesense ea BSD. E fana ka menyetla e mengata, empa e shebahala e tšosa, hobane boteng ba mokhatlo o mocha e ka ba mohloli oa liketsahalo tse ling tse eketsehileng.

Patroni

Ena ke ntho ea ho qetela eo mahlo a ka a ileng a oela ho eona, 'me, joalokaha ho ile ha bonahala, eseng lefeela. Patroni ke sesebelisoa sa mohloli o bulehileng, seo ha e le hantle e leng daemon ea Python e u lumellang ho boloka lihlopha tsa PostgreSQL ka mefuta e fapaneng ea ho pheta-pheta le ho fetola karolo ea othomathike. Ntho eo e ile ea khahla haholo, kaha e hokahana hantle le cuber mme ha e hlahise mekhatlo efe kapa efe e ncha.

U khethile eng qetellong?

Khetho e ne e se bonolo:

  1. LepheleDB - mollo, empa lefifi;
  2. MySQL Galera - hape ha e mpe, e sebelisoa libakeng tse ngata, empa MySQL;
  3. Pgpool - mekhatlo e mengata e sa hlokahaleng, ho kopanngoa le leru le K8s;
  4. Patroni - kopanyo e ntle haholo le li-K8, ha ho na mekhatlo e sa hlokahaleng, e hokahana hantle le GCP LB.

Kahoo, khetho e ile ea oela ho Patroni.

fumanoeng ke

Ke nako ea ho akaretsa ka bokhutšoanyane. E, lefats'e la lisebelisoa tsa IT le fetohile haholo, 'me sena ke qalo feela. 'Me haeba pele maru e ne e le mofuta o mong oa mekhoa ea motheo, joale ntho e' ngoe le e 'ngoe e fapane. Ho feta moo, lisebelisoa tsa maru li lula li hlaha, li tla hlaha 'me, mohlomong, li tla hlaha marung feela' me feela, ka boiteko ba ho qala, li tla fetisetsoa ho On-premises.

Ha e le SQL, SQL e tla phela. Sena se bolela hore o hloka ho tseba PostgreSQL le MySQL mme o tsebe ho sebetsa le tsona, empa habohlokoa le ho feta ke ho khona ho li sebelisa ka nepo.

Source: www.habr.com

Eketsa ka tlhaloso