{"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\/sv\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","title":{"rendered":"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>\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;<\/strong><\/p>\n<p><\/p>\n<p>\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 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u043a\u0443\u0440\u0441 \u043f\u043e Open-source \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0435, \u0447\u0435\u0433\u043e \u043c\u044b \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c \u0438 \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0435\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" 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>Hej alla igen! Jag \u00e4r utvecklare p\u00e5 Yandex fr\u00e5n Jekaterinburg. Och idag kommer jag att ber\u00e4tta om WAL-G.<\/p>\n<p><\/p>\n<p>I titeln p\u00e5 rapporten stod det inte att det handlade om backuper. Finns det n\u00e5gon som inte vet vad WAL-G \u00e4r? Eller vet alla? R\u00e4ck upp handen om ni inte vet. Wow, ni kom till f\u00f6rel\u00e4sningen utan att veta vad den handlar om.<\/p>\n<p><\/p>\n<p>L\u00e5t mig ber\u00e4tta vad som kommer h\u00e4nda idag. Det har blivit s\u00e5 att v\u00e5rt team har arbetat med backuper ett tag nu. Och det h\u00e4r \u00e4r ytterligare en f\u00f6rel\u00e4sning i serien d\u00e4r vi ber\u00e4ttar om hur vi lagrar data s\u00e4kert, p\u00e5litligt, bekv\u00e4mt och effektivt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/4307e7b2acc60cd908d91e3f1b83a9b6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>I tidigare avsnitt har det varit m\u00e5nga f\u00f6rel\u00e4sningar av Andrey Borodin, Vladimir Leskov. Vi har varit m\u00e5nga. Och vi har alla pratat om WAL-G i m\u00e5nga \u00e5r. <\/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>Den h\u00e4r f\u00f6rel\u00e4sningen kommer att skilja sig lite fr\u00e5n de andra, f\u00f6r h\u00e4r handlar det mer om den tekniska delen, och h\u00e4r kommer jag att ber\u00e4tta om hur vi st\u00f6tt p\u00e5 problem relaterade till tillv\u00e4xten av samh\u00e4llet. Och hur vi kom p\u00e5 en liten id\u00e9 som hj\u00e4lper oss att hantera detta. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/ec728f7d99ea9b6a5df4785d7e8a2a75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>F\u00f6r n\u00e5gra \u00e5r sedan var WAL-G ett ganska litet projekt som vi f\u00e5tt fr\u00e5n Citus Data. Och vi tog just \u00f6ver det. Det utvecklades av en person.<\/p>\n<p><\/p>\n<p>Och i WAL-G fanns det inte:<\/p>\n<p><\/p>\n<ul>\n<li>Backup fr\u00e5n replik.<\/li>\n<li>Det fanns inga inkrementella backuper.<\/li>\n<li>Det fanns inga WAL-Delta backuper. <\/li>\n<li>Och massor av saker saknades.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Under dessa \u00e5r har WAL-G v\u00e4xt mycket.<\/strong> <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/16700dfcc2c54539c5a064894cd1ec88.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Och vid 2020 hade allt detta n\u00e4mnda redan dykt upp. Dessutom har vi nu:<\/p>\n<p><\/p>\n<ul>\n<li>\u00d6ver 1 000 stj\u00e4rnor p\u00e5 GitHub.<\/li>\n<li>150 forkningar.<\/li>\n<li>Cirka 15 \u00f6ppna PR.<\/li>\n<li>Och mycket fler bidragsgivare. <\/li>\n<li>Och \u00f6ppna issues hela tiden. Och detta trots att vi bokstavligen g\u00e5r in d\u00e4r varje dag f\u00f6r att g\u00f6ra n\u00e5got med det. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/5e5dea14b328a7f0437017ca834d1eaf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Och vi kom fram till att det h\u00e4r projektet kr\u00e4ver mer av v\u00e5r uppm\u00e4rksamhet, \u00e4ven n\u00e4r vi sj\u00e4lva inte beh\u00f6ver implementera n\u00e5got f\u00f6r v\u00e5r tj\u00e4nst Managed Databases i Yandex.<\/p>\n<p><\/p>\n<p>Och n\u00e5gonstans h\u00f6sten 2018 kom vi p\u00e5 en id\u00e9. Vanligtvis har teamet n\u00e5gra s\u00e4tt att utveckla funktioner eller \u00e5tg\u00e4rda buggar om ni har ont om resurser. Till exempel kan man anst\u00e4lla en ytterligare utvecklare och betala denne. Eller man kan ta in en praktikant under en tid och betala denne en l\u00f6n. Men det finns ocks\u00e5 en ganska stor grupp m\u00e4nniskor, en del av vilken faktiskt kan skriva kod. Problemet \u00e4r bara att ni inte alltid vet vilken kvalitet den koden har.<\/p>\n<p><\/p>\n<p>Vi funderade och best\u00e4mde oss f\u00f6r att f\u00f6rs\u00f6ka involvera studenter. Men studenterna kommer inte att delta i allt. De kommer att g\u00f6ra endast en del av arbetet. De kommer till exempel att skriva tester, fixa buggar och implementera funktioner som inte ber\u00f6r den huvudsakliga funktionaliteten. Den huvudsakliga funktionaliteten \u00e4r att skapa s\u00e4kerhetskopior och \u00e5terst\u00e4lla dessa. Om man till\u00e5ter en bugg i skapandet av en s\u00e4kerhetskopia kommer vi att f\u00f6rlora data. Och ingen vill f\u00f6rst\u00e5s det. Alla vill att allt ska vara mycket p\u00e5litligt. D\u00e4rf\u00f6r vill vi sj\u00e4lvklart inte sl\u00e4ppa in n\u00e5gon kod som vi har mindre f\u00f6rtroende f\u00f6r \u00e4n v\u00e5r egen. Det vill s\u00e4ga, all icke-kritisk kod \u00e4r vad vi skulle vilja f\u00e5 fr\u00e5n v\u00e5ra extra arbetskrafter.<\/p>\n<p><\/p>\n<p><strong>Under vilka f\u00f6rh\u00e5llanden accepteras studenternas PR?<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>De \u00e4r skyldiga att t\u00e4cka sin kod med tester. Allt m\u00e5ste passerar i CI. <\/li>\n<li>Och vi genomg\u00e5r ocks\u00e5 2 granskningar. En av Andrej Borodin och en av mig. <\/li>\n<li>Och f\u00f6r att ytterligare kontrollera att detta inte bryter n\u00e5got i v\u00e5r tj\u00e4nst laddar jag upp en version med denna commit. Och vi kontrollerar i end-to-end tester att ingenting faller.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Specialkurs om Open Source<\/strong><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/58832406f3acdf294cd68e6adde14ec8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Lite om varf\u00f6r detta \u00e4r viktigt och varf\u00f6r jag tror att det \u00e4r en cool id\u00e9. <\/p>\n<p><\/p>\n<p><strong>F\u00f6r oss \u00e4r vinsten uppenbar:<\/strong> <\/p>\n<p><\/p>\n<ul>\n<li>Vi f\u00e5r extra h\u00e4nder. <\/li>\n<li>Och vi s\u00f6ker kandidater till teamet bland duktiga studenter som skriver bra kod. <\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Vad \u00e4r vinsten f\u00f6r studenterna?<\/strong><\/p>\n<p><\/p>\n<p>De kan vara mindre uppenbara, eftersom studenterna \u00e5tminstone inte f\u00e5r pengar f\u00f6r den kod de skriver, utan f\u00e5r endast betyg i sin studieprotokoll. <\/p>\n<p><\/p>\n<p>Jag fr\u00e5gade dem om detta. Och enligt deras ord:<\/p>\n<p><\/p>\n<ul>\n<li>Erfarenhet som bidragsgivare i Open Source.<\/li>\n<li>F\u00e5 en rad i CV:t.<\/li>\n<li>Visa sig och g\u00e5 igenom en intervju hos Yandex.<\/li>\n<li>Bli deltagare i GSoC.<\/li>\n<li>+1 specialkurs f\u00f6r dem som vill skriva kod.<\/li>\n<\/ul>\n<p><\/p>\n<p>Jag kommer inte att prata om hur kursen var strukturerad. Jag kan bara s\u00e4ga att WAL-G var det huvudsakliga projektet. Vi inkluderade ocks\u00e5 s\u00e5dana projekt som Odyssey, PostgreSQL och ClickHouse i denna kurs.<\/p>\n<p><\/p>\n<p>Och vi gav uppgifter inte bara p\u00e5 denna kurs, utan delade ocks\u00e5 ut diplom och projektarbeten.<\/p>\n<p><\/p>\n<p><strong>Och vad \u00e4r vinsten f\u00f6r anv\u00e4ndarna?<\/strong><\/p>\n<p><\/p>\n<p>Nu g\u00e5r vi vidare till den del som f\u00f6rmodligen intresserar er. Vad f\u00e5r ni ut av detta? Vinsten \u00e4r att studenterna har \u00e5tg\u00e4rdat m\u00e5nga buggar. Och de har gjort funktionsf\u00f6rfr\u00e5gningar som ni bad oss att genomf\u00f6ra. <\/p>\n<p><\/p>\n<p>L\u00e5t mig ber\u00e4tta om de saker som ni l\u00e4nge har velat ha och som nu har implementerats.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/bb836742bf4f99e1b91c891ed1802bf0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>St\u00f6d f\u00f6r tablespaces. St\u00f6d f\u00f6r tablespaces i WAL-G har nog efterfr\u00e5gats sedan WAL-G sl\u00e4pptes, eftersom WAL-G \u00e4r eftertr\u00e4daren till ett annat backupverktyg, WAL-E, d\u00e4r databackuper med tablespaces st\u00f6djades.<\/p>\n<p><\/p>\n<p>Jag p\u00e5minner kort om vad det \u00e4r och varf\u00f6r det beh\u00f6vs. Vanligtvis tar all Postgres-data upp en katalog i filsystemet som kallas basen. Och den h\u00e4r katalogen inneh\u00e5ller redan alla filer och underkataloger som Postgres beh\u00f6ver.<\/p>\n<p><\/p>\n<p>Tablespaces \u00e4r kataloger d\u00e4r Postgres-data ligger, men de ligger inte utanf\u00f6r basen. P\u00e5 bilden kan man se att tablespaces ligger utanf\u00f6r basen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/0f25591cfcaaeaec02903c9b98d8ac65.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hur ser detta ut f\u00f6r sj\u00e4lva Postgres? I basen finns en separat underkatalog pg_tblspc. Och d\u00e4r ligger syml\u00e4nkar till kataloger d\u00e4r Postgres-data faktiskt ligger utanf\u00f6r basen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/9e9875696c03e6e42bb98b5a7a9acd75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00e4r ni anv\u00e4nder allt detta kan dessa kommandon se ut som f\u00f6ljande. Det vill s\u00e4ga, ni skapar en tabell i en specificerad tablespace och ser var den ligger nu. De tv\u00e5 sista raderna, de sista kallelserna. D\u00e4r kan man se att det finns n\u00e5gon v\u00e4g. Men i sj\u00e4lva verket \u2013 det \u00e4r inte en riktig v\u00e4g. Det \u00e4r en v\u00e4g med prefix fr\u00e5n basen till tablespace. Och d\u00e4rifr\u00e5n \u00e4r den kopplad via en symlink som leder till era verkliga data.<\/p>\n<p><\/p>\n<p>Vi anv\u00e4nder inte detta i v\u00e5rt team, men det har anv\u00e4nts av m\u00e5nga andra anv\u00e4ndare av WAL-E som har ber\u00e4ttat f\u00f6r oss att de ville migrera till WAL-G, men detta hindrade dem. Nu st\u00f6ds det.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/95ec319ccefa7e6c8bce193317407229.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>En annan funktion som v\u00e5rt specialkurs har gett oss \u00e4r catchup. De som har arbetat mer med Oracle \u00e4n med Postgres k\u00e4nner till catchup.<\/p>\n<p><\/p>\n<p>Kort om vad det handlar om. En s\u00e5dan h\u00e4r kan vanligtvis se ut i topologin av v\u00e5rt kluster. Vi har en master. Det finns en replika som str\u00f6mmar fr\u00e5n den en write-ahead log. Och replikan s\u00e4ger till mastern p\u00e5 vilken LSN den nu befinner sig. Och parallellt kan loggen arkiveras. Ut\u00f6ver arkiveringen skickas \u00e4ven s\u00e4kerhetskopior till molnet. Delta-s\u00e4kerhetskopior skickas ocks\u00e5.<\/p>\n<p><\/p>\n<p>Vilket problem kan uppst\u00e5? N\u00e4r ni har en ganska stor databas kan det h\u00e4nda att replikan b\u00f6rjar halka efter mastern dramatiskt. Och den halkar efter s\u00e5 mycket att den aldrig kan ta ikapp. Detta problem beh\u00f6ver i regel l\u00f6sas p\u00e5 n\u00e5got s\u00e4tt. <\/p>\n<p><\/p>\n<p>Det enklaste s\u00e4ttet \u00e4r att ta bort replikan och installera om den, eftersom den aldrig kommer att ta ikapp, och problemet m\u00e5ste \u00e5tg\u00e4rdas. Men detta tar ganska l\u00e5ng tid, eftersom det \u00e4r mycket, mycket tidskr\u00e4vande att \u00e5terst\u00e4lla en fullst\u00e4ndig s\u00e4kerhetskopia av en databas p\u00e5 10 TB. Vi vill g\u00e4rna g\u00f6ra detta s\u00e5 snabbt som m\u00f6jligt om s\u00e5dana problem uppst\u00e5r. Det \u00e4r just d\u00e4rf\u00f6r catchup \u00e4r avsett.<\/p>\n<p><\/p>\n<p>Catchup m\u00f6jligg\u00f6r anv\u00e4ndning av delta-s\u00e4kerhetskopior som lagras i molnet p\u00e5 detta s\u00e4tt. Ni anger vilken LSN den efterh\u00e4ngande replikan befinner sig p\u00e5 och anger det i catchup-kommandot f\u00f6r att skapa en delta-s\u00e4kerhetskopia mellan den LSN och LSN d\u00e4r ert kluster f\u00f6r n\u00e4rvarande befinner sig. D\u00e4refter \u00e5terst\u00e4ller ni denna s\u00e4kerhetskopia p\u00e5 den replika som h\u00e4ngde efter.<\/p>\n<p><\/p>\n<p><strong>Andra databaser<\/strong><\/p>\n<p><\/p>\n<p>Dessutom har v\u00e5ra studenter tagit med sig m\u00e5nga funktioner. Eftersom vi p\u00e5 Yandex arbetar med mer \u00e4n bara Postgres, har vi ocks\u00e5 MySQL, MongoDB, Redis och ClickHouse, s\u00e5 fick vi vid n\u00e5got tillf\u00e4lle behovet av att kunna g\u00f6ra s\u00e4kerhetskopior med point-in-time recovery f\u00f6r MySQL och att kunna ladda upp dem till molnet.<\/p>\n<p><\/p>\n<p>Och vi ville g\u00f6ra detta p\u00e5 ett s\u00e4tt som liknar det som WAL-G g\u00f6r. Vi best\u00e4mde oss f\u00f6r att experimentera och se hur allt skulle se ut.<\/p>\n<p><\/p>\n<p>I b\u00f6rjan separerade vi inte denna logik i en fork och skrev kod. Vi s\u00e5g att vi hade en slags fungerande modell och att det kunde fungera. Sedan t\u00e4nkte vi att v\u00e5rt huvudcommunity \u00e4r postgres-anv\u00e4ndare och de anv\u00e4nder WAL-G. D\u00e4rf\u00f6r m\u00e5ste vi p\u00e5 n\u00e5got s\u00e4tt separera dessa delar. Det vill s\u00e4ga n\u00e4r vi justerar koden f\u00f6r Postgres f\u00e5r vi inte krossa MySQL, och n\u00e4r vi justerar MySQL f\u00e5r vi inte krossa Postgres.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/deef7615eaeb0b8bd790fb253cc42312.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Den f\u00f6rsta id\u00e9n om hur man skulle separera detta var att anv\u00e4nda samma tillv\u00e4gag\u00e5ngss\u00e4tt som anv\u00e4nds i PostgreSQL-till\u00e4gg. Och i sj\u00e4lva verket, f\u00f6r att g\u00f6ra en backup av MySQL m\u00e5ste du installera ett slags dynamiskt bibliotek. <\/p>\n<p><\/p>\n<p>Men h\u00e4r syns genast asymmetrin i detta tillv\u00e4gag\u00e5ngss\u00e4tt. N\u00e4r du s\u00e4kerhetskopierar Postgres installerar du en vanlig backup-l\u00f6sning f\u00f6r Postgres och allt fungerar utm\u00e4rkt. Men f\u00f6r MySQL blir det s\u00e5 att du installerar en backup-l\u00f6sning f\u00f6r Postgres och dessutom l\u00e4gger till ett dynamiskt bibliotek f\u00f6r MySQL. Det l\u00e5ter lite konstigt. Vi t\u00e4nkte ocks\u00e5 s\u00e5 och beslutade att detta inte var den l\u00f6sningen som vi beh\u00f6vde. <\/p>\n<p><\/p>\n<p><strong>Olika l\u00f6sningar f\u00f6r Postgres, MySQL, MongoDB, Redis<\/strong><\/p>\n<p><\/p>\n<p>Men det gjorde att vi, som vi k\u00e4nner, kom till den r\u00e4tta l\u00f6sningen \u2013 att utarbeta olika l\u00f6sningar f\u00f6r olika databaser. Det till\u00e4t att isolera logiken knuten till s\u00e4kerhetskopior av olika databaser, som skulle anv\u00e4nda ett gemensamt API som implementeras av WAL-G.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/6c810d5f065de06fc200bdd028707318.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detta \u00e4r den delen som vi skrev sj\u00e4lva \u2013 innan vi gav studenterna uppgifterna. Det betyder att detta \u00e4r den del d\u00e4r de kunde g\u00f6ra n\u00e5got fel, s\u00e5 vi beslutade att det var b\u00e4ttre att g\u00f6ra n\u00e5got sj\u00e4lva s\u00e5 att allt skulle bli bra. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/3a864a85bfb820ef64cbacc029a9198c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Efter detta gav vi ut uppgifterna. De togs omedelbart itu med. Studenterna kr\u00e4vdes att st\u00f6dja tre databaser. <\/p>\n<p><\/p>\n<p>Det handlar om MySQL, som vi har s\u00e4kerhetskopierat med hj\u00e4lp av WAL-G p\u00e5 detta s\u00e4tt i \u00f6ver ett \u00e5r. <\/p>\n<p><\/p>\n<p>Och nu n\u00e4rmar sig MongoDB produktion, det finslipas d\u00e4r en del. I sj\u00e4lva verket byggde vi grundstrukturen f\u00f6r allt detta. Sedan skrev studenterna n\u00e5gra fungerande delar. Och vi f\u00f6rde dem till ett tillst\u00e5nd d\u00e4r vi kan ta emot dem i v\u00e5r produktion.<\/p>\n<p><\/p>\n<p>Dessa uppgifter s\u00e5g inte ut som att studenterna beh\u00f6vde skriva kompletta backupverktyg f\u00f6r var och en av dessa databaser. Vi hade inte det problemet. V\u00e5r fr\u00e5ga var att vi ville ha point-in-time recovery och vi ville s\u00e4kerhetskopiera till molnet. Vi bad studenterna att skriva n\u00e5gon kod som skulle l\u00f6sa detta. Studenterna anv\u00e4nde befintliga backupverktyg som p\u00e5 n\u00e5got s\u00e4tt g\u00f6r s\u00e4kerhetskopior och sedan sammanfogade de allt detta med WAL-G, vilket \u00f6verf\u00f6rde det hela till molnet. De lade ocks\u00e5 till point-in-time recovery.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/7494aef259c7599e8bf0b70d77e1bb09.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vad mer bidrog studenterna med? De tillf\u00f6rde st\u00f6d f\u00f6r kryptering med Libsodium till WAL-G.<\/p>\n<p><\/p>\n<p>Vi har ocks\u00e5 f\u00e5tt backupbevarande policys. Nu kan s\u00e4kerhetskopior m\u00e4rkas som permanenta. Det \u00e4r ocks\u00e5 mer praktiskt f\u00f6r din tj\u00e4nst att automatisera processen f\u00f6r deras lagring. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/6e932ab13dbc3119f7f1da1122443b10.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vad blev resultatet av detta experiment?<\/p>\n<p><\/p>\n<p>Ursprungligen registrerade sig \u00f6ver 100 personer p\u00e5 kursen. Jag n\u00e4mnde inte fr\u00e5n b\u00f6rjan att universitetet i Jekaterinburg \u00e4r Ural Federal University. D\u00e4r tillk\u00e4nnagav vi allt. 100 personer registrerade sig. Faktiskt b\u00f6rjade betydligt f\u00e4rre g\u00f6ra n\u00e5got, ungef\u00e4r 30 personer. <\/p>\n<p><\/p>\n<p>\u00c4nnu f\u00e4rre personer avslutade kursen, eftersom det kr\u00e4vdes att skriva tester f\u00f6r de redan existerande koderna. Dessutom beh\u00f6vdes antingen fixa en bugg eller skapa en funktion. En del studenter avslutade \u00e4nd\u00e5 kursen.<\/p>\n<p><\/p>\n<p>Vid den h\u00e4r tidpunkten har studenterna reparerat cirka 14 fr\u00e5gor f\u00f6r denna kurs och skapat 10 funktioner av olika storlekar. Och enligt mig \u00e4r detta en fullgod ers\u00e4ttning f\u00f6r en eller tv\u00e5 utvecklare. <\/p>\n<p><\/p>\n<p>F\u00f6rutom allt detta delade vi ut diplom och kursarbeten. 12 tog emot diplom. 6 av dem har redan g\u00e5tt igenom f\u00f6rsvarsarbetet med betyget \"5\". De \u00f6vriga har \u00e4nnu inte haft sina f\u00f6rsvar, men jag tror att de ocks\u00e5 kommer att klara sig bra. <\/p>\n<p><\/p>\n<p>Framtidsplaner<\/p>\n<p><\/p>\n<p>Vad har vi f\u00f6r planer f\u00f6r framtiden?<\/p>\n<p><\/p>\n<p>\u00c5tminstone de funktionsf\u00f6rfr\u00e5gningar som vi redan har h\u00f6rt fr\u00e5n anv\u00e4ndare och vill genomf\u00f6ra. Det handlar om:<\/p>\n<p><\/p>\n<ul>\n<li>\u00d6vervakning av korrektheten vid sp\u00e5rning av tidslinjen i arkivet f\u00f6r HA-klustrets s\u00e4kerhetskopior. Med hj\u00e4lp av WAL-G g\u00e5r det att g\u00f6ra detta. Och jag tror att vi hittar studenter som kan ta sig an detta. <\/li>\n<li>Vi har redan en ansvarig person f\u00f6r att \u00f6verf\u00f6ra s\u00e4kerhetskopior och WAL mellan moln. <\/li>\n<li>Och vi publicerade nyligen id\u00e9n om att vi kan snabba upp WAL-G \u00e4nnu mer genom att packa upp inkrementella s\u00e4kerhetskopior utan att skriva \u00f6ver sidor och optimera arkiven som vi skickar dit. <\/li>\n<\/ul>\n<p><\/p>\n<p>Ni kan dela dem h\u00e4r<\/p>\n<p><\/p>\n<p>Vad var syftet med detta f\u00f6redrag? Att just nu, f\u00f6rutom fyra av oss som st\u00f6djer detta projekt, har vi m\u00e5nga extra h\u00e4nder. S\u00e4rskilt om de kontaktar oss privat. Och om ni s\u00e4kerhetskopierar era data och g\u00f6r det med WAL-G eller skulle vilja \u00f6verg\u00e5 till WAL-G, s\u00e5 kan vi ganska l\u00e4tt ta h\u00e4nsyn till era \u00f6nskem\u00e5l.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/7b0dc1633121ea6493610b08f68a14d2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detta \u00e4r QR-koden och l\u00e4nken. Ni kan g\u00e5 dit och skriva alla era \u00f6nskem\u00e5l. Till exempel, om vi inte \u00e5tg\u00e4rdar n\u00e5gon bugg. Eller en funktion som ni verkligen vill ha, men av n\u00e5gon anledning finns den \u00e4nnu inte i n\u00e5gon s\u00e4kerhetskopiering, inklusive v\u00e5r. Var noga med att skriva om det.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nya m\u00f6jligheter och gemenskapsutveckling. Georgiy Ryloff\" src=\"\/wp-content\/uploads\/2020\/04\/56f1c4eef8522d2d6628ea98b1278846.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Fr\u00e5gor<\/p>\n<p><\/p>\n<p><em>Hej! Tack f\u00f6r presentationen! Jag har en fr\u00e5ga om WAL-G, men inte om Postgres. WAL-G s\u00e4kerhetskopierar MySQL och utf\u00f6r en extra backup. Om vi tar moderna installationer p\u00e5 CentOS, och om du g\u00f6r en yum install MySQL, s\u00e5 kommer MariaDB att installeras. Fr\u00e5n version 10.3 st\u00f6ds ingen extra backup, utan MariaDB-backup st\u00f6ds. Hur ser det ut med er?<\/em><\/p>\n<p><\/p>\n<p>Just nu har vi inte f\u00f6rs\u00f6kt s\u00e4kerhetskopiera MariaDB. Vi har f\u00e5tt f\u00f6rfr\u00e5gningar om st\u00f6d f\u00f6r FoundationDB, men generellt sett, om det finns en s\u00e5dan f\u00f6rfr\u00e5gan, kan vi hitta personer som kan g\u00f6ra det. Det tar inte s\u00e5 l\u00e5ng tid och \u00e4r inte s\u00e5 sv\u00e5rt som jag tror.<\/p>\n<p><\/p>\n<p><em>God dag! Tack f\u00f6r presentationen! Fr\u00e5gan handlar om potentiellt nya funktioner. \u00c4r ni redo att f\u00e5 WAL-G att fungera med band, s\u00e5 att man kan g\u00f6ra backup till band?<\/em><\/p>\n<p><\/p>\n<p>Menar du backup till bandlagring, antar jag?<\/p>\n<p><\/p>\n<p><em>Ja.<\/em><\/p>\n<p><\/p>\n<p>Det finns Andrey Borodin d\u00e4r, som kan svara p\u00e5 den h\u00e4r fr\u00e5gan b\u00e4ttre \u00e4n jag. <\/p>\n<p><\/p>\n<p>(Andrey) Ja, tack f\u00f6r fr\u00e5gan! Vi har f\u00e5tt en f\u00f6rfr\u00e5gan om att flytta backup till band fr\u00e5n molnlagring. Och f\u00f6r detta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/pull\/596\">utvecklas<\/a><\/noindex> \u00f6verf\u00f6ring mellan moln. Eftersom \u00f6verf\u00f6ring mellan moln \u00e4r en slags generell version av \u00f6verf\u00f6ring till band. Dessutom har vi en skalbar arkitektur n\u00e4r det g\u00e4ller lagringsl\u00f6sningar. F\u00f6rresten, m\u00e5nga av lagringarna skrevs av studenter. Om du skriver en lagring f\u00f6r band, s\u00e5 kommer den sj\u00e4lvklart att st\u00f6djas. Vi \u00e4r redo att \u00f6verv\u00e4ga pull requests. Man m\u00e5ste skriva en fil, l\u00e4sa en fil. Om man g\u00f6r dessa saker i Go, brukar det vanligtvis bli cirka 50 rader kod. D\u00e5 kommer band att st\u00f6djas i WAL-G. <\/p>\n<p><\/p>\n<p><em>Tack f\u00f6r presentationen! En intressant utvecklingsprocess. Backup \u00e4r en viktig del av funktionaliteten, som b\u00f6r vara v\u00e4l t\u00e4ckt av tester. N\u00e4r ni implementerade funktionalitet f\u00f6r nya databaser, var det ocks\u00e5 studenter som skrev testerna eller skrev ni testerna sj\u00e4lva och l\u00e4t studenterna g\u00f6ra implementationen senare?<\/em><\/p>\n<p><\/p>\n<p>Tester skrevs ocks\u00e5 av studenter. Men studenterna skrev mer f\u00f6r funktioner som nya databaser. De skrev integrationstester. Och de skrev enhetstester. Om integrationstesterna g\u00e5r igenom, dvs just nu \u2013 det \u00e4r ett scenario som ni utf\u00f6r manuellt eller som g\u00f6rs av cron, till exempel. Dvs d\u00e4r \u00e4r scenariot v\u00e4ldigt tydligt. <\/p>\n<p><\/p>\n<p><em>Studenterna har inte s\u00e5 mycket erfarenhet. Hur mycket tid g\u00e5r \u00e5t till granskning?<\/em><\/p>\n<p><\/p>\n<p>Ja, det g\u00e5r ganska mycket tid \u00e5t till recensionerna. Det vill s\u00e4ga, vanligtvis n\u00e4r flera committers kommer och s\u00e4ger att jag har gjort det och jag har gjort det, beh\u00f6ver man t\u00e4nka och avs\u00e4tta en halv dag f\u00f6r att f\u00f6rst\u00e5 vad de har skrivit. F\u00f6r koden m\u00e5ste man l\u00e4sa noggrant. De har ju inte genomg\u00e5tt en intervju. Vi k\u00e4nner dem inte s\u00e5 v\u00e4l, d\u00e4rf\u00f6r tar det en betydande tid.<\/p>\n<p><\/p>\n<p><em>Tack f\u00f6r presentationen! Tidigare har Andrey Borodin sagt att archive_command i WAL-G b\u00f6r anropas direkt. Men i fallet med en patronkluster beh\u00f6vs det ytterligare logik f\u00f6r att best\u00e4mma vilken nod som ska skicka loggar. Hur l\u00f6ser ni detta problem?<\/em><\/p>\n<p><\/p>\n<p>Vilket problem har ni h\u00e4r? Har ni en synkron replika fr\u00e5n vilken ni tar backup? Eller vad?<\/p>\n<p><\/p>\n<p>(Andrey) Saken \u00e4r att WAL-G verkligen \u00e4r t\u00e4nkt att anv\u00e4ndas utan inb\u00e4ddning av shell-skript. Om n\u00e5got saknas, l\u00e5t oss d\u00e5 skriva den logik som beh\u00f6ver finnas i WAL-G. N\u00e4r det g\u00e4ller varifr\u00e5n arkiveringen ska g\u00f6ras, s\u00e5 anser vi att arkiveringen b\u00f6r ske fr\u00e5n den nuvarande mastern i klustret. Arkivering fr\u00e5n replica \u00e4r en d\u00e5lig id\u00e9. D\u00e4r kan det uppst\u00e5 olika scenarier med problem. Specifikt problem med arkivering av tidslinjer och all typ av till\u00e4ggsinformation. Tack f\u00f6r fr\u00e5gan!<\/p>\n<p><\/p>\n<p>(F\u00f6rtydligande: Vi har gjort oss av med inb\u00e4ddningen av shell-skript) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/issues\/549\">i detta issue<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p><em>God kv\u00e4ll! Tack f\u00f6r presentationen! Jag blev intresserad av funktionen catchup, som du n\u00e4mnde. Har ni st\u00f6tt p\u00e5 situationer d\u00e4r replikan har fallit efter och som inte kunde ikapp?<\/em><\/p>\n<p><\/p>\n<p>Catchup d\u00f6k upp bokstavligen i slutet av januari 2020. Med dokumentationen kan det vara bra att jobba lite mer. Vi skriver den sj\u00e4lva och vi skriver inte s\u00e5 superbra. Och kanske b\u00f6r vi kr\u00e4va att studenterna skriver den.<\/p>\n<p><\/p>\n<p><em>\u00c4r den redan i release?<\/em><\/p>\n<p><\/p>\n<p>Pull request har redan blivit merge:ad, det vill s\u00e4ga jag har kontrollerat den. Jag testade detta p\u00e5 ett testkluster. \u00c4n s\u00e5 l\u00e4nge har vi inte haft en situation d\u00e4r vi kunde kontrollera detta p\u00e5 ett produktionsfall.<\/p>\n<p><\/p>\n<p><em>N\u00e4r ska vi f\u00f6rv\u00e4nta oss det?<\/em><\/p>\n<p><\/p>\n<p>Jag vet inte. V\u00e4nta en m\u00e5nad, d\u00e5 har vi det s\u00e4kert.<\/p>\n<p>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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: nya m\u00f6jligheter och utvidgning av gemenskapen. Georgij Rylov | ProHoster","description":"Jag f\u00f6resl\u00e5r att man bekantar sig med transkriptionen av Georgiy Rylovs f\u00f6redrag fr\u00e5n b\u00f6rjan av 2020 \"WAL-G: nya m\u00f6jligheter och utvidgning av gemenskapen\" Det uppst\u00e5r m\u00e5nga problem f\u00f6r maintainers inom open-source.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/78887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=78887"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/78887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/78888"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=78887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=78887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=78887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}