Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

Talofa, tagata o Khabrovsk. O vasega i le vaega muamua o le kosi e amata i le aso "PostgreSQL". I lenei tulaga, matou te fia taʻu atu ia te oe le auala na faia ai le webinar tatala i lenei vasega.

Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

В le isi lesona tatala sa matou talanoa e uiga i luitau o loʻo feagai ma faʻamaumauga SQL i le vaitau o ao ma Kubernetes. I le taimi lava e tasi, na matou vaʻavaʻai pe faʻafefea ona fetuutuunaʻi ma fesuiaʻi faʻamaumauga a SQL i lalo o le aʻafiaga o nei luitau.

Sa faia le webinar Valery Bezrukov, Google Cloud Practice Delivery Manager i le EPAM Systems.

A o laiti laau...

Muamua, tatou manatua pe na faapefea ona amata le filifiliga o le DBMS i le faaiuga o le seneturi talu ai. Ae ui i lea, o le a le faigata lenei mea, aua o le filifiliga o se DBMS i na aso na amata ma maeʻa Oracle.

Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

I le fa'ai'uga o le 90s ma le amataga o le 2s, e leai lava se filifiliga pe a o'o mai i fa'amaumauga tau alamanuia. Ioe, sa i ai IBM DBXNUMX, Sybase ma isi faʻamaumauga na oʻo mai ma alu, ae i se tulaga lautele latou te leʻi iloa tele i tua o Oracle. E tusa ai ma lea, o tomai o inisinia o na taimi sa noatia i le filifiliga e tasi sa i ai.

Oracle DBA e tatau ona mafai ona:

  • faʻapipiʻi Oracle Server mai le pusa tufatufa;
  • fetuutuunai Oracle Server:

  • init.ora;
  • listener.ora;

- faia:

  • avanoa laulau;
  • fuafuaga;
  • tagata fa'aoga;

- faia faʻamaumauga ma toe faʻaleleia;
- faia le mataituina;
- feagai ma talosaga suboptimal.

I le taimi lava e tasi, e leai se manaʻoga faʻapitoa mai Oracle DBA:

  • mafai ona filifili le DBMS sili ona lelei poʻo isi tekinolosi mo le teuina ma le faʻaogaina o faʻamaumauga;
  • tu'uina atu avanoa maualuga ma fa'ata'atia fa'alava (e le'o taimi uma o se fa'afitauli DBA);
  • malamalama lelei i le mataupu autu, atinaʻe, fausaga faʻaoga, OS;
  • uta ma la'u fa'amaumauga, femalaga'i fa'amatalaga i le va o DBMS eseese.

I se tulaga lautele, afai tatou te talanoa e uiga i le filifiliga i na aso, e pei o le filifiliga i se faleoloa Soviet i le faaiuga o le 80s:

Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

O tatou taimi

Talu mai lena taimi, ioe, ua ola laau, ua suia le lalolagi, ma ua avea ma se mea faapenei:

Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

Ua suia foi le maketi DBMS, e pei ona mafai ona iloa manino mai le lipoti lata mai mai Gartner:

Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

Ma o iinei e tatau ona maitauina o ao, o loʻo faʻatupulaia lona lauiloa, ua nofoia lo latou faʻailoga. Afai tatou te faitau i le lipoti lava lea a Gartner, o le a tatou vaʻai i faʻaiuga nei:

  1. O le tele o tagata fa'atau o lo'o i luga o le ala e fa'anofo ai talosaga i le ao.
  2. O tekonolosi fou e faʻaalia muamua i le ao ma e le o se mea moni o le a latou agai atu i atinaʻe e le o ni ao.
  3. O le faʻataʻitaʻiga o le tau o le totogi-e-alu ua avea ma mea masani. E manaʻo tagata uma e totogi naʻo mea latou te faʻaaogaina, ma e le o se aga, ae na o se faʻamatalaga o le mea moni.

Ae faapefea nei?

O le asō ua tatou i ai uma i le ao. Ma o fesili e tulai mai mo i tatou o fesili o filifiliga. Ma e tele, e tusa lava pe tatou te talanoa e uiga i le filifiliga o tekinolosi DBMS i luga ole faatulagaga. E iai fo'i a matou auaunaga fa'atautaia ma SaaS. O le mea lea, o le filifiliga e sili atu ona faigata i tausaga uma.

