{"id":78887,"date":"2020-04-22T19:42:51","date_gmt":"2020-04-22T17:42:51","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov"},"modified":"2020-04-22T19:42:51","modified_gmt":"2020-04-22T17:42:51","slug":"wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","title":{"rendered":"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Tutvustan 2020. aasta alguses Georgi Rylovi esitatud ettekande \"WAL-G: uued v\u00f5imalused ja kogukonna laienemine\" sisu.<\/strong><\/p>\n<p><\/p>\n<p>Open-source hooldajatel tekib mitmeid probleeme nende kasvu k\u00e4igus. Kuidas kirjutada j\u00e4rjest rohkem vajalikke funktsioone, lahendada j\u00e4rjest rohkem probleeme ja j\u00f5uda \u00fcha rohkemate pull request\u2019ide \u00fclevaatamiseni? WAL-G (backup-tool for PostgreSQL) n\u00e4itel r\u00e4\u00e4gin, kuidas me neid probleeme lahendasime, k\u00e4ivitades \u00fclikoolis open-source arenduse kursuse, mida me saavutasime ja kuhu edasi liikuda kavatseme.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/c76e27949b782480284ab52791fdfe15.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Tere j\u00e4lle k\u00f5igile! Olen Yandexes arendaja ja tulen Jekaterinburgist. T\u00e4na r\u00e4\u00e4gin WAL-G-st.<\/p>\n<p><\/p>\n<p>Ettekande pealkirjas ei olnud \u00f6eldud, et see on midagi varundamist. Kas keegi ei tea, mis on WAL-G? V\u00f5i kas k\u00f5ik teavad? Palun t\u00f5stke k\u00e4si, kes ei tea. Oi, tulite ettekandele ja ei tea, millest see on.<\/p>\n<p><\/p>\n<p>Lase mul r\u00e4\u00e4kida, mis t\u00e4na toimuma hakkab. Juhtub, et meie meeskond on juba pikka aega varundamisega tegelenud. Ja see on veel \u00fcks ettekande sari, kus r\u00e4\u00e4gime sellest, kuidas me andmeid turvaliselt, usaldusv\u00e4\u00e4rselt, mugavalt ja t\u00f5husalt salvestame.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/4307e7b2acc60cd908d91e3f1b83a9b6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Eelmistel sarjadel oli palju ettekandeid Andreist Borodini ja Vladimir Leskovi poolt. Meid oli palju. Ja me k\u00f5ik oleme juba aastaid r\u00e4\u00e4kinud WAL-G-st. <\/p>\n<p><\/p>\n<p>clck.ru\/F8ioz \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2018\/abstracts\/3964\">https:\/\/www.highload.ru\/moscow\/2018\/abstracts\/3964<\/a><\/noindex><\/p>\n<p><\/p>\n<p>clck.ru\/Ln8Qw \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5981\">https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5981<\/a><\/noindex><\/p>\n<p><\/p>\n<p>See ettekande erineb natuke teistest, sest seal r\u00e4\u00e4giti rohkem tehnilisest osast, aga siin r\u00e4\u00e4gin, kuidas me silmitsi seisme kogukonna kasvu probleemidega. Ja kuidas me tuli meelde m\u00f5ni v\u00e4ike idee, mis aitab meil sellega toime tulla. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/ec728f7d99ea9b6a5df4785d7e8a2a75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00f5ned aastat tagasi oli WAL-G \u00fcsna v\u00e4ike projekt, mille saime Citus Data'lt. Ja me lihtsalt v\u00f5tsime selle \u00fcle. Ja seda arendas \u00fcks inimene.<\/p>\n<p><\/p>\n<p>Ja ainult WAL-G-s polnud:<\/p>\n<p><\/p>\n<ul>\n<li>Repliigilt varundamist.<\/li>\n<li>Ei olnud inkrementaalseid varundusi.<\/li>\n<li>Ei olnud WAL-Delta varundusi. <\/li>\n<li>Ja veel palju asju polnud.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>M\u00f5ne aasta jooksul on WAL-G tugevalt kasvanud.<\/strong> <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/16700dfcc2c54539c5a064894cd1ec88.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja 2020. aastaks oli k\u00f5ik eespool loetletud juba olemas. Ja lisaks sellele on meil n\u00fc\u00fcd:<\/p>\n<p><\/p>\n<ul>\n<li>Rohkem kui 1 000 t\u00e4hte GitHub'is.<\/li>\n<li>150 hargnemist.<\/li>\n<li>Umbes 15 avatud PR-d.<\/li>\n<li>Ja veel palju kaast\u00f6\u00f6lisi. <\/li>\n<li>Ja pidevalt avatud issues. Ja see, et me l\u00e4heme sinna s\u00f5na otseses m\u00f5ttes igap\u00e4evaselt sisse ja teeme sellega midagi. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/5e5dea14b328a7f0437017ca834d1eaf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja me j\u00f5udsime j\u00e4reldusele, et see projekt vajab rohkem meie t\u00e4helepanu, isegi siis, kui meile endale ei ole vaja midagi meie haldusteenuste jaotuses Yandexis ellu viia.<\/p>\n<p><\/p>\n<p>Ja ja \u00fcks s\u00fcgisel 2018. aastal tuli meile m\u00f5te. Tavaliselt on meeskonnal mitu viisi, kuidas funktsioone arendada, vigu parandada, kui k\u00e4ed on v\u00e4he. N\u00e4iteks v\u00f5ib koondada \u00fche uue arendaja ning maksta talle palka. V\u00f5i v\u00f5ite v\u00f5tta praktikandi mingiks ajaks ja maksta ka temale mingit palka. Kuid on veel \u00fcsna suur hulk inimesi, kellest osa oskab juba t\u00f5eliselt koodi kirjutada. Lihtsalt te ei pruugi alati teada, milline on selle koodi kvaliteet.<\/p>\n<p><\/p>\n<p>Me m\u00f5tlesime ja otsustasime proovida kaasata tudengeid. Kuid tudengid ei osale meie juures k\u00f5iges. Nad teevad ainult osa t\u00f6\u00f6st. N\u00e4iteks kirjutavad nad teste, parandavad vigu, rakendavad funktsioone, mis ei m\u00f5juta p\u00f5hifunktsionaalsust. P\u00f5hifunktsionaalsus on varukoopiate loomine ja varukoopiate taastamine. Kui lasta l\u00e4bi viga varukoopia loomisel, saame me andmete kaotuse. Ja seda ei soovi keegi. K\u00f5ik soovivad, et k\u00f5ik oleks v\u00e4ga usaldusv\u00e4\u00e4rne. Seet\u00f5ttu ei soovi me lasta v\u00e4hese usaldusv\u00e4\u00e4rsusega koodi meie s\u00fcsteemi. Ehk iga mitte-kriitiline kood on see, mida me tahaksime saada meie t\u00e4iendavatelt t\u00f6\u00f6taja k\u00e4elt.<\/p>\n<p><\/p>\n<p><strong>Millistel tingimustel aktsepteeritakse tudengi PR-i<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>Nad peavad katma oma koodi testidega. K\u00f5ik peab l\u00e4bima CI. <\/li>\n<li>Ja l\u00e4bime samuti 2 \u00fclevaatust. \u00dcks Andrei Borodinilt ja \u00fcks minult. <\/li>\n<li>Lisaks, et kontrollida, et see ei rikuks meie teenuses midagi, laadime ma eraldi versiooni selle commitiga. Ja me kontrollime end-to-end testides, et meil ei lendaks midagi kokku.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Erikursus Open Source'i kohta<\/strong><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/58832406f3acdf294cd68e6adde14ec8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Veidi selle kohta, miks see on vajalik ja miks see, minu arvates, on lahe idee. <\/p>\n<p><\/p>\n<p><strong>Meie jaoks on kasu ilmselge:<\/strong> <\/p>\n<p><\/p>\n<ul>\n<li>Saame t\u00e4iendavad k\u00e4ed. <\/li>\n<li>Ja otsime meie meeskonda asjatundlikke tudengeid, kes kirjutavad head koodi. <\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Mis on tudengite kasu?<\/strong><\/p>\n<p><\/p>\n<p>Need v\u00f5ivad olla v\u00e4hem ilmsed, sest tudengid ei saa v\u00e4hemalt raha selle koodi eest, mida nad kirjutavad, vaid saavad ainult hindeid oma \u00f5pikus. <\/p>\n<p><\/p>\n<p>K\u00fcsin neilt selle kohta ja nende s\u00f5nul:<\/p>\n<p><\/p>\n<ul>\n<li>Kogemus Open Source'i kaast\u00f6\u00f6lisena.<\/li>\n<li>Saada rida CV-sse.<\/li>\n<li>Oma oskuste n\u00e4itamine ja vestlusel l\u00e4bimine Yandexis.<\/li>\n<li>Osaleda GSoC-is.<\/li>\n<li>+1 erikursus neile, kes soovivad koodi kirjutada.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ma ei hakka r\u00e4\u00e4kima, kuidas kursus oli korraldatud. \u00dctlen vaid, et WAL-G oli peamine projekt. Samuti h\u00f5lmasime kursusel selliseid projekte nagu Odyssey, PostgreSQL ja ClickHouse.<\/p>\n<p><\/p>\n<p>Ja \u00fclesandeid anti mitte ainult sellel kursusel, vaid samuti jagati diplome ja kursuset\u00f6id.<\/p>\n<p><\/p>\n<p><strong>Aga mis on sellest kasu kasutajatele?<\/strong><\/p>\n<p><\/p>\n<p>N\u00fc\u00fcd liigume osa juurde, mis teie jaoks on ilmselt huvitavam. Mis kasu te sellest saate? Kasu on selles, et \u00f5pilased parandavad palju vigu. Ja nad tegid teie palutud funktsioonide p\u00e4ringud. <\/p>\n<p><\/p>\n<p>Ja r\u00e4\u00e4kigem asjadest, mida olete ammu soovinud ja mis on n\u00fc\u00fcd ellu viidud.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/bb836742bf4f99e1b91c891ed1802bf0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tablespace'ide toetus. Tablespace'id WAL-G-s olid oodatud ilmselt alates WAL-G v\u00e4ljalaskmisest, kuna WAL-G on teise varundust\u00f6\u00f6riista WAL-E j\u00e4rglane, kus olid toetatud andmebaaside varukoopiad tablespace'idega.<\/p>\n<p><\/p>\n<p>Kokkuv\u00f5tteks meenutan, mis see on ja miks see k\u00f5ik vajalik on. Tavaliselt asuvad k\u00f5ik teie Postgres andmed \u00fchises kataloogis failis\u00fcsteemis, mida nimetatakse p\u00f5hikataloogiks. Ja see kataloog sisaldab juba k\u00f5iki faile ja alamkatalooge, mida Postgres vajab.<\/p>\n<p><\/p>\n<p>Tablespace'id on kataloogid, kus asuvad Postgres andmed, kuid need ei asu p\u00f5hikataloogist v\u00e4ljaspool. Esitluses on n\u00e4ha, et tablespace'id asuvad v\u00e4ljaspool p\u00f5hikatalooge.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/0f25591cfcaaeaec02903c9b98d8ac65.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kuidas see Postgrese jaoks v\u00e4lja n\u00e4eb? P\u00f5hikataloogis on eraldi alamkataloog pg_tblspc. Ja selles on s\u00fcmboolsed lingid kataloogidele, kus tegelikult asuvad Postgres andmed v\u00e4ljaspool p\u00f5hikatalooge.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/9e9875696c03e6e42bb98b5a7a9acd75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kui te seda k\u00f5ike kasutate, v\u00f5ivad need k\u00e4sud teie jaoks v\u00e4lja n\u00e4ha umbes nii. St. te loote tabeli m\u00f5nes kindlas tablespace'is ja vaatate, kus see n\u00fc\u00fcd asub. Need kaks viimast rida, kaks viimati v\u00e4lja kutsutud k\u00e4sku. Ja seal on n\u00e4ha, et on mingi tee. Kuid tegelikult \u2013 see ei ole t\u00f5eline tee. See on tee, millel on p\u00f5hikatalooge eeltoodud prefiks ja tablespace. Ja sealt edasi on see \u00fchendatud s\u00fcmboolse lingiga, mis suunab teie tegelikele andmetele.<\/p>\n<p><\/p>\n<p>Meie tiimis seda ei kasutata, aga paljusid teisi WAL-E kasutajaid, kes kirjutasid meile, et nad tahavad \u00fcle minna WAL-G-le, h\u00e4iris see. N\u00fc\u00fcd on see toetatud.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/95ec319ccefa7e6c8bce193317407229.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Teine funktsioon, mille meie erikursus meile t\u00f5i, on catchup. Catchup'ist teavad inimesed, kes on ilmselt rohkem t\u00f6\u00f6tanud Oracle'iga kui Postgresega.<\/p>\n<p><\/p>\n<p>L\u00fchidalt sellest, mis see on. Nii v\u00f5ib meie teenuse klastritopoloogia v\u00e4lja n\u00e4ha. Meil on peamine server. On ka replikant, mis voogedastab kirjutamislogi. Ja replikant \u00fctleb peamisele serverile, millisel LSN-l ta parasjagu asub. Ja samal ajal v\u00f5ib logi arhiivida. Lisaks ajakohastatakse ka varukoopiaid pilve.<\/p>\n<p><\/p>\n<p>Milline v\u00f5ib olla probleem? Kui teil on suhteliselt suur andmebaas, v\u00f5ib juhtuda, et replikant hakkab peamisest serverist oluliselt maha j\u00e4\u00e4ma. Ja j\u00e4\u00e4b nii palju maha, et tal ei \u00f5nnestu enam kunagi j\u00e4rgi j\u00f5uda. Seda probleemi tuleb tavaliselt lahendada. <\/p>\n<p><\/p>\n<p>Ja k\u00f5ige lihtsam viis on replikant eemaldada ja see uuesti installida, sest ta ei suuda kunagi j\u00e4rgi j\u00f5uda ning probleemiga tuleb tegeleda. Kuid see v\u00f5tab \u00fcsna kaua aega, kuna 10 TB suuruse andmebaasi t\u00e4is varukoopia taastamine on v\u00e4ga-v\u00e4ga aegan\u00f5udev. Ja me tahame selle k\u00f5ik v\u00f5imalikult kiiresti \u00e4ra teha, kui sellised probleemid tekivad. Ja just selleks on m\u00f5eldud catchup.<\/p>\n<p><\/p>\n<p>Catchup v\u00f5imaldab kasutada delta-varukoopiaid, mis on pilves salvestatud. Te \u00fctlete, millisel LSN-l on praegu maha j\u00e4\u00e4nud replikant ja m\u00e4rkite selle catchup k\u00e4sus, et luua delta-varukoopia selle LSN-i vahel ja LSN-i, kus teie klaster praegu asub. Ja seej\u00e4rel taastate selle varukoopia replikantile, mis j\u00e4i maha.<\/p>\n<p><\/p>\n<p><strong>Teised andmebaasid<\/strong><\/p>\n<p><\/p>\n<p>Samuti t\u00f5id \u00fcli\u00f5pilased meile kohe palju funktsioone. Kuna me Yandexis t\u00f6\u00f6tleme mitte ainult Postgres'i, vaid ka MySQL, MongoDB, Redis, ClickHouse, siis tekkis mingil hetkel vajadus, et saaksime teha varukoopiaid ajapunkti taastamise v\u00f5imalusega MySQL'ist ja et oleks v\u00f5imalus neid pilve laadida.<\/p>\n<p><\/p>\n<p>Ja me tahtsime seda teha sarnasel viisil, nagu WAL-G teeb. Otsustasime katsetada ja vaadata, kuidas see k\u00f5ik v\u00e4lja n\u00e4eb.<\/p>\n<p><\/p>\n<p>Alguses ei eraldanud me seda loogikat haru sees, vaid kirjutasime koodi. N\u00e4gime, et meil on mingisugune toimiv mudel ja see v\u00f5ib toimida. Seej\u00e4rel m\u00f5tlesime, et meie peamine kogukond on postgres'i kasutajad, kes kasutavad WAL-G-d. Seet\u00f5ttu tuleb need osad kuidagi eraldada. See t\u00e4hendab, et kui me parandame koodi Postgres'i jaoks, ei sega me MySQL-i ja kui me parandame MySQL-i, ei sega me Postgres'i.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/deef7615eaeb0b8bd790fb253cc42312.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Esimene idee, kuidas seda jagada, oli kasutada sama l\u00e4henemist, mida kasutatakse PostgreSQL laiendustes. Sisuliselt, et teha MySQL varukoopia, pidite paigaldama mingi d\u00fcnaamilise teegi. <\/p>\n<p><\/p>\n<p>Aga siin on kohe n\u00e4ha selle l\u00e4henemise as\u00fcmmeetria. Kui te varundate Postgres'i, paigaldatakse sellele normaalne varundust\u00f6\u00f6riist, ja k\u00f5ik on suurep\u00e4rane. Aga MySQL puhul k\u00e4ib see nii, et paigaldate Postgres'i varundust\u00f6\u00f6riista ja selle jaoks paigaldatakse veel d\u00fcnaamiline teek MySQL jaoks. See k\u00f5lab kuidagi kummaliselt. Me m\u00f5tlesime ka nii ja otsustasime, et see ei ole see lahendus, mida vajame. <\/p>\n<p><\/p>\n<p><strong>Erinevad paketid Postgres'i, MySQL, MongoDB, Redis jaoks<\/strong><\/p>\n<p><\/p>\n<p>Aga see v\u00f5imaldas meil, nagu me arvame, j\u00f5uda \u00f5ige lahenduseni \u2013 eristada erinevaid pakette erinevate andmebaaside jaoks. See v\u00f5imaldas isoleerida loogikat, mis on seotud erinevate andmebaaside varukoopiate tegemisega, mis p\u00f6\u00f6rduvad \u00fchise API poole, mida rakendab WAL-G.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/6c810d5f065de06fc200bdd028707318.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>See on see osa, mille me ise kirjutasime \u2013 enne, kui andsime tudengitele \u00fclesanded. Teisis\u00f5nu, see on just see osa, kus nad v\u00f5isid midagi valesti teha, seega otsustasime, et teeme midagi ise ja k\u00f5ik on suurep\u00e4rane. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/3a864a85bfb820ef64cbacc029a9198c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00e4rast seda andsime \u00fclesanded. Need viidati kohe l\u00e4bi. Tudengitelt oodati, et nad toetavad kolme andmebaasi. <\/p>\n<p><\/p>\n<p>See on MySQL, mida me oleme juba rohkem kui aasta varundanud pideva WAL-G abiga. <\/p>\n<p><\/p>\n<p>Ja praegu l\u00e4heneb ka MongoDB tootmisfaasile, seal t\u00e4iustatakse seda veel. Sisuliselt kirjutasime selle jaoks raami. Hiljem kirjutasid tudengid m\u00f5ned funktsionaalsed lahendused. Ja siis viime need sellisesse seisundsesse, mida saame oma tootmises aktsepteerida.<\/p>\n<p><\/p>\n<p>Need \u00fclesanded ei n\u00e4inud v\u00e4lja sellised, et tudengid pidid kirjutama t\u00e4ielikke varundust\u00f6\u00f6riistu iga andmebaasi jaoks. Meie probleem ei seisnud selles. Meie probleem oli selles, et soovisime punkt-punkti taastamist ja soovisime varundada pilve. Palusime tudengitel kirjutada mingit koodi, mis selle lahendaks. Tudengid kasutasid juba olemasolevaid varundust\u00f6\u00f6riistu, mis kuidagi teevad varukoopiaid, ja seej\u00e4rel sidusid nad selle k\u00f5ik WAL-G-ga, mis edastas k\u00f5ik pilve. Samuti lisasid nad punkt-punkti taastamise.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/7494aef259c7599e8bf0b70d77e1bb09.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mida veel t\u00f5id tudengid? Nad t\u00f5id WAL-G-sse Libsodium'i kr\u00fcpteerimise toe.<\/p>\n<p><\/p>\n<p>Samuti on meil n\u00fc\u00fcd varukoopiate s\u00e4ilitamise poliitikad. N\u00fc\u00fcd saab varukoopiaid m\u00e4rkida p\u00fcsivateks. Ja selle teenuse jaoks on mugavam automatiseerida nende s\u00e4ilitamise protsessi. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/6e932ab13dbc3119f7f1da1122443b10.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mis tulemuseks sai selle eksperimendi k\u00e4igus?<\/p>\n<p><\/p>\n<p>Kursusele registreerus algselt rohkem kui 100 inimest. Ma ei \u00f6elnud alguses, et \u00fclikool Jekaterinburgis on Uuralite F\u00f6deraal\u00fclikool. Seal kuulutasime me k\u00f5ik v\u00e4lja. 100 inimest registreerus. Tegelikult hakkas midagi tegema palju v\u00e4hem, umbes 30 inimest. <\/p>\n<p><\/p>\n<p>Kursuse l\u00f5petas veel v\u00e4hem inimesi, sest seal pidi kirjutama teste juba olemasolevale koodile. Samuti pidime m\u00f5ne bug'i parandama v\u00f5i mingit funktsiooni tegema. Ja osa \u00fcli\u00f5pilastest suudsid siiski kursuse l\u00f5petada.<\/p>\n<p><\/p>\n<p>Praeguseks on \u00fcli\u00f5pilased selle kursuse k\u00e4igus parandanud umbes 14 probleemi, teinud 10 erineva suurusega funktsiooni. Ja minu arvates on see t\u00e4ie\u00f5iguslik asendus \u00fche v\u00f5i kahe arendaja jaoks. <\/p>\n<p><\/p>\n<p>Lisaks sellel anname v\u00e4lja diplome ja kursust\u00f6id. 12 inimest v\u00f5tsid diplomi. 6 neist on juba kaitsnud \u00ab5\u00bb peale. \u00dclej\u00e4\u00e4nud ei ole veel kaitsnud, kuid arvan, et ka neil l\u00e4heb k\u00f5ik h\u00e4sti. <\/p>\n<p><\/p>\n<p>Tulevikuplaanid<\/p>\n<p><\/p>\n<p>Millised on meie tuleviku plaanid?<\/p>\n<p><\/p>\n<p>Igatahes need funktsioonide p\u00e4ringud, mida me juba kasutajatelt kuulnud oleme ja mida tahame teha. Need on:<\/p>\n<p><\/p>\n<ul>\n<li>Ajaskaalade t\u00e4psuse j\u00e4lgimine HA-kliendi varukoopia arhivis. WAL-G abil saab seda teha. Ja ma arvan, et leiame tudengeid, kes sellega tegelema hakkavad. <\/li>\n<li>Varukoopiate ja WAL-i \u00fclekande eest pilvedes on meil juba vastutav isik. <\/li>\n<li>Ja me avaldasime hiljuti idee, et saame WAL-G-d veel rohkem kiirendada, kasutades inkrementaalsete varukoopiate lahtipakkimist ilma lehek\u00fclgede kirjutamiseta ja arhiveerimise optimeerimist, mida me sinna saadame. <\/li>\n<\/ul>\n<p><\/p>\n<p>Saate neid siin jagada<\/p>\n<p><\/p>\n<p>Milleks oli see ettekande? Selleks, et praegu, peale meid nelja inimest, kes seda projekti toetavad, on meil palju abik\u00e4si. Eriti, kui neile isiklikult kirjutada. Ja kui varundate oma andmeid ja teete seda WAL-G abil v\u00f5i soovite \u00fcle minna WAL-G-le, siis saame teie soove \u00fcsna kergesti arvesse v\u00f5tta.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/7b0dc1633121ea6493610b08f68a14d2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>See on qr-kood ja link. Saate neid kasutada, et minna ja kirjutada k\u00f5ik oma soovid. N\u00e4iteks me ei paranda m\u00f5nda bug'i. V\u00f5i m\u00f5nda funktsiooni, mida soovite v\u00e4ga, kuid mikski p\u00e4rast pole see veel \u00fcheski varundusteenuses, sealhulgas ka meie omas. Kirjutage sellest kindlasti.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy R\u00f5lov\" src=\"\/wp-content\/uploads\/2020\/04\/56f1c4eef8522d2d6628ea98b1278846.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00fcsimused<\/p>\n<p><\/p>\n<p><em>Tere! Ait\u00e4h ettekande eest! K\u00fcsimus WAL-G kohta, aga mitte Postgresest. WAL-G varundab MySQL-i ja kutsub esile ekstrap\u00e4eviku. Kui v\u00f5tta kaasaegsed paigaldused CentOS-is ja kui teete yum install MySQL, installitakse MariDB. Alates versioonist 10.3 ei toetata ekstrap\u00e4evikut, toetatakse MariDB varundust. Kuidas teil sellega on?<\/em><\/p>\n<p><\/p>\n<p>Praegu ei ole me p\u00fc\u00fcdnud MariDB-d varundada. Meil on olnud taotlusi FoundationDB toe kohta, kuid \u00fcldiselt, kui selline taotlus on, saame leida inimesi, kes selle teevad. See ei ole nii pikk ega keeruline, nagu mulle tundub.<\/p>\n<p><\/p>\n<p><em>Tere p\u00e4evast! Ait\u00e4h ettekande eest! K\u00fcsimus potentsiaalselt uute funktsioonide kohta. Kas olete valmis saama WAL-G t\u00f6\u00f6le lintide jaoks, et saaks varundust teha lintidele?<\/em><\/p>\n<p><\/p>\n<p>Kas lintide salvestamiseks m\u00f5eldud varundus on ilmselt see, mis silmas peetakse?<\/p>\n<p><\/p>\n<p><em>Jah.<\/em><\/p>\n<p><\/p>\n<p>Seal on Andrej Borodin, kes v\u00f5ib sellele k\u00fcsimusele paremini vastata. <\/p>\n<p><\/p>\n<p>(Andrej) Jah, ait\u00e4h k\u00fcsimuse eest! Meil oli taotlus varunduse edastamiseks lintidele pilvesalvestusest. Ja selle jaoks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/pull\/596\">on tegemisel<\/a><\/noindex> edastus pilvede vahel. Sest edastus pilvede vahel on mingisugune \u00fcldine versioon edastamisest lintidele. Lisaks on meil laienev arhitektuur salvestusruumide osas. Muide, paljud salvestusruumid on kirjutatud tudengite poolt. Ja kui te kirjutate salvestusruumi lintide jaoks, siis see toetatakse kindlasti. Oleme valmis vaatama sissevedu. Seal tuleb faili kirjutada, faili lugeda. Kui need asjad teha Go keeles, siis saab tavaliselt 50 rida koodi. Ja siis toetatakse WAL-G-s linti. <\/p>\n<p><\/p>\n<p><em>Ait\u00e4h ettekande eest! Huvitav arendusprotsess. Varundamine on t\u00f5sine funktsionaalsuse osa, mis peab olema h\u00e4sti katetud testidega. Kui te realiseerisite uusi andmebaase, kas ka testid kirjutasid tudengid v\u00f5i kirjutesite testid ise ja andsite seej\u00e4rel rakenduse tudengitele?<\/em><\/p>\n<p><\/p>\n<p>Testid kirjutasid samuti tudengid. Kuid tudengid kirjutasid rohkem selliste funktsioonide jaoks, nagu uued andmebaasid. Nad kirjutasid integratsioonitestid. Ja nad kirjutasid \u00fcksusteste. Kui integratsioonitestid l\u00e4bivad, st praegu \u2013 see stsenaarium, mida te t\u00e4idate k\u00e4sitsi v\u00f5i teeb seda n\u00e4iteks cron. St stsenaarium on \u00fcsna arusaadav. <\/p>\n<p><\/p>\n<p><em>Tudengitel ei ole eriti palju kogemusi. Kui palju aega \u00fclevaatusele kulub?<\/em><\/p>\n<p><\/p>\n<p>Jah, \u00fclevaatamiseks kulub t\u00f5esti \u00fcsna palju aega. Ehkki tavaliselt, kui tuleb mitu arendajat korraga ja \u00fctlevad, et olen teinud seda ja seda, tuleb m\u00f5elda ja leida kuskil pool p\u00e4eva, et aru saada, mida nad seal kirjutasid. Sest koodi peab hoolikalt lugema. Nad ju ei l\u00e4binud vestlust. Me ei tunne neid v\u00e4ga h\u00e4sti, seet\u00f5ttu v\u00f5tab see m\u00e4rkimisv\u00e4\u00e4rselt aega.<\/p>\n<p><\/p>\n<p><em>Ait\u00e4h ettekande eest! Varem on Andrei Borodin \u00f6elnud, et archive_command WAL-G-is peaks olema kutsutud otse. Kuid mingisuguse patroni klastriga vajame me lisaloogikat, et m\u00e4\u00e4rata node, kellele saata WAL-e. Kuidas teie seda probleemi lahendate?<\/em><\/p>\n<p><\/p>\n<p>Milline probleem teil siin tekib? Kas teil on n\u00e4iteks s\u00fcnkroonne replikatsioon, kust te teete varukoopia? V\u00f5i mis?<\/p>\n<p><\/p>\n<p>(Andrei) Asi on selles, et WAL-G eeldab t\u00f5epoolest kasutamist ilma shell-skriptide sidumiseta. Kui millestki j\u00e4\u00e4b puudu, siis kirjutame loogikaga juurde, mis peaks olema WAL-G sees. Kui r\u00e4\u00e4kida sellest, kust arhiveerimine peaks toimuma, siis usume, et arhiveerimine peaks toimuma klastris olevast praegusest peast. Replikatsioonist arhiveerimine on halb idee. Seal v\u00f5ivad tekkida erinevad stsenaariumid probleemidega. Eelk\u00f5ige ajajoone ja muude lisainfo arhiveerimise probleemid. Ait\u00e4h k\u00fcsimuse eest!<\/p>\n<p><\/p>\n<p>(T\u00e4psustus: Shell-skriptide sidumine on eemaldatud) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/issues\/549\">selles probleemis<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p><em>Tere \u00f5htust! Ait\u00e4h ettekande eest! Mind huvitab catchup-funktsioon, millest r\u00e4\u00e4kisite. Olite silmitsi olukorraga, kus replikatsioon j\u00e4i maha, mis ei suutnud kuidagi j\u00e4rgi j\u00f5uda. Ja ma ei leidnud WAL-G-ist selle funktsiooni kirjeldust dokumentatsioonis.<\/em><\/p>\n<p><\/p>\n<p>Catchup ilmus s\u00f5na otseses m\u00f5ttes 2020. aasta jaanuari 20. p\u00e4evadel. Dokumentatsiooniga v\u00f5ib-olla tasuks natuke paremini t\u00f6\u00f6tada. Me ise kirjutame seda ja kirjutame seda mitte just superh\u00e4sti. Ja v\u00f5ib-olla peaksime \u00fcli\u00f5pilastelt n\u00f5udma, et nad seda kirjutaksid.<\/p>\n<p><\/p>\n<p><em>Kas see on juba v\u00e4lja antud?<\/em><\/p>\n<p><\/p>\n<p>Pull request on juba \u00fchendatud, s.t. ma olen selle kontrollinud. Proovisin seda testklastris. Praegu ei ole meil olnud olukorda, kus saaksime seda tootmisn\u00e4itel katsetada.<\/p>\n<p><\/p>\n<p><em>Millal oodata?<\/em><\/p>\n<p><\/p>\n<p>Ma ei tea. Oodake kuud, me kindlasti kontrollime.<\/p>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/498428\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 2020 \u0433\u043e\u0434\u0430 \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0420\u044b\u043b\u043e\u0432\u0430 &quot;WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430&quot; \u0423 \u043c\u0435\u0438\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 open-source \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u0440\u043e\u0441\u0442\u0430. \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0438\u0447, \u0447\u0438\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 issues&#8217;\u043e\u0432 \u0438 \u0443\u0441\u043f\u0435\u0432\u0430\u0442\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 pull request&#8217;\u043e\u0432? \u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 WAL-G(backup-tool for PostgreSQL) \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u043c\u044b \u0440\u0435\u0448\u0430\u043b\u0438 \u044d\u0442\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":78888,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-78887","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 2020 \u0433\u043e\u0434\u0430 \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0420\u044b\u043b\u043e\u0432\u0430 &quot;WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430&quot; \u0423 \u043c\u0435\u0438\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 open-source \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e.\" \/>\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\/et\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\udd47WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u0413\u0435\u043e\u0440\u0433\u0438\u0439 \u0420\u044b\u043b\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 2020 \u0433\u043e\u0434\u0430 \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0420\u044b\u043b\u043e\u0432\u0430 &quot;WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430&quot; \u0423 \u043c\u0435\u0438\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 open-source \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov\" \/>\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=\"2020-04-22T17:42:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-22T17:42:51+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\udd47WAL-G: uued v\u00f5imalused ja kogukonna laienemine. Georgiy Rylov | ProHoster","description":"Soovitan tutvuda Georgi Rylovi 2020. aasta alguses peetud ettekande \"WAL-G: uued v\u00f5imalused ja kogukonna laiendamine\" kokkuv\u00f5ttega. Open-source'i hooldajatel on palju probleeme.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\udd47WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u0413\u0435\u043e\u0440\u0433\u0438\u0439 \u0420\u044b\u043b\u043e\u0432 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u043e\u0439 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 2020 \u0433\u043e\u0434\u0430 \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0420\u044b\u043b\u043e\u0432\u0430 &quot;WAL-G: \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430&quot; \u0423 \u043c\u0435\u0438\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 open-source \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u043e.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","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":"2020-04-22T17:42:51+00:00","article:modified_time":"2020-04-22T17:42:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"78887","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:49:45","updated":"2022-09-29 18:48:15","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/78887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=78887"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/78887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/78888"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=78887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=78887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=78887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}