Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

Ndewo, ndị bi na Khabrovsk. Klas na otu mbụ nke nkuzi na-amalite taa "PostgreSQL". N'akụkụ a, anyị ga-achọ ịgwa gị maka otu webinar mepere emepe na nkuzi a siri mee.

Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

В nkuzi mepere emepe ọzọ anyị kwuru banyere ihe ịma aka SQL ọdụ data na-eche ihu na oge nke ígwé ojii na Kubernetes. N'otu oge ahụ, anyị lere anya ka nchekwa data SQL si emegharị ma gbanwee n'okpuru mmetụta nke ihe ịma aka ndị a.

Ejiri webinar ahụ Valery Bezrukov, Google Cloud Practice Delivery Manager na EPAM Systems.

Mgbe osisi dị obere ...

Nke mbụ, ka anyị cheta otú nhọrọ DBMS siri malite na njedebe nke narị afọ gara aga. Otú ọ dị, nke a agaghị esi ike, n'ihi na nhọrọ nke DBMS n'ụbọchị ndị ahụ malitere ma kwụsị Oracle.

Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

N'ọgwụgwụ 90s na mmalite 2s, ọ nweghị nhọrọ ọ bụla ma a bịa n'ihe gbasara ọdụ data scalable. Ee, enwere IBM DBXNUMX, Sybase na ụfọdụ ọdụ data ndị ọzọ bịara wee gaa, mana n'ozuzu ha anaghị ahụta ya megide ndabere nke Oracle. N'ihi ya, nkà nke ndị injinia nke oge ahụ nwere njikọ n'ụzọ ụfọdụ na naanị nhọrọ dị adị.

Oracle DBA aghaghị inwe ike:

  • tinye Oracle Server site na ngwa nkesa;
  • hazie Oracle Server:

  • init.ora;
  • ege nti.ora;

- mepụta:

  • okpokoro okpokoro;
  • atụmatụ;
  • ndị ọrụ;

- rụọ nkwado ndabere na mpaghara weghachite;
- mepụta nlekota oru;
- na-emeso arịrịọ suboptimal.

N'otu oge ahụ, enweghị ihe ọ bụla chọrọ n'aka Oracle DBA:

  • nwee ike ịhọrọ DBMS kacha mma ma ọ bụ teknụzụ ndị ọzọ maka ịchekwa na nhazi data;
  • nye nnukwu nnweta na nha nha nha (nke a abụghị okwu DBA mgbe niile);
  • ezi ihe ọmụma nke mpaghara isiokwu, akụrụngwa, ngwa architecture, OS;
  • Ibu ma budata data, bugharịa data n'etiti DBMS dị iche iche.

N'ozuzu, ọ bụrụ na anyị na-ekwu banyere nhọrọ n'ụbọchị ndị ahụ, ọ yiri nhọrọ na ụlọ ahịa Soviet na njedebe 80s:

Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

Oge anyị

Kemgbe ahụ, n'ezie, osisi tolitere, ụwa agbanweela, ọ ghọkwara ihe dị ka nke a:

Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

Ahịa DBMS agbanweela, dịka enwere ike ịhụ nke ọma site na akụkọ kachasị ọhụrụ sitere na Gartner:

Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

Na ebe a, ekwesịrị ịmara na ígwé ojii, nke ewu ewu ya na-eto eto, ejirila niche ha. Ọ bụrụ na anyị gụọ otu akụkọ Gartner, anyị ga-ahụ nkwubi okwu ndị a:

  1. Ọtụtụ ndị ahịa nọ n'ụzọ na-ebugharị ngwa na igwe ojii.
  2. Teknụzụ ọhụrụ na-ebu ụzọ pụta na ígwé ojii na ọ bụghị eziokwu na ha ga-akwaga na akụrụngwa na-abụghị igwe ojii.
  3. Ụdị ọnụahịa ịkwụ ụgwọ ka ị na-aga aghọwo ihe a na-ahụkarị. Onye ọ bụla chọrọ ịkwụ ụgwọ naanị maka ihe ha na-eji, na nke a abụghị ọbụna ihe na-emekarị, ma ọ bụ nanị nkwupụta nke eziokwu.

Gịnị ugbu a?

Taa, anyị niile nọ n'igwe ojii. Na ajụjụ ndị na-ebilite nye anyị bụ ajụjụ nhọrọ. Ma ọ bụ nnukwu, ọbụna ma ọ bụrụ na anyị na-ekwu naanị banyere nhọrọ nke DBMS teknụzụ na On-ụlọ usoro. Anyị nwekwara ọrụ jisiri ike na SaaS. Ya mere, nhọrọ naanị na-esiwanye ike kwa afọ.

