Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

Kia ora, e nga kainoho o Khabrovsk. Ka timata nga karaehe o te roopu tuatahi o te akoranga i tenei ra "PostgreSQL". I runga i tenei kaupapa, e hiahia ana matou ki te korero ki a koe mo te ahuatanga o te paetukutuku tuwhera mo tenei akoranga.

Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

В akoranga tuwhera e whai ake nei i korero matou mo nga wero e pa ana ki nga papaunga raraunga SQL i te wa o nga kapua me nga Kubernetes. I te wa ano, i titiro matou ki te whakarereke me te whakarereke o nga papaa raraunga SQL i raro i te awe o enei wero.

I whakahaerehia te webinar Valery Bezrukov, Google Cloud Practice Delivery Manager at EPAM Systems.

I te wa e iti ana nga rakau...

Tuatahi, kia mahara tatou me pehea i timata ai te whiriwhiringa o DBMS i te mutunga o te rau tau kua hipa. Engari, kare e uaua, na te mea i timata te whiriwhiringa o te DBMS i aua ra, ka mutu Oracle.

Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

I te mutunga o te 90s me te timatanga o te 2s, karekau he whiringa i te wa e pa ana ki nga papaunga raraunga tauineine ahumahi. Ae, i reira ko IBM DBXNUMX, Sybase me etahi atu putunga raraunga i haere mai me te haere, engari i te nuinga kaore i tino kitea ki te papamuri o Oracle. No reira, ko nga pukenga o nga miihini o era wa i herea ki te whiringa anake.

Me taea e Oracle DBA te:

  • tāuta Oracle Server mai i te kete tohatoha;
  • whirihora Oracle Server:

  • init.ora;
  • whakarongo.ora;

- hanga:

  • mokowā tepu;
  • kaupapa;
  • kaiwhakamahi;

— te mahi tārua me te whakaora;
- te mahi aroturuki;
— mahi ki nga tono suboptimal.

I te wa ano, kaore he whakaritenga motuhake mai i Oracle DBA:

  • te kaha ki te whiriwhiri i te DBMS tino pai, etahi atu hangarau ranei mo te rokiroki me te tukatuka raraunga;
  • whakarato i te waatea nui me te tauinei whakapae (kaore tenei i te take DBA i nga wa katoa);
  • te mohio pai mo te waahanga kaupapa, te hanganga, te hoahoanga tono, te OS;
  • utaina me te wetewete raraunga, whakawhiti raraunga i waenga i nga DBMS rereke.

I te nuinga o te waa, ki te korero tatou mo te whiringa i aua ra, ka rite ki te whiringa i roto i te toa Soviet i te mutunga o te 80s:

Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

To tatou wa

Mai i tera wa, kua tipu nga rakau, kua rereke te ao, kua rite ki tenei:

Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

Kua rereke ano te maakete DBMS, ka kitea mai i te purongo hou a Gartner:

Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

Na konei me tohu ko nga kapua, kei te tipu haere te rongonui, kua noho ki o raatau waahi. Mena ka panui tatou i te purongo a Gartner, ka kite tatou i nga whakatau e whai ake nei:

  1. He maha nga kaihoko kei te huarahi ki te neke tono ki te kapua.
  2. Ko nga hangarau hou ka puta tuatahi i roto i te kapua, a, ehara i te mea ka neke atu ki nga hanganga kore-kapua.
  3. Kua noho noa te tauira utu utu-rite-haere. Kei te hiahia nga tangata katoa ki te utu anake mo nga mea e whakamahia ana e ratou, a ehara tenei i te ahua, engari he korero pono.

He aha inaianei?

I tenei ra kei te kapua tatou katoa. A ko nga patai ka puta ake mo tatou he patai maataki. A he mea nui, ahakoa ka korero noa tatou mo te kowhiringa o nga hangarau DBMS i roto i te whakatakotoranga I-whare. Kei a matou ano nga ratonga whakahaere me te SaaS. No reira, ka uaua ake te whiriwhiri i ia tau.