Faatasi ai ma fesili o filifiliga, e iai foi fa'atapula'aina mea:

  • le tau. O le tele o tekinolosi o loʻo faʻaalu pea tupe;
  • tomai. Afai tatou te talanoa e uiga i polokalama e leai se totogi, ona tulaʻi mai lea o le fesili o tomai, talu ai e manaʻomia e le free software le agavaa mai tagata o loʻo faʻapipiʻiina ma faʻaaogaina;
  • aoga. E le o auaunaga uma o loʻo maua i le ao ma fausia, fai mai, e oʻo lava i luga o le Postgres tutusa, e tutusa foliga tutusa ma Postgres On-premises. O se vaega taua lea e tatau ona iloa ma malamalama. E le gata i lea, o lenei mea e sili atu le taua nai lo le malamalama i nisi o gafatia natia o se DBMS e tasi.

O le a le mea o loʻo faʻamoemoeina mai le DA / DE i le taimi nei:

  • malamalama lelei i le mataupu ma le faʻatulagaina o faʻaoga;
  • le mafai ona filifili saʻo le tekonolosi DBMS talafeagai, faʻatatau i le galuega o loʻo i ai;
  • le mafai ona filifili le auala sili ona lelei mo le faʻatinoina o tekinolosi filifilia i le tulaga o tapulaʻa o loʻo iai;
  • mafai ona faatino le fesiitaiga ma femalagaiga;
  • agava'a e fa'atino ma fa'agaoioi fofo filifilia.

Fa'ata'ita'iga i lalo fa'avae ile GCP fa'aalia pe fa'apefea ona galue le filifiliga o se tasi po'o se isi tekonolosi mo le galue ma fa'amaumauga e fa'atatau i lona fausaga:

Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

Faamolemole ia matau o le PostgreSQL e le o aofia i le fuafuaga, ma e mafua ona e natia i lalo o faaupuga. Ao SQL. Ma a tatou oʻo i le Cloud SQL, e tatau ona tatou toe faia se filifiliga:

Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

E tatau ona maitauina o lenei filifiliga e leʻo manino i taimi uma, o le mea lea e masani ona taʻitaʻia e le aufaipisinisi talosaga e le malamalama.

Aofai:

  1. O le mamao e te alu ai, o le tele foi lena o le fetaomi atu o le fesili o le filifiliga. Ma e tusa lava pe e te vaʻai naʻo le GCP, faʻatautaia auaunaga ma SaaS, o nisi o taʻua o le RDBMS e faʻaalia i le laasaga lona 4 (ma o loʻo lata ane Spanner). Ma le isi, o le filifiliga a le PostgreSQL o loʻo faʻaalia i le laasaga 5, ma i tafatafa o loʻo i ai foi MySQL ma SQL Server, o lona uiga. e tele mea uma, ae e tatau ona e filifili.
  2. E le tatau ona galo ia i tatou tapulaa e faasaga i le talaaga o faaosoosoga. E mana'o tagata uma i se Spanner, ae e taugata. O se taunuuga, o se talosaga masani e foliga mai e pei o lenei: "Faamolemole fai matou ma Spanner ae mo le tau o Cloud SQL, o oe o tagata tomai!"

Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

O le a se mea oute faia?

A aunoa ma le fai mai o le mea moni sili, sei tatou fai atu mea nei:

E tatau ona suia la tatou auala i le aoaoina:

  • e leai se aoga o le aoaoina o le auala na aoaoina ai DBA muamua;
  • ua le lava le malamalama i se oloa e tasi;
  • ae o le iloaina o le tele i le tulaga o le tasi e le mafai.

E tatau ona e iloa e le gata ma e le gata i le tele o le oloa, ae:

  • fa'aoga tulaga o lona fa'aogaina;
  • auala eseese faʻapipiʻi;
  • itu lelei ma le le lelei o metotia taitasi;
  • oloa tutusa ma isi mea e fai ai se filifiliga atamai ma sili ona lelei ae le o taimi uma e fiafia ai i se oloa masani.

E manaʻomia foʻi le mafai ona e faimalaga faʻamatalaga ma malamalama i mataupu faavae o le tuʻufaʻatasia ma le ETL.

Tulaga moni