Tinyere ajụjụ nke nhọrọ, e nwekwara ihe na-egbochi ihe:

  • price. Ọtụtụ teknụzụ ka na-efu ego;
  • nkà. Ọ bụrụ na anyị na-ekwu maka sọftụwia efu, mgbe ahụ ajụjụ gbasara nka na-ebilite, ebe ọ bụ na sọftụwia efu chọrọ ikike zuru oke n'aka ndị na-ebuga ma rụọ ọrụ ya;
  • arụ ọrụ. Ọ bụghị ọrụ niile dị na igwe ojii ma wuo ya, sị, ọbụlagodi na otu Postgres, nwere otu atụmatụ dị ka Postgres On-premises. Nke a bụ ihe dị mkpa kwesịrị ka amara na nghọta. Ọzọkwa, ihe a na-aghọ ihe dị mkpa karịa ịmata ụfọdụ ike zoro ezo nke otu DBMS.

Ihe a na-atụ anya na DA/DE ugbu a:

  • nghọta dị mma nke mpaghara isiokwu na nhazi ngwa ngwa;
  • ikike ịhọrọ teknụzụ DBMS kwesịrị ekwesị nke ọma, na-eburu n'uche ọrụ dị n'aka;
  • ikike ịhọrọ usoro kachasị mma maka imejuputa nkà na ụzụ ahọpụtara na ọnọdụ nke njedebe dị ugbu a;
  • ikike iji nyefee data na mbugharị;
  • ike mejuputa na ịrụ ọrụ ngwọta ahọpụtara.

N'okpuru ihe atụ dabere na GCP na-egosi otu nhọrọ nke otu ma ọ bụ teknụzụ ọzọ maka ịrụ ọrụ na data dabere na nhazi ya:

Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

Biko mara na PostgreSQL adịghị etinye na atụmatụ ahụ, nke a bụ n'ihi na ezoro ezo n'okpuru okwu okwu. Igwe ojii SQL. Ma mgbe anyị rutere Cloud SQL, anyị kwesịrị ime nhọrọ ọzọ:

Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

Ekwesiri iburu n'uche na nhọrọ a anaghị adị mfe mgbe niile, ya mere ndị na-emepụta ngwa na-ejikarị nghọta.

Ọnụ:

  1. Ka ị na-aga n'ihu, ka ajụjụ nke nhọrọ na-abawanye. Ọbụna ma ọ bụrụ na ị na-ele naanị GCP, ọrụ ndị a na-achịkwa na SaaS, mgbe ahụ, ụfọdụ okwu RDBMS na-egosi naanị na 4th nzọụkwụ (na Spanner dị nso). Na mgbakwunye, nhọrọ nke PostgreSQL na-egosi na usoro nke ise, na-esote ya nwekwara MySQL na SQL Server, ya bụ. enwere ọtụtụ ihe, mana ị ga-ahọrọ.
  2. Anyị agaghị echefu ihe mgbochi megide ndabere nke ọnwụnwa. N'ụzọ bụ isi onye ọ bụla chọrọ Spanner, mana ọ dị oke ọnụ. N'ihi ya, a na-ahụkarị arịrịọ yiri ihe dị ka nke a: "Biko mee anyị onye Spanner mana maka ọnụahịa Cloud SQL, ị bụ ndị ọkachamara!"

Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

Gịnị ka anyị kwesịrị ime?

N'ekwughị na ọ bụ eziokwu kacha, ka anyị kwuo ihe ndị a:

Anyị kwesịrị ịgbanwe ụzọ anyị si amụta ihe:

  • ọ dịghị uru ịkụzi ụzọ e si kụzie DBA mbụ;
  • ihe ọmụma nke otu ngwaahịa adịghịzi ezuru;
  • ma ịmara ọtụtụ iri na ọkwa nke otu agaghị ekwe omume.

Ịkwesịrị ịma ọ bụghị naanị na ọ bụghị ego ole ngwaahịa ahụ dị, mana:

  • eji ikpe nke ngwa ya;
  • usoro nhazi dị iche iche;
  • uru na ọghọm nke usoro ọ bụla;
  • ngwaahịa ndị yiri ya na ndị ọzọ iji mee ihe ọmụma na nhọrọ kachasị mma na ọ bụghị mgbe niile na-akwado ngwaahịa a maara nke ọma.

Ịkwesịrị inwe ike ịkwaga data wee ghọta ụkpụrụ ndị bụ isi nke ijikọ na ETL.

Ezigbo ikpe