I te taha o nga patai whiriwhiri, tera ano āhuatanga whakawhāiti:

  • utu. He maha tonu nga hangarau e utu moni ana;
  • pūkenga. Mena kei te korero tatou mo nga raupaparorohiko kore utu, ka puta ake te patai mo nga pukenga, na te mea e tika ana te mohio o te rorohiko kore utu mai i nga tangata e tuku ana, e whakahaere ana;
  • mahi. Kaore nga ratonga katoa e waatea ana i roto i te kapua me te hanga, me kii, ahakoa i runga i nga Postgres ano, he rite nga ahuatanga ki a Postgres On-premises. He take nui tenei e tika ana kia mohiohia, kia maarama. I tua atu, ka nui ake tenei take i te mohio ki etahi kaha huna o te DBMS kotahi.

He aha te tumanako mai i DA/DE inaianei:

  • te mohio pai ki te waahanga kaupapa me te hoahoanga tono;
  • te kaha ki te whiriwhiri tika i te hangarau DBMS e tika ana, me te whai whakaaro ki nga mahi kei a koe;
  • te kaha ki te whiriwhiri i te tikanga tino pai mo te whakatinana i te hangarau kua tohua i roto i te horopaki o nga here o naianei;
  • te kaha ki te mahi whakawhiti raraunga me te heke;
  • te kaha ki te whakatinana me te whakahaere i nga otinga kua tohua.

Kei raro te tauira i runga i te GCP e whakaatu ana me pehea te kowhiringa o tetahi, tetahi atu hangarau ranei mo te mahi me nga raraunga e mahi ana i runga i tona hanganga:

Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

Kia mahara ko PostgreSQL kaore i whakauruhia ki roto i te kaupapa, na te mea kei te huna i raro i nga kupu. Kapua SQL. A, ka tae ki te Cloud SQL, me whiriwhiri ano tatou:

Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

Me tohu ko tenei kowhiringa kaore i te maarama i nga wa katoa, na reira ko nga kaiwhakawhanake tono he maha nga wa e arahina ana e te mohio.

Te tapeke:

  1. Ka haere koe, ka kaha ake te patai mo te whiringa. A ahakoa ka titiro noa koe ki te GCP, nga ratonga whakahaere me te SaaS, katahi ka puta mai etahi korero mo te RDBMS i te 4th kaupae (a kei te tata a Spanner). Hei taapiri, ko te kowhiringa o te PostgreSQL ka puta i te 5th taahiraa, a kei te taha o tera ko MySQL me te SQL Server, ara. he maha nga mea katoa, engari me whiriwhiri koe.
  2. Kaua tatou e wareware ki nga here i runga i te papamuri o nga whakamatautauranga. Ko te tikanga e hiahia ana te katoa ki te Spanner, engari he utu nui. Ko te mutunga, he penei te ahua o te tono angamaheni: "Tena koa, waiho matou hei Spanner engari mo te utu o Cloud SQL, he tohunga koe!"

Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

Me aha ahau?

Ma te kore e kii ko ia te tino pono, me kii e whai ake nei:

Me whakarereke i ta tatou huarahi ki te ako:

  • kare he take ki te whakaako i te huarahi i whakaakona ai nga DBA i mua;
  • kua kore e ranea te matauranga mo te hua kotahi;
  • engari ko te mohio ki te maha i te taumata kotahi e kore e taea.

Me mohio koe ehara i te mea anake me te nui o te hua, engari:

  • whakamahi take o tona tono;
  • nga tikanga tohatoha rereke;
  • nga painga me nga huakore o ia tikanga;
  • hua rite me etahi atu hei whiriwhiri mohio me te tino pai, kaua hoki e pai ki tetahi hua mohio.

Me kaha hoki koe ki te heke raraunga me te mohio ki nga maapono taketake o te whakauru ki te ETL.

Take tuturu