I le taimi ua tuanaʻi talu ai nei, sa manaʻomia le faia o se pito i tua mo se telefoni feaveaʻi. E oo atu i le taimi na amata ai galuega, ua uma ona fausia le pito i tua ma ua sauni mo le faʻatinoga, ma na faʻaalu e le au atinaʻe le tusa ma le lua tausaga i lenei poloketi. O galuega nei na fa'atulaga:

  • fausia CI/CD;
  • toe iloilo le fausaga;
  • fa'atino uma.

O le talosaga lava ia o microservices, ma o le Python / Django code na atiae mai le sasa ma tuusao i le GCP. Ae mo le au maimoa, na manatu o le ai ai ni itulagi se lua - US ma EU, ma fefaʻatauaʻiga na tufatufa atu i le Global Load balancer. O Galuega uma ma le fa'atulagaina o galuega sa fa'aoga ile Google Kubernetes Engine.

Ae mo faʻamaumauga, e 3 fausaga:

  • Teuga o Ao;
  • Fa'amaumauga;
  • Cloud SQL (PostgreSQL).

Faʻafefea ona ola i se database SQL i le 21st seneturi: ao, Kubernetes ma PostgreSQL multimaster

Atonu e mafaufau se tasi pe aisea na filifilia ai Cloud SQL? I le taʻuina atu o le mea moni, o sea fesili na mafua ai se ituaiga o taofi le lelei i tausaga talu ai - o loʻo i ai se lagona ua matamumuli tagata e uiga i faʻamaumauga o fesoʻotaʻiga, ae ui i lea o loʻo faʻaauau pea ona latou faʻaaogaina ;-).

Ae mo la matou mataupu, na filifilia Cloud SQL mo mafuaaga nei:

  1. E pei ona taʻua, o le talosaga na fausia e faʻaaoga ai Django, ma o loʻo i ai se faʻataʻitaʻiga mo le faʻatulagaina o faʻamaumauga tumau mai se database SQL i mea Python (Django ORM).
  2. O le faʻavae lava ia na lagolagoina se lisi faʻatapulaʻaina o DBMSs:

  • PostgreSQL;
  • MariaDB;
  • MySQL;
  • lauga;
  • SQLite

E tusa ai ma lea, PostgreSQL na filifilia mai lenei lisi nai lo le faʻaogaina (lelei, e le o Oracle e filifili, moni).

O le a le mea na misi:

  • o le talosaga na faʻapipiʻiina i na o le 2 itulagi, ma le lona 3 na faʻaalia i fuafuaga (Asia);
  • O le fa'amaumauga sa tu i le itu i Matu Amerika (Iowa);
  • i le vaega a le tagata fa'atau sa i ai ni atugaluga e mafai avanoa tuai mai Europa ma Asia ma fa'alavelave i le auaunaga i le tulaga o le DBMS downtime.

E ui lava i le mea moni e mafai e Django lava ia ona galue ma le tele o faʻamaumauga e tutusa ma vaevaeina i latou i le faitau ma le tusitusi, e leʻi tele naua tusitusiga i le talosaga (sili atu i le 90% o loʻo faitau). Ma i se tulaga lautele, ma i se tulaga lautele, pe a mafai ona fai faitau-faatusa o le faavae autu i Europa ma Asia, o le a avea lea ma se fofo fetuunai. Ia, o le a le lavelave tele?

O le faigata ona e le manaʻo le tagata faʻatau e fiu i le faʻaaogaina o auaunaga faʻatautaia ma Cloud SQL. Ma o le gafatia o Cloud SQL o loʻo faʻatapulaʻa nei. E lagolagoina e le Cloud SQL le avanoa maualuga (HA) ma le Read Replica (RR), ae o le RR lava e tasi e lagolagoina i le tasi itulagi. I le faia o se faʻamaumauga i le itulagi o Amerika, e le mafai ona e faia se kopi faitau i le itulagi Europa e faʻaaoga ai Cloud SQL, e ui lava e le taofia oe e Postgres mai le faia o lenei mea. O fesoʻotaʻiga ma tagata faigaluega Google e leai se mea na taʻitaʻia ma faʻaiʻu i folafolaga i le faiga o le "matou te iloa le faʻafitauli ma o loʻo galulue i ai, e i ai se aso o le a foia ai le mataupu."

