{"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\/it\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","title":{"rendered":"WAL-G: nuove opportunit\u00e0 e l'espansione della comunit\u00e0. Georgij Ry\u017eov","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: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" 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>Ciao a tutti di nuovo! Sono uno sviluppatore di Yandex e provengo da Ekaterinburg. Oggi parler\u00f2 di WAL-G.<\/p>\n<p><\/p>\n<p>Nel titolo della presentazione non era specificato che si trattava di backup. Qualcuno non sa cos'\u00e8 WAL-G? O lo sanno tutti? Alzate la mano se non lo sapete. Wow, siete venuti alla presentazione senza sapere di cosa si tratta.<\/p>\n<p><\/p>\n<p>Lasciate che vi spieghi cosa accadr\u00e0 oggi. \u00c8 successo che il nostro team si occupa di backup da un po' di tempo. E questa \u00e8 un'altra presentazione della serie in cui parliamo di come conserviamo i dati in modo sicuro, affidabile, conveniente ed efficace.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/4307e7b2acc60cd908d91e3f1b83a9b6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nelle puntate precedenti ci sono stati molti interventi di Andrey Borodin e Vladimir Leskov. Eravamo in molti. E tutti noi abbiamo parlato di WAL-G per molti anni. <\/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>Questa presentazione si differenzier\u00e0 leggermente dalle altre, poich\u00e9 si concentrer\u00e0 maggiormente sugli aspetti tecnici, mentre qui parler\u00f2 di come abbiamo affrontato le sfide legate alla crescita della comunit\u00e0. E di come abbiamo ideato una piccola soluzione che ci aiuta a gestire tutto ci\u00f2. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/ec728f7d99ea9b6a5df4785d7e8a2a75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Qualche anno fa, WAL-G era un progetto piuttosto piccolo, che abbiamo ereditato da Citus Data. E noi lo abbiamo appena preso. Era sviluppato da una sola persona.<\/p>\n<p><\/p>\n<p>E in WAL-G non c'era:<\/p>\n<p><\/p>\n<ul>\n<li>Backup da replica.<\/li>\n<li>Non c'erano backup incrementali.<\/li>\n<li>Non c'erano backup WAL-Delta. <\/li>\n<li>E ancora molte altre funzionalit\u00e0 mancavano.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Negli ultimi anni, WAL-G \u00e8 cresciuto notevolmente.<\/strong> <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/16700dfcc2c54539c5a064894cd1ec88.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Entro il 2020, tutte le precedenti funzionalit\u00e0 erano gi\u00e0 disponibili. E a questo si aggiunge:<\/p>\n<p><\/p>\n<ul>\n<li>Oltre 1.000 stelle su GitHub.<\/li>\n<li>150 fork.<\/li>\n<li>Circa 15 PR aperti.<\/li>\n<li>E ancora molti contributori. <\/li>\n<li>E ci sono sempre issue aperte. Considerando che ci entriamo letteralmente ogni giorno per fare qualcosa a riguardo. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/5e5dea14b328a7f0437017ca834d1eaf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Abbiamo capito che questo progetto richiede maggiore attenzione da parte nostra, anche quando non abbiamo bisogno di implementare nulla per il nostro servizio Managed Databases in Yandex.<\/p>\n<p><\/p>\n<p>E da qualche parte nell'autunno del 2018, ci \u00e8 venuta un'idea. Di solito il team ha diversi modi per implementare nuove funzionalit\u00e0 o risolvere bug quando le risorse scarseggiano. Ad esempio, puoi assumere un altro sviluppatore e pagarlo. Oppure puoi prendere uno stagista per un certo periodo e anche pagarlo. Ma c'\u00e8 anche un gruppo piuttosto ampio di persone, alcune delle quali sanno gi\u00e0 scrivere codice. Semplicemente, non sai sempre che tipo di qualit\u00e0 avr\u00e0 quel codice.<\/p>\n<p><\/p>\n<p>Abbiamo pensato di provare ad attirare studenti. Ma gli studenti non parteciperanno a tutto. Faranno solo una parte del lavoro. Per esempio, scriveranno test, correggeranno bug e implementeranno funzionalit\u00e0 che non intaccano la funzionalit\u00e0 principale. La funzionalit\u00e0 principale \u00e8 la creazione e il ripristino dei backup. Se si verifica un bug nella creazione di un backup, rischiamo di perdere dati. E nessuno lo vuole, ovviamente. Tutti desiderano che tutto sia estremamente affidabile. Pertanto, non vogliamo certamente permettere a codice di cui ci fidiamo meno che del nostro di entrare. Cio\u00e8, qualsiasi codice non critico \u00e8 ci\u00f2 che ci piacerebbe ricevere dalle nostre risorse aggiuntive.<\/p>\n<p><\/p>\n<p><strong>In quali condizioni viene accettato un PR da uno studente?<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>Devono coprire il loro codice con test. Tutto deve passare nel CI. <\/li>\n<li>E inoltre, dobbiamo passare attraverso 2 revisioni. Una di Andrei Borodin e una mia. <\/li>\n<li>E per verificare che non rompa nulla nel nostro servizio, carico separatamente una build con questo commit. E controlliamo nei test end-to-end che non ci siano problemi.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Corso speciale su Open Source<\/strong><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/58832406f3acdf294cd68e6adde14ec8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Un po' su perch\u00e9 \u00e8 utile e perch\u00e9 mi sembra un'ottima idea. <\/p>\n<p><\/p>\n<p><strong>Il profitto \u00e8 ovvio per noi:<\/strong> <\/p>\n<p><\/p>\n<ul>\n<li>Otteniamo mani in pi\u00f9. <\/li>\n<li>E cerchiamo candidati nella nostra squadra tra studenti brillanti che scrivono codice di qualit\u00e0. <\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Qual \u00e8 il vantaggio per gli studenti?<\/strong><\/p>\n<p><\/p>\n<p>Potrebbero non essere cos\u00ec evidenti, perch\u00e9 gli studenti, almeno, non ricevono soldi per il codice che scrivono, ma solo voti nel libretto. <\/p>\n<p><\/p>\n<p>Ho chiesto loro al riguardo. E secondo loro:<\/p>\n<p><\/p>\n<ul>\n<li>Esperienza come collaboratori in Open Source.<\/li>\n<li>Aggiungere una voce al CV.<\/li>\n<li>Mettersi in evidenza e superare il colloquio in Yandex.<\/li>\n<li>Diventare partecipanti a GSoC.<\/li>\n<li>+1 corso speciale per chi vuole scrivere codice.<\/li>\n<\/ul>\n<p><\/p>\n<p>Non parler\u00f2 di come \u00e8 stato strutturato il corso. Dir\u00f2 solo che WAL-G era il progetto principale. Inoltre, abbiamo incluso progetti come Odyssey, PostgreSQL e ClickHouse in questo corso.<\/p>\n<p><\/p>\n<p>E non abbiamo dato solo compiti in questo corso, ma abbiamo anche rilasciato diplomi e tesi.<\/p>\n<p><\/p>\n<p><strong>E quali sono i vantaggi per gli utenti?<\/strong><\/p>\n<p><\/p>\n<p>Passiamo alla parte che interessa, piuttosto, a voi. Qual \u00e8 il vantaggio per voi? Il vantaggio \u00e8 che gli studenti hanno risolto molti bug. E hanno fatto richieste di funzionalit\u00e0 che ci avete chiesto di implementare. <\/p>\n<p><\/p>\n<p>E ora lasciate che vi parli delle cose che desideravate da tempo e che sono state realizzate.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/bb836742bf4f99e1b91c891ed1802bf0.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Supporto per i tablespace. I tablespace in WAL-G erano attesi fin dal rilascio di WAL-G, poich\u00e9 WAL-G \u00e8 il successore di un altro strumento di backup, WAL-E, che supportava i backup di database con tablespace.<\/p>\n<p><\/p>\n<p>In breve, ricordiamo di cosa si tratta e a cosa serve. Di solito, tutti i dati di Postgres occupano una singola directory nel file system, che \u00e8 chiamata base. Questa directory contiene gi\u00e0 tutti i file e le sottodirectory necessari a Postgres.<\/p>\n<p><\/p>\n<p>I tablespace sono directory in cui sono archiviati i dati di Postgres, ma non si trovano al di fuori della directory base. Nella slide \u00e8 evidente che i tablespace si trovano al di fuori della directory base.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/0f25591cfcaaeaec02903c9b98d8ac65.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Come appare questo per Postgres stesso? Nella directory base c'\u00e8 una sottodirectory chiamata pg_tblspc. Al suo interno ci sono dei collegamenti simbolici (symlink) alle directory in cui sono realmente archiviati i dati di Postgres al di fuori della directory base.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/9e9875696c03e6e42bb98b5a7a9acd75.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quando usate tutto ci\u00f2, questi comandi possono apparire in questo modo. Cio\u00e8, create una tabella in uno spazio di tabelle specificato e vedete dove si trova attualmente. Queste ultime due righe, gli ultimi comandi richiamati. E l\u00ec \u00e8 visibile un percorso. Ma in realt\u00e0, non \u00e8 un vero percorso. \u00c8 un percorso con un prefisso dalla directory di base allo spazio delle tabelle. E da l\u00ec \u00e8 abbinato a un symlink che porta ai vostri dati reali.<\/p>\n<p><\/p>\n<p>Noi non utilizziamo tutto questo nel nostro team, ma molti altri utenti di WAL-E ci hanno detto che volevano passare a WAL-G, ma questo era un ostacolo. Ora \u00e8 supportato.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/95ec319ccefa7e6c8bce193317407229.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Un'altra funzione che ci ha portato il nostro corso speciale \u00e8 il catchup. Di catchup ne sanno quelli che probabilmente hanno lavorato di pi\u00f9 con Oracle che con Postgres.<\/p>\n<p><\/p>\n<p>In breve, che cos'\u00e8. Una topologia tipica di un cluster nel nostro servizio pu\u00f2 apparire in questo modo. Abbiamo un master. C'\u00e8 una replica che si sincronizza con lui attraverso il write-ahead log. La replica informa il master su quale LSN si trova attualmente. Contemporaneamente, il log pu\u00f2 essere archiviato. Inoltre, vengono inviati backup nel cloud, e anche backup incrementali.<\/p>\n<p><\/p>\n<p>Qual \u00e8 il problema potenziale? Quando avete un database di notevoli dimensioni, pu\u00f2 succedere che la replica inizi a distaccarsi significativamente dal master. E si distacca cos\u00ec tanto che non pu\u00f2 pi\u00f9 recuperare il ritardo. Questo problema di solito deve essere affrontato in qualche modo. <\/p>\n<p><\/p>\n<p>Il modo pi\u00f9 semplice \u00e8 rimuovere la replica e reinstallarla, poich\u00e9 non potr\u00e0 mai recuperare il ritardo, e bisogna risolvere il problema. Tuttavia, questo \u00e8 piuttosto lungo, perch\u00e9 ripristinare un intero backup di un database da 10 TB richiede un tempo molto lungo. Vogliamo farlo il pi\u00f9 rapidamente possibile quando si verificano tali problemi. \u00c8 proprio per questo che esiste il catchup.<\/p>\n<p><\/p>\n<p>Catchup consente di utilizzare i delta backup, che vengono salvati nel cloud in questo modo. Indicate a quale LSN si trova attualmente la replica in ritardo e specificatelo nel comando catchup per creare un delta backup tra quel LSN e l\u2019LSN su cui si trova attualmente il vostro cluster. Successivamente, ripristinate questo backup sulla replica che era in ritardo.<\/p>\n<p><\/p>\n<p><strong>Altre basi<\/strong><\/p>\n<p><\/p>\n<p>Inoltre, gli studenti ci hanno portato subito molte funzionalit\u00e0. Poich\u00e9 noi di Yandex lavoriamo non solo con Postgres, ma abbiamo anche MySQL, MongoDB, Redis, ClickHouse, a un certo punto abbiamo avuto bisogno della possibilit\u00e0 di effettuare backup con il ripristino point-in-time per MySQL e di caricarli nel cloud.<\/p>\n<p><\/p>\n<p>Volevamo farlo in un modo simile a quello di WAL-G. Cos\u00ec abbiamo deciso di sperimentare e vedere come sarebbe stato.<\/p>\n<p><\/p>\n<p>Inizialmente non separando questa logica, abbiamo scritto il codice in un fork. Abbiamo visto che avevamo una sorta di modello funzionante e che poteva decollare. Poi abbiamo pensato che la nostra comunit\u00e0 principale \u00e8 composta da postgresisti, che usano WAL-G. Pertanto, dovevamo in qualche modo separare queste parti. Cio\u00e8, quando si modifica il codice per Postgres, non rompiamo MySQL, e quando modifichiamo MySQL, non rompiamo Postgres.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/deef7615eaeb0b8bd790fb253cc42312.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>La prima idea su come separare il tutto \u00e8 stata quella di utilizzare lo stesso approccio usato nelle estensioni di PostgreSQL. In effetti, per fare un backup di MySQL, \u00e8 necessario installare una libreria dinamica. <\/p>\n<p><\/p>\n<p>Ma qui \u00e8 evidente l'asimmetria di questo approccio. Quando esegui un backup di Postgres, installi un normale strumento di backup per Postgres e funziona perfettamente. Per MySQL, invece, finisci per installare uno strumento di backup per Postgres e poi anche una libreria dinamica per MySQL. Sembra un po' strano. Anche noi abbiamo pensato che non fosse la soluzione di cui avevamo bisogno. <\/p>\n<p><\/p>\n<p><strong>Diverse versioni per Postgres, MySQL, MongoDB, Redis<\/strong><\/p>\n<p><\/p>\n<p>Ma questo ci ha permesso, a nostro avviso, di arrivare alla soluzione corretta: isolare diverse versioni per diversi database. Questo ci permette di isolare la logica legata ai backup di vari database, che si interfacciano con una comune API fornita da WAL-G.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/6c810d5f065de06fc200bdd028707318.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questa \u00e8 la parte che abbiamo scritto noi stessi, prima di assegnare i compiti agli studenti. Cio\u00e8, \u00e8 proprio la parte in cui potrebbero fare qualcosa di sbagliato, quindi abbiamo deciso che sarebbe stato meglio fare noi qualcosa di corretto e tutto andr\u00e0 bene. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/3a864a85bfb820ef64cbacc029a9198c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dopo di che abbiamo assegnato dei compiti. Sono stati subito presi. Agli studenti \u00e8 stato richiesto di supportare tre database. <\/p>\n<p><\/p>\n<p>Si tratta di MySQL, che stiamo eseguendo il backup utilizzando WAL-G in questo modo da oltre un anno. <\/p>\n<p><\/p>\n<p>E ora anche MongoDB si sta avvicinando alla produzione, dove lo stanno rifinendo. In sostanza, abbiamo scritto la struttura per tutto questo. Poi gli studenti hanno sviluppato alcune cose funzionanti. Infine, le portiamo a uno stato che possiamo accettare nella nostra produzione.<\/p>\n<p><\/p>\n<p>Questi compiti non sembravano richiedere agli studenti di scrivere strumenti di backup completi per ciascuno di questi database. Non avevamo questo problema. Il nostro problema era che volevamo il ripristino a un determinato momento e volevamo eseguire il backup nel cloud. Abbiamo quindi chiesto agli studenti di scrivere un codice che risolvesse questo. Gli studenti hanno utilizzato strumenti di backup gi\u00e0 esistenti, che in qualche modo creano i backup, e poi hanno unito tutto ci\u00f2 con WAL-G, che trasferiva il tutto nel cloud. A questo si \u00e8 aggiunto anche il ripristino a un determinato momento.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/7494aef259c7599e8bf0b70d77e1bb09.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cosa hanno portato anche gli studenti? Hanno aggiunto a WAL-G il supporto per la crittografia Libsodium.<\/p>\n<p><\/p>\n<p>Abbiamo anche introdotto politiche di conservazione dei backup. Ora i backup possono essere contrassegnati come permanenti. Questo rende pi\u00f9 facile automatizzare il processo di conservazione per il vostro servizio. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/6e932ab13dbc3119f7f1da1122443b10.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quali sono i risultati di questo esperimento?<\/p>\n<p><\/p>\n<p>All'inizio, pi\u00f9 di 100 persone si erano registrate al corso. Non ho detto inizialmente che l'universit\u00e0 di Ekaterinburg \u00e8 l'Universit\u00e0 Federale Uralica. L\u00ec abbiamo fatto tutti gli annunci. 100 persone si sono registrate. In realt\u00e0, solo circa 30 hanno iniziato a lavorare seriamente. <\/p>\n<p><\/p>\n<p>Ancora meno persone hanno completato il corso, perch\u00e9 era necessario scrivere test per i codici gi\u00e0 esistenti. Inoltre, dovevano risolvere un bug o implementare una funzionalit\u00e0. E alcuni studenti hanno comunque completato il corso.<\/p>\n<p><\/p>\n<p>Attualmente, per questo corso, gli studenti hanno risolto circa 14 problemi e implementato 10 funzionalit\u00e0 di diversa grandezza. E, a mio avviso, questo \u00e8 un valido sostituto di uno o due sviluppatori. <\/p>\n<p><\/p>\n<p>Oltre a tutto ci\u00f2, abbiamo rilasciato diplomi e lavori di corso. 12 hanno ricevuto diplomi. 6 di loro si sono gi\u00e0 laureati con un punteggio di '5'. Gli altri non hanno ancora sostenuto la laurea, ma penso che andr\u00e0 bene anche per loro. <\/p>\n<p><\/p>\n<p>Piani per il futuro<\/p>\n<p><\/p>\n<p>Quali sono i nostri piani per il futuro?<\/p>\n<p><\/p>\n<p>Almeno quelle richieste di funzionalit\u00e0 che abbiamo gi\u00e0 sentito dagli utenti e che vogliamo implementare. Questo include:<\/p>\n<p><\/p>\n<ul>\n<li>Monitorare l'accuratezza del tracciamento della timeline nell'archivio dei backup del cluster HA. Con WAL-G \u00e8 possibile farlo. E, penso che avremo studenti pronti ad occuparsene. <\/li>\n<li>Abbiamo gi\u00e0 una persona responsabile per il trasferimento dei backup e del WAL tra le nuvole. <\/li>\n<li>Recentemente abbiamo pubblicato un'idea su come possiamo ulteriormente accelerare WAL-G attraverso l'estrazione dei backup incrementali senza sovrascrivere le pagine e ottimizzando gli archivi che inviamo. <\/li>\n<\/ul>\n<p><\/p>\n<p>Puoi condividerli qui<\/p>\n<p><\/p>\n<p>Qual era lo scopo di questa presentazione? Volevamo dire che ora, oltre a noi quattro che supportano il progetto, abbiamo a disposizione molte altre mani. In particolare, se scrivete loro in privato. E se state eseguendo il backup dei vostri dati tramite WAL-G o desiderate migrare a WAL-G, possiamo considerare facilmente le vostre esigenze.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/7b0dc1633121ea6493610b08f68a14d2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questo \u00e8 un codice QR e un link. Puoi usare entrambi per scrivere tutte le tue richieste. Ad esempio, se abbiamo un bug che non stiamo risolvendo. Oppure se c'\u00e8 una funzione che desideri molto, ma per qualche motivo non \u00e8 ancora presente in alcun backup, incluso il nostro. Assicurati di scriverlo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"WAL-G: nuove opportunit\u00e0 e l&#039;espansione della comunit\u00e0. Georgij Ry\u017eov\" src=\"\/wp-content\/uploads\/2020\/04\/56f1c4eef8522d2d6628ea98b1278846.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Domande<\/p>\n<p><\/p>\n<p><em>Ciao! Grazie per la presentazione! Ho una domanda su WAL-G, ma non su Postgres. WAL-G effettua il backup di MySQL e chiama l'extra-backup. Se consideri le installazioni moderne su CentOS e se esegui yum install MySQL, si installer\u00e0 MariaDB. Dalla versione 10.3, l'extra-backup non \u00e8 supportato, ma \u00e8 supportato il backup di MariaDB. Come siete messi a riguardo?<\/em><\/p>\n<p><\/p>\n<p>Attualmente non abbiamo tentato di effettuare il backup di MariaDB. Abbiamo ricevuto richieste per il supporto di FoundationDB, ma in generale, se c'\u00e8 una richiesta del genere, possiamo trovare persone che lo faranno. Non \u00e8 cos\u00ec lungo e complesso come mi sembra.<\/p>\n<p><\/p>\n<p><em>Buongiorno! Grazie per la presentazione! Ho una domanda su potenziali nuove funzionalit\u00e0. Siete pronti a far funzionare WAL-G con i nastri, in modo da poter effettuare il backup su nastro?<\/em><\/p>\n<p><\/p>\n<p>Si riferisce a un backup su uno storage a nastro, giusto?<\/p>\n<p><\/p>\n<p><em>S\u00ec.<\/em><\/p>\n<p><\/p>\n<p>C'\u00e8 Andrey Borodin, che pu\u00f2 rispondere a questa domanda meglio di me. <\/p>\n<p><\/p>\n<p>(Andrej) S\u00ec, grazie per la domanda! Abbiamo ricevuto una richiesta per il trasferimento di un backup su nastro da un'archiviazione cloud. E per questo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/pull\/596\">si sta sviluppando<\/a><\/noindex> la migrazione tra cloud. Perch\u00e9 la migrazione tra cloud \u00e8 una sorta di versione generalizzata del trasferimento su nastro. Inoltre, abbiamo un'architettura scalabile per quanto riguarda gli Storage. A proposito, molti Storage sono stati scritti da studenti. E se scrivete uno Storage per il nastro, sar\u00e0 sicuramente supportato. Siamo pronti a considerare pull request. \u00c8 necessario scrivere un file, leggere un file. Se queste cose vengono fatte in Go, generalmente si traducono in 50 righe di codice. E allora nel WAL-G sar\u00e0 supportato il nastro. <\/p>\n<p><\/p>\n<p><em>Grazie per la presentazione! Un processo di sviluppo interessante. Il backup \u00e8 una parte seria della funzionalit\u00e0, che deve essere ben coperta da test. Quando avete implementato la funzionalit\u00e0 per i nuovi database, i test sono stati scritti anche da studenti o li avete scritti voi stessi e poi avete dato l'implementazione agli studenti?<\/em><\/p>\n<p><\/p>\n<p>I test scritti anche da studenti. Ma gli studenti scrivevano di pi\u00f9 per funzionalit\u00e0 come nuove basi. Scrivevano test di integrazione. E scrivevano test unitari. Se i test di integrazione passano, cio\u00e8 al momento, \u00e8 uno scenario che esegui a mano o che gestisce cron, ad esempio. Cio\u00e8, \u00e8 uno scenario abbastanza comprensibile. <\/p>\n<p><\/p>\n<p><em>Gli studenti non hanno molta esperienza. Quanto tempo ci vuole per la revisione?<\/em><\/p>\n<p><\/p>\n<p>S\u00ec, la revisione richiede abbastanza tempo. Di solito, quando arrivano diversi autori di commit e dicono, 'Ho fatto questo, ho fatto quello', \u00e8 necessario riflettere e dedicare almeno mezza giornata per capire ci\u00f2 che hanno scritto. Perch\u00e9 il codice deve essere letto attentamente. Non hanno superato un colloquio. Non li conosciamo molto bene, quindi ci vuole tempo prezioso.<\/p>\n<p><\/p>\n<p><em>Grazie per la relazione! In precedenza, Andrey Borodin affermava che archive_command in WAL-G dovrebbe essere chiamato direttamente. Ma nel caso di un cluster patron, abbiamo bisogno di logica aggiuntiva per determinare il nodo da cui inviare i WAL. Come risolvete questo problema da voi?<\/em><\/p>\n<p><\/p>\n<p>Qual \u00e8 il problema che hai qui? Diciamo che hai una replica sincrona da cui stai effettuando un backup? O cos'altro?<\/p>\n<p><\/p>\n<p>(Andrei) Il fatto \u00e8 che WAL-G \u00e8 progettato per essere utilizzato senza script shell. Se manca qualcosa, scriviamo la logica che deve essere all'interno di WAL-G. Per quanto riguarda da dove deve avvenire l'archiviazione, riteniamo che debba provenire dal master corrente nel cluster. L'archiviazione dalla replica \u00e8 una cattiva idea. Ci possono essere vari scenari con problemi, in particolare problemi nell'archiviazione delle timeline e di ulteriori informazioni. Grazie per la domanda!<\/p>\n<p><\/p>\n<p>(Chiarimento: Abbiamo eliminato l'uso di script shell <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wal-g\/wal-g\/issues\/549\">in questo issue<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p><em>Buonasera! Grazie per la presentazione! Sono stato colpito dalla funzionalit\u00e0 catchup di cui hai parlato. Abbiamo riscontrato situazioni in cui la replica rimaneva indietro e non riusciva a recuperare. E non ho trovato una descrizione di questa funzionalit\u00e0 nei documenti di WAL-G.<\/em><\/p>\n<p><\/p>\n<p>La funzionalit\u00e0 catchup \u00e8 apparsa letteralmente verso la fine di gennaio 2020. Potrebbe essere utile lavorare meglio sulla documentazione. La stiamo scrivendo noi stessi e non \u00e8 che sia scritta in modo superlativo. E forse dovremmo iniziare a chiedere agli studenti di scriverla.<\/p>\n<p><\/p>\n<p><em>\u00c8 gi\u00e0 in rilascio?<\/em><\/p>\n<p><\/p>\n<p>La pull request \u00e8 gi\u00e0 stata unita, cio\u00e8 l'ho controllata. L'ho provato su un cluster di test. Finora non abbiamo avuto situazioni in cui potessimo verificarlo in un caso reale.<\/p>\n<p><\/p>\n<p><em>Quando aspettarsi?<\/em><\/p>\n<p><\/p>\n<p>Non lo so. Aspettate un mese, lo verificheremo di sicuro.<\/p>\n<p>Fonte: <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 4.9.10 - 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 \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&#039;\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&#039;\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\" \/>\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\/it\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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 \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&#039;\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&#039;\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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/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: nuove opportunit\u00e0 e ampliamento della comunit\u00e0. Georgiy Rylov | ProHoster","description":"Vi propongo di dare un'occhiata alla trascrizione della presentazione all'inizio del 2020 di Georgiy Rylov \"WAL-G: nuove opportunit\u00e0 e ampliamento della comunit\u00e0\" I manutentori open-source affrontano molte sfide mentre crescono. Come scrivere sempre pi\u00f9 funzionalit\u00e0 richieste, risolvere sempre pi\u00f9 problemi e gestire sempre pi\u00f9 pull request? Utilizzando WAL-G (strumento di backup per PostgreSQL) parler\u00f2 di come abbiamo affrontato questi problemi.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/wal-g-novye-vozmozhnosti-i-rasshirenie-soobshhestva-georgij-rylov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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 \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'\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'\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","og:url":"https:\/\/prohoster.info\/it\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/78887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=78887"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/78887\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/78888"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=78887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=78887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=78887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}