I nga wa o mua, he mea tika ki te hanga i te tuara mo te tono pūkoro. I te wa i timata ai te mahi ki runga, kua oti kee te hanga o te tuara, kua reri mo te whakatinanatanga, a e rua tau te roa o te roopu whanaketanga mo tenei kaupapa. I whakaritea nga mahi e whai ake nei:

  • hanga CI/CD;
  • arotake i te hoahoanga;
  • hoatu katoa ki te mahi.

Ko te tono ake he microservices, a ko te Python/Django waehere i whakawhanakehia mai i te wahanga me te tika ki te GCP. Mo te hunga e whaaia ana, i whakaarohia e rua nga rohe - US me EU, a ka tohatohahia nga waka i roto i te Global Load balancer. Ko nga Utamahi katoa me nga uta mahi rorohiko i rere i runga i te Google Kubernetes Engine.

Mo nga raraunga, e toru nga hanganga:

  • Pupuri Kapua;
  • Toa Raraunga;
  • Cloud SQL (PostgreSQL).

Me pehea te ora i te papaa raraunga SQL i te rautau 21: kapua, Kubernetes me PostgreSQL multimaster

Ka miharo pea tetahi he aha te Cloud SQL i whiriwhiria? Ki te korero pono, na tenei patai he ahua ohorere i roto i nga tau tata nei - he whakaaro kua whakama te tangata ki nga papaunga korero hononga, engari ka kaha tonu te whakamahi ;-).

Mo ta matou keehi, i whiriwhiria a Cloud SQL mo nga take e whai ake nei:

  1. Ka rite ki te korero, i whakawhanakehia te tono ma te whakamahi i a Django, a he tauira mo te mapi i nga raraunga tohe mai i te papaaarangi SQL ki nga taonga Python (Django ORM).
  2. I tautokohia e te angamahi he rarangi tino iti o nga DBMS:

  • PostgreSQL;
  • MariaDB;
  • MySQL;
  • kupu korero;
  • SQLite.

No reira, i kowhiria a PostgreSQL mai i tenei rarangi ma te maarama (kaore, ehara ma Oracle te whiriwhiri, tino).

He aha i ngaro:

  • Ko te tono i tukuna i roto i nga rohe e 2 anake, a ko te tuatoru i puta mai i nga mahere (Ahia);
  • Kei te rohe o Amerika Te Taitokerau (Iowa) te putunga raraunga;
  • i runga i te taha o te kaihoko ko nga awangawanga e taea ana whakaroa uru mai i Uropi me Ahia me aukatinga i roto i te taviniraa i roto i te take o te DBMS downtime.

Ahakoa te mea ka taea e Django ake te mahi me te maha o nga papaa raraunga i roto i te whakarara me te wehewehe ki te panui me te tuhi, kaore i tino nui te tuhi i roto i te tono (neke atu i te 90% kei te panui). A i roto i te whānui, me te whānui, ki te taea ki te mahi panui-whakarite o te turanga matua i Uropi me Ahia, he otinga whakararu tenei. Ana, he aha te mea tino uaua?

Ko te uaua ko te kore te kaihoko i hiahia ki te whakarere i te whakamahi i nga ratonga whakahaere me te Cloud SQL. A ko nga kaha o Cloud SQL he iti i tenei wa. Ka tautokohia e Cloud SQL te waatea teitei (HA) me te Panui Panui (RR), engari ko te RR ano e tautokohia ana i te rohe kotahi. I te mea kua hangahia e koe he putunga korero i te rohe o Amerika, kaore e taea e koe te hanga tauira panui ki te rohe Pakeha ma te whakamahi i te Cloud SQL, ahakoa kaore a Postgres e aukati i a koe ki te mahi i tenei. Ko nga reta korero me nga kaimahi a Google kaore i ahu mai ki hea ka mutu me nga kupu oati penei "e mohio ana matou ki te raru me te mahi ki runga, hei tetahi ra ka whakatauhia te take."

Mena ka whakarārangihia e matou nga kaha o Cloud SQL poto, ka penei te ahua:

1. Tino wātea (HA):

  • i roto i te rohe kotahi;
  • mā te tārua kōpae;
  • Kaore e whakamahia nga miihini PostgreSQL;
  • ka taea te whakahaere aunoa me te a-ringa - failover/failback;
  • Ina huri ana, karekau te DBMS i te waatea mo etahi meneti.

2. Panui Panui (RR):

  • i roto i te rohe kotahi;
  • tūtatari wera;
  • PostgreSQL tukurua rerenga.

I tua atu, ka rite ki te tikanga, i te wa e whiriwhiri ana koe i tetahi hangarau ka pa ki etahi herenga:

  • kaore te kaihoko i hiahia ki te hanga hinonga me te whakamahi IaaS, engari ma te GKE;
  • kare te kaihoko e pai ki te tuku ratonga whaiaro PostgreSQL/MySQL;
  • Ae, i te nuinga o te waa, ka tino pai a Google Spanner mena kaore i te utu, heoi, kaore e taea e Django ORM te mahi, engari he mea pai.

Ma te whakaaro ki te ahuatanga, ka whiwhi te kaihoko i tetahi patai whai muri: "Ka taea e koe te mahi penei kia rite ki a Google Spanner, engari ka mahi tahi me Django ORM?"

Kōwhiringa otinga Nama 0

Ko te mea tuatahi i puta ki te hinengaro:

  • noho ki roto CloudSQL;
  • karekau he tukurua-a-roto i waenganui i nga rohe ahakoa te ahua;
  • ngana ki te whakapiri i tetahi tauira ki tetahi Cloud SQL na PostgreSQL;
  • whakarewahia he tauira PostgreSQL ki tetahi waahi me te aha, engari kaua rawa e pa ki te rangatira.

Aue, i puta mai kaore e taea tenei, no te mea kaore he uru ki te kaihautu (kei roto i te kaupapa rereke katoa) - pg_hba me etahi atu, kaore ano hoki he uru ki raro i te superuser.

Kōwhiringa otinga Nama 1

Whai muri i nga whakaaro huritao me te whai whakaaro ki nga ahuatanga o mua, ka rereke te ahua o te whakaaro:

  • Kei te ngana tonu matou ki te noho ki roto CloudSQL, engari kei te huri matou ki MySQL, na te mea he rangatira o waho a Cloud SQL na MySQL, e:

— he takawaenga mo MySQL waho;
- he tauira MySQL te ahua;
- he mea hanga mo te heke raraunga mai i etahi atu kapua, i runga-whare ranei.

I te mea ko te whakatu i te tukurua MySQL kaore e hiahiatia te uru atu ki te kaihautu, i roto i te maapono i mahi nga mea katoa, engari he tino koretake me te ngawari. A, i to maatau haere atu, ka tino mataku, na te mea i tukuna e matou te katoa o te hanganga me te terraform, katahi ka puta ko te rangatira o waho kaore i tautokohia e te terraform. Ae, he CLI a Google, engari mo etahi take ka mahi nga mea katoa i konei i tenei wa - i etahi wa ka hangaia, i etahi wa kaore i hangaia. Akene na te mea i hangaia te CLI mo te hekenga raraunga o waho, kaua mo nga tauira.

Inaa, i tenei wa ka maarama ko Cloud SQL kaore i te pai. I a ratou e kii ana, i mahia e matou nga mea katoa ka taea e matou.

Kōwhiringa otinga Nama 2

I te mea kaore i taea te noho ki roto i te angamahi Cloud SQL, i ngana matou ki te whakatakoto whakaritenga mo te otinga whakararu. Ko nga whakaritenga i puta ko enei e whai ake nei:

  • mahi i roto i nga Kubernetes, te whakamahi nui o nga rauemi me nga kaha o Kubernetes (DCS, ...) me te GCP (LB, ...);
  • te kore o te paera mai i te tini o nga mea kore i roto i te kapua penei i te takawaenga HA;
  • te kaha ki te whakahaere i te PostgreSQL, i te MySQL ranei i te rohe HA matua; i etahi atu rohe - HA mai i te RR o te rohe matua me tana kape (mo te pono);
  • ariki maha (Kaore au i pai ki te whakapiri atu ki a ia, engari ehara i te mea tino nui)