Afai matou te lisiina faʻapuupuu le gafatia o Cloud SQL, o le a foliga faʻapea:

1. Avanoa maualuga (HA):

  • i totonu o le itulagi e tasi;
  • e ala i le kopi kopi;
  • PostgreSQL afi e le faʻaaogaina;
  • otometi ma le fa'atonuga fa'atonu e mafai - failover/faillback;
  • A sui, e le avanoa le DBMS mo ni nai minute.

2. Faitau Fa'atusa (RR):

  • i totonu o le itulagi e tasi;
  • tutu vevela;
  • PostgreSQL toe faʻasalalau.

E le gata i lea, e pei ona masani ai, pe a filifilia se tekinolosi e masani ona e feagai ma nisi tapula'a:

  • e le'i mana'o le tagata fa'atau e fai fa'alapotopotoga ma fa'aoga IaaS, se'i vagana ai le GKE;
  • e le mana'o le tagata fa'atau e fa'aogaina le auaunaga a le tagata lava ia PostgreSQL/MySQL;
  • Ia, i se tulaga lautele, Google Spanner o le a fetaui lelei pe ana le o lona tau, ae ui i lea, e le mafai e Django ORM ona galue i ai, ae o se mea lelei.

Mafaufau i le tulaga, na maua e le tagata faʻatau se fesili tulitatao: "E mafai ona e faia se mea faapena ina ia pei o Google Spanner, ae e galue foi ma Django ORM?"

Filifiliga fofo Nu. 0

O le mea muamua na sau i lou mafaufau:

  • nofo i totonu CloudSQL;
  • o le a leai se toe faia i totonu i le va o itulagi i soo se ituaiga;
  • taumafai e fa'apipi'i se fa'atusa i se Cloud SQL o lo'o iai e le PostgreSQL;
  • faʻalauiloa se PostgreSQL faʻataʻitaʻiga i se mea ma i se isi itu, ae o le mea sili aua le paʻi i le matai.

Ae paga lea, na foliga mai e le mafai ona faia lenei mea, aua e leai se avanoa i le talimalo (o loʻo i totonu o se galuega eseʻese atoa) - pg_hba ma isi, ma e leai foi se avanoa i lalo o le superuser.

Filifiliga fofo Nu. 1

Ina ua uma ona toe manatunatu atili ma mafaufau i tulaga na i ai muamua, sa fai si suiga o le faasologa o mafaufauga:

  • O loʻo matou taumafai pea e nofo i totonu o CloudSQL, ae o loʻo matou fesuiaʻi i MySQL, aua o le Cloud SQL e MySQL o loʻo i ai se matai fafo, lea:

- o se sui mo MySQL fafo;
- foliga mai o se MySQL faʻataʻitaʻiga;
- faia mo le femalaga'iga fa'amatalaga mai isi ao po'o I luga ole fale.

Talu ai ona o le setiina o le MySQL replication e le manaʻomia le avanoa i le talimalo, i le mataupu faavae na aoga mea uma, ae sa matua le mautonu ma le talafeagai. Ma ina ua matou agai i luma, sa matua fefe lava, aua sa matou faʻapipiʻiina le fausaga atoa ma le terraform, ma na faʻafuaseʻi ona aliali mai e leʻi lagolagoina le matai fafo e le terraform. Ioe, Google e iai le CLI, ae mo nisi mafuaʻaga na galue ai mea uma iinei i lea taimi ma lea taimi - o nisi taimi e faia, o nisi taimi e leʻi faia. Masalo ona o le CLI na fatuina mo femalagaiga i fafo, ae le mo faʻataʻitaʻiga.

O le mea moni, i le taimi nei na manino mai e le talafeagai le Cloud SQL. E pei ona latou fai mai, sa matou faia mea uma matou te mafaia.

Filifiliga fofo Nu. 2

Talu ai sa le mafai ona tumau i totonu o le Cloud SQL framework, sa matou taumafai e faʻatulaga manaʻoga mo se fofo fetuunai. O mea e manaʻomia na faʻaalia o mea nei:

  • galue i Kubernetes, fa'aoga maualuga o punaoa ma gafatia o Kubernetes (DCS, ...) ma le GCP (LB, ...);
  • leai se paluga mai le tele o mea e le manaʻomia i le ao e pei o le sui sui HA;
  • le mafai ona faʻatautaia PostgreSQL poʻo MySQL i le itulagi autu HA; i isi itulagi - HA mai le RR o le itulagi autu fa'atasi ai ma lana kopi (mo le fa'amaoni);
  • multi master (Ou te leʻi manaʻo e faʻafesoʻotaʻi o ia, ae e leʻi taua tele)

