{"id":56387,"date":"2020-02-12T00:00:00","date_gmt":"2020-02-11T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev"},"modified":"2020-02-18T14:04:39","modified_gmt":"2020-02-18T11:04:39","slug":"service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","title":{"rendered":"Service Discovery in sistemi distribuiti con l'esempio di Consul. Alexander Sigachev","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Vi invitiamo a dare un'occhiata alla trascrizione della relazione di Aleksandr Sigachev su Service Discovery nei sistemi distribuiti, utilizzando Consul come esempio.<\/strong><\/p>\n<p><\/p>\n<p>Service Discovery \u00e8 stato creato per facilitare la connessione di una nuova applicazione al nostro ambiente esistente con il minimo sforzo. Utilizzando Service Discovery, possiamo separare al massimo un contenitore in forma di Docker o un servizio virtuale dall'ambiente in cui \u00e8 in esecuzione. <\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"IYWsZ8HFrCw\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/IYWsZ8HFrCw\/hqdefault.jpg\" alt=\"Riproduci video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Salve a tutti! Sono Aleksandr Sigachev e lavoro per l'azienda Inventos. Oggi vi presenter\u00f2 il concetto di Service Discovery, esaminando questo tema attraverso l'esempio di Consul.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8078ef6ee7af4e52e977deed5f1f42ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quali problemi risolve Service Discovery? \u00c8 stato progettato per facilitare l'aggiunta di nuove applicazioni al nostro ambiente esistente senza complicazioni. Con Service Discovery, possiamo separare al meglio un contenitore in forma di Docker o un servizio virtuale dall'ambiente in cui \u00e8 eseguito. <\/p>\n<p><\/p>\n<p>Come appare il tutto? In un classico esempio web si ha il frontend che gestisce la richiesta dell'utente, quindi svolge il compito di instradamento verso il backend. In questo caso, un load-balancer distribuisce il carico su due backend.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/10d23c4c51543161fc2034145776461b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Qui vediamo il lancio di una terza istanza dell'applicazione. Quando l'applicazione viene avviata, essa si registra in Service Discovery. Questo notifica il load-balancer, che aggiorna automaticamente la sua configurazione per integrare il nuovo backend. In questo modo, backend possono essere aggiunti o rimossi dal servizio.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/88a768894d79449ffb06fbbfa5cd32a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cosa possiamo fare comodamente tramite Service Discovery? Pu\u00f2 contenere le configurazioni di nginx, certificati e un elenco di backend attivi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8ebfb5f1c8cf44999904159af9695da9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>Inoltre, Service Discovery \u00e8 in grado di rilevare guasti e malfunzionamenti. Quali schemi possono essere adottati per individuare errori?<\/p>\n<p><\/p>\n<ul>\n<li>Questa applicazione, una volta sviluppata, informa Service Discovery che \u00e8 ancora operativa. <\/li>\n<li>D'altra parte, Service Discovery interroga l'applicazione per verificare la disponibilit\u00e0.<\/li>\n<li>Oppure si pu\u00f2 utilizzare uno script o un'applicazione esterna per controllare la disponibilit\u00e0 della nostra applicazione e informare Service Discovery riguardo alla situazione: se tutto funziona correttamente o se \u00e8 necessario escludere quell'istanza dal bilanciamento.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ogni schema potrebbe essere applicato a seconda del software utilizzato. Ad esempio, se stiamo avviando un nuovo progetto, possiamo facilmente implementare una configurazione in cui la nostra applicazione notifica Service Discovery. In alternativa, possiamo configurare Service Discovery per eseguire controlli.<\/p>\n<p><\/p>\n<p>Se invece l'applicazione ci \u00e8 stata ceduta o sviluppata da terzi, allora \u00e8 opportuno utilizzare il terzo schema, in cui scriviamo un gestore e tutto si integra automaticamente nel nostro flusso di lavoro.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/ce4c5b452d526058b552a65926b9de58.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questo \u00e8 un esempio. Il load-balancer in forma di nginx si riavvia. Si utilizza un'utilit\u00e0 aggiuntiva, fornita insieme a Consul, chiamata consul-template. Definiamo una regola, specificando che utilizziamo un modello (scritto in Golang). In caso di eventi o notifiche riguardo a cambiamenti, il modello si rigenera e Service Discovery riceve un comando di \"reload\". Un semplice esempio \u00e8 quando, a seguito di un evento, si riconfigura nginx e si riavvia.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/d829f882a52c97420750893f78bacc18.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Che cos'\u00e8 Consul?<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Prima di tutto, \u00e8 un Service Discovery. <\/p>\n<p>\n<\/li>\n<li>\n<p>Possiede un meccanismo di controllo della disponibilit\u00e0 \u2013 Health Checking.<\/p>\n<p>\n<\/li>\n<li>\n<p>Dispone anche di un KV Store.<\/p>\n<p>\n<\/li>\n<li>\n<p>Inoltre, \u00e8 progettato per uso Multi Datacenter.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>A cosa serve tutto questo? Nel KV Store possiamo conservare esempi di configurazioni. Il Health Checking ci consente di monitorare un servizio locale e notificare eventuali problemi. Il Multi Datacenter \u00e8 utilizzato per creare una mappa dei servizi. Ad esempio, Amazon ha diverse zone e instrada il traffico in modo ottimale, evitando richieste superflue tra i data center che comportano costi aggiuntivi, mentre il traffico locale ha una latenza inferiore. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/7594fcb0dfd05193d95214d9694c39e8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Esaminiamo alcuni dei termini usati in Consul. <\/p>\n<p><\/p>\n<ul>\n<li>Consul \u00e8 un servizio scritto in Go. Uno dei vantaggi del software Go \u00e8 che si tratta di un singolo file binario, che puoi scaricare e avviare da qualsiasi posizione senza dipendenze. <\/li>\n<li>Successivamente, tramite chiavi, possiamo avviare questo servizio in modalit\u00e0 client o server. <\/li>\n<li>L'attributo \"datacenter\" consente di etichettare a quale data center appartiene il server. <\/li>\n<li>Il consensus si basa sul protocollo raft. Se qualcuno \u00e8 interessato, pu\u00f2 leggerne di pi\u00f9 sul sito di Consul. Questo protocollo consente di determinare un leader e stabilire quali dati considerare validi e disponibili.<\/li>\n<li>Gossip \u2013 \u00e8 un protocollo che consente l'interazione tra nodi. Questa sistema \u00e8 decentralizzato. All'interno di un data center, tutti i nodi comunicano con i vicini, scambiandosi le informazioni sullo stato attuale. Si pu\u00f2 dire che si tratta di 'gossip' tra vicini. <\/li>\n<li>LAN Gossip \u2013 scambio locale di dati tra vicini all'interno di un singolo data center. <\/li>\n<li>WAN Gossip \u2013 viene utilizzato quando \u00e8 necessario sincronizzare le informazioni tra due data center. Le informazioni vengono trasferite tra nodi contrassegnati come server. <\/li>\n<li>RPC \u2013 consente di effettuare richieste tramite un client su un server. <\/li>\n<\/ul>\n<p><\/p>\n<p>Descrizione di RPC. Supponiamo che su una macchina virtuale o un server fisico sia in esecuzione Consul come client. Viene effettuata una richiesta locale. Successivamente, il client locale richiede informazioni al server e si sincronizza. A seconda delle impostazioni, le informazioni possono provenire dalla cache locale oppure possono essere sincronizzate con il leader o il master del server. <\/p>\n<p><\/p>\n<p>Questi due schemi hanno sia vantaggi che svantaggi. Se lavoriamo con la cache locale, sar\u00e0 veloce. Se lavoriamo con i dati memorizzati sul server, ci vorr\u00e0 pi\u00f9 tempo, ma otterremo informazioni pi\u00f9 aggiornate.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6ab034093708c0b1739af21015e50742.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Se lo rappresentiamo graficamente, avremo un'immagine del sito. Possiamo vedere che sono attivi tre master. Uno di essi \u00e8 contrassegnato come leader. In questo esempio, tre client si scambiano informazioni tra loro localmente tramite UDP\/TCP. Le informazioni tra i data center vengono trasferite tra server. Qui i client interagiscono localmente tra loro. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/24a8f749195447c54e4405ad0be5728e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quale API fornisce Consul? Per ottenere informazioni, Consul offre due tipi di API.<\/p>\n<p><\/p>\n<p>Questa \u00e8 l'API DNS. Per impostazione predefinita, Consul viene avviato sulla porta 8600. Possiamo configurare il proxy di richiesta e garantire l'accesso tramite risoluzione locale, utilizzando DNS locale. Possiamo effettuare richieste tramite dominio e ricevere come risposta l'informazione sull'indirizzo IP.<\/p>\n<p><\/p>\n<p>HTTP API \u2013 oppure possiamo richiedere informazioni su un servizio specifico localmente sulla porta 8500 e ricevere una risposta JSON che indica quale IP ha il server, quale host e quale porta \u00e8 registrata. Ulteriori informazioni possono essere fornite tramite un token.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6af7cc95a392c5d2fe278131245b8f5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cosa serve per avviare Consul?<\/p>\n<p><\/p>\n<p>Nel primo caso, avviamo in modalit\u00e0 sviluppatore specificando il flag per indicare che siamo in modalit\u00e0 sviluppatore. L'agent parte come server, e svolge autonomamente tutte le funzioni su un'unica macchina. \u00c8 conveniente, veloce e non richiede praticamente configurazioni aggiuntive per il primo avvio.<\/p>\n<p><\/p>\n<p>La seconda modalit\u00e0 \u00e8 l'esecuzione in produzione. Qui il lancio \u00e8 un po' pi\u00f9 complicato. Se non abbiamo alcuna versione di Consul, dobbiamo portare il primo nodo in bootstrap, cio\u00e8 la macchina che assumer\u00e0 le funzioni di leader. La avviamo, poi avviamo un secondo server passando le informazioni su dove si trova il master. Ne avviamo un terzo. Dopo aver avviato tre macchine, sulla prima macchina gi\u00e0 avviata in bootstrap, la riavviamo in modalit\u00e0 normale. I dati vengono sincronizzati e il cluster iniziale \u00e8 gi\u00e0 avviato. <\/p>\n<p><\/p>\n<p>Si consiglia di avviare da tre a sette istanze in modalit\u00e0 server. Questo \u00e8 dovuto al fatto che se il numero di server aumenta, aumenta anche il tempo necessario per la sincronizzazione delle informazioni tra di essi. Il numero di nodi deve essere dispari per garantire un quorum. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6d0a230bd31980d78e73041cbac3496f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Come vengono eseguiti i controlli di salute? Nella directory di configurazione di Consul scriviamo una regola di verifica in formato JSON. Il primo caso \u00e8 la disponibilit\u00e0, in questo caso del dominio google.com. Diciamo che dobbiamo eseguire questo controllo a intervalli di 30 secondi. In questo modo verifichiamo se il nostro nodo ha accesso alla rete esterna.<\/p>\n<p><\/p>\n<p>Il secondo caso \u00e8 il controllo di se stesso. Utilizziamo un semplice curl per contattare localhost sulla porta specificata con un intervallo di 10 secondi. <\/p>\n<p><\/p>\n<p>Questi controlli vengono sommati e vanno al Service Discovery. In base alla disponibilit\u00e0, questi nodi vengono esclusi o aggiunti all'elenco delle macchine disponibili e funzionanti correttamente. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/551d98ded7111f48afd0a6406b83cba0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Consul fornisce anche un'interfaccia UI, che pu\u00f2 essere avviata con un flag specifico e sar\u00e0 accessibile sulla macchina. Questo permette di visualizzare le informazioni e di apportare alcune modifiche. <\/p>\n<p><\/p>\n<p>In questo esempio \u00e8 aperta la scheda 'Servizio'. Viene mostrato che sono attivi tre servizi, uno dei quali \u00e8 Consul. Il numero di controlli eseguiti e sono presenti tre data center in cui si trovano le macchine.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Service Discovery in sistemi distribuiti con l&#039;esempio di Consul. Alexander Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/cd684146191a7b262df76d1b88f7df7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Questo \u00e8 un esempio della scheda 'Nodi'. Possiamo vedere che hanno nomi compositi legati ai data center. Qui viene mostrato anche quali servizi sono attivi, cio\u00e8 possiamo notare che i tag non sono stati definiti. In questi tag aggiuntivi si possono fornire ulteriori informazioni che lo sviluppatore pu\u00f2 utilizzare per specificare parametri aggiuntivi. <\/p>\n<p><\/p>\n<p>\u00c8 possibile anche trasmettere informazioni a Consul sullo stato dei dischi e sul carico medio.<\/p>\n<p><\/p>\n<p>Domande<\/p>\n<p><\/p>\n<p>Domanda: Abbiamo un container Docker, come possiamo utilizzarlo con Consul?<\/p>\n<p><\/p>\n<p>Risposta: Per un container Docker ci sono vari approcci. Uno dei pi\u00f9 comuni \u00e8 utilizzare un container Docker di terze parti per la registrazione. Quando viene avviato, riceve il socket di Docker. Tutti gli eventi di registrazione e deregistrazione del container vengono registrati in Consul.<\/p>\n<p><\/p>\n<p>Domanda: Cio\u00e8, Consul avvia autonomamente il container Docker?<\/p>\n<p><\/p>\n<p>Risposta: No. Siamo noi a avviare il container Docker. E nella configurazione specifichiamo \u2013 ascolta su questo socket. Funziona pi\u00f9 o meno come quando gestiamo un certificato, quando divulghiamo le informazioni su dove e cosa abbiamo. <\/p>\n<p><\/p>\n<p>Domanda: Quindi, all'interno del container Docker che stiamo cercando di connettere al Service Discovery deve esserci una logica in grado di fornire i dati a Consul?<\/p>\n<p><\/p>\n<p>Risposta: Non proprio. Quando si avvia, trasmettiamo variabili tramite l'ambiente. Ad esempio, il nome del servizio, la porta del servizio. Il registro ascolta queste informazioni e le inserisce in Consul.<\/p>\n<p><\/p>\n<p>Domanda: Ho anche una domanda sull'UI. Abbiamo distribuito l'UI, ad esempio, su un server di produzione. Che succede con la sicurezza? Dove vengono archiviati i dati? \u00c8 possibile in qualche modo accumulare i dati?<\/p>\n<p><\/p>\n<p>Risposta: Nell'UI ci sono esattamente i dati dal database e da Service Discovery. Le password le impostiamo noi stessi nelle impostazioni. <\/p>\n<p><\/p>\n<p>Domanda: \u00c8 possibile pubblicarlo su internet?<\/p>\n<p><\/p>\n<p>Risposta: Di default, Consul si avvia su localhost. Per pubblicarlo su internet, \u00e8 necessario impostare un proxy. Noi ci assumiamo la responsabilit\u00e0 delle regole di sicurezza.<\/p>\n<p><\/p>\n<p>Domanda: Fornisce dati storici di default? \u00c8 interessante vedere le statistiche sui Health Checks. Possiamo diagnosticare problemi se il server si guasta frequentemente.<\/p>\n<p><\/p>\n<p>Risposta: Non sono sicuro che ci siano dettagli sui controlli. <\/p>\n<p><\/p>\n<p>Domanda: Non \u00e8 tanto importante lo stato attuale, quanto la dinamica.<\/p>\n<p><\/p>\n<p>Risposta: Per l'analisi \u2013 s\u00ec.<\/p>\n<p><\/p>\n<p>Domanda: \u00c8 meglio non utilizzare Consul per il Service Discovery di Docker?<\/p>\n<p><\/p>\n<p>Risposta: Non lo consiglierei. L'obiettivo della presentazione \u00e8 introdurre il concetto. Storicamente ha fatto un percorso, mi pare, fino alla versione 1. Ora ci sono soluzioni pi\u00f9 complete, ad esempio Kubernetes, che ha tutto questo incorporato. Nel contesto di Kubernetes, il Service Discovery \u00e8 inferiore a Etcd. Ma non lo conosco cos\u00ec bene come Consul. Quindi ho deciso di illustrare il Service Discovery usando Consul.<\/p>\n<p><\/p>\n<p>Domanda: Lo schema con il server leader non rallenta l'avvio dell'applicazione in generale? E come fa Consul a determinare un nuovo leader se quello attuale \u00e8 inattivo?<\/p>\n<p><\/p>\n<p>Risposta: Hanno descritto un intero protocollo. Se sei interessato, puoi leggere.<\/p>\n<p><\/p>\n<p>Domanda: Consul funge da server completo e tutte le richieste passano attraverso di esso?<\/p>\n<p><\/p>\n<p>Risposta: Non funge da server completo, ma si occupa di una zona specifica. Essa di solito termina con service.consul. E poi procediamo secondo la logica. Non utilizziamo nomi di dominio in produzione, ma proprio la nostra infrastruttura interna, che di solito \u00e8 nascosta dietro il server di caching, se operiamo con DNS.<\/p>\n<p><\/p>\n<p>Domanda: Cio\u00e8, se vogliamo accedere a un database, dobbiamo comunque chiedere a Consul di trovare prima questo database, giusto?<\/p>\n<p><\/p>\n<p>Risposta: S\u00ec. Se operiamo con DNS, funziona come senza Consul quando utilizziamo nomi DNS. Di solito, le applicazioni moderne non interrogano il nome di dominio per ogni richiesta, perch\u00e9 abbiamo stabilito una connessione, tutto funziona e nel prossimo periodo non lo usiamo quasi. Se la connessione si interrompe, allora \u2013 s\u00ec, chiediamo di nuovo dove si trova il nostro database e andiamo a cercarlo.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_hashicorp\">Chat sui prodotti hashicorp<\/a><\/noindex> \u2014 Chat degli utenti Hashicorp: Consul, Nomad, Terraform<\/p>\n<p><\/p>\n<p>P.S. Per quanto riguarda i controlli di salute. In Consul, cos\u00ec come in Kubernetes, viene utilizzato lo stesso sistema di monitoraggio dello stato di vitalit\u00e0 del servizio basato sul codice di stato.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">200 OK per sano\n503 Servizio non disponibile per malato<\/code><\/pre>\n<p><\/p>\n<p>Fonti:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.consul.io\/docs\/agent\/checks.html\">https:\/\/www.consul.io\/docs\/agent\/checks.html<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-startup-probes\/\">https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-startup-probes\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/thoslin.github.io\/microservice-health-check-in-kubernetes\/\">https:\/\/thoslin.github.io\/microservice-health-check-in-kubernetes\/<\/a><\/noindex><\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/487706\/\">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 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u043d\u0430\u0448\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Service Discovery, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432 \u0432\u0438\u0434\u0435 \u0434\u043e\u043a\u0435\u0440\u0430, \u043b\u0438\u0431\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043e\u0442 \u0442\u043e\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u0437\u0430\u043f\u0443\u0449\u0435\u043d. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-56387","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.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 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\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\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\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\udd47Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0421\u0438\u0433\u0430\u0447\u0435\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 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev\" \/>\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-02-11T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:04:39+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\udd47Service Discovery nei sistemi distribuiti con Consul. Alessandro Sigachev | ProHoster","description":"Ti invitiamo a leggere la trascrizione della presentazione di Aleksandr Sigachev su Service Discovery nei sistemi distribuiti, utilizzando Consul come esempio. Service Discovery \u00e8 stato creato per funzionare con il minor numero possibile di risorse.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","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\udd47Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0421\u0438\u0433\u0430\u0447\u0435\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 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u0421\u0438\u0433\u0430\u0447\u0435\u0432\u0430 Service Discovery \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Consul. Service Discovery \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","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-02-11T21:00:00+00:00","article:modified_time":"2020-02-18T11:04:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"56387","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 19:25:40","updated":"2022-10-01 05:49:52","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/56387","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=56387"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/56387\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=56387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=56387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=56387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}