{"id":54366,"date":"2019-12-24T00:00:00","date_gmt":"2019-12-23T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kak-vyzhit-sql-baze-v-21-veke-oblaka-kubernetes-i-postgresql-multimaster"},"modified":"2020-02-18T14:02:22","modified_gmt":"2020-02-18T11:02:22","slug":"kak-vyzhit-sql-baze-v-21-veke-oblaka-kubernetes-i-postgresql-multimaster","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/kak-vyzhit-sql-baze-v-21-veke-oblaka-kubernetes-i-postgresql-multimaster","title":{"rendered":"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Hell\u00f3, Habr olvas\u00f3k. Ma elindul az els\u0151 csoport oktat\u00e1sa a tanfolyamon <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/nwhU\/\">\u201ePostgreSQL\u201d<\/a><\/noindex>. Ennek kapcs\u00e1n szeretn\u00e9nk mes\u00e9lni nektek arr\u00f3l, hogyan zajlott a ny\u00edlt webin\u00e1rium a tanfolyamr\u00f3l.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster\" src=\"\/wp-content\/uploads\/2019\/12\/e66e0d4919d45284dbdc4696d6cab555.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=yiXP8ihL2eA\">a k\u00f6vetkez\u0151 ny\u00edlt \u00f3r\u00e1r\u00f3l<\/a><\/noindex> besz\u00e9lt\u00fcnk arr\u00f3l, hogy milyen kih\u00edv\u00e1sokkal szembes\u00fcltek az SQL-adatb\u00e1zisok a felh\u0151 \u00e9s a Kubernetes kor\u00e1ban. Egy\u00fattal megvizsg\u00e1ltuk, hogyan alkalmazkodnak \u00e9s mut\u00e1l\u00f3dnak az SQL adatb\u00e1zisok e kih\u00edv\u00e1sok hat\u00e1s\u00e1ra.<\/p>\n<p>A webin\u00e1rt vezette <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/IVe0\/\">Valeriy Bezrukov<\/a><\/noindex>, a Google Cloud Practice Delivery Manager az EPAM Systems-n\u00e9l.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Amikor a f\u00e1k kicsik voltak\u2026<\/h3>\n<p>\nEl\u0151sz\u00f6r is eml\u00e9kezz\u00fcnk vissza, hogyan indult a DBMS-ek v\u00e1laszt\u00e1sa a m\u00falt sz\u00e1zad v\u00e9g\u00e9n. Igaz, ez nem lesz neh\u00e9z, mivel a DBMS-ek v\u00e1laszt\u00e1sa abban az id\u0151ben kezd\u0151d\u00f6tt \u00e9s v\u00e9gz\u0151d\u00f6tt <b>Oracle<\/b>. <\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster\" src=\"\/wp-content\/uploads\/2019\/12\/5fdf02523892e7477fd47dd01eb21d04.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA 90-es \u00e9vek v\u00e9g\u00e9n \u00e9s a 2000-es \u00e9vek elej\u00e9n l\u00e9nyeg\u00e9ben nem volt k\u00fcl\u00f6n\u00f6sebb v\u00e1laszt\u00e1si lehet\u0151s\u00e9g, ha az ipari m\u00e9ret\u0171 SQL adatb\u00e1zisokr\u00f3l besz\u00e9l\u00fcnk. Igen, l\u00e9tezett IBM DB2, Sybase \u00e9s m\u00e9g n\u00e9h\u00e1ny egy\u00e9b adatb\u00e1zis, amelyek felt\u0171ntek \u00e9s elt\u0171ntek, de \u00f6sszess\u00e9g\u00e9ben nem voltak olyan \u00e9szlelhet\u0151k az Oracle mellett. Ennek megfelel\u0151en az akkori m\u00e9rn\u00f6k\u00f6k k\u00e9pess\u00e9gei valamilyen m\u00f3don annak az egyetlen v\u00e1laszt\u00e1snak voltak al\u00e1rendelve, amely l\u00e9tezett.<\/p>\n<p>Az Oracle DBA-nak tudnia kellett:<\/p>\n<ul>\n<li> telep\u00edteni az Oracle Servert a disztrib\u00faci\u00f3b\u00f3l;<\/li>\n<li> be\u00e1ll\u00edtani az Oracle Servert:<\/li>\n<\/ul>\n<p><\/p>\n<ul>\n<li>init.ora;<\/li>\n<li>listener.ora;<\/li>\n<\/ul>\n<p>\n\u2014 l\u00e9trehozni:<\/p>\n<ul>\n<li>t\u00e1bl\u00e1zatokat;<\/li>\n<li>s\u00e9m\u00e1kat;<\/li>\n<li>felhaszn\u00e1l\u00f3kat;<\/li>\n<\/ul>\n<p>\u2014 v\u00e9grehajtani biztons\u00e1gi ment\u00e9st \u00e9s helyre\u00e1ll\u00edt\u00e1st;<br \/>\n\u2014 v\u00e9grehajtani a k\u00f6rmonitoroz\u00e1st;<br \/>\n\u2014 k\u00fczdeni az alul optimaliz\u00e1lt lek\u00e9rdez\u00e9sekkel.<\/p>\n<p>Ek\u00f6zben az Oracle DBA-t\u00f3l k\u00fcl\u00f6n\u00f6sen nem k\u00f6vetelt\u00e9k meg:<\/p>\n<ul>\n<li>hogy tudja kiv\u00e1lasztani az optim\u00e1lis DBMS-t vagy egy\u00e9b t\u00e1rol\u00e1si \u00e9s feldolgoz\u00e1si technol\u00f3gi\u00e1t;<\/li>\n<li>biztos\u00edtani a magas rendelkez\u00e9sre \u00e1ll\u00e1st \u00e9s a v\u00edzszintes sk\u00e1l\u00e1zhat\u00f3s\u00e1got (ez nem mindig volt a DBA k\u00e9rd\u00e9se);<\/li>\n<li>j\u00f3l ismerje a szakter\u00fcletet, az infrastrukt\u00far\u00e1t, az alkalmaz\u00e1si architekt\u00far\u00e1t, az oper\u00e1ci\u00f3s rendszert;<\/li>\n<li>megval\u00f3s\u00edtani az adatok bet\u00f6lt\u00e9s\u00e9t \u00e9s ki\u00fcr\u00edt\u00e9s\u00e9t, az adatok migr\u00e1l\u00e1s\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 DBMS-ek k\u00f6z\u00f6tt.<\/li>\n<\/ul>\n<p>\u00d6sszess\u00e9g\u00e9ben, ha abban az id\u0151szakban a v\u00e1laszt\u00e1sra gondolunk, az hasonl\u00edt az 1980-as \u00e9vek v\u00e9g\u00e9nek szovjet boltj\u00e1nak v\u00e1laszt\u00e1s\u00e1hoz:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster\" src=\"\/wp-content\/uploads\/2019\/12\/70b37faf295170d8507d5c605f4b2047.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>A mi id\u0151nk<\/h3>\n<p>\nAz\u00f3ta, term\u00e9szetesen, a f\u00e1k megn\u0151ttek, a vil\u00e1g megv\u00e1ltozott, \u00e9s valahogy \u00edgy alakult:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster\" src=\"\/wp-content\/uploads\/2019\/12\/e8698d658bd09e0071f02a672a5cb81e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMegv\u00e1ltozott a DBMS piac is, amit j\u00f3l mutat a Gartner friss jelent\u00e9se:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster\" src=\"\/wp-content\/uploads\/2019\/12\/745f3969a3ad2e65162ef41cda6c0658.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c9s itt nem lehet figyelmen k\u00edv\u00fcl hagyni, hogy az felh\u0151k bet\u00f6lt\u00f6tt\u00e9k a piaci r\u00e9s\u00fcket, amelyek n\u00e9pszer\u0171s\u00e9ge n\u0151. Ha elolvassuk ugyanazt a Gartner-jelent\u00e9st, a k\u00f6vetkez\u0151 k\u00f6vetkeztet\u00e9seket l\u00e1tjuk:<\/p>\n<ol>\n<li>Sok megrendel\u0151 a felh\u0151be val\u00f3 \u00e1tt\u00e9r\u00e9s \u00fatj\u00e1n j\u00e1r. <\/li>\n<li>Az \u00faj technol\u00f3gi\u00e1k el\u0151sz\u00f6r a felh\u0151ben jelennek meg, \u00e9s nem biztos, hogy valaha is \u00e1tker\u00fclnek a hagyom\u00e1nyos infrastrukt\u00far\u00e1ba.<\/li>\n<li>A pay-as-you-go \u00e1raz\u00e1si modell m\u00e1r megszokott\u00e1 v\u00e1lt. Mindenki csak az\u00e9rt szeretne fizetni, amivel val\u00f3ban \u00e9l, \u00e9s ez m\u00e1r nem trend, hanem egyszer\u0171en t\u00e9nymeg\u00e1llap\u00edt\u00e1s. <\/li>\n<\/ol>\n<p><\/p>\n<h3>Mi \u00fajb\u00f3l?<\/h3>\n<p>\nMa mindannyian a felh\u0151ben vagyunk. Azok a k\u00e9rd\u00e9sek, amelyek felmer\u00fclnek benn\u00fcnk, a v\u00e1laszt\u00e1s k\u00e9rd\u00e9sei. \u00c9s a v\u00e1laszt\u00e9k hatalmas, m\u00e9g akkor is, ha csak a helyben telep\u00edtett adatb\u00e1zis-kezel\u0151 rendszerek (On-premises) lehet\u0151s\u00e9geir\u0151l besz\u00e9l\u00fcnk. Emellett ott vannak a menedzselt szolg\u00e1ltat\u00e1sok \u00e9s a SaaS is. Teh\u00e1t a v\u00e1laszt\u00e1s \u00e9vr\u0151l \u00e9vre egyre bonyolultabb\u00e1 v\u00e1lik.<\/p>\n<p>A v\u00e1laszt\u00e1si k\u00e9rd\u00e9sek mellett m\u0171k\u00f6dnek a <b>korl\u00e1toz\u00f3 t\u00e9nyez\u0151k<\/b>:<\/p>\n<ul>\n<li><b>\u00e1r<\/b>. Sok technol\u00f3gia tov\u00e1bbra is p\u00e9nzbe ker\u00fcl;<\/li>\n<li><b>k\u00e9szs\u00e9gek<\/b>. Ha ny\u00edlt forr\u00e1sk\u00f3d\u00fa szoftverr\u0151l besz\u00e9l\u00fcnk, akkor felmer\u00fcl a k\u00e9szs\u00e9gek k\u00e9rd\u00e9se, mivel a ingyenes szoftverek haszn\u00e1lat\u00e1hoz elegend\u0151 kompetenci\u00e1ra van sz\u00fcks\u00e9g az emberekt\u0151l, akik telep\u00edtik \u00e9s \u00fczemeltetik azokat;<\/li>\n<li><b>funkcionalit\u00e1s<\/b>. Nem minden szolg\u00e1ltat\u00e1s, amely el\u00e9rhet\u0151 a felh\u0151ben \u00e9s mondjuk ugyanazon Postgres alapjaira \u00e9p\u00fcl, rendelkezik a helyben telep\u00edtett Postgreshez hasonl\u00f3 funkci\u00f3kkal. Ez l\u00e9nyeges t\u00e9nyez\u0151, amelyet tudni \u00e9s \u00e9rteni kell. R\u00e1ad\u00e1sul ez a t\u00e9nyez\u0151 fontosabb\u00e1 v\u00e1lik, mint n\u00e9h\u00e1ny rejtett lehet\u0151s\u00e9g ismerete egy adott adatb\u00e1zis-kezel\u0151 rendszerr\u0151l. <\/li>\n<\/ul>\n<p>\n<b>Mit v\u00e1rnak el most a DA\/DE-t\u0151l:<\/b><\/p>\n<ul>\n<li>j\u00f3 meg\u00e9rt\u00e9s az adott ter\u00fcletr\u0151l \u00e9s az alkalmaz\u00e1si architekt\u00far\u00e1r\u00f3l;<\/li>\n<li>az a k\u00e9pess\u00e9g, hogy helyesen v\u00e1lassza ki a megfelel\u0151 adatb\u00e1zis-kezel\u0151 technol\u00f3gi\u00e1t a kit\u0171z\u00f6tt feladat figyelembev\u00e9tel\u00e9vel;<\/li>\n<li>az a k\u00e9pess\u00e9g, hogy az adott korl\u00e1tok figyelembev\u00e9tel\u00e9vel optim\u00e1lis megold\u00e1st tal\u00e1ljon a v\u00e1lasztott technol\u00f3gia v\u00e9grehajt\u00e1s\u00e1ra;<\/li>\n<li>az a k\u00e9pess\u00e9g, hogy adatokat \u00e1thelyezzen \u00e9s migr\u00e1ljon;<\/li>\n<li>az a k\u00e9pess\u00e9g, hogy a kiv\u00e1lasztott megold\u00e1sokat megval\u00f3s\u00edtsa \u00e9s \u00fczemeltesse.<\/li>\n<\/ul>\n<p>\nAz al\u00e1bbi p\u00e9lda <b>a GCP alapj\u00e1n<\/b> bemutatja, hogyan t\u00f6rt\u00e9nik az egyes technol\u00f3gi\u00e1k kiv\u00e1laszt\u00e1sa az adatok szerkezete alapj\u00e1n:<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster\" src=\"\/wp-content\/uploads\/2019\/12\/fe324d8af9ed8f6afb58ed930dc21327.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVegye figyelembe, hogy a diagramon nincsen PostgreSQL, \u00e9s ennek az az oka, hogy a Cloud SQL terminol\u00f3gi\u00e1ja m\u00f6g\u00e9 rejlik. <b>Amikor bel\u00e9p\u00fcnk a Cloud SQL-be, \u00fajra v\u00e1lasztanunk kell:<\/b>\u00c9rdemes megjegyezni, hogy ez a v\u00e1laszt\u00e1s nem mindig egy\u00e9rtelm\u0171, ez\u00e9rt az alkalmaz\u00e1s fejleszt\u0151i gyakran az intu\u00edci\u00f3jukra t\u00e1maszkodnak.<\/p>\n<p><img decoding=\"async\" alt=\"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster\" src=\"\/wp-content\/uploads\/2019\/12\/bdf523e0b10fbfe753318a02a686a5af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c9rdemes megjegyezni, hogy ez a v\u00e1laszt\u00e1s nem mindig egy\u00e9rtelm\u0171, ez\u00e9rt az alkalmaz\u00e1s fejleszt\u0151i gyakran az intu\u00edci\u00f3jukra t\u00e1maszkodnak. <\/p>\n<p><b>\u00d6sszesen:<\/b><\/p>\n<ol>\n<li>Min\u00e9l messzebb haladunk, ann\u00e1l aktu\u00e1lisabb\u00e1 v\u00e1lik a v\u00e1laszt\u00e1s k\u00e9rd\u00e9se. \u00c9s m\u00e9g ha csak a GCP-t n\u00e9zz\u00fck is, a kezelt szolg\u00e1ltat\u00e1sokban \u00e9s a SaaS-ban a RDBMS eml\u00edt\u00e9se csak a negyedik l\u00e9p\u00e9sn\u00e9l jelenik meg (ott a Spanner is ott van). Plusz, a PostgreSQL v\u00e1laszt\u00e1sa csak az \u00f6t\u00f6dik l\u00e9p\u00e9sben jelentkezik, a MySQL \u00e9s az SQL Server mellett, teh\u00e1t <b>rengeteg minden van, de v\u00e1lasztani kell<\/b>. <\/li>\n<li>Ne feledkezz\u00fcnk meg a k\u00eds\u00e9rt\u00e9sekkel szembeni korl\u00e1toz\u00e1sokr\u00f3l. A legt\u00f6bben a Spanner-t akarj\u00e1k, de az dr\u00e1ga. V\u00e9g\u00fcl a tipikus k\u00e9r\u00e9s nagyj\u00e1b\u00f3l \u00edgy n\u00e9z ki: <i>\u201eK\u00e9rj\u00fck, csin\u00e1lj\u00e1k meg nek\u00fcnk a Spanner-t, de a Cloud SQL \u00e1r\u00e1\u00e9rt, h\u00e1t \u00f6n\u00f6k profik!\u201d<\/i><\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster\" src=\"\/wp-content\/uploads\/2019\/12\/cc656b46d37d08fc6aeca937e1e9085b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>De mit kell tenni?<\/h3>\n<p>\nAn\u00e9lk\u00fcl, hogy a v\u00e9gs\u0151 igazs\u00e1got hirdetn\u00e9nk, a k\u00f6vetkez\u0151ket mondan\u00e1nk:<\/p>\n<p><b>Meg kell v\u00e1ltoztatni a tanul\u00e1si megk\u00f6zel\u00edt\u00e9st:<\/b><\/p>\n<ul>\n<li>nem \u00e9rdemes \u00fagy tan\u00edtani, mint ahogy a DBA-kat kor\u00e1bban tan\u00edtott\u00e1k;<\/li>\n<li>egy term\u00e9k ismerete m\u00e1r nem el\u00e9g;<\/li>\n<li>\u00e9s nem lehet t\u00f6bb tucatot ismerni egy szinten.<\/li>\n<\/ul>\n<p>\nTudni kell nemcsak a term\u00e9ket, hanem:<\/p>\n<ul>\n<li>az alkalmaz\u00e1si eseteit;<\/li>\n<li>a k\u00fcl\u00f6nb\u00f6z\u0151 telep\u00edt\u00e9si m\u00f3dszereket;<\/li>\n<li>minden m\u00f3dszer el\u0151nyeit \u00e9s h\u00e1tr\u00e1nyait;<\/li>\n<li>hasonl\u00f3 \u00e9s alternat\u00edv term\u00e9keket, hogy tudatos \u00e9s optim\u00e1lis d\u00f6nt\u00e9seket hozhassunk, \u00e9s ne mindig a megszokott term\u00e9k mellett d\u00f6nts\u00fcnk.<\/li>\n<\/ul>\n<p>\nEmellett k\u00e9pesnek kell lenn\u00fcnk adatok migr\u00e1l\u00e1s\u00e1ra \u00e9s meg\u00e9rts\u00fck az ETL integr\u00e1ci\u00f3 alapvet\u0151 elveit.<\/p>\n<h3>Val\u00f3s eset<\/h3>\n<p>\nNemr\u00e9giben egy mobilalkalmaz\u00e1s backendj\u00e9t kellett fejleszteni. Amikor elkezdt\u00fck a munk\u00e1t rajta, a backend m\u00e1r ki volt dolgozva \u00e9s k\u00e9szen \u00e1llt a bevezet\u00e9sre, a fejleszt\u0151csapat k\u00f6r\u00fclbel\u00fcl k\u00e9t \u00e9vet t\u00f6lt\u00f6tt e projekten. Az al\u00e1bbi feladatokat t\u0171zt\u00e9k ki:<\/p>\n<ul>\n<li>CI\/CD ki\u00e9p\u00edt\u00e9se;<\/li>\n<li>az architekt\u00fara fel\u00fclvizsg\u00e1lata;<\/li>\n<li>az eg\u00e9sz rendszer \u00fczembe helyez\u00e9se. <\/li>\n<\/ul>\n<p>\nMag\u00e1nak az alkalmaz\u00e1snak mikroszolg\u00e1ltat\u00e1s-alap\u00fanak kellett lennie, a Python\/Django k\u00f3dot a null\u00e1r\u00f3l \u00edrt\u00e1k meg, azonnal a GCP-re. A c\u00e9lk\u00f6z\u00f6ns\u00e9g k\u00e9t r\u00e9gi\u00f3val \u2013 az Egyes\u00fclt \u00c1llamokkal \u00e9s az EU-val \u2013 sz\u00e1molt, a forgalmat a glob\u00e1lis terhel\u00e9seloszt\u00f3 kezeli. Minden munkaterhel\u00e9s \u00e9s sz\u00e1m\u00edt\u00e1si ig\u00e9ny a Google Kubernetes Engine-n dolgozott. <\/p>\n<p>Ami az adatokat illeti, h\u00e1rom strukt\u00fara volt:<\/p>\n<ul>\n<li>Cloud Storage;<\/li>\n<li>Datastore;<\/li>\n<li>Cloud SQL (PostgreSQL).<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Hogyan \u00e9lje t\u00fal az SQL-alap\u00fa adatb\u00e1zis a 21. sz\u00e1zadot: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster\" src=\"\/wp-content\/uploads\/2019\/12\/e6e38b1d861b2871edf20fb09378b491.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFelmer\u00fclhet a k\u00e9rd\u00e9s, mi\u00e9rt v\u00e1lasztottuk a Cloud SQL-t? \u0150szint\u00e9n sz\u00f3lva, az ut\u00f3bbi \u00e9vekben ez a k\u00e9rd\u00e9s egy kis k\u00ednos sz\u00fcnetet okoz \u2013 \u00fagy t\u0171nik, hogy az emberek elkezdtek sz\u00e9gyenkezni a rel\u00e1ci\u00f3s adatb\u00e1zisok miatt, de ennek ellen\u00e9re tov\u00e1bbra is akt\u00edvan haszn\u00e1lj\u00e1k \u0151ket ;-). <\/p>\n<p>A mi eset\u00fcnkben a Cloud SQL a k\u00f6vetkez\u0151 okok miatt lett v\u00e1lasztva:<\/p>\n<ol>\n<li>Ahogy eml\u00edtett\u00fck, az alkalmaz\u00e1s Django seg\u00edts\u00e9g\u00e9vel k\u00e9sz\u00fclt, \u00e9s van benne egy modell, amely az SQL-adatb\u00e1zisb\u00f3l sz\u00e1rmaz\u00f3 \u00e1lland\u00f3 adatokat Python-objektumokk\u00e1 alak\u00edt (Django ORM).<\/li>\n<li>Mag\u00e1ban a keretrendszerben elegend\u0151 v\u00e9gs\u0151 adatb\u00e1zis-kezel\u0151 rendszer tal\u00e1lhat\u00f3:<\/li>\n<\/ol>\n<p><\/p>\n<ul>\n<li>PostgreSQL;<\/li>\n<li>MariaDB;<\/li>\n<li>MySQL;<\/li>\n<li>Oracle;<\/li>\n<li>SQLite.<\/li>\n<\/ul>\n<p>\nEnnek megfelel\u0151en a PostgreSQL-t intuit\u00edv m\u00f3don v\u00e1lasztott\u00e1k ki a list\u00e1b\u00f3l (nos, m\u00e9gsem v\u00e1lasztunk Oracle-t, igaz?).<\/p>\n<p><b>Ami hi\u00e1nyzott:<\/b><\/p>\n<ul>\n<li>az alkalmaz\u00e1s csak 2 r\u00e9gi\u00f3ban volt telep\u00edtve, a tervekben pedig egy 3. r\u00e9gi\u00f3 (\u00c1zsia) szerepelt;<\/li>\n<li>az adatb\u00e1zis az \u00e9szak-amerikai r\u00e9gi\u00f3ban (Iowa) volt;<\/li>\n<li>az \u00fcgyf\u00e9l r\u00e9sz\u00e9r\u0151l agg\u00e1lyok mer\u00fcltek fel a <b>hozz\u00e1f\u00e9r\u00e9si k\u00e9s\u00e9sek<\/b> kapcs\u00e1n Eur\u00f3p\u00e1b\u00f3l \u00e9s \u00c1zsi\u00e1b\u00f3l, valamint <b>szolg\u00e1ltat\u00e1si megszakad\u00e1sok <\/b><b>az adatb\u00e1zis le\u00e1ll\u00e1sa eset\u00e9n.<\/b> Mivel a Django k\u00e9pes p\u00e1rhuzamosan dolgozni t\u00f6bb adatb\u00e1zissal, \u00e9s megosztani \u0151ket olvas\u00e1s \u00e9s \u00edr\u00e1s szerint, az alkalmaz\u00e1sban nem volt t\u00fal sok \u00edr\u00e1s (t\u00f6bb mint 90% - olvas\u00e1s). \u00d6sszess\u00e9g\u00e9ben, ha lehets\u00e9ges volt volna <\/li>\n<\/ul>\n<p>\nread-replika l\u00e9trehoz\u00e1sa a f\u0151 adatb\u00e1zisb\u00f3l Eur\u00f3p\u00e1ban \u00e9s \u00c1zsi\u00e1ban, <b>ez kompromisszumos megold\u00e1st jelentett volna. De mi olyan neh\u00e9z ebben?<\/b>A neh\u00e9zs\u00e9g abban rejlett, hogy az \u00fcgyf\u00e9l nem akarta elhagyni a managed services \u00e9s a Cloud SQL haszn\u00e1lat\u00e1t. A Cloud SQL jelenlegi lehet\u0151s\u00e9gei korl\u00e1tozottak. A Cloud SQL t\u00e1mogatja a magas rendelkez\u00e9sre \u00e1ll\u00e1st (HA) \u00e9s a Read Replica-t (RR), de a RR csak egy r\u00e9gi\u00f3ban el\u00e9rhet\u0151. Amerikai r\u00e9gi\u00f3ban l\u00e9trehozott adatb\u00e1zist nem lehet read-replik\u00e1v\u00e1 alak\u00edtani eur\u00f3pai r\u00e9gi\u00f3ban a Cloud SQL seg\u00edts\u00e9g\u00e9vel, b\u00e1r a PostgreSQL ezt nem akad\u00e1lyozza. A Google munkat\u00e1rsaival folytatott levelez\u00e9s nem vezetett eredm\u00e9nyre, \u00e9s azzal v\u00e9gz\u0151d\u00f6tt, hogy \u201etudjuk a probl\u00e9m\u00e1t, \u00e9s dolgozunk rajta, id\u0151vel megold\u00e1st tal\u00e1lunk\u201d.<\/p>\n<p>Ha a Cloud SQL lehet\u0151s\u00e9geit pontokba szedj\u00fck, az k\u00f6r\u00fclbel\u00fcl \u00edgy n\u00e9zne ki: <\/p>\n<p>1. Magas rendelkez\u00e9sre \u00e1ll\u00e1s (HA):<\/p>\n<p><b>egy r\u00e9gi\u00f3n bel\u00fcl;<\/b><\/p>\n<ul>\n<li>lemezreplik\u00e1ci\u00f3val;<\/li>\n<li>a PostgreSQL mechanizmusait nem haszn\u00e1lj\u00e1k;<\/li>\n<li>automatikus \u00e9s k\u00e9zi kezel\u00e9s \u2014 failover\/failback lehets\u00e9ges;<\/li>\n<li>az adatb\u00e1zis \u00e1tkapcsol\u00e1sakor n\u00e9h\u00e1ny percig nem el\u00e9rhet\u0151.<\/li>\n<li>2. Read Replica (RR):<\/li>\n<\/ul>\n<p>\n<b>hot standby;<\/b><\/p>\n<ul>\n<li>lemezreplik\u00e1ci\u00f3val;<\/li>\n<li>PostgreSQL streaming replik\u00e1ci\u00f3.<\/li>\n<li>Emellett, ahogy az lenni szokott, a technol\u00f3gia kiv\u00e1laszt\u00e1sakor mindig tal\u00e1lkozunk valamilyen<\/li>\n<\/ul>\n<p>\nkorl\u00e1toz\u00e1ssal \u2014 <b>az \u00fcgyf\u00e9l nem akarta szapor\u00edtani az entit\u00e1sokat, \u00e9s IaaS-t haszn\u00e1lni, csak a GKE-n kereszt\u00fcl;<\/b>:<\/p>\n<ul>\n<li>az \u00fcgyf\u00e9l nem szeretn\u00e9 a self service PostgreSQL\/MySQL telep\u00edt\u00e9s\u00e9t.<\/li>\n<li>az \u00fcgyf\u00e9l nem szeretn\u00e9, ha \u00f6nkiszolg\u00e1l\u00f3 PostgreSQL\/MySQL rendszert kellene ki\u00e9p\u00edteni;<\/li>\n<li>Mellesleg a Google Spanner j\u00f3l j\u00f6hetett volna, ha nem lett volna olyan dr\u00e1ga, b\u00e1r a Django ORM nem tud vele dolgozni, de egy\u00e9bk\u00e9nt egy j\u00f3 dolog.<\/li>\n<\/ul>\n<p>\nTekintettel a helyzetre, az \u00fcgyf\u00e9lt\u0151l egy k\u00e9rd\u00e9s \u00e9rkezett: <i>\u00bbK\u00e9pesek lenn\u00e9nek valami hasonl\u00f3t csin\u00e1lni, ami olyan, mint a Google Spanner, de Django ORM-mel is m\u0171k\u00f6dik?\u00ab<\/i><\/p>\n<h3>Megold\u00e1si lehet\u0151s\u00e9g \u2116 0<\/h3>\n<p>\nAz els\u0151, ami eszembe jutott:<\/p>\n<ul>\n<li>maradjunk a CloudSQL keretein bel\u00fcl;<\/li>\n<li>a r\u00e9gi\u00f3k k\u00f6z\u00f6tti be\u00e9p\u00edtett replik\u00e1ci\u00f3 semmilyen form\u00e1ban nem lesz el\u00e9rhet\u0151;<\/li>\n<li>megpr\u00f3b\u00e1lni csatlakoztatni egy replik\u00e1t a megl\u00e9v\u0151 Cloud SQL by PostgreSQL-hez;<\/li>\n<li>valahol \u00e9s valahogy elind\u00edtani egy PostgreSQL p\u00e9ld\u00e1nyt, de legal\u00e1bb a mastert ne \u00e9rints\u00fck.<\/li>\n<\/ul>\n<p>\nSajnos kider\u00fclt, hogy ezt nem lehet megval\u00f3s\u00edtani, mivel nincs hozz\u00e1f\u00e9r\u00e9s a hoszthoz (az egy teljesen m\u00e1s projektben van) \u2013 pg_hba \u00e9s \u00edgy tov\u00e1bb, \u00e9s m\u00e9g superuser hozz\u00e1f\u00e9r\u00e9s sincs.<\/p>\n<h3>Megold\u00e1si lehet\u0151s\u00e9g \u2116 1<\/h3>\n<p>\nN\u00e9h\u00e1ny tov\u00e1bbi gondolkod\u00e1s ut\u00e1n \u00e9s az el\u0151z\u0151 k\u00f6r\u00fclm\u00e9nyek figyelembev\u00e9tel\u00e9vel a gondolatmenet n\u00e9mileg megv\u00e1ltozott:<\/p>\n<ul>\n<li>tov\u00e1bbra is pr\u00f3b\u00e1lkozunk a CloudSQL keretein bel\u00fcl maradni, de \u00e1tt\u00e9r\u00fcnk MySQL-re, mivel a Cloud SQL by MySQL-nek van k\u00fcls\u0151 mastere, amely:<\/li>\n<\/ul>\n<p>\n\u2014 proxy k\u00fcls\u0151 MySQL-hez;<br \/>\n\u2014 MySQL p\u00e9ld\u00e1nyk\u00e9nt n\u00e9z ki;<br \/>\n\u2014 az adatok migr\u00e1ci\u00f3j\u00e1ra lett kital\u00e1lva m\u00e1s felh\u0151kb\u0151l vagy helysz\u00edni megold\u00e1sokb\u00f3l.<\/p>\n<p>Mivel a MySQL replik\u00e1ci\u00f3 be\u00e1ll\u00edt\u00e1sa nem ig\u00e9nyel hozz\u00e1f\u00e9r\u00e9st a hoszthoz, elvileg minden m\u0171k\u00f6d\u00f6tt, de nagyon instabil \u00e9s k\u00e9nyelmetlen volt. Amikor tov\u00e1bb haladtunk, m\u00e9g f\u00e9lelmetesebb lett, mert az eg\u00e9sz strukt\u00far\u00e1t terraformmal \u00e1ll\u00edtottuk fel, \u00e9s hirtelen kider\u00fclt, hogy a k\u00fcls\u0151 master nem t\u00e1mogatott a terraform \u00e1ltal. Igen, a Google-nek van CLI-je, de valami\u00e9rt itt is minden m\u00e1sodszor m\u0171k\u00f6d\u00f6tt \u2013 n\u00e9ha l\u00e9trej\u00f6tt, n\u00e9ha nem. Val\u00f3sz\u00edn\u0171leg az\u00e9rt, mert a CLI-t az adatok k\u00fcls\u0151 migr\u00e1ci\u00f3j\u00e1ra fejlesztett\u00e9k ki, nem replik\u00e1k sz\u00e1m\u00e1ra.<\/p>\n<p>Igaz\u00e1b\u00f3l itt v\u00e1lt vil\u00e1goss\u00e1, hogy a Cloud SQL egy\u00e1ltal\u00e1n nem megfelel\u0151. Ahogy mondani szokt\u00e1k, mindent megpr\u00f3b\u00e1ltunk, amit csak tudtunk. <\/p>\n<h3>Megold\u00e1si lehet\u0151s\u00e9g \u2116 2<\/h3>\n<p>\nMivel nem tudtunk a Cloud SQL keretein bel\u00fcl maradni, pr\u00f3b\u00e1ltuk megfogalmazni az ig\u00e9nyeket egy kompromisszumos megold\u00e1shoz. Az ig\u00e9nyek a k\u00f6vetkez\u0151ek voltak:<\/p>\n<ul>\n<li>munka a Kubernetes-ben, a Kubernetes maxim\u00e1lis er\u0151forr\u00e1s-haszn\u00e1lata \u00e9s lehet\u0151s\u00e9gei (DCS, &#8230;) \u00e9s a GCP (LB, &#8230;);<\/li>\n<li>nincs sz\u00fcks\u00e9gtelen tehert\u00e9tel a felh\u0151ben, mint p\u00e9ld\u00e1ul HA proxy;<\/li>\n<li>lehet\u0151s\u00e9g HA PostgreSQL vagy MySQL futtat\u00e1s\u00e1ra a f\u0151 r\u00e9gi\u00f3ban; a t\u00f6bbi r\u00e9gi\u00f3ban \u2013 a f\u0151 r\u00e9gi\u00f3 RR-j\u00e9b\u0151l sz\u00e1rmaz\u00f3 HA m\u00e1solata a megb\u00edzhat\u00f3s\u00e1g \u00e9rdek\u00e9ben;<\/li>\n<li>multi master (nem igaz\u00e1n akartunk kapcsol\u00f3dni hozz\u00e1, de ez nem volt annyira fontos)<\/li>\n<\/ul>\n<p>. <br \/>\nE k\u00f6vetelm\u00e9nyek eredm\u00e9nyek\u00e9nt v\u00e9gre felbukkant a l\u00e1that\u00e1ron p<b>megfelel\u0151 DBMS \u00e9s k\u00f6t\u00e9s opci\u00f3k<\/b>:<\/p>\n<ul>\n<li>MySQL Galera;<\/li>\n<li>CockroachDB;<\/li>\n<li>PostgreSQL eszk\u00f6z\u00f6k<\/li>\n<\/ul>\n<p>:<br \/>\n\u2014 pgpool-II;<br \/>\n\u2014 Patroni.<\/p>\n<h3>MySQL Galera<\/h3>\n<p>\nA MySQL Galera technol\u00f3gi\u00e1t a Codership c\u00e9g fejlesztette ki, \u00e9s az InnoDB pluginja. Jellemz\u0151k:<\/p>\n<ul>\n<li>t\u00f6bb mester;<\/li>\n<li>szinkron replik\u00e1ci\u00f3;<\/li>\n<li>b\u00e1rmelyik csom\u00f3pontb\u00f3l t\u00f6rt\u00e9n\u0151 olvas\u00e1s;<\/li>\n<li>b\u00e1rmelyik csom\u00f3pontra t\u00f6rt\u00e9n\u0151 \u00edr\u00e1s;<\/li>\n<li>be\u00e9p\u00edtett HA mechanizmus;<\/li>\n<li>van Helm chart a Bitnami-t\u00f3l.<\/li>\n<\/ul>\n<p><\/p>\n<h3>CockroachDB<\/h3>\n<p>\nA le\u00edr\u00e1sa alapj\u00e1n ez egy teljesen leny\u0171g\u00f6z\u0151 dolog, amely egy Go nyelven \u00edr\u00f3dott open source projekt. A f\u0151 r\u00e9sztvev\u0151 a Cockroach Labs (amely a Google kor\u00e1bbi dolgoz\u00f3ib\u00f3l alakult). Ez a rel\u00e1ci\u00f3s DBMS eredetileg elosztott (doz horizont\u00e1lis sk\u00e1l\u00e1z\u00e1s 'doz dobozban') \u00e9s hibamentesnek lett megalkotva. A szerz\u0151i c\u00e9lj\u00e1t azzal hat\u00e1rozt\u00e1k meg, hogy 'a SQL funkci\u00f3gazdags\u00e1g\u00e1t \u00f6tv\u00f6zz\u00e9k a NoSQL megold\u00e1sokra jellemz\u0151 horizont\u00e1lis el\u00e9rhet\u0151s\u00e9ggel'.<\/p>\n<p>A kellemes b\u00f3nusz \u2014 t\u00e1mogatja a PostgreSQL kapcsol\u00f3d\u00e1si protokollt. <\/p>\n<h3>Pgpool<\/h3>\n<p>\nEz egy PostgreSQL feletti r\u00e9teg, val\u00f3j\u00e1ban egy \u00faj entit\u00e1s, amely kezeli az \u00f6sszes kapcsolatot. Van saj\u00e1t terhel\u00e9sel\u0151s\u00edt\u0151je \u00e9s elemz\u0151je, BSD licenc alapj\u00e1n licencelt. Sz\u00e9les lehet\u0151s\u00e9geket biztos\u00edt, de kicsit r\u00e9miszt\u0151nek t\u0171nik, mivel az \u00faj entit\u00e1s jellege forr\u00e1st jelenthet n\u00e9mi extra kalandra. <\/p>\n<h3>Patroni<\/h3>\n<p>\nEz az utols\u00f3, amire a figyelmem vet\u0151d\u00f6tt, \u00e9s ahogyan kider\u00fclt, nem hi\u00e1ba. A Patroni egy open source eszk\u00f6z, amely tulajdonk\u00e9ppen egy Python demon, amely automatikusan kezeli a PostgreSQL klasztereket k\u00fcl\u00f6nb\u00f6z\u0151 replik\u00e1ci\u00f3s t\u00edpusokkal \u00e9s automatikus szerepk\u00f6r \u00e1tv\u00e1lt\u00e1ssal. Nagyon \u00e9rdekes dolognak bizonyult, mivel j\u00f3l integr\u00e1l\u00f3dik a kubernetes-szel \u00e9s nem hoz l\u00e9tre \u00faj entit\u00e1sokat. <\/p>\n<h3>Mi lett a v\u00e9gs\u0151 v\u00e1laszt\u00e1s<\/h3>\n<p>\nA v\u00e1laszt\u00e1s nem volt egyszer\u0171:<\/p>\n<ol>\n<li><b>CockroachDB <\/b>\u2014 t\u0171z, de ijeszt\u0151;<\/li>\n<li><b>MySQL Galera<\/b> \u2014 szint\u00e9n nem rossz, sok helyen haszn\u00e1lj\u00e1k, de MySQL;<\/li>\n<li><b>Pgpool <\/b>\u2014 sok felesleges entit\u00e1s, nem t\u00fal j\u00f3 integr\u00e1ci\u00f3 a felh\u0151vel \u00e9s K8s-szel;<\/li>\n<li><b>Patroni <\/b>\u2014 kiv\u00e1l\u00f3 integr\u00e1ci\u00f3 a K8s-szel, nincs felesleges entit\u00e1s, j\u00f3l integr\u00e1l\u00f3dik a GCP LB-vel.<\/li>\n<\/ol>\n<p>\nEnnek megfelel\u0151en a v\u00e1laszt\u00e1s a Patronira esett. <\/p>\n<h3>K\u00f6vetkeztet\u00e9sek<\/h3>\n<p>\nItt az ideje \u00f6sszefoglalni a r\u00f6vid k\u00f6vetkeztet\u00e9seket. Igen, az IT-infrastrukt\u00fara vil\u00e1ga jelent\u0151sen megv\u00e1ltozott, \u00e9s ez csak a kezdet. \u00c9s m\u00edg kor\u00e1bban a felh\u0151k csak egy m\u00e1sik t\u00edpus\u00fa infrastrukt\u00far\u00e1k voltak, most mindez megv\u00e1ltozott. R\u00e1ad\u00e1sul az \u00faj\u00edt\u00e1sok a felh\u0151kben folyamatosan jelennek meg, \u00e9s val\u00f3sz\u00edn\u0171leg csak a felh\u0151kben fognak megjelenni, \u00e9s csak k\u00e9s\u0151bb, startupok r\u00e9v\u00e9n, ker\u00fclnek \u00e1t On-premises.<\/p>\n<p>Ami az SQL-t illeti, az SQL tov\u00e1bbra is fontos marad. Ez azt jelenti, hogy a PostgreSQL-t \u00e9s a MySQL-t ismerni \u00e9s vel\u00fck dolgozni kell, de tal\u00e1n m\u00e9g fontosabb, hogy tudjuk \u0151ket helyesen alkalmazni.<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/481644\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0442\u0430\u0440\u0442\u0443\u044e\u0442 \u0437\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c, \u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0432\u0435\u0431\u0438\u043d\u0430\u0440 \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043a\u0443\u0440\u0441\u0443. \u0412 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0443\u0440\u043e\u043a\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043e \u0442\u043e\u043c, \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u0432\u044b\u0437\u043e\u0432\u0430\u043c\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c SQL-\u0431\u0430\u0437\u044b \u0432 \u044d\u0440\u0443 \u043e\u0431\u043b\u0430\u043a\u043e\u0432 \u0438 Kubernetes. \u0410 \u0437\u0430\u043e\u0434\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438, \u043a\u0430\u043a \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 SQL \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u0430\u0431\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u043c\u0443\u0442\u0438\u0440\u0443\u044e\u0442 \u043f\u043e\u0434 \u0432\u043e\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54366","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0442\u0430\u0440\u0442\u0443\u044e\u0442 \u0437\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/kak-vyzhit-sql-baze-v-21-veke-oblaka-kubernetes-i-postgresql-multimaster\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0432\u044b\u0436\u0438\u0442\u044c SQL-\u0431\u0430\u0437\u0435 \u0432 21 \u0432\u0435\u043a\u0435: \u043e\u0431\u043b\u0430\u043a\u0430, Kubernetes \u0438 PostgreSQL multimaster | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0442\u0430\u0440\u0442\u0443\u044e\u0442 \u0437\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/kak-vyzhit-sql-baze-v-21-veke-oblaka-kubernetes-i-postgresql-multimaster\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-23T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:22+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Hogyan \u00e9lhet t\u00fal egy SQL adatb\u00e1zis a 21. sz\u00e1zadban: felh\u0151k, Kubernetes \u00e9s PostgreSQL multimaster | ProHoster","description":"Szia, Habr-l\u00e1togat\u00f3k! Ma kezd\u0151dik az els\u0151 csoport \u00f3r\u00e1ja a \u201ePostgreSQL\u201d kurzusban.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/kak-vyzhit-sql-baze-v-21-veke-oblaka-kubernetes-i-postgresql-multimaster","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0432\u044b\u0436\u0438\u0442\u044c SQL-\u0431\u0430\u0437\u0435 \u0432 21 \u0432\u0435\u043a\u0435: \u043e\u0431\u043b\u0430\u043a\u0430, Kubernetes \u0438 PostgreSQL multimaster | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440\u043e\u0432\u0447\u0430\u043d\u0435. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0442\u0430\u0440\u0442\u0443\u044e\u0442 \u0437\u0430\u043d\u044f\u0442\u0438\u044f \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u043a\u0443\u0440\u0441\u0430 \u00abPostgreSQL\u00bb.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/kak-vyzhit-sql-baze-v-21-veke-oblaka-kubernetes-i-postgresql-multimaster","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-23T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54366","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 11:06:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:30:12","updated":"2026-01-24 11:06:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/54366","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=54366"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/54366\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=54366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=54366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=54366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}