.
O se taunuuga o nei manaoga, iDBMS talafeagai ma filifiliga fusifusia:

  • MySQL Galera;
  • CokroachDB;
  • PostgreSQL meafaigaluega

:
- pgpool-II;
— Patroni.

MySQL Galera

MySQL Galera tekinolosi na atiina ae e Codership ma o se plugin mo InnoDB. Tulaga uiga ese:

  • matai tele;
  • kopi fa'atasi;
  • faitau mai so'o se node;
  • pueina i soo se node;
  • ua fausia i totonu HA masini;
  • O loʻo i ai se siata Helm mai Bitnami.

moaDB

E tusa ai ma le faʻamatalaga, o le mea e matuaʻi pomu ma o se faʻamatalaga tatala punaoa na tusia i le Go. O le sui autu o le Cockroach Labs (faʻavaeina e tagata mai Google). O lenei sootaga DBMS na muai fuafuaina ina ia tufatufa atu (fa'atasi ai ma le fa'alava fa'alava i fafo o le pusa) ma fa'apalepale sese. O ana tusitala mai le kamupani na faʻamatalaina le sini o le "tuʻufaʻatasia o le tamaoaiga o le SQL galuega faʻatasi ma le faʻaogaina faʻasalalau masani i fofo NoSQL."

O se ponesi manaia o le lagolago mo le faʻasologa o fesoʻotaʻiga post-gress.

pgpool

O se faʻaopoopoga lea i le PostgreSQL, o le mea moni, o se faʻalapotopotoga fou e faʻaogaina uma fesoʻotaʻiga ma faʻagasolo. E iai lana lava load balancer ma parser, laiseneina i lalo ole laisene BSD. E maua ai le tele o avanoa, ae foliga fa'afefe, aua o le i ai o se vaega fou e mafai ona avea ma fa'apogai o nisi fa'alavelave fa'aopoopo.

Patroni

O le mea mulimuli lea na pa'u i ai o'u mata, ma, e pei ona i ai, e le o le aoga. Patroni o se faʻaoga faʻapitoa, o le Python daemon lea e mafai ai e oe ona otometi le tausia o le PostgreSQL fuifui faʻatasi ai ma ituaiga eseese o faʻasologa ma suiga otometi. O le mea na foliga mai e matua manaia lava, talu ai e tuʻufaʻatasia lelei ma le cuber ma e le faʻaalia ai ni mea fou.

O le a le mea na e filifilia i le faaiuga?

Sa le faigofie le filifiliga:

  1. moaDB - afi, ae pogisa;
  2. MySQL Galera - e le leaga foi, e faʻaaogaina i le tele o nofoaga, ae o MySQL;
  3. pgpool - le tele o faʻalapotopotoga e le manaʻomia, faʻatasi ma le ao ma K8s;
  4. Patroni - lelei fa'atasi ma K8s, leai ni fa'alapotopotoga e le mana'omia, fa'atasi lelei ma le GCP LB.

O lea, o le filifiliga na pau ia Patroni.

sailiiliga

Ua oo i le taimi e aotele puupuu ai. Ioe, o le lalolagi o atinaʻe IT ua matua suia, ma o le amataga lea. Ma afai muamua o ao na o se isi ituaiga o atinaʻe, o lea ua ese mea uma. E le gata i lea, o mea fou i ao o loʻo faʻaalia i taimi uma, o le a faʻaalia ma, masalo, o le a faʻaalia na o ao ma naʻo le taimi lena, e ala i taumafaiga a le amataga, o le a latou faʻafeiloaʻi i luga ole nofoaga.

Ae mo SQL, o le a ola SQL. O lona uiga e tatau ona e iloa PostgreSQL ma MySQL ma mafai ona galulue faʻatasi ma i latou, ae sili atu le taua o le mafai ona faʻaoga saʻo.

puna: www.habr.com

Faaopoopo i ai se faamatalaga