N'oge gara aga, ọ dị mkpa ịmepụta azụ azụ maka ngwa mkpanaka. Ka ọ na-erule oge ọrụ malitere na ya, azụ azụ amalitelarị ma dị njikere maka mmejuputa ya, ndị otu mmepe ahụ nọrọ ihe dị ka afọ abụọ na ọrụ a. Edebere ọrụ ndị a:

  • wuo CI/CD;
  • nyochaa ihe owuwu;
  • tinye ya niile n'ọrụ.

Ngwa ahụ n'onwe ya bụ microservices, yana koodu Python/Django ka emepụtara site na ọkọ na ozugbo na GCP. Banyere ndị na-ege ntị, e chere na a ga-enwe mpaghara abụọ - US na EU, na-ekesa okporo ụzọ site na Global Load balancer. Ibu ọrụ na ịgbakọ ọrụ niile na-arụ na Google Kubernetes Engine.

N'ihe gbasara data ahụ, e nwere usoro atọ:

  • Nchekwa igwe ojii;
  • Ụlọ nchekwa data;
  • Cloud SQL (PostgreSQL).

Otu esi adị ndụ na nchekwa data SQL na narị afọ nke 21: igwe ojii, Kubernetes na PostgreSQL multimaster

Mmadụ nwere ike ịnọ na-eche ihe kpatara eji họrọ Cloud SQL? N'ikwu eziokwu, ajụjụ dị otú ahụ akpatala ụdị nkwụsịtụ na-adịghị mma n'ime afọ ndị na-adịbeghị anya - enwere mmetụta na ndị mmadụ na-eme ihere banyere ọdụ data mmekọrịta, ma ka o sina dị, ha na-anọgide na-arụsi ọrụ ike na-eji ha ;-).

N'ihe gbasara anyị, Cloud SQL họọrọ maka ihe ndị a:

  1. Dịka ekwuru, e mepụtara ngwa ahụ site na iji Django, ọ nwekwara ihe atụ maka ịdepụta data na-adịgide adịgide site na nchekwa data SQL gaa na ihe Python (Django ORM).
  2. Usoro ahụ n'onwe ya kwadoro ndepụta DBMS zuru oke:

  • PostgreSQL;
  • MariaDB;
  • MySQL;
  • okwu-ọnu;
  • SQLite.

N'ihi ya, a họọrọ PostgreSQL na ndepụta a kama nke ọma (nke ọma, ọ bụghị Oracle ịhọrọ, n'ezie).

Ihe na-efu

  • etinyere ngwa ahụ naanị na mpaghara 2, na nke atọ pụtara na atụmatụ (Asia);
  • Ebe nchekwa data dị na mpaghara North America (Iowa);
  • n'akụkụ nke onye ahịa enwere nchegbu banyere enwere ike ohere igbu oge si Europe na Asia na nkwụsịtụ na-eje ozi n'ihe banyere DBMS downtime.

N'agbanyeghị eziokwu na Django n'onwe ya nwere ike na-arụ ọrụ na ọtụtụ ọdụ data n'otu n'otu na kewaa ha n'ime ịgụ na ide, ọ dịghị nke ukwuu ide na ngwa (karịa 90% na-agụ). Na n'ozuzu, na n'ozuzu, ọ bụrụ na ọ ga-ekwe omume ime agụ- oyiri nke isi isi na Europe na Asia, nke a ga-abụ ngwọta nkwekọrịta. Ọfọn, kedu ihe gbagwojuru anya na ya?

Ihe isi ike bụ na onye ahịa ahụ achọghị ịkwụsị iji ọrụ ejiri na Cloud SQL. Na ike Cloud SQL nwere oke ugbu a. Cloud SQL na-akwado ịdị elu dị elu (HA) na Gụọ oyiri (RR), mana otu RR ka a na-akwado naanị n'otu mpaghara. N'ịbụ onye mepụtara nchekwa data na mpaghara America, ị nweghị ike iji Cloud SQL mee ihe ọgụgụ na mpaghara Europe, ọ bụ ezie na Postgres n'onwe ya anaghị egbochi gị ime nke a. Mmekọrịta ya na ndị ọrụ Google edugaghị ebe ọ bụla wee kwụsị na nkwa n'ụdị "anyị maara nsogbu ahụ ma na-arụ ọrụ na ya, otu ụbọchị a ga-edozi nsogbu ahụ."

Ọ bụrụ na anyị depụta ikike nke Cloud SQL nkenke, ọ ga-adị ka nke a:

