{"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\/de\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","title":{"rendered":"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Ich lade Sie ein, sich mit der Zusammenfassung des Berichts von Georgij Rylov aus Anfang 2020 \"WAL-G: neue M\u00f6glichkeiten und Erweiterung der Gemeinschaft\" vertraut zu machen.<\/strong><\/p>\n<p><\/p>\n<p>Open-Source-Maintainer stehen vor zahlreichen Herausforderungen, je mehr sie wachsen. Wie schreibt man immer mehr geforderte Funktionen, behebt immer mehr Issues und schafft es, immer mehr Pull Requests zu pr\u00fcfen? Am Beispiel von WAL-G (Backup-Tool f\u00fcr PostgreSQL) werde ich erl\u00e4utern, wie wir diese Probleme angegangen sind, indem wir einen Kurs zur Open-Source-Entwicklung an der Universit\u00e4t gestartet haben, was wir erreicht haben und wohin wir uns als N\u00e4chstes bewegen werden.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" 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>Hallo zusammen! Ich bin Entwickler bei Yandex aus Jekaterinburg. Heute werde ich \u00fcber WAL-G sprechen.<\/p>\n<p><\/p>\n<p>Im Titel des Vortrags wurde nicht gesagt, dass es um Backups geht. Wei\u00df jemand nicht, was WAL-G ist? Oder wissen es alle? Hebt die Hand, wenn ihr es nicht wisst. Unglaublich, ihr seid zu einem Vortrag gekommen und wisst nicht, worum es geht.<\/p>\n<p><\/p>\n<p>Lasst mich erz\u00e4hlen, was heute auf dem Programm steht. Es ist so, dass unser Team schon seit einiger Zeit mit Backups besch\u00e4ftigt ist. Und dies ist ein weiterer Vortrag in einer Reihe, in der wir dar\u00fcber berichten, wie wir Daten sicher, zuverl\u00e4ssig, bequem und effektiv speichern.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/4307e7b2acc60cd908d91e3f1b83a9b6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>In den vorherigen Serien gab es viele Vortr\u00e4ge von Andrei Borodin und Vladimir Leskov. Wir waren viele. Und wir haben alle seit vielen Jahren \u00fcber WAL-G gesprochen. <\/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>Dieser Vortrag wird sich ein wenig von den anderen unterscheiden, da es in den meisten anderen um die technische Seite ging, w\u00e4hrend ich hier dar\u00fcber sprechen werde, wie wir auf die Herausforderungen des Wachstums der Gemeinschaft gesto\u00dfen sind. Und wie wir eine kleine Idee hatten, die uns hilft, damit umzugehen. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/ec728f7d99ea9b6a5df4785d7e8a2a75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vor einigen Jahren war WAL-G ein recht kleines Projekt, das wir von Citus Data \u00fcbernommen haben. Und wir haben es gerade erst \u00fcbernommen. Es wurde von einer Person entwickelt.<\/p>\n<p><\/p>\n<p>Und in WAL-G gab es Folgendes nicht:<\/p>\n<p><\/p>\n<ul>\n<li>Backup von der Replica.<\/li>\n<li>Es gab keine inkrementellen Backups.<\/li>\n<li>Es gab keine WAL-Delta-Backups. <\/li>\n<li>Und es fehlte noch eine Menge anderer Dinge.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>In den letzten Jahren ist WAL-G erheblich gewachsen.<\/strong> <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/16700dfcc2c54539c5a064894cd1ec88.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Und bis 2020 war all das oben Genannte bereits vorhanden. Dazu kommt, dass wir nun:<\/p>\n<p><\/p>\n<ul>\n<li>\u00dcber 1.000 Sterne auf GitHub.<\/li>\n<li>150 Forks.<\/li>\n<li>Etwa 15 offene PRs.<\/li>\n<li>Und noch viele Mitwirkende. <\/li>\n<li>Und st\u00e4ndig offene Issues. Und das, obwohl wir jeden Tag dort reingehen und etwas damit machen. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/5e5dea14b328a7f0437017ca834d1eaf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Und wir kamen zu dem Schluss, dass dieses Projekt mehr unserer Aufmerksamkeit bedarf, selbst dann, wenn wir nichts f\u00fcr unseren Managed Databases-Dienst bei Yandex implementieren m\u00fcssen.<\/p>\n<p><\/p>\n<p>Und irgendwann im Herbst 2018 kam uns die Idee. Normalerweise hat ein Team mehrere M\u00f6glichkeiten, wie es Features entwickeln und Bugs beheben kann, wenn es nicht genug Ressourcen hat. Man kann zum Beispiel einen weiteren Entwickler einstellen und ihm Geld zahlen. Oder man kann f\u00fcr eine gewisse Zeit einen Praktikanten anheuern und auch ihm ein Gehalt zahlen. Aber es gibt auch eine recht gro\u00dfe Gruppe von Menschen, von denen viele bereits wirklich programmieren k\u00f6nnen. Nur wei\u00df man manchmal nicht, welche Qualit\u00e4t der Code hat.<\/p>\n<p><\/p>\n<p>Wir haben dar\u00fcber nachgedacht und beschlossen, Studenten einzubeziehen. Aber die Studenten werden nicht an allem teilnehmen. Sie werden nur einen Teil der Arbeit erledigen. Zum Beispiel werden sie Tests schreiben, Bugs beheben und Features implementieren, die nicht die Hauptfunktionalit\u00e4t betreffen. Die Hauptfunktionalit\u00e4t ist das Erstellen und Wiederherstellen von Backups. Wenn ein Bug beim Erstellen eines Backups auftritt, verlieren wir Daten. Und das m\u00f6chte nat\u00fcrlich niemand. Alle m\u00f6chten, dass alles sehr zuverl\u00e4ssig ist. Daher wollen wir Code, dem wir weniger vertrauen als unserem eigenen, dort nicht einsetzen. Das hei\u00dft, jeder nicht kritische Code ist das, was wir gerne von unseren zus\u00e4tzlichen Arbeitskr\u00e4ften erhalten w\u00fcrden.<\/p>\n<p><\/p>\n<p><strong>Unter welchen Bedingungen wird der PR eines Studenten akzeptiert?<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>Sie m\u00fcssen ihren Code mit Tests abdecken. Alles muss im CI ablaufen. <\/li>\n<li>Und au\u00dferdem wird es 2 Reviews geben. Eines von Andrei Borodin und eines von mir. <\/li>\n<li>Zus\u00e4tzlich lade ich eine Build mit diesem Commit hoch, um zu \u00fcberpr\u00fcfen, dass nichts in unserem Service kaputtgeht. Und wir pr\u00fcfen in End-to-End-Tests, dass alles funktioniert.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Spezialkurs \u00fcber Open Source<\/strong><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/58832406f3acdf294cd68e6adde14ec8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ein wenig dar\u00fcber, warum das notwendig ist und warum ich es f\u00fcr eine coole Idee halte. <\/p>\n<p><\/p>\n<p><strong>F\u00fcr uns ist der Profit offensichtlich:<\/strong> <\/p>\n<p><\/p>\n<ul>\n<li>Wir bekommen zus\u00e4tzliche H\u00e4nde. <\/li>\n<li>Und wir suchen nach Kandidaten f\u00fcr das Team unter f\u00e4higen Studenten, die guten Code schreiben. <\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Welchen Profit haben die Studenten?<\/strong><\/p>\n<p><\/p>\n<p>Das k\u00f6nnte weniger offensichtlich sein, da die Studenten zumindest kein Geld f\u00fcr den Code erhalten, den sie schreiben, sondern nur Noten f\u00fcr ihr Zeugnis. <\/p>\n<p><\/p>\n<p>Ich habe sie danach gefragt. Und laut ihnen:<\/p>\n<p><\/p>\n<ul>\n<li>Erfahrung als Contributor im Open Source.<\/li>\n<li>Eine Zeile im Lebenslauf erhalten.<\/li>\n<li>Sich beweisen und ein Vorstellungsgespr\u00e4ch bei Yandex bestehen.<\/li>\n<li>Teilnehmer am GSoC werden.<\/li>\n<li>+1 Spezialkurs f\u00fcr alle, die coden m\u00f6chten.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ich werde nicht erz\u00e4hlen, wie der Kurs organisiert war. Ich sage nur, dass WAL-G das Hauptprojekt war. Au\u00dferdem haben wir in diesen Kurs Projekte wie Odyssey, PostgreSQL und ClickHouse einbezogen.<\/p>\n<p><\/p>\n<p>Und es gab nicht nur Aufgaben in diesem Kurs, sondern auch Diplome und Abschlussarbeiten.<\/p>\n<p><\/p>\n<p><strong>Und wo bleibt der Vorteil f\u00fcr die Benutzer?<\/strong><\/p>\n<p><\/p>\n<p>Kommen wir nun zum Teil, der Sie eher interessiert. Was haben Sie davon? Der Vorteil liegt darin, dass die Studenten viele Bugs behoben haben und Feature-Anfragen umgesetzt haben, die Sie uns mitgeteilt haben. <\/p>\n<p><\/p>\n<p>Lassen Sie mich von den Dingen erz\u00e4hlen, die Sie schon lange wollten und die umgesetzt wurden.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/bb836742bf4f99e1b91c891ed1802bf0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Unterst\u00fctzung von Tablespaces. Es wurden wahrscheinlich seit der Einf\u00fchrung von WAL-G Tablespaces in WAL-G erwartet, da WAL-G ein Nachfolger des Backup-Tools WAL-E ist, in dem Datenbank-Backups mit Tablespaces unterst\u00fctzt wurden.<\/p>\n<p><\/p>\n<p>Ich erinnere kurz daran, was das ist und warum das alles notwendig ist. In der Regel befinden sich alle Ihre PostgreSQL-Daten in einem Verzeichnis im Dateisystem, das als Basisverzeichnis bezeichnet wird. Dieses Verzeichnis enth\u00e4lt bereits alle Dateien und Unterverzeichnisse, die f\u00fcr PostgreSQL erforderlich sind.<\/p>\n<p><\/p>\n<p>Tablespaces sind Verzeichnisse, in denen PostgreSQL-Daten liegen, aber sie liegen nicht au\u00dferhalb des Basisverzeichnisses. Auf der Folie sehen Sie, dass sich die Tablespaces au\u00dferhalb des Basisverzeichnisses befinden.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/0f25591cfcaaeaec02903c9b98d8ac65.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wie sieht das f\u00fcr PostgreSQL aus? Im Basisverzeichnis gibt es ein separates Unterverzeichnis pg_tblspc. Darin befinden sich Symlinks zu den Verzeichnissen, in denen die Daten von PostgreSQL au\u00dferhalb des Basisverzeichnisses tats\u00e4chlich liegen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/9e9875696c03e6e42bb98b5a7a9acd75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wenn Sie all dies nutzen, k\u00f6nnen diese Befehle f\u00fcr Sie etwa so aussehen. Das hei\u00dft, Sie erstellen eine Tabelle in einem angegebenen Tablespace und sehen dann, wo sie sich gerade befindet. Hier sind die letzten beiden Zeilen, die letzten ausgef\u00fchrten Befehle. Dort ist ein Pfad sichtbar. Aber das ist in der Tat kein echter Pfad. Es handelt sich um einen Pfad mit einem Pr\u00e4fix aus dem Basisverzeichnis zu dem Tablespace. Und von dort stammt ein Symlink, der zu Ihren tats\u00e4chlichen Daten f\u00fchrt.<\/p>\n<p><\/p>\n<p>All das wird in unserem Team nicht verwendet, wurde jedoch von vielen anderen Benutzern von WAL-E genutzt, die uns mitgeteilt haben, dass sie auf WAL-G umsteigen m\u00f6chten, aber dass dies ihnen im Weg steht. Jetzt wird es unterst\u00fctzt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/95ec319ccefa7e6c8bce193317407229.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Eine weitere Funktion, die uns unser Spezialkurs gebracht hat, ist das Catchup. Von Catchup wissen wahrscheinlich Menschen, die mehr mit Oracle als mit PostgreSQL gearbeitet haben.<\/p>\n<p><\/p>\n<p>Kurz gesagt, was das ist. So k\u00f6nnte die Topologie eines Clusters in unserem Dienst normalerweise aussehen. Wir haben einen Master. Es gibt eine Replikation, die das Write-Ahead-Log von ihm streamt. Und die Replikation sagt dem Master, an welchem LSN sie sich gerade befindet. Parallel dazu kann das Protokoll archiviert werden. Neben der Archivierung des Protokolls werden auch Backups in die Cloud gesendet. Und es werden Delta-Backups gesendet.<\/p>\n<p><\/p>\n<p>Was k\u00f6nnte das Problem sein? Wenn Sie eine recht gro\u00dfe Datenbank haben, k\u00f6nnte es so sein, dass Ihre Replikation stark hinter dem Master zur\u00fcckbleibt. Und sie bleibt so stark zur\u00fcck, dass sie ihn niemals einholen kann. Dieses Problem muss normalerweise irgendwie gel\u00f6st werden. <\/p>\n<p><\/p>\n<p>Der einfachste Weg ist, die Replikation zu entfernen und sie neu zu installieren, denn sie wird niemals aufholen, und das Problem muss behoben werden. Aber das dauert ziemlich lange, denn die Wiederherstellung eines kompletten Backups einer 10 TB gro\u00dfen Datenbank dauert sehr, sehr lange. Und wir m\u00f6chten dies so schnell wie m\u00f6glich tun, wenn solche Probleme auftreten. Genau daf\u00fcr ist Catchup gedacht.<\/p>\n<p><\/p>\n<p>Catchup erm\u00f6glicht die Verwendung von Delta-Backups, die so in der Cloud gespeichert werden. Sie geben an, an welchem LSN sich die hinterherhinkende Replikation gerade befindet, und geben dies im Befehl catchup an, um ein Delta-Backup zwischen diesem LSN und dem LSN, an dem sich Ihr Cluster derzeit befindet, zu erstellen. Danach stellen Sie dieses Backup auf der r\u00fcckst\u00e4ndigen Replikation wieder her.<\/p>\n<p><\/p>\n<p><strong>Andere Datenbanken<\/strong><\/p>\n<p><\/p>\n<p>Au\u00dferdem haben uns die Studenten viele Funktionen gebracht. Da wir bei Yandex nicht nur Postgres entwickeln, sondern auch MySQL, MongoDB, Redis, ClickHouse haben, ben\u00f6tigten wir irgendwann die M\u00f6glichkeit, Punkt-in-Zeit-Wiederherstellungen f\u00fcr MySQL durchf\u00fchren zu k\u00f6nnen, und die M\u00f6glichkeit, diese in die Cloud zu laden.<\/p>\n<p><\/p>\n<p>Und wir wollten dies auf \u00e4hnliche Weise tun, wie es WAL-G macht. Und beschlossen, zu experimentieren und zu sehen, wie das alles aussehen w\u00fcrde.<\/p>\n<p><\/p>\n<p>Zun\u00e4chst haben wir diese Logik nicht getrennt in einem Fork den Code geschrieben. Wir haben gesehen, dass wir ein funktionierendes Modell haben und es laufen k\u00f6nnte. Dann dachten wir, dass unsere Hauptgemeinschaft die Postgres-Anwender sind, die WAL-G verwenden. Daher mussten wir diese Teile irgendwie trennen. D. h. wenn der Code f\u00fcr Postgres ge\u00e4ndert wird, d\u00fcrfen wir MySQL nicht besch\u00e4digen, und wenn wir MySQL \u00e4ndern, d\u00fcrfen wir Postgres nicht besch\u00e4digen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/deef7615eaeb0b8bd790fb253cc42312.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Die erste Idee, wie man dies aufteilen kann, war die Idee, denselben Ansatz wie bei PostgreSQL-Extensions zu verwenden. Um eine MySQL-Sicherung zu erstellen, mussten Sie im Grunde eine dynamische Bibliothek installieren. <\/p>\n<p><\/p>\n<p>Hier wird sofort die Asymmetrie dieses Ansatzes sichtbar. Wenn Sie Postgres sichern, installieren Sie ein normales Backup-Tool f\u00fcr Postgres und alles funktioniert gut. F\u00fcr MySQL klingt es jedoch so, als m\u00fcssten Sie ein Backup-Tool f\u00fcr Postgres installieren und zus\u00e4tzlich eine dynamische Bibliothek f\u00fcr MySQL. Das klingt irgendwie seltsam. Das dachten wir auch und entschieden, dass das nicht die L\u00f6sung ist, die wir brauchen. <\/p>\n<p><\/p>\n<p><strong>Verschiedene Builds f\u00fcr Postgres, MySQL, MongoDB, Redis<\/strong><\/p>\n<p><\/p>\n<p>Aber das hat uns, wie wir glauben, zu der richtigen L\u00f6sung gef\u00fchrt \u2013 verschiedene Builds f\u00fcr verschiedene Datenbanken zu schaffen. Das erm\u00f6glicht es, die Logik, die an Backups verschiedener Datenbanken gebunden ist, zu isolieren, die auf eine gemeinsame API zugreifen, die WAL-G implementiert.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/6c810d5f065de06fc200bdd028707318.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Das ist der Teil, den wir selbst geschrieben haben \u2013 bevor wir den Studenten Aufgaben geben. Das hei\u00dft, das ist genau der Teil, wo sie etwas falsch machen konnten, deshalb haben wir beschlossen, dass es besser ist, wir machen etwas richtig und alles wird gut. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/3a864a85bfb820ef64cbacc029a9198c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Danach haben wir die Aufgaben verteilt. Sie wurden sofort angenommen. Von den Studenten wurde gefordert, drei Datenbanken zu unterst\u00fctzen. <\/p>\n<p><\/p>\n<p>Das ist MySQL, das wir seit mehr als einem Jahr mit WAL-G auf diese Weise sichern. <\/p>\n<p><\/p>\n<p>Jetzt n\u00e4hert sich auch MongoDB der Produktionsreife, da es gerade noch weiter optimiert wird. Im Grunde genommen haben wir das Ger\u00fcst daf\u00fcr geschrieben. Danach haben die Studenten einige funktionierende L\u00f6sungen entwickelt. Und dann bringen wir sie in einen Zustand, den wir in unserer Produktion akzeptieren k\u00f6nnen.<\/p>\n<p><\/p>\n<p>Die Aufgaben schienen nicht so, dass die Studenten vollst\u00e4ndige Backup-Tools f\u00fcr jede dieser Datenbanken schreiben mussten. Das war nicht unser Problem. Unser Problem war, dass wir eine Point-in-Time-Wiederherstellung wollten und dass wir in die Cloud sichern wollten. Wir baten die Studenten, einen Code zu schreiben, der dies erm\u00f6glicht. Die Studenten nutzten bereits bestehende Backup-Tools, die irgendwie Backups erstellen, und f\u00fchrten alles dann mit WAL-G zusammen, das alles in die Cloud umleitete. Zudem f\u00fcgten sie die Point-in-Time-Wiederherstellung hinzu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/7494aef259c7599e8bf0b70d77e1bb09.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Was haben die Studenten noch gebracht? Sie brachten in WAL-G die Unterst\u00fctzung f\u00fcr die Verschl\u00fcsselung mit Libsodium.<\/p>\n<p><\/p>\n<p>Au\u00dferdem haben wir Richtlinien f\u00fcr die Speicherung von Backups eingef\u00fchrt. Jetzt k\u00f6nnen Backups als permanent markiert werden. Es ist auch bequemer, den Prozess ihrer Speicherung f\u00fcr Ihren Service zu automatisieren. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/6e932ab13dbc3119f7f1da1122443b10.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Was sind die Ergebnisse dieses Experiments?<\/p>\n<p><\/p>\n<p>Zu dem Kurs hatten sich anfangs mehr als 100 Personen angemeldet. Ich hatte zu Beginn nicht erw\u00e4hnt, dass die Universit\u00e4t in Jekaterinburg die Ural F\u00f6derale Universit\u00e4t ist. Dort haben wir alles angek\u00fcndigt. 100 Personen haben sich registriert. Tats\u00e4chlich haben viel weniger begonnen, aktiv etwas zu tun, ungef\u00e4hr 30 Personen. <\/p>\n<p><\/p>\n<p>Von diesen haben noch weniger den Kurs abgeschlossen, da man Tests zu den vorhandenen Codes erstellen musste. Au\u00dferdem musste man einige Bugs beheben oder neue Funktionen implementieren. Ein Teil der Studierenden hat den Kurs jedoch tats\u00e4chlich abgeschlossen.<\/p>\n<p><\/p>\n<p>Momentan haben die Studierenden f\u00fcr diesen Kurs etwa 14 Issues behoben und 10 Funktionen unterschiedlicher Gr\u00f6\u00dfe implementiert. Und wie ich denke, ist das ein vollwertiger Ersatz f\u00fcr ein oder zwei Entwickler. <\/p>\n<p><\/p>\n<p>Neben alldem haben wir Diplome und Kursarbeiten ausgestellt. 12 haben Diplome erhalten. 6 von ihnen haben bereits mit der Note \u201e5\u201c bestanden. Bei den \u00fcbrigen gab es noch keine Verteidigung, aber ich denke, dass es bei ihnen auch gut laufen wird. <\/p>\n<p><\/p>\n<p>Zukunftspl\u00e4ne<\/p>\n<p><\/p>\n<p>Was sind unsere Pl\u00e4ne f\u00fcr die Zukunft?<\/p>\n<p><\/p>\n<p>Zumindest die Funktionsanfragen, die wir bereits von den Nutzern geh\u00f6rt haben und die wir umsetzen m\u00f6chten. Dazu geh\u00f6ren:<\/p>\n<p><\/p>\n<ul>\n<li>\u00dcberwachung der Korrektheit der Zeitplanung im Archiv der HA-Cluster-Backups. Das kann man mit WAL-G machen. Und ich denke, wir werden Studierende finden, die sich damit besch\u00e4ftigen m\u00f6chten. <\/li>\n<li>F\u00fcr den Transfer von Backups und WALs zwischen Clouddiensten haben wir bereits einen verantwortlichen Ansprechpartner. <\/li>\n<li>K\u00fcrzlich haben wir die Idee ver\u00f6ffentlicht, dass wir WAL-G noch weiter beschleunigen k\u00f6nnen, indem wir inkrementelle Backups ohne \u00dcberschreibung der Seiten entpacken und die Archive optimieren, die wir dorthin senden. <\/li>\n<\/ul>\n<p><\/p>\n<p>Sie k\u00f6nnen sie hier teilen.<\/p>\n<p><\/p>\n<p>Wozu war dieser Vortrag? Dazu, dass wir jetzt, au\u00dfer den 4 Personen, die dieses Projekt unterst\u00fctzen, zus\u00e4tzliche Helfer haben, und zwar ziemlich viele. Besonders, wenn man ihnen eine pers\u00f6nliche Nachricht schreibt. Und wenn Sie Ihre Daten sichern und dies mit WAL-G tun oder umsteigen m\u00f6chten, k\u00f6nnen wir Ihre W\u00fcnsche recht leicht ber\u00fccksichtigen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/7b0dc1633121ea6493610b08f68a14d2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Das ist der QR-Code und der Link. Sie k\u00f6nnen durch diese auf alle Ihre W\u00fcnsche eingehen. Zum Beispiel beheben wir einen bestimmten Bug nicht. Oder es gibt eine Funktion, die Sie sich sehr w\u00fcnschen, die aber aus irgendeinem Grund noch in keinem Backup-Tool vorhanden ist, einschlie\u00dflich unserem. Lassen Sie uns unbedingt dar\u00fcber wissen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: neue M\u00f6glichkeiten und Ausbau der Gemeinschaft. Georgij Rylow\" src=\"\/wp-content\/uploads\/2020\/04\/56f1c4eef8522d2d6628ea98b1278846.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Fragen<\/p>\n<p><\/p>\n<p><em>Hallo! Danke f\u00fcr den Vortrag! Eine Frage zu WAL-G, aber nicht zu Postgres. WAL-G sichert MySQL und f\u00fchrt ein Extrabackup aus. Wenn man moderne Installationen auf CentOS betrachtet und wenn Sie yum install MySQL machen, wird MariaDB installiert. Ab Version 10.3 wird das Extrabackup nicht unterst\u00fctzt, sondern nur das MariaDB-Backup. Wie sieht es damit bei Ihnen aus?<\/em><\/p>\n<p><\/p>\n<p>Bis jetzt haben wir versucht, MariaDB zu sichern. Wir hatten Anfragen zur Unterst\u00fctzung von FoundationDB, aber im Allgemeinen, wenn eine solche Anfrage besteht, k\u00f6nnen wir Leute finden, die das machen. Es ist nicht so lange und nicht so kompliziert, wie ich denke.<\/p>\n<p><\/p>\n<p><em>Guten Tag! Danke f\u00fcr den Vortrag! Frage zu potenziell neuen Funktionen. Sind Sie bereit, WAL-G mit B\u00e4ndern arbeiten zu lassen, damit man Backups auf B\u00e4nder machen kann?<\/em><\/p>\n<p><\/p>\n<p>Meinen Sie Backups auf Band-Speichern?<\/p>\n<p><\/p>\n<p><em>Ja.<\/em><\/p>\n<p><\/p>\n<p>Da ist Andrey Borodin, der auf diese Frage besser antworten kann als ich. <\/p>\n<p><\/p>\n<p>(Andrey) Ja, danke f\u00fcr die Frage! Wir hatten eine Anfrage zum \u00dcbertragen von Backups auf B\u00e4nder aus Cloud-Speichern. Und daf\u00fcr <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/pull\/596\">wird entwickelt<\/a><\/noindex> der Transfer zwischen Clouds. Denn der Transfer zwischen Clouds ist eine allgemeine Version des Transfers auf B\u00e4nder. Au\u00dferdem haben wir eine skalierbare Architektur im Bereich der Speichersysteme. \u00dcbrigens wurden viele Speicher von Studenten geschrieben. Wenn Sie einen Speicher f\u00fcr B\u00e4nder schreiben, wird er nat\u00fcrlich unterst\u00fctzt. Wir sind bereit, Pull-Requests zu pr\u00fcfen. Man muss eine Datei schreiben, eine Datei lesen. Wenn man diese Dinge in Go umsetzt, sind das normalerweise 50 Zeilen Code. Und dann wird das Band in WAL-G unterst\u00fctzt. <\/p>\n<p><\/p>\n<p><em>Danke f\u00fcr den Vortrag! Interessanter Entwicklungsprozess. Backup ist ein wichtiger Teil der Funktionalit\u00e4t, der gut getestet sein sollte. Als Sie die Funktionalit\u00e4t f\u00fcr neue Datenbanken implementiert haben, wurden die Tests auch von Studenten geschrieben oder haben Sie die Tests selbst geschrieben und dann die Implementierung den Studenten \u00fcbergeben?<\/em><\/p>\n<p><\/p>\n<p>Die Tests wurden auch von Studenten geschrieben. Aber die Studenten haben mehr f\u00fcr solche Funktionen wie neue Datenbanken geschrieben. Sie haben Integrationstests geschrieben. Und sie haben Unit-Tests geschrieben. Wenn die Integrationen bestehen, also derzeit \u2013 das ist ein Szenario, das Sie manuell ausf\u00fchren oder das beispielsweise von cron erledigt wird. Das Szenario ist sehr klar. <\/p>\n<p><\/p>\n<p><em>Die Studenten haben nicht viel Erfahrung. Wie viel Zeit geht f\u00fcr das Review drauf?<\/em><\/p>\n<p><\/p>\n<p>Ja, es dauert ziemlich viel Zeit, um das Review zu machen. Das hei\u00dft, wenn mehrere Committer gleichzeitig kommen und sagen, dass ich das gemacht habe, ich das gemacht habe, dann muss man dar\u00fcber nachdenken und irgendwo einen halben Tag einplanen, um herauszufinden, was sie da geschrieben haben. Denn den Code muss man gr\u00fcndlich lesen. Sie haben schlie\u00dflich kein Vorstellungsgespr\u00e4ch durchlaufen. Wir kennen sie nicht sehr gut, deshalb ben\u00f6tigt das erhebliche Zeit.<\/p>\n<p><\/p>\n<p><em>Danke f\u00fcr den Vortrag! Fr\u00fcher hat Andrei Borodin gesagt, dass der archive_command in WAL-G direkt aufgerufen werden sollte. Aber im Fall eines Patron-Clusters ben\u00f6tigen wir eine zus\u00e4tzliche Logik zur Bestimmung des Knotens, von dem wir die WALs senden. Wie l\u00f6sen Sie dieses Problem bei sich?<\/em><\/p>\n<p><\/p>\n<p>Wo besteht hier Ihr Problem? Haben Sie einen synchronen Replica, von dem Sie ein Backup machen? Oder was?<\/p>\n<p><\/p>\n<p>(Andrei) Die Sache ist, dass WAL-G tats\u00e4chlich ohne Shell-Skript-Wrapper vorgesehen ist. Wenn etwas fehlt, dann lasst uns die Logik erg\u00e4nzen, die innerhalb von WAL-G vorhanden sein sollte. Bez\u00fcglich der Archivierung sollten wir annehmen, dass die Archivierung vom aktuellen Master im Cluster erfolgen sollte. Eine Archivierung von der Replica ist keine gute Idee. Dort k\u00f6nnen verschiedene Szenarien mit Problemen entstehen. Insbesondere Probleme mit der Archivierung von Timelines und anderen Zusatzinformationen. Danke f\u00fcr die Frage!<\/p>\n<p><\/p>\n<p>(Hinweis: Wir haben die Wrapper mit Shell-Skripten entfernt. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/issues\/549\">in diesem Issue<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p><em>Guten Abend! Danke f\u00fcr den Vortrag! Die Funktion Catchup, \u00fcber die Sie gesprochen haben, hat mein Interesse geweckt. Ich hatte schon einmal die Situation, dass die Replica hinterherhinkte und einfach nicht aufholen konnte. Und ich habe in WAL-G keine Beschreibung f\u00fcr diese Funktion in den Dokumentationen gefunden.<\/em><\/p>\n<p><\/p>\n<p>Das Catchup-Feature erschien buchst\u00e4blich in den 20er Tagen im Januar 2020. Vielleicht sollte man die Dokumentation besser bearbeiten. Wir schreiben sie selbst, und das auch nicht unbedingt super gut. Und von den Studierenden sollte man vielleicht auch verlangen, dass sie sie schreiben.<\/p>\n<p><\/p>\n<p><em>Ist es bereits in der Release?<\/em><\/p>\n<p><\/p>\n<p>Der Pull Request wurde bereits zusammengef\u00fchrt, d. h. ich habe ihn \u00fcberpr\u00fcft. Ich habe das auf einem Test-Cluster ausprobiert. Bisher hatten wir keine Gelegenheit, dies an einem realen Beispiel zu testen.<\/p>\n<p><\/p>\n<p><em>Wann ist damit zu rechnen?<\/em><\/p>\n<p><\/p>\n<p>Ich wei\u00df es nicht. Wartet einen Monat, dann werden wir es sicher testen.<\/p>\n<p>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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: neue M\u00f6glichkeiten und Community-Erweiterung. Georgiy Rylov | ProHoster","description":"Ich schlage vor, sich mit der Aufzeichnung des Vortrags von Anfang 2020 von Georgiy Rylov \"WAL-G: Neue M\u00f6glichkeiten und Community-Erweiterung\" vertraut zu machen. Die Maintainer von Open Source haben viele Probleme.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/78887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=78887"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/78887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/78888"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=78887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=78887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=78887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}