Halo, luchd-còmhnaidh Khabrovsk. Bidh clasaichean sa chiad bhuidheann den chùrsa a’ tòiseachadh an-diugh
В
Chaidh an webinar a chumail
Nuair a bha na craobhan beag...
An toiseach, cuimhnicheamaid mar a thòisich an roghainn DBMS aig deireadh na linn mu dheireadh. Ach, cha bhith seo duilich, oir thòisich agus chrìochnaich taghadh DBMS anns na làithean sin Oracle.
Aig deireadh nan 90n agus tràth sna 2n, cha mhòr nach robh roghainn ann nuair a thig e gu stòran-dàta scalable gnìomhachais. Bha, bha IBM DBXNUMX, Sybase agus cuid de stòran-dàta eile a thàinig agus a 'dol, ach san fharsaingeachd cha robh iad cho follaiseach an aghaidh cùl-raon Oracle. Mar sin, bha sgilean innleadairean aig na h-amannan sin ann an dòigh air choreigin ceangailte ris an aon roghainn a bha ann.
Dh'fheumadh Oracle DBA a bhith comasach air:
- stàlaich Oracle Server bhon ghoireas sgaoilidh;
- rèiteachadh Oracle Server:
- init.ora;
- èisdeachd.ora;
- cruthaich:
- bùird;
- sgeamaichean;
- luchd-cleachdaidh;
- dèan cùl-taic agus ath-nuadhachadh;
- sgrùdadh a dhèanamh;
- dèiligeadh ri iarrtasan suboptimal.
Aig an aon àm, cha robh riatanas sònraichte ann bho Oracle DBA:
- a bhith comasach air an DBMS no teicneòlas eile as fheàrr a thaghadh airson stòradh agus giullachd dàta;
- thoir seachad ruigsinneachd àrd agus scalability còmhnard (cha robh seo an-còmhnaidh na chùis DBA);
- eòlas math air an raon cuspair, bun-structar, ailtireachd tagraidh, OS;
- luchdaich is dì-luchdaich dàta, imrich dàta eadar diofar DBMS.
San fharsaingeachd, ma bhios sinn a 'bruidhinn mun roghainn anns na làithean sin, tha e coltach ris an roghainn ann an stòr Sòbhieteach aig deireadh nan 80an:
An ùine againn
Bhon uairsin, gu dearbh, tha na craobhan air fàs, tha an saoghal air atharrachadh, agus thàinig e gu bhith na rudeigin mar seo:
Tha margaidh DBMS air atharrachadh cuideachd, mar a chithear gu soilleir bhon aithisg as ùire bho Gartner:
Agus an seo bu chòir a thoirt fa-near gu bheil na sgòthan, aig a bheil fèill a 'fàs, air a bhith a' fuireach anns an àite aca. Ma leugh sinn an aon aithisg Gartner, chì sinn na co-dhùnaidhean a leanas:
- Tha mòran de luchd-ceannach air an t-slighe gu bhith a’ gluasad thagraidhean chun sgòth.
- Bidh teicneòlasan ùra a’ nochdadh an toiseach san sgòth agus chan eil e na fhìrinn gun gluais iad gu bràth gu bun-structar neo-sgòthan.
- Tha am modail prìsean pàighidh mar a thèid thu air fàs cumanta. Tha a h-uile duine ag iarraidh pàigheadh a-mhàin airson na tha iad a 'cleachdadh, agus chan e eadhon gluasad a tha seo, ach dìreach aithris fìrinn.
Dè a-nis?
An-diugh tha sinn uile san sgòth. Agus tha na ceistean a tha ag èirigh dhuinn nan ceistean roghainn. Agus tha e fìor mhòr, eadhon ged nach bruidhinn sinn ach mu dheidhinn an roghainn de theicneòlasan DBMS ann an cruth On-premises. Tha sinn cuideachd air seirbheisean a riaghladh agus SaaS. Mar sin, bidh an roghainn a-mhàin a 'fàs nas duilghe gach bliadhna.
Còmhla ri ceistean mu roghainn, tha cuideachd factaran cuibhreachaidh:
- a 'phrìs. Tha mòran theicneòlasan fhathast a 'cosg airgead;
- sgilean. Ma tha sinn a’ bruidhinn mu dheidhinn bathar-bog an-asgaidh, tha ceist sgilean ag èirigh, leis gu bheil feum aig bathar-bog an-asgaidh air comas gu leòr bho na daoine a bhios ga chleachdadh agus ga ruith;
- gnìomh. Chan eil a h-uile seirbheis a tha ri fhaighinn san sgòth agus air a thogail, can, eadhon air an aon Postgres, aig a bheil na h-aon fheartan ri Postgres On-premises. Tha seo na fheart riatanach a dh’ fheumar a thuigsinn agus a thuigsinn. A bharrachd air an sin, bidh am bàillidh seo a’ fàs nas cudromaiche na eòlas air cuid de chomasan falaichte aon DBMS.
Na thathar an dùil bho DA/DE a-nis:
- tuigse mhath air an raon cuspair agus ailtireachd tagraidh;
- an comas an teicneòlas DBMS iomchaidh a thaghadh gu ceart, a’ toirt aire don obair a tha ri làimh;
- an comas an dòigh as fheàrr a thaghadh airson an teicneòlas taghte a bhuileachadh ann an co-theacsa nan crìochan a th’ ann;
- comas gluasad dàta agus imrich a dhèanamh;
- comas fuasglaidhean taghte a bhuileachadh agus obrachadh.
Gu h-ìosal eisimpleir stèidhichte air GCP a’ sealltainn mar a tha an roghainn de theicneòlas aon no tè eile airson obrachadh le dàta ag obair a rèir an structair aige:
Thoir an aire nach eil PostgreSQL air a ghabhail a-steach san sgeama, agus tha seo air sgàth gu bheil e falaichte fon bhriathrachas Cloud SQL. Agus nuair a ruigeas sinn Cloud SQL, feumaidh sinn roghainn a dhèanamh a-rithist:
Bu chòir a thoirt fa-near nach eil an roghainn seo an-còmhnaidh soilleir, agus mar sin bidh luchd-leasachaidh tagraidh gu tric air an stiùireadh le intuition.
Iomlan:
- Mar as fhaide a thèid thu, is ann as cudromaiche a thig ceist an roghainn. Agus eadhon ged a choimheadas tu air GCP a-mhàin, seirbheisean fo stiùir agus SaaS, tha beagan iomradh air RDBMS a’ nochdadh dìreach aig a’ cheum 4th (agus an sin tha Spanner faisg air làimh). A bharrachd air an sin, tha an roghainn PostgreSQL a ’nochdadh anns a’ cheum 5th, agus ri thaobh tha MySQL agus SQL Server cuideachd, is e sin tha tòrr a h-uile càil ann, ach feumaidh tu taghadh.
- Cha bu chòir dhuinn dìochuimhneachadh mu chuingealachaidhean an aghaidh cùl-raon de bhuaireadh. Gu bunaiteach tha a h-uile duine ag iarraidh Spanner, ach tha e daor. Mar thoradh air an sin, tha iarrtas àbhaisteach a 'coimhead rudeigin mar seo: “Feuch an dèan thu Spanner dhuinn ach airson prìs Cloud SQL, tha thu nad phroifeiseantaich!”
Dè bu chòir dhomh a dhèanamh?
Gun a bhith ag ràdh gur e seo an fhìrinn mu dheireadh, canaidh sinn na leanas:
Feumaidh sinn ar modh ionnsachaidh atharrachadh:
- chan eil feum ann a bhith a’ teagasg mar a chaidh DBAn a theagasg roimhe seo;
- chan eil eòlas air aon toradh gu leòr tuilleadh;
- ach tha e eu-comasach eòlas fhaighinn air dusanan aig ìre aon.
Feumaidh fios a bhith agad chan ann a-mhàin agus chan ann air an ìre a tha an toradh, ach:
- cùis cleachdaidh den tagradh aige;
- diofar dhòighean cur an sàs;
- buannachdan agus eas-bhuannachdan gach dòigh;
- toraidhean coltach agus eile gus roghainn fiosraichte agus as fheàrr a dhèanamh agus gun a bhith an-còmhnaidh airson toradh air a bheil thu eòlach.
Feumaidh tu cuideachd a bhith comasach air dàta a ghluasad agus tuigse fhaighinn air prionnsapalan bunaiteach aonachadh le ETL.
Cùis fìor
O chionn ghoirid, bha e riatanach backend a chruthachadh airson tagradh gluasadach. Mun àm a thòisich obair air, bha an cùl-raon mar-thà air a leasachadh agus deiseil airson a bhuileachadh, agus chuir an sgioba leasachaidh seachad mu dhà bhliadhna air a 'phròiseact seo. Chaidh na gnìomhan a leanas a shuidheachadh:
- togail CI/CD;
- ath-sgrùdadh air an ailtireachd;
- cuir e uile an gnìomh.
B’ e meanbh-sheirbheisean a bh’ anns an tagradh fhèin, agus chaidh an còd Python/Django a leasachadh bhon toiseach agus gu dìreach ann an GCP. A thaobh an luchd-èisteachd cuimsichte, bhathas a’ gabhail ris gum biodh dà roinn ann - na SA agus an EU, agus chaidh trafaic a sgaoileadh tron chothromachadh Global Load. Ruith a h-uile uallach obrach agus eallach obrach air Google Kubernetes Engine.
A thaobh an dàta, bha 3 structaran ann:
- Stòradh Cloud;
- Stòr-dàta;
- Cloud SQL (PostgreSQL).
Is dòcha gum bi e iongantach carson a chaidh Cloud SQL a thaghadh? Leis an fhìrinn innse, tha ceist mar seo air seòrsa de stad neònach adhbhrachadh anns na bliadhnachan mu dheireadh - tha faireachdainn ann gu bheil daoine air fàs diùid mu stòran-dàta dàimh, ach a dh’ aindeoin sin tha iad fhathast gan cleachdadh gu gnìomhach ;-).
A thaobh na cùise againn, chaidh Cloud SQL a thaghadh airson na h-adhbharan a leanas:
- Mar a chaidh ainmeachadh, chaidh an tagradh a leasachadh le bhith a’ cleachdadh Django, agus tha modail aige airson dàta leantainneach a mhapadh bho stòr-dàta SQL gu nithean Python (Django ORM).
- Bha am frèam fhèin a’ toirt taic do liosta gu math cuibhrichte de DBMSs:
- PostgreSQL;
- MariaDB;
- MySQL;
- oracles;
- SQLite.
Mar sin, chaidh PostgreSQL a thaghadh bhon liosta seo gu h-intuitive (uill, chan e Oracle a thaghadh, dha-rìribh).
Dè bha a dhìth:
- cha deach an tagradh a chleachdadh ach ann an roinnean 2, agus nochd 3mh fear ann am planaichean (Àisia);
- Bha an stòr-dàta suidhichte ann an sgìre Ameireaga a Tuath (Iowa);
- bha draghan air taobh an neach-ceannach mu dheidhinn comasach dàil ruigsinneachd às an Roinn Eòrpa agus Àisia agus brisidhean ann an seirbhis ann an cùis ùine downt DBMS.
A dh 'aindeoin gum faod Django fhèin obrachadh le grunn stòran-dàta ann an co-shìnte agus an roinn ann an leughadh agus sgrìobhadh, cha robh uiread de sgrìobhadh san tagradh (tha barrachd air 90% a' leughadh). Agus san fharsaingeachd, agus san fharsaingeachd, nam biodh e comasach a dhèanamh read-mac-samhail den phrìomh bhunait anns an Roinn Eòrpa agus Àisia, bhiodh seo na fhuasgladh co-rèiteachaidh. Uill, dè a tha cho iom-fhillte mu dheidhinn?
B’ e an duilgheadas nach robh an neach-ceannach airson a leigeil seachad le bhith a’ cleachdadh seirbheisean stiùirichte agus Cloud SQL. Agus tha comasan Cloud SQL cuingealaichte an-dràsta. Tha Cloud SQL a 'toirt taic do ruigsinneachd àrd (HA) agus Read Replica (RR), ach chan eil an aon RR a' faighinn taic ach ann an aon roinn. Às deidh dhut stòr-dàta a chruthachadh ann an roinn Ameireagaidh, chan urrainn dhut mac-samhail leughaidh a dhèanamh san roinn Eòrpach a’ cleachdadh Cloud SQL, ged nach eil Postgres fhèin a’ cur stad ort bho bhith a’ dèanamh seo. Cha robh conaltradh le luchd-obrach Google a’ stiùireadh àite sam bith agus thàinig e gu crìch le geallaidhean ann an stoidhle “tha fios againn air an duilgheadas agus tha sinn ag obair air, aon latha thèid a’ chùis a rèiteach. ”
Ma nì sinn liosta goirid de chomasan Cloud SQL, seallaidh e rudeigin mar seo:
1. Àrd ri fhaotainn (HA):
- taobh a-staigh aon sgìre;
- tro ath-riochdachadh diosc;
- Chan eil einnseanan PostgreSQL air an cleachdadh;
- smachd fèin-ghluasadach agus làimhe comasach - fàilligeadh / fàilligeadh;
- Nuair a thionndaidheas tu, chan eil an DBMS ri fhaighinn airson grunn mhionaidean.
2. Leugh Mac-samhail (RR):
- taobh a-staigh aon sgìre;
- fuireach teth;
- Ath-riochdachadh sruthadh PostgreSQL.
A bharrachd air an sin, mar as àbhaist, nuair a thaghas tu teicneòlas bidh thu an-còmhnaidh mu choinneamh cuid cuingeachaidhean:
- cha robh an neach-ceannach airson aonadan a chruthachadh agus IaaS a chleachdadh, ach a-mhàin tro GKE;
- cha bu toil leis an neach-ceannach fèin-sheirbheis PostgreSQL / MySQL a chleachdadh;
- Uill, san fharsaingeachd, bhiodh Google Spanner gu math freagarrach mura biodh e airson a phrìs, ge-tà, chan urrainn dha Django ORM obrachadh leis, ach is e rud math a th’ ann.
A’ beachdachadh air an t-suidheachadh, fhuair an neach-ceannach ceist leanmhainn: “An urrainn dhut rudeigin coltach ris a dhèanamh gus am bi e coltach ri Google Spanner, ach cuideachd ag obair le Django ORM?”
Roghainn fuasglaidh Àir. 0
A’ chiad rud a thàinig gu inntinn:
- fuireach taobh a-staigh CloudSQL;
- cha bhi mac-samhail sam bith eadar roinnean ann an cruth sam bith;
- feuch ri mac-samhail a cheangal ri Cloud SQL le PostgreSQL;
- cuir air bhog eisimpleir PostgreSQL an àiteigin agus dòigh air choireigin, ach co-dhiù na bi a’ suathadh ri maighstir.
Gu mì-fhortanach, thionndaidh e a-mach nach urrainnear seo a dhèanamh, leis nach eil cothrom air an òstair (tha e ann am pròiseact eadar-dhealaichte gu tur) - pg_hba agus mar sin air adhart, agus chan eil ruigsinneachd ann cuideachd fo superuser.
Roghainn fuasglaidh Àir. 1
Às deidh tuilleadh meòrachaidh agus a’ toirt aire do na suidheachaidhean a bh’ ann roimhe, dh’ atharraich an dòigh smaoineachaidh beagan:
- Tha sinn fhathast a 'feuchainn ri fuireach taobh a-staigh CloudSQL, ach tha sinn a' gluasad gu MySQL, oir tha maighstir taobh a-muigh aig Cloud SQL le MySQL, a tha:
- na neach-ionaid airson MySQL taobh a-muigh;
- tha e coltach ri eisimpleir MySQL;
- air a chruthachadh airson dàta a ghluasad bho sgòthan eile no san togalach.
Leis nach eil feum air ath-riochdachadh MySQL cothrom air an aoigh, ann am prionnsapal dh’ obraich a h-uile dad, ach bha e gu math neo-sheasmhach agus mì-ghoireasach. Agus nuair a chaidh sinn nas fhaide, dh'fhàs e gu tur eagallach, oir chuir sinn a-steach an structar gu lèir le terraform, agus gu h-obann thionndaidh e a-mach nach robh am maighstir a-muigh a 'faighinn taic bho terraform. Tha, tha CLI aig Google, ach airson adhbhar air choireigin bha a h-uile dad ag obair an seo bho àm gu àm - uaireannan tha e air a chruthachadh, uaireannan chan eil e air a chruthachadh. Is dòcha air sgàth gun deach an CLI a chruthachadh airson imrich dàta bhon taobh a-muigh, agus chan ann airson mac-samhail.
Gu fìrinneach, aig an ìre seo dh’ fhàs e soilleir nach eil Cloud SQL freagarrach idir. Mar a chanas iad, rinn sinn nas urrainn dhuinn.
Roghainn fuasglaidh Àir. 2
Leis nach robh e comasach fuireach taobh a-staigh frèam Cloud SQL, dh’ fheuch sinn ri riatanasan a dhealbhadh airson fuasgladh co-rèiteachaidh. Thàinig na riatanasan a-mach mar a leanas:
- obair ann an Kubernetes, cleachdadh as motha de ghoireasan agus comasan Kubernetes (DCS, ...) agus GCP (LB, ...);
- cion ballasta bho ghrunn rudan neo-riatanach san sgòth mar neach-ionaid HA;
- an comas PostgreSQL no MySQL a ruith ann am prìomh roinn HA; ann an roinnean eile - HA bhon RR den phrìomh roinn agus a leth-bhreac (airson earbsachd);
- ioma-mhaighstir (cha robh mi airson fios a chuir thuige, ach cha robh e glè chudromach)
.
Mar thoradh air na h-iarrtasan sin, tdDBMS iomchaidh agus roghainnean ceangail:
- MySQL Galera;
- CockroachDB;
- Innealan PostgreSQL
:
- pgpool-II;
— Patroni.
MySQL Galera
Chaidh teicneòlas MySQL Galera a leasachadh le Codership agus tha e na plugan airson InnoDB. Feartan sònraichte:
- ioma-mhaighstir;
- mac-samhail sioncronaich;
- leughadh bho nód sam bith;
- clàradh gu nód sam bith;
- uidheamachd HA togte;
- Tha clàr Helm bho Bitnami.
coileach-dubh
A rèir an tuairisgeul, tha an rud gu tur boma agus tha e na phròiseact stòr fosgailte sgrìobhte ann an Go. Is e Cockroach Labs am prìomh chom-pàirtiche (stèidhichte le daoine bho Google). Chaidh an DBMS dàimheach seo a dhealbhadh an toiseach airson a sgaoileadh (le sgèileadh còmhnard a-mach às a’ bhogsa) agus fulangas ri lochdan. Mhìnich na h-ùghdaran bhon chompanaidh an amas “a bhith a’ cothlamadh beairteas gnìomh SQL leis an ruigsinneachd chòmhnard a tha eòlach air fuasglaidhean NoSQL.”
Is e buannachd mhath a tha ann an taic don phròtacal ceangail post-gress.
Pgpool
Is e seo tuilleadan gu PostgreSQL, gu dearbh, eintiteas ùr a bhios a’ gabhail thairis a h-uile ceangal agus gan giullachd. Tha a chothromachadh luchdan agus parser fhèin aige, le cead fo chead BSD. Tha e a 'toirt seachad cothroman gu leòr, ach tha e a' coimhead rudeigin eagallach, oir dh'fhaodadh làthaireachd eintiteas ùr a bhith na adhbhar airson tachartasan a bharrachd.
Pàtran
Is e seo an rud mu dheireadh a thuit mo shùilean air, agus, mar a thàinig e a-mach, chan ann gu dìomhain. Tha Patroni na ghoireas stòr fosgailte, a tha gu ìre mhòr na dheamhan Python a leigeas leat cruinneachaidhean PostgreSQL a chumail gu fèin-ghluasadach le diofar sheòrsan ath-riochdachadh agus atharrachadh dreuchd fèin-ghluasadach. Bha an rud gu math inntinneach, leis gu bheil e a ’fighe a-steach gu math leis a’ chubair agus nach eil e a ’toirt a-steach aonadan ùra sam bith.
Dè a thagh thu aig a’ cheann thall?
Cha robh an roghainn furasta:
- coileach-dubh — teine, ach dorch ;
- MySQL Galera - cuideachd nach eil dona, tha e air a chleachdadh ann an iomadh àite, ach MySQL;
- Pgpool - mòran de bhuidhnean neo-riatanach, mar sin amalachadh leis an sgòth agus K8n;
- Pàtran - amalachadh sàr-mhath le K8n, gun aonadan neo-riatanach, ag amalachadh gu math le GCP LB.
Mar sin, thuit an roghainn air Patroni.
toraidhean
Tha an t-àm ann geàrr-chunntas a dhèanamh. Tha, tha saoghal bun-structair IT air atharrachadh gu mòr, agus chan eil an seo ach toiseach. Agus nam biodh na sgòthan dìreach mar sheòrsa eile de bhun-structar, a-nis tha a h-uile dad eadar-dhealaichte. A bharrachd air an sin, tha innleachdan anns na sgòthan an-còmhnaidh a’ nochdadh, nochdaidh iad agus, is dòcha, nochdaidh iad dìreach anns na sgòthan agus is ann dìreach an uairsin, le oidhirpean luchd-tòiseachaidh, a thèid an gluasad gu On-premises.
A thaobh SQL, bidh SQL beò. Tha seo a’ ciallachadh gum feum thu eòlas fhaighinn air PostgreSQL agus MySQL agus a bhith comasach air obrachadh leotha, ach tha e eadhon nas cudromaiche a bhith comasach air an cleachdadh gu ceart.
Source: www.habr.com