.
Ko te hua o enei tono, whDBMS tika me nga whiringa here:

  • MySQL Galera;
  • CockroachDB;
  • Nga taputapu PostgreSQL

:
- pgpool-II;
— Patroni.

MySQL Galera

I whakawhanakehia te hangarau MySQL Galera e Codership he mono mo InnoDB. Nga mea motuhake:

  • ariki maha;
  • tukurua tukutahi;
  • te panui mai i tetahi pona;
  • tuhi ki tetahi node;
  • hanga-i roto i te tikanga HA;
  • He tūtohi Helm mai i Bitnami.

KaokaoDB

E ai ki te whakaahuatanga, he tino poma te mea, he kaupapa tuwhera tuwhera kua tuhia ki te Haere. Ko te kaiuru matua ko Cockroach Labs (i hangaia e nga tangata mai i a Google). Ko tenei DBMS hononga i hangaia i te tuatahi kia tohatohahia (me te whakamaarama whakapae i waho o te pouaka) me te kore he he. Ko ona kaituhi mai i te kamupene i whakaatu te whainga o te "whakakotahi i te kaha o te mahi SQL me te urunga whakapae e mohio ana ki nga otinga NoSQL."

Ko te bonus pai ko te tautoko mo te kawa hononga post-gress.

Pgpool

He taapiri tenei ki te PostgreSQL, me te mea, he hinonga hou e whakahaere ana i nga hononga katoa me te tukatuka. Kei a ia ano tana taurite kawenga me te parser, kua raihanatia i raro i te raihana BSD. He maha nga whai waahi, engari he ahua whakamataku te ahua, na te mea ko te noho mai o tetahi hinonga hou ka waiho hei puna mo etahi atu haerenga.

Patroni

Ko te mea whakamutunga tenei i pa atu oku kanohi, a, i te mea i puta mai, ehara i te mea mokemoke. Ko te Patroni he taputapu puna tuwhera, he tika te Python daemon e taea ai e koe te pupuri aunoa i nga tautau PostgreSQL me nga momo momo tukurua me te whakawhiti mahi aunoa. Ko te mea i puta he tino pai, na te mea he pai te whakauru ki te cuber me te kore e whakauru i nga hinonga hou.

He aha i whiriwhiria e koe i te mutunga?

Ehara i te mea ngawari te whiringa:

  1. KaokaoDB - he ahi, engari he pouri;
  2. MySQL Galera - kaore hoki i te kino, ka whakamahia i nga waahi maha, engari ko MySQL;
  3. Pgpool — te maha o nga hinonga koretake, na te whakakotahitanga me te kapua me nga K8;
  4. Patroni - he pai te whakauru ki nga K8, kaore he hinonga kore, he pai te whakauru ki te GCP LB.

No reira, ka taka te whiringa ki runga i a Patroni.

kitenga

Kua tae ki te wa poto. Ae, kua tino rerekee te ao o nga hanganga IT, he timatanga noa iho tenei. A, ki te mea i mua ko nga kapua he momo hanganga noa, inaianei kua rereke nga mea katoa. I tua atu, ko nga mea hou i roto i nga kapua kei te puta tonu, ka puta mai, ka puta pea, ka puta noa i roto i nga kapua katahi ano, ma te kaha o nga tiimata, ka whakawhitia ki runga-whare.

Mo SQL, ka ora a SQL. Ko te tikanga me mohio koe ki te PostgreSQL me MySQL me te kaha ki te mahi ki a raatau, engari ko te mea nui ko te kaha ki te whakamahi tika.

Source: will.com

Tāpiri i te kōrero