{"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\/fr\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","title":{"rendered":"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Je vous propose de d\u00e9couvrir la transcription de la pr\u00e9sentation de d\u00e9but 2020 de Georgy Rylov \"WAL-G : nouvelles opportunit\u00e9s et expansion de la communaut\u00e9\"<\/strong><\/p>\n<p><\/p>\n<p>Les mainteneurs de l'open-source rencontrent de nombreux probl\u00e8mes \u00e0 mesure qu'ils croissent. Comment \u00e9crire de plus en plus de fonctionnalit\u00e9s demand\u00e9es, r\u00e9gler un nombre croissant de probl\u00e8mes et r\u00e9ussir \u00e0 examiner de plus en plus de demandes de tirage ? \u00c0 travers l'exemple de WAL-G (outil de sauvegarde pour PostgreSQL), je vais expliquer comment nous avons r\u00e9solu ces probl\u00e8mes en lan\u00e7ant un cours de d\u00e9veloppement open-source \u00e0 l'universit\u00e9, ce que nous avons accompli et o\u00f9 nous allons ensuite.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" 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>Bonjour encore une fois ! Je suis d\u00e9veloppeur chez Yandex d'Ekaterinbourg. Et aujourd'hui, je vais vous parler de WAL-G.<\/p>\n<p><\/p>\n<p>Le titre de la pr\u00e9sentation n'indiquait pas que cela concernait des sauvegardes. Quelqu'un ne sait pas ce qu'est WAL-G ? Ou tout le monde sait ? Levez la main, ceux qui ne savent pas. Incroyable, vous \u00eates venus \u00e0 la pr\u00e9sentation sans savoir de quoi il s'agit.<\/p>\n<p><\/p>\n<p>Laissez-moi vous expliquer ce qui va se passer aujourd'hui. Il se trouve que notre \u00e9quipe travaille sur les sauvegardes depuis un certain temps. Et c'est une autre pr\u00e9sentation dans une s\u00e9rie o\u00f9 nous parlons de la mani\u00e8re dont nous stockons les donn\u00e9es de mani\u00e8re s\u00e9curis\u00e9e, fiable, pratique et efficace.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/4307e7b2acc60cd908d91e3f1b83a9b6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dans les \u00e9pisodes pr\u00e9c\u00e9dents, il y a eu de nombreuses pr\u00e9sentations d'Andrei Borodin, Vladimir Leskov. Nous \u00e9tions nombreux. Et nous avons tous parl\u00e9 de WAL-G pendant de nombreuses ann\u00e9es. <\/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>Cette pr\u00e9sentation va un peu se distinguer des autres en ce sens qu'elle portera davantage sur la partie technique, tandis que je vais vous parler de comment nous avons \u00e9t\u00e9 confront\u00e9s \u00e0 des probl\u00e8mes li\u00e9s \u00e0 la croissance de la communaut\u00e9. Et comment nous avons imagin\u00e9 une petite id\u00e9e qui nous aide \u00e0 y faire face. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/ec728f7d99ea9b6a5df4785d7e8a2a75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Il y a quelques ann\u00e9es, WAL-G \u00e9tait un projet assez petit que nous avons h\u00e9rit\u00e9 de Citus Data. Et nous venons juste de le prendre. Et il \u00e9tait d\u00e9velopp\u00e9 par une seule personne.<\/p>\n<p><\/p>\n<p>Et il n'y avait que dans WAL-G :<\/p>\n<p><\/p>\n<ul>\n<li>Des sauvegardes \u00e0 partir d'une r\u00e9plique.<\/li>\n<li>Il n'y avait pas de sauvegardes incr\u00e9mentielles.<\/li>\n<li>Il n'y avait pas de sauvegardes WAL-Delta. <\/li>\n<li>Et beaucoup d'autres choses manquaient.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Au fil des ans, WAL-G a beaucoup grandi.<\/strong> <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/16700dfcc2c54539c5a064894cd1ec88.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Et d'ici 2020, tout ce qui pr\u00e9c\u00e8de \u00e9tait d\u00e9j\u00e0 pr\u00e9sent. De plus, nous avons maintenant :<\/p>\n<p><\/p>\n<ul>\n<li>Plus de 1 000 \u00e9toiles sur GitHub.<\/li>\n<li>150 forks.<\/li>\n<li>Environ 15 demandes de tirage ouvertes.<\/li>\n<li>Et encore de nombreux contributeurs. <\/li>\n<li>Et des probl\u00e8mes ouverts en permanence. Et cela alors que nous y acc\u00e9dons litt\u00e9ralement chaque jour pour faire quelque chose avec. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/5e5dea14b328a7f0437017ca834d1eaf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Et nous avons conclu que ce projet n\u00e9cessite plus de notre attention, m\u00eame lorsque nous n'avons pas besoin de r\u00e9aliser quelque chose pour notre service Managed Databases chez Yandex.<\/p>\n<p><\/p>\n<p>Et quelque part \u00e0 l'automne 2018, une id\u00e9e nous est venue. En g\u00e9n\u00e9ral, une \u00e9quipe a plusieurs moyens de d\u00e9velopper des fonctionnalit\u00e9s ou de corriger des bogues lorsqu'elle manque de bras. Par exemple, on peut engager un autre d\u00e9veloppeur et lui payer un salaire. Ou on peut prendre un stagiaire pour un certain temps et lui verser \u00e9galement un salaire. Mais il existe une autre cat\u00e9gorie de personnes, dont une partie sait d\u00e9j\u00e0 r\u00e9ellement \u00e9crire du code. Il est juste que vous ne savez pas toujours quelle est la qualit\u00e9 de ce code.<\/p>\n<p><\/p>\n<p>Nous avons r\u00e9fl\u00e9chi et d\u00e9cid\u00e9 d'essayer d'impliquer des \u00e9tudiants. Mais les \u00e9tudiants ne participeront pas \u00e0 tout. Ils ne feront qu'une partie du travail. Par exemple, ils r\u00e9digeront des tests, corrigeront des bogues et mettront en \u0153uvre des fonctionnalit\u00e9s qui ne touchent pas \u00e0 la fonctionnalit\u00e9 principale. La fonctionnalit\u00e9 principale est la cr\u00e9ation de sauvegardes et la restauration de sauvegardes. Si un bogue se produit lors de la cr\u00e9ation d'une sauvegarde, cela entra\u00eene une perte de donn\u00e9es. Et bien s\u00fbr, personne ne veut cela. Tout le monde veut que tout soit tr\u00e8s fiable. C'est pourquoi nous ne voulons pas confier du code auquel nous faisons moins confiance que notre propre code. Autrement dit, tout code non critique est ce que nous aimerions obtenir de nos mains suppl\u00e9mentaires.<\/p>\n<p><\/p>\n<p><strong>Quelles sont les conditions d'acceptation d'un PR d'\u00e9tudiant ?<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>Ils doivent couvrir leur code avec des tests. Tout doit passer dans le CI. <\/li>\n<li>Et nous passons \u00e9galement par deux revues. Une par Andre\u00ef Borodine et l'autre par moi. <\/li>\n<li>Et de plus, pour v\u00e9rifier que cela ne casse rien dans notre service, je t\u00e9l\u00e9charge s\u00e9par\u00e9ment la build avec ce commit. Et nous v\u00e9rifions dans les tests end-to-end que rien ne s'\u00e9croule.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Cours sp\u00e9cial sur l'Open Source<\/strong><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/58832406f3acdf294cd68e6adde14ec8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Un peu sur l'int\u00e9r\u00eat de cela et pourquoi je pense que c'est une super id\u00e9e. <\/p>\n<p><\/p>\n<p><strong>Pour nous, le profit est \u00e9vident :<\/strong> <\/p>\n<p><\/p>\n<ul>\n<li>Nous avons des bras suppl\u00e9mentaires. <\/li>\n<li>Et nous cherchons des candidats pour l'\u00e9quipe parmi des \u00e9tudiants talentueux qui \u00e9crivent un bon code. <\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Quel est le profit pour les \u00e9tudiants ?<\/strong><\/p>\n<p><\/p>\n<p>Il peut sembler moins \u00e9vident, car les \u00e9tudiants, au minimum, ne re\u00e7oivent pas d'argent pour le code qu'ils \u00e9crivent, mais seulement des notes sur leur livret. <\/p>\n<p><\/p>\n<p>Je les ai interrog\u00e9s \u00e0 ce sujet. Voici ce qu'ils en disent :<\/p>\n<p><\/p>\n<ul>\n<li>L'exp\u00e9rience de contribution \u00e0 l'Open Source.<\/li>\n<li>Obtenir une ligne sur leur CV.<\/li>\n<li>Se faire remarquer et passer un entretien chez Yandex.<\/li>\n<li>Devenir un participant \u00e0 GSoC.<\/li>\n<li>+1 cours sp\u00e9cial pour ceux qui veulent \u00e9crire du code.<\/li>\n<\/ul>\n<p><\/p>\n<p>Je ne vais pas expliquer comment le cours \u00e9tait structur\u00e9. Je dirai juste que WAL-G \u00e9tait le principal projet. De plus, nous avons inclus des projets tels qu'Odyssey, PostgreSQL et ClickHouse dans ce cours.<\/p>\n<p><\/p>\n<p>Et nous avons donn\u00e9 des exercices non seulement dans ce cours, mais aussi des dipl\u00f4mes et des travaux de cours.<\/p>\n<p><\/p>\n<p><strong>Et quel est le profit pour les utilisateurs ?<\/strong><\/p>\n<p><\/p>\n<p>Passons maintenant \u00e0 la partie qui vous int\u00e9resse probablement. Quel en est le b\u00e9n\u00e9fice pour vous ? Le b\u00e9n\u00e9fice est que les \u00e9tudiants ont corrig\u00e9 de nombreux bugs. Et ils ont fait des demandes de fonctionnalit\u00e9s que vous nous avez demand\u00e9 de r\u00e9aliser. <\/p>\n<p><\/p>\n<p>Et permettez-moi de parler des choses que vous attendiez depuis longtemps et qui ont \u00e9t\u00e9 mises en \u0153uvre.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/bb836742bf4f99e1b91c891ed1802bf0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Support des tablespaces. Le support des tablespaces dans WAL-G \u00e9tait probablement attendu depuis la sortie de WAL-G, car WAL-G est le successeur d'un autre outil de sauvegarde, WAL-E, qui supportait les backups des bases de donn\u00e9es avec des tablespaces.<\/p>\n<p><\/p>\n<p>Pour r\u00e9sumer, qu'est-ce que c'est et pourquoi est-ce n\u00e9cessaire ? En g\u00e9n\u00e9ral, toutes vos donn\u00e9es Postgres occupent un r\u00e9pertoire dans le syst\u00e8me de fichiers, appel\u00e9 r\u00e9pertoire de base. Et ce r\u00e9pertoire contient d\u00e9j\u00e0 tous les fichiers et sous-r\u00e9pertoires n\u00e9cessaires \u00e0 Postgres.<\/p>\n<p><\/p>\n<p>Les tablespaces sont des r\u00e9pertoires o\u00f9 se trouvent les donn\u00e9es Postgres, mais ils ne se trouvent pas en dehors du r\u00e9pertoire de base. Sur la diapositive, on voit que les tablespaces se situent en dehors du r\u00e9pertoire de base.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/0f25591cfcaaeaec02903c9b98d8ac65.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c0 quoi cela ressemble-t-il pour Postgres lui-m\u00eame ? Dans le r\u00e9pertoire de base, il existe un sous-r\u00e9pertoire distinct pg_tblspc. Et \u00e0 l'int\u00e9rieur se trouvent des liens symboliques vers des r\u00e9pertoires contenant r\u00e9ellement les donn\u00e9es Postgres en dehors du r\u00e9pertoire de base.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/9e9875696c03e6e42bb98b5a7a9acd75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Lorsque vous utilisez tout cela, ces commandes peuvent ressembler \u00e0 ceci. C'est-\u00e0-dire que vous cr\u00e9ez une table dans un tablespace sp\u00e9cifi\u00e9 et vous v\u00e9rifiez o\u00f9 elle se trouve maintenant. Voici ces deux derni\u00e8res lignes, les deux derni\u00e8res commandes appel\u00e9es. Et l\u00e0, on peut voir qu'il y a un certain chemin. Mais en r\u00e9alit\u00e9, ce n'est pas un vrai chemin. C'est un chemin avec un pr\u00e9fixe du r\u00e9pertoire de base vers le tablespace. Et de l\u00e0, il est mapp\u00e9 par un lien symbolique qui m\u00e8ne \u00e0 vos donn\u00e9es r\u00e9elles.<\/p>\n<p><\/p>\n<p>Nous n'utilisons pas cela dans notre \u00e9quipe, mais de nombreux autres utilisateurs de WAL-E qui nous ont \u00e9crit qu'ils voulaient migrer vers WAL-G, mais que cela leur posait probl\u00e8me. Maintenant, cela est support\u00e9.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/95ec319ccefa7e6c8bce193317407229.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Une autre fonctionnalit\u00e9 que notre cours sp\u00e9cial nous a apport\u00e9e est le catchup. Les personnes qui ont probablement plus travaill\u00e9 avec Oracle qu'avec Postgres connaissent catchup.<\/p>\n<p><\/p>\n<p>En r\u00e9sum\u00e9, voil\u00e0 ce que c'est. Voici \u00e0 quoi peut g\u00e9n\u00e9ralement ressembler la topologie d'un cluster dans notre service. Nous avons un ma\u00eetre. Il y a une r\u00e9plique qui se synchronise avec lui via le write-ahead log. La r\u00e9plique informe le ma\u00eetre de la position actuelle de son LSN. Parall\u00e8lement, le journal peut \u00eatre archiv\u00e9. De plus, des sauvegardes sont envoy\u00e9es vers le cloud, ainsi que des sauvegardes delta.<\/p>\n<p><\/p>\n<p>Quel pourrait \u00eatre le probl\u00e8me ? Lorsque vous avez une base de donn\u00e9es assez volumineuse, il peut arriver que votre r\u00e9plique commence \u00e0 se d\u00e9synchroniser consid\u00e9rablement par rapport au ma\u00eetre. Et elle est \u00e0 un point tel qu'elle ne pourra jamais le rattraper. Ce probl\u00e8me doit g\u00e9n\u00e9ralement \u00eatre r\u00e9solu d'une mani\u00e8re ou d'une autre. <\/p>\n<p><\/p>\n<p>La mani\u00e8re la plus simple est de retirer la r\u00e9plique et de la r\u00e9initialiser, car elle ne pourra jamais rattraper le ma\u00eetre, et il faut s'attaquer au probl\u00e8me. Mais cela prend assez de temps, car restaurer une sauvegarde compl\u00e8te d'une base de donn\u00e9es de 10 To est tr\u00e8s, tr\u00e8s long. Nous souhaiterions que cela soit fait aussi vite que possible lorsque de tels probl\u00e8mes surviennent. C'est pr\u00e9cis\u00e9ment l'objectif de catchup.<\/p>\n<p><\/p>\n<p>Catchup permet d'utiliser des sauvegardes delta, qui sont stock\u00e9es dans le cloud de cette mani\u00e8re. Vous indiquez \u00e0 quel LSN se trouve actuellement la r\u00e9plique en retard et vous le sp\u00e9cifiez dans la commande catchup pour cr\u00e9er une sauvegarde delta entre ce LSN et celui o\u00f9 se trouve actuellement votre cluster. Apr\u00e8s cela, vous restaurez cette sauvegarde sur la r\u00e9plique en retard.<\/p>\n<p><\/p>\n<p><strong>Autres bases<\/strong><\/p>\n<p><\/p>\n<p>De plus, nos \u00e9tudiants nous ont apport\u00e9 de nombreuses fonctionnalit\u00e9s. Comme nous d\u00e9veloppons non seulement Postgres chez Yandex, mais \u00e9galement MySQL, MongoDB, Redis, ClickHouse, \u00e0 un moment donn\u00e9, nous avons eu besoin de pouvoir r\u00e9aliser des sauvegardes avec une r\u00e9cup\u00e9ration \u00e0 un instant donn\u00e9 pour MySQL, et de pouvoir les charger dans le cloud.<\/p>\n<p><\/p>\n<p>Nous souhaitions le faire d'une mani\u00e8re similaire \u00e0 celle utilis\u00e9e par WAL-G. Nous avons donc d\u00e9cid\u00e9 d'exp\u00e9rimenter et de voir \u00e0 quoi cela pourrait ressembler.<\/p>\n<p><\/p>\n<p>Au d\u00e9but, sans s\u00e9parer cette logique, nous avons \u00e9crit du code dans un fork. Nous avons constat\u00e9 que nous avions un mod\u00e8le fonctionnel et que cela pouvait fonctionner. Ensuite, nous avons pens\u00e9 que notre principale communaut\u00e9 \u00e9tait compos\u00e9e d'utilisateurs de Postgres, qui utilisent WAL-G. Il \u00e9tait donc n\u00e9cessaire de s\u00e9parer ces parties. En d'autres termes, lorsque nous corrigeons le code pour Postgres, nous ne brisons pas MySQL, et vice versa.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/deef7615eaeb0b8bd790fb253cc42312.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>La premi\u00e8re id\u00e9e pour s\u00e9parer cela \u00e9tait d'utiliser la m\u00eame approche que celle utilis\u00e9e dans les extensions PostgreSQL. En fait, pour faire une sauvegarde MySQL, vous deviez installer une certaine biblioth\u00e8que dynamique. <\/p>\n<p><\/p>\n<p>Mais ici, on voit tout de suite l'asym\u00e9trie de cette approche. Lorsque vous sauvegardez Postgres, vous installez un outil de sauvegarde normal pour Postgres et tout va bien. En revanche, pour MySQL, vous devez installer un outil de sauvegarde pour Postgres, puis ajouter une biblioth\u00e8que dynamique pour MySQL. Cela semble un peu \u00e9trange. Nous avons \u00e9galement pens\u00e9 cela et avons d\u00e9cid\u00e9 que ce n'\u00e9tait pas la solution dont nous avions besoin. <\/p>\n<p><\/p>\n<p><strong>Diff\u00e9rentes versions pour Postgres, MySQL, MongoDB, Redis<\/strong><\/p>\n<p><\/p>\n<p>Mais cela nous a permis, semble-t-il, d'arriver \u00e0 la bonne solution : cr\u00e9er diff\u00e9rentes versions pour diff\u00e9rentes bases. Cela permettait d'isoler la logique li\u00e9e aux sauvegardes de diff\u00e9rentes bases de donn\u00e9es, qui allaient acc\u00e9der \u00e0 une API commune mise en \u0153uvre par WAL-G.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/6c810d5f065de06fc200bdd028707318.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>C'est la partie que nous avons \u00e9crite nous-m\u00eames \u2013 avant de donner des exercices aux \u00e9tudiants. C'est-\u00e0-dire que c'est pr\u00e9cis\u00e9ment la partie o\u00f9 ils pouvaient faire quelque chose de travers, donc nous avons d\u00e9cid\u00e9 qu'il valait mieux que nous fassions quelque chose correctement et que tout soit parfait. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/3a864a85bfb820ef64cbacc029a9198c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Apr\u00e8s cela, nous avons donn\u00e9 des exercices. Ils ont \u00e9t\u00e9 imm\u00e9diatement pris d'assaut. Les \u00e9tudiants devaient prendre en charge trois bases. <\/p>\n<p><\/p>\n<p>C'est MySQL, que nous sauvegardons avec WAL-G de cette mani\u00e8re depuis plus d'un an. <\/p>\n<p><\/p>\n<p>Et maintenant, MongoDB se rapproche de la production, o\u00f9 il est perfectionn\u00e9. En fait, nous avons \u00e9crit le cadre de tout cela. Ensuite, les \u00e9tudiants ont produit certaines choses qui fonctionnent. Et apr\u00e8s, nous les peaufinons jusqu'\u00e0 un \u00e9tat que nous pouvons accepter en production.<\/p>\n<p><\/p>\n<p>Ces exercices ne consistaient pas \u00e0 demander aux \u00e9tudiants d'\u00e9crire des outils de sauvegarde complets pour chacune de ces bases. Cela n'a pas \u00e9t\u00e9 notre probl\u00e8me. Notre probl\u00e8me \u00e9tait que nous voulions un point-in-time recovery et que nous souhaitions sauvegarder dans le cloud. Nous avons demand\u00e9 aux \u00e9tudiants d'\u00e9crire un code qui r\u00e9soudrait cela. Les \u00e9tudiants ont utilis\u00e9 des outils de sauvegarde d\u00e9j\u00e0 existants qui prennent des sauvegardes d'une certaine mani\u00e8re, puis assemblez tout cela avec WAL-G, qui envoyait tout dans le cloud. Ils ont \u00e9galement ajout\u00e9 la fonctionnalit\u00e9 de point-in-time recovery.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/7494aef259c7599e8bf0b70d77e1bb09.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Qu'est-ce que les \u00e9tudiants ont \u00e9galement apport\u00e9 ? Ils ont ajout\u00e9 \u00e0 WAL-G le support du chiffrement Libsodium.<\/p>\n<p><\/p>\n<p>Nous avons \u00e9galement mis en place des politiques de conservation des sauvegardes. Maintenant, les sauvegardes peuvent \u00eatre marqu\u00e9es comme permanentes. Il est donc plus pratique pour votre service d'automatiser le processus de leur conservation. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/6e932ab13dbc3119f7f1da1122443b10.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quels sont les r\u00e9sultats de cette exp\u00e9rience ?<\/p>\n<p><\/p>\n<p>Au d\u00e9part, plus de 100 personnes se sont inscrites au cours. Je n'ai pas mentionn\u00e9 que l'universit\u00e9 \u00e0 Ekaterinbourg est l'Universit\u00e9 f\u00e9d\u00e9rale de l'Oural. C'est l\u00e0 que nous avons tout annonc\u00e9. 100 personnes se sont inscrites. En r\u00e9alit\u00e9, beaucoup moins ont commenc\u00e9 \u00e0 participer, environ 30 personnes. <\/p>\n<p><\/p>\n<p>Encore moins de personnes ont termin\u00e9 le cours, car il fallait \u00e9crire des tests pour les codes existants. De plus, il fallait corriger un bug ou ajouter une fonctionnalit\u00e9. Cependant, certains \u00e9tudiants ont tout de m\u00eame r\u00e9ussi \u00e0 terminer le cours.<\/p>\n<p><\/p>\n<p>\u00c0 ce jour, les \u00e9tudiants ont corrig\u00e9 environ 14 probl\u00e8mes pour ce cours et ont r\u00e9alis\u00e9 10 fonctionnalit\u00e9s de tailles vari\u00e9es. Cela me semble \u00eatre un remplacement solide d'un ou deux d\u00e9veloppeurs. <\/p>\n<p><\/p>\n<p>En plus de cela, nous avons d\u00e9livr\u00e9 des dipl\u00f4mes et des travaux de cours. 12 d'entre eux ont re\u00e7u leur dipl\u00f4me. 6 d'entre eux ont d\u00e9j\u00e0 soutenu leur projet avec la note \u00ab 5 \u00bb. Pour les autres, il n'y a pas encore eu de soutenance, mais je pense qu'ils r\u00e9ussiront aussi. <\/p>\n<p><\/p>\n<p>Plans pour l'avenir<\/p>\n<p><\/p>\n<p>Quels sont nos plans pour l'avenir ?<\/p>\n<p><\/p>\n<p>Au moins, les demandes de fonctionnalit\u00e9s que nous avons d\u00e9j\u00e0 re\u00e7ues des utilisateurs et que nous souhaitons r\u00e9aliser. Cela inclut :<\/p>\n<p><\/p>\n<ul>\n<li>Le suivi de l'exactitude du suivi de la timeline dans l'archive des sauvegardes du cluster HA. Cela peut \u00eatre fait avec WAL-G. Et je pense que nous trouverons des \u00e9tudiants qui s'y attacheront. <\/li>\n<li>Nous avons d\u00e9j\u00e0 une personne responsable du transfert des sauvegardes et du WAL entre les clouds. <\/li>\n<li>Nous avons r\u00e9cemment publi\u00e9 l'id\u00e9e que nous pouvons encore acc\u00e9l\u00e9rer WAL-G en d\u00e9compressant les sauvegardes incr\u00e9mentales sans \u00e9craser les pages et en optimisant les archives que nous y envoyons. <\/li>\n<\/ul>\n<p><\/p>\n<p>Vous pouvez les partager ici<\/p>\n<p><\/p>\n<p>Quel \u00e9tait l'objectif de cette pr\u00e9sentation ? C'est que maintenant, \u00e0 part nous quatre qui g\u00e9rons ce projet, nous avons d'autres personnes pr\u00eates \u00e0 aider, et elles sont nombreuses. Surtout si on leur \u00e9crit en message priv\u00e9. Et si vous sauvegardez vos donn\u00e9es avec WAL-G ou souhaitez passer \u00e0 WAL-G, nous pouvons facilement prendre vos souhaits en compte.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/7b0dc1633121ea6493610b08f68a14d2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Voici le code QR et le lien. Vous pouvez les utiliser pour donner toutes vos suggestions. Par exemple, si nous ne corrigeons pas un bug ou si vous attendez une fonctionnalit\u00e9 qui n'est pas encore dans aucune solution de sauvegarde, y compris la n\u00f4tre. N'h\u00e9sitez pas \u00e0 en parler.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G\u00a0: nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9. Georgy Rylov\" src=\"\/wp-content\/uploads\/2020\/04\/56f1c4eef8522d2d6628ea98b1278846.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questions<\/p>\n<p><\/p>\n<p><em>Bonjour ! Merci pour la pr\u00e9sentation ! J'ai une question sur WAL-G, mais pas sur Postgres. WAL-G prend en charge les sauvegardes MySQL et appelle des sauvegardes suppl\u00e9mentaires. Si on prend des installations modernes sur CentOS et que vous effectuez un yum install MySQL, MariaDB sera install\u00e9. \u00c0 partir de la version 10.3, les sauvegardes suppl\u00e9mentaires ne sont plus prises en charge, seul le backup MariaDB l'est. Comment avancez-vous avec cela ?<\/em><\/p>\n<p><\/p>\n<p>Pour l'instant, nous n'avons pas essay\u00e9 de sauvegarder MariaDB. Nous avons re\u00e7u des demandes de support pour FoundationDB, mais en g\u00e9n\u00e9ral, si une telle demande existe, nous pouvons trouver des personnes pour le faire. Ce n'est pas si long et pas si compliqu\u00e9, \u00e0 ce qu'il me semble.<\/p>\n<p><\/p>\n<p><em>Bonjour ! Merci pour la pr\u00e9sentation ! J'ai une question sur de potentielles nouvelles fonctionnalit\u00e9s. \u00cates-vous pr\u00eats \u00e0 faire fonctionner WAL-G avec des bandes pour effectuer des sauvegardes sur bandes ?<\/em><\/p>\n<p><\/p>\n<p>Vous parlez de sauvegarde sur un stockage \u00e0 bandes, n'est-ce pas ?<\/p>\n<p><\/p>\n<p><em>Oui.<\/em><\/p>\n<p><\/p>\n<p>Il y a Andrey Borodin qui peut mieux r\u00e9pondre \u00e0 cette question que moi. <\/p>\n<p><\/p>\n<p>(Andrey) Oui, merci pour la question ! Nous avons eu une demande pour d\u00e9placer les sauvegardes vers des bandes depuis un stockage cloud. Et pour cela, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/pull\/596\">nous d\u00e9veloppons<\/a><\/noindex> le transfert entre les clouds. Parce que le transfert entre les clouds est une version g\u00e9n\u00e9ralis\u00e9e du transfert vers les bandes. De plus, nous avons une architecture extensible en ce qui concerne les Stockages. \u00c0 propos, de nombreux Stockages ont \u00e9t\u00e9 \u00e9crits par des \u00e9tudiants. Et si vous \u00e9crivez un Storage pour des bandes, il sera bien s\u00fbr pris en charge. Nous sommes pr\u00eats \u00e0 consid\u00e9rer un pull request. Il faut \u00e9crire un fichier, lire un fichier. Si ces choses sont cod\u00e9es en Go, cela repr\u00e9sente g\u00e9n\u00e9ralement 50 lignes de code. Et alors les bandes seront prises en charge dans WAL-G. <\/p>\n<p><\/p>\n<p><em>Merci pour la pr\u00e9sentation ! Int\u00e9ressant processus de d\u00e9veloppement. La sauvegarde est une partie essentielle des fonctionnalit\u00e9s qui doit \u00eatre bien couverte par des tests. Lorsque vous avez r\u00e9alis\u00e9 des fonctionnalit\u00e9s pour de nouvelles bases, les tests ont-ils \u00e9galement \u00e9t\u00e9 \u00e9crits par des \u00e9tudiants ou avez-vous \u00e9crit les tests vous-m\u00eame puis confi\u00e9 la mise en \u0153uvre aux \u00e9tudiants ?<\/em><\/p>\n<p><\/p>\n<p>Les tests ont \u00e9galement \u00e9t\u00e9 \u00e9crits par des \u00e9tudiants. Mais les \u00e9tudiants \u00e9crivaient principalement des tests pour des fonctionnalit\u00e9s telles que les nouvelles bases. Ils \u00e9crivaient des tests d'int\u00e9gration. Et ils \u00e9crivaient des tests unitaires. Si les tests d'int\u00e9gration passent, c'est-\u00e0-dire \u00e0 l'heure actuelle \u2013 c'est un sc\u00e9nario que vous ex\u00e9cutez manuellement ou que vous faites faire par cron, par exemple. C'est un sc\u00e9nario assez compr\u00e9hensible. <\/p>\n<p><\/p>\n<p><em>Les \u00e9tudiants n'ont pas beaucoup d'exp\u00e9rience. Combien de temps passez-vous en revue ?<\/em><\/p>\n<p><\/p>\n<p>Oui, la revue prend beaucoup de temps. C\u2019est-\u00e0-dire qu\u2019en g\u00e9n\u00e9ral, quand plusieurs contributeurs arrivent et disent que j'ai fait \u00e7a, j'ai fait cela, il faut r\u00e9fl\u00e9chir et d\u00e9gager environ une demi-journ\u00e9e pour comprendre ce qu'ils ont \u00e9crit. Parce que le code doit \u00eatre lu attentivement. Ils n'ont pas pass\u00e9 d'entretien. Nous ne les connaissons pas tr\u00e8s bien, donc cela prend un temps consid\u00e9rable.<\/p>\n<p><\/p>\n<p><em>Merci pour la pr\u00e9sentation ! Plus t\u00f4t, Andre\u00ef Borodine avait d\u00e9clar\u00e9 que la commande archive_command dans WAL-G devait \u00eatre appel\u00e9e directement. Mais dans le cas d'un cluster patron, nous avons besoin d'une logique suppl\u00e9mentaire pour d\u00e9terminer le n\u0153ud \u00e0 partir duquel envoyer les journaux. Comment r\u00e9solvez-vous ce probl\u00e8me chez vous ?<\/em><\/p>\n<p><\/p>\n<p>Quel est le probl\u00e8me ici ? Avez-vous une r\u00e9plique synchronis\u00e9e \u00e0 partir de laquelle vous faites une sauvegarde ? Ou quoi ?<\/p>\n<p><\/p>\n<p>(Andre\u00ef) Le fait est que WAL-G suppose r\u00e9ellement une utilisation sans scripts shell. Si quelque chose manque, alors \u00e9crivons la logique qui doit \u00eatre int\u00e9gr\u00e9e dans WAL-G. Concernant la source de l'archivage, nous pensons que l'archivage doit se faire depuis le ma\u00eetre actuel dans le cluster. L'archivage depuis une r\u00e9plique est une mauvaise id\u00e9e. Divers sc\u00e9narios avec des probl\u00e8mes peuvent survenir. En particulier, des probl\u00e8mes d'archivage de timelines et d'autres informations suppl\u00e9mentaires. Merci pour la question !<\/p>\n<p><\/p>\n<p>(Pr\u00e9cision : Nous avons \u00e9limin\u00e9 l'utilisation de scripts shell. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/issues\/549\">dans ce probl\u00e8me<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p><em>Bonsoir ! Merci pour la pr\u00e9sentation ! J'ai \u00e9t\u00e9 int\u00e9ress\u00e9 par la fonctionnalit\u00e9 catchup dont vous avez parl\u00e9. Avez-vous d\u00e9j\u00e0 rencontr\u00e9 une situation o\u00f9 une r\u00e9plique \u00e9tait en retard et ne pouvait pas rattraper son retard ? Et je n'ai pas trouv\u00e9 de description de cette fonctionnalit\u00e9 dans la documentation de WAL-G.<\/em><\/p>\n<p><\/p>\n<p>Catchup est apparu litt\u00e9ralement vers le 20 janvier 2020. Peut-\u00eatre qu'il faudrait mieux travailler sur la documentation. Nous l'\u00e9crivons nous-m\u00eames et nous ne le faisons pas de mani\u00e8re super-excellente. Et il faudrait peut-\u00eatre commencer \u00e0 exiger des \u00e9tudiants qu'ils l'\u00e9crivent.<\/p>\n<p><\/p>\n<p><em>Est-ce d\u00e9j\u00e0 dans la version ?<\/em><\/p>\n<p><\/p>\n<p>La demande de tirage a d\u00e9j\u00e0 \u00e9t\u00e9 fusionn\u00e9e, c\u2019est-\u00e0-dire que je l'ai v\u00e9rifi\u00e9e. Je l'ai test\u00e9e sur un cluster de test. Pour l\u2019instant, nous n'avons pas eu de situation o\u00f9 nous aurions pu le v\u00e9rifier sur un cas pratique.<\/p>\n<p><\/p>\n<p><em>Quand s'attendre \u00e0 cela ?<\/em><\/p>\n<p><\/p>\n<p>Je ne sais pas. Attendez un mois, nous v\u00e9rifierons certainement.<\/p>\n<p>Source : <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.2 - 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\/fr\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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 : nouvelles fonctionnalit\u00e9s et \u00e9largissement de la communaut\u00e9. Georgy Rylov | ProHoster","description":"Je vous propose de consulter la transcription de la pr\u00e9sentation de d\u00e9but 2020 de Georgiy Rylov \"WAL-G : nouvelles fonctionnalit\u00e9s et expansion de la communaut\u00e9\". Les mainteneurs open-source rencontrent de nombreux probl\u00e8mes.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/78887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=78887"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/78887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/78888"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=78887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=78887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=78887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}