1. Nnukwu nnweta (HA):

  • n'ime otu mpaghara;
  • site na mmegharị diski;
  • A naghị eji igwe PostgreSQL eme ihe;
  • njikwa akpaka na ntuziaka ga-ekwe omume - ọdịda / ọdịda;
  • Mgbe ị na-agbanwe, DBMS adịghị maka ọtụtụ nkeji.

2. Gụọ oyiri (RR):

  • n'ime otu mpaghara;
  • na-ekpo ọkụ na njikere;
  • Ntugharị mgbasa ozi PostgreSQL.

Na mgbakwunye, dị ka ọ na-emekarị, mgbe ị na-ahọrọ nkà na ụzụ, ị na-eche ụfọdụ ihu mgbe niile mgbochi:

  • onye ahịa achọghị ịmepụta ụlọ ọrụ ma jiri IaaS, ewezuga site na GKE;
  • onye ahịa agaghị achọ ibuga onwe ya PostgreSQL/MySQL;
  • Ọfọn, n'ozuzu, Google Spanner ga-adabara nke ọma ma ọ bụrụ na ọ bụghị maka ọnụahịa ya, Otú ọ dị, Django ORM enweghị ike ịrụ ọrụ na ya, mana ọ bụ ihe dị mma.

N'ịtụle ọnọdụ ahụ, onye ahịa ahụ nwetara ajụjụ na-esochi: "Ị nwere ike ime ihe yiri nke ahụ ka ọ dị ka Google Spanner, ma soro Django ORM na-arụ ọrụ?"

Nhọrọ ngwọta No. 0

Ihe mbụ batara n'uche:

  • nọrọ n'ime CloudSQL;
  • a gaghị enwe nrụgharị n'etiti mpaghara n'ụdị ọ bụla;
  • nwaa itinye oyiri na Cloud SQL dị adị site na PostgreSQL;
  • malite ihe atụ PostgreSQL ebe ọ bụla, mana opekata mpe emetụla nna ukwu aka.

Ewoo, ọ tụgharịrị na enweghị ike ime nke a, n'ihi na ọ nweghị ohere ịnweta onye ọbịa (ọ bụ na ọrụ dị iche iche kpamkpam) - pg_hba na ihe ndị ọzọ, ọ nweghịkwa ohere n'okpuru superuser.

Nhọrọ ngwọta No. 1

Mgbe nlebachara n'ihu na iburu n'uche ọnọdụ ndị gara aga, ụgbọ oloko nke echiche gbanwere ntakịrị:

  • Anyị ka na-agbalị ịnọ n'ime CloudSQL, mana anyị na-atụgharị na MySQL, n'ihi na Cloud SQL site MySQL nwere onye nwe mpụga, nke:

- bụ proxy maka mpụga MySQL;
- dị ka ihe atụ MySQL;
- echepụtara maka ịkwaga data sitere na igwe ojii ndị ọzọ ma ọ bụ n'ime ụlọ.

Ebe ọ bụ na ịtọlite ​​​​nsụgharị MySQL anaghị achọ ịnweta onye ọbịa, na ụkpụrụ ihe niile na-arụ ọrụ, mana ọ bụ ihe na-adịghị mma na nke na-adịghị mma. Ma mgbe anyị gara n'ihu, ọ ghọrọ egwu kpamkpam, n'ihi na anyị na-etinye usoro ahụ dum na terraform, na mberede, ọ bịara bụrụ na terraform akwadoghị nna ukwu dị n'èzí. Ee, Google nwere CLI, mana n'ihi ihe ụfọdụ, ihe niile na-arụ ọrụ ebe a mgbe ụfọdụ - mgbe ụfọdụ a na-emepụta ya, mgbe ụfọdụ ọ naghị emepụta ya. Ikekwe n'ihi na e chepụtara CLI maka mbugharị data mpụga, ọ bụghị maka oyiri.

N'ezie, n'oge a, ọ bịara doo anya na Cloud SQL adịghị mma ma ọlị. Dị ka ha na-ekwu, anyị mere ihe niile anyị nwere ike ime.

Nhọrọ ngwọta No. 2

Ebe ọ bụ na ọ gaghị ekwe omume ịnọ n'ime Cloud SQL framework, anyị gbalịrị ịmepụta ihe achọrọ maka ngwọta nkwekọrịta. Ihe achọrọ wee bụrụ ndị a:

  • na-arụ ọrụ na Kubernetes, iji ihe onwunwe na ike kachasị nke Kubernetes (DCS, ...) na GCP (LB, ...);
  • enweghi ballast site na ụyọkọ ihe ndị na-adịghị mkpa na igwe ojii dị ka proxy HA;
  • ike na-agba ọsọ PostgreSQL ma ọ bụ MySQL na isi HA mpaghara; na mpaghara ndị ọzọ - HA sitere na RR nke mpaghara isi gbakwunyere nnomi ya (maka ntụkwasị obi);
  • multi master (Achọghị m ịkpọtụrụ ya, mana ọ dịghị ezigbo mkpa)

.
N'ihi ihe ndị a chọrọ, pDBMS dabara adaba na nhọrọ njikọ:

  • MySQL Galera;
  • CockroachDB;
  • Ngwa PostgreSQL

:
- pgpool-II;
- Onye nkwado.

MySQL Galera

MySQL Galera teknụzụ mepụtara site na Codership ma bụrụ ngwa mgbakwunye maka InnoDB. Ụdị dị iche iche:

  • ọtụtụ nna ukwu;
  • megharia mmekọrịta;
  • ịgụ site na ọnụ ụzọ ọ bụla;
  • na-edekọ ọnụ ọnụ ọ bụla;
  • arụrụ arụ ọrụ HA;
  • Enwere eserese Helm sitere na Bitnami.

ỌkụkụDB

Dị ka nkọwa ahụ si kwuo, ihe ahụ bụ nnọọ bọmbụ na ọ bụ ọrụ mmeghe nke edere na Go. Onye na-eso ya bụ Cockroach Labs (ndị sitere na Google tọrọ ntọala). Emebere DBMS mmekọrịta a na mbụ ka ekesa ya (yana n'ụdị igbe dị n'ihu) yana enweghị mmejọ. Ndị dere ya sitere na ụlọ ọrụ ahụ kọwapụtara ebumnuche nke "ijikọta ịba ụba nke ọrụ SQL yana nnweta kwụ ọtọ nke ọma na ngwọta NoSQL."

Ego mara mma bụ nkwado maka protocol njikọ post-gress.

Pgpool

Nke a bụ mgbakwunye na PostgreSQL, n'ezie, ihe ọhụrụ na-eweghara njikọ niile ma hazie ha. O nwere ihe nzizi ibu nke ya na ihe nzaba, nke enyere ikike n'okpuru ikikere BSD. Ọ na-enye ohere buru ibu, mana ọ na-adịtụ egwu, n'ihi na ọnụnọ nke ụlọ ọrụ ọhụrụ nwere ike ịghọ isi iyi nke ụfọdụ ihe omume ndị ọzọ.

Onye nkwado

Nke a bụ ihe ikpeazụ anya m dakwasịrị, na, dị ka ọ tụgharịrị, ọ bụghị n'efu. Patroni bụ ihe na-emepe emepe, nke bụ Python daemon nke na-enye gị ohere idobe ụyọkọ PostgreSQL na-akpaghị aka na ụdị nsụgharị dị iche iche na mgbanwe ọrụ akpaka. Ihe ahụ tụgharịrị bụrụ ihe na-adọrọ mmasị nke ukwuu, ebe ọ na-ejikọta ya na cuber ma ọ dịghị ewebata ụlọ ọrụ ọhụrụ ọ bụla.

Kedu ihe ị họọrọ na njedebe?

Nhọrọ ahụ adịghị mfe:

  1. ỌkụkụDB - ọkụ, ma ọchịchịrị;
  2. MySQL Galera - ọ bụghịkwa ihe ọjọọ, a na-eji ya n'ọtụtụ ebe, ma MySQL;
  3. Pgpool - ọtụtụ ihe ndị na-adịghị mkpa, ya mere-mmekọrịta na igwe ojii na K8;
  4. Onye nkwado - ezigbo njikọta na K8s, enweghị ụlọ ọrụ na-adịghị mkpa, jikọtara nke ọma na GCP LB.

Ya mere, nhọrọ ahụ dabara na Patroni.

Nchoputa

Oge eruola iji chịkọta nkenke. Ee, ụwa nke akụrụngwa IT agbanweela nke ukwuu, nke a bụ naanị mmalite. Ma ọ bụrụ na tupu igwe ojii bụ ụdị akụrụngwa ọzọ, ugbu a ihe niile dị iche. Ọzọkwa, ihe ọhụrụ na ígwé ojii na-apụta mgbe niile, ha ga-apụta na, ma eleghị anya, ha ga-apụta naanị n'ígwé ojii na naanị mgbe ahụ, site na mgbalị nke mmalite, a ga-ebufe ha na ụlọ.

Maka SQL, SQL ga-adị ndụ. Nke a pụtara na ị ga-amata PostgreSQL na MySQL wee nwee ike iso ha rụọ ọrụ, mana nke ka mkpa bụ inwe ike iji ha nke ọma.

isi: www.habr.com

Tinye a comment