{"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\/fr\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","title":{"rendered":"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l'exemple de Consul. Alexandre Sigachev","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><strong>Je vous invite \u00e0 consulter la transcription de la pr\u00e9sentation d'Alexander Sigachev sur la d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s, en prenant Consul comme exemple.<\/strong><\/p>\n<p><\/p>\n<p>La d\u00e9couverte de services est con\u00e7ue pour connecter une nouvelle application dans notre environnement existant avec un minimum de co\u00fbts. En utilisant la d\u00e9couverte de services, nous pouvons s\u00e9parer au maximum un conteneur sous forme de Docker ou un service virtuel de l'environnement dans lequel il est lanc\u00e9. <\/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=\"Lire la vid\u00e9o\" 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>Bonjour \u00e0 tous ! Je suis Alexander Sigachev, je travaille chez Inventos. Aujourd'hui, je vais vous pr\u00e9senter le concept de d\u00e9couverte de services. Nous allons examiner la d\u00e9couverte de services en prenant Consul comme exemple.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8078ef6ee7af4e52e977deed5f1f42ab.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quels probl\u00e8mes la d\u00e9couverte de services r\u00e9sout-elle ? La d\u00e9couverte de services est con\u00e7ue pour connecter une nouvelle application dans notre environnement existant avec un minimum de co\u00fbts. En utilisant la d\u00e9couverte de services, nous pouvons s\u00e9parer au maximum un conteneur sous forme de Docker ou un service virtuel de l'environnement dans lequel il est lanc\u00e9. <\/p>\n<p><\/p>\n<p>\u00c0 quoi cela ressemble-t-il ?Prenons un exemple classique sur le web : un frontend qui re\u00e7oit une requ\u00eate utilisateur. Ensuite, il effectue la routage vers le backend. Dans cet exemple, un load-balancer \u00e9quilibre entre deux backends.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/10d23c4c51543161fc2034145776461b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ici, nous voyons que nous lancions un troisi\u00e8me exemplaire de l'application. Lorsque l'application est lanc\u00e9e, elle s'inscrit dans la d\u00e9couverte de services. La d\u00e9couverte de services informe le load-balancer. Le load-balancer modifie automatiquement sa configuration et le nouveau backend commence \u00e0 fonctionner. Ainsi, des backends peuvent \u00eatre ajout\u00e9s ou, au contraire, exclus du fonctionnement.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/88a768894d79449ffb06fbbfa5cd32a8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Que peut-on encore faire confortablement gr\u00e2ce \u00e0 la d\u00e9couverte de services ? Dans la d\u00e9couverte de services, il est possible de stocker des configurations nginx, des certificats, et une liste de serveurs backend actifs.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/8ebfb5f1c8cf44999904159af9695da9.jpeg\" style=\"display:block;margin: 0 auto;\" \/>La d\u00e9couverte de services permet \u00e9galement de d\u00e9tecter des pannes et d'identifier des d\u00e9faillances. Quelles pourraient \u00eatre les sch\u00e9mas de d\u00e9tection des pannes ?<\/p>\n<p><\/p>\n<ul>\n<li>Cette application que nous avons d\u00e9velopp\u00e9e informe elle-m\u00eame la d\u00e9couverte de services qu'elle est toujours op\u00e9rationnelle. <\/li>\n<li>De son c\u00f4t\u00e9, la d\u00e9couverte de services interroge l'application sur sa disponibilit\u00e9.<\/li>\n<li>Un script ou une application tiers peut aussi \u00eatre utilis\u00e9 pour v\u00e9rifier la disponibilit\u00e9 de notre application et informer la d\u00e9couverte de services que tout va bien et qu'on peut travailler ou, au contraire, que tout va mal et qu'il est n\u00e9cessaire d'exclure cet exemplaire de l'application de l'\u00e9quilibrage.<\/li>\n<\/ul>\n<p><\/p>\n<p>Chacune des configurations peut \u00eatre appliqu\u00e9e en fonction du logiciel que nous utilisons. Par exemple, si nous venons de commencer \u00e0 d\u00e9velopper un nouveau projet, nous pouvons facilement mettre en place un syst\u00e8me o\u00f9 notre application informe le Service Discovery. Alternativement, nous pouvons connecter le Service Discovery pour qu'il effectue une v\u00e9rification.<\/p>\n<p><\/p>\n<p>En revanche, si l'application nous a \u00e9t\u00e9 laiss\u00e9e en h\u00e9ritage ou a \u00e9t\u00e9 d\u00e9velopp\u00e9e par un tiers, alors la troisi\u00e8me option s'applique, o\u00f9 nous \u00e9crivons un gestionnaire, et tout cela se met en place automatiquement dans notre travail.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/ce4c5b452d526058b552a65926b9de58.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>C'est un des exemples. Le load-balancer bas\u00e9 sur nginx red\u00e9marre. C'est un utilitaire suppl\u00e9mentaire qui est fourni avec Consul. C'est le consul-template. Nous d\u00e9crivons une r\u00e8gle. Nous sp\u00e9cifions que nous utilisons un mod\u00e8le (le moteur de template Golang). Lors des \u00e9v\u00e9nements, lorsque des notifications d'un changement se produisent, il se r\u00e9g\u00e9n\u00e8re et un ordre \u00ab reload \u00bb est envoy\u00e9 au Service Discovery. Un exemple simple, o\u00f9 nginx est reconfigur\u00e9 et red\u00e9marr\u00e9 lors d'un \u00e9v\u00e9nement.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/d829f882a52c97420750893f78bacc18.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Qu'est-ce que Consul ?<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>Avant tout, c'est un Service Discovery. <\/p>\n<p>\n<\/li>\n<li>\n<p>Il dispose d'un m\u00e9canisme de v\u00e9rification de disponibilit\u00e9 \u2013 le Health Checking.<\/p>\n<p>\n<\/li>\n<li>\n<p>Il a \u00e9galement un KV Store.<\/p>\n<p>\n<\/li>\n<li>\n<p>Et \u00e0 sa base, il est con\u00e7u pour utiliser plusieurs centres de donn\u00e9es.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>\u00c0 quoi tout cela peut-il servir ? Dans le KV Store, nous pouvons stocker des exemples de configurations. Le Health Checking nous permet de v\u00e9rifier un service local et d'envoyer des notifications. Le Multi Datacenter est utilis\u00e9 pour tracer une carte des services. Par exemple, Amazon poss\u00e8de plusieurs zones et dirige le trafic de mani\u00e8re optimale, afin d'\u00e9viter des requ\u00eates superflues entre les centres de donn\u00e9es, qui sont factur\u00e9es s\u00e9par\u00e9ment du trafic local et, par cons\u00e9quent, pr\u00e9sentent une latence moindre. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/7594fcb0dfd05193d95214d9694c39e8.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Voyons un peu les termes utilis\u00e9s dans Consul. <\/p>\n<p><\/p>\n<ul>\n<li>Consul est un service \u00e9crit en Go. Un des avantages des programmes en Go est qu'il s'agit d'un seul fichier binaire que vous pouvez simplement t\u00e9l\u00e9charger. Il suffit de le lancer depuis n'importe o\u00f9 et vous n'avez aucune d\u00e9pendance. <\/li>\n<li>Ensuite, \u00e0 l'aide des cl\u00e9s, nous pouvons lancer ce service soit en mode client, soit en mode serveur. <\/li>\n<li>De plus, l'attribut \u00ab datacenter \u00bb permet d'indiquer \u00e0 quel centre de donn\u00e9es appartient ce serveur. <\/li>\n<li>Le Consensus est bas\u00e9 sur le protocole Raft. Si cela int\u00e9resse quelqu'un, on peut en lire plus en d\u00e9tail sur le site de Consul. C'est un protocole qui permet de d\u00e9terminer un leader et de d\u00e9finir quelles donn\u00e9es consid\u00e9rer comme valides et accessibles.<\/li>\n<li>Gossip est un protocole qui assure l'interaction entre les n\u0153uds. De plus, ce syst\u00e8me est d\u00e9centralis\u00e9. Au sein d'un m\u00eame centre de donn\u00e9es, tous les n\u0153uds communiquent avec leurs voisins. Par cons\u00e9quent, les informations sur l'\u00e9tat actuel sont \u00e9chang\u00e9es. On peut dire que ce sont des rumeurs entre voisins. <\/li>\n<li>LAN Gossip \u2013 \u00e9change local de donn\u00e9es entre voisins au sein d'un m\u00eame centre de donn\u00e9es. <\/li>\n<li>WAN Gossip \u2013 utilis\u00e9 lorsque nous devons synchroniser des informations entre deux centres de donn\u00e9es. Les informations circulent entre les n\u0153uds marqu\u00e9s comme serveurs. <\/li>\n<li>RPC \u2013 permet d'effectuer des requ\u00eates via un client sur le serveur. <\/li>\n<\/ul>\n<p><\/p>\n<p>Description de RPC. Supposons qu'un client Consul est en cours d'ex\u00e9cution sur une machine virtuelle ou un serveur physique. Nous l'interrogeons localement. Ensuite, le client local demande des informations au serveur et se synchronise. Selon les configurations, les informations peuvent provenir du cache local ou \u00eatre synchronis\u00e9es avec le leader, le ma\u00eetre du serveur. <\/p>\n<p><\/p>\n<p>Ces deux sch\u00e9mas ont des avantages et des inconv\u00e9nients. Si nous travaillons avec un cache local, cela est rapide. Si nous traitons des donn\u00e9es stock\u00e9es sur le serveur, cela prend plus de temps, mais nous obtenons des informations plus r\u00e9centes.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6ab034093708c0b1739af21015e50742.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si l'on visualise cela graphiquement, voici une image du site. Nous voyons que trois ma\u00eetres sont en cours d'ex\u00e9cution. L'un est marqu\u00e9 comme leader. Dans cet exemple, trois clients \u00e9changent localement des informations via UDP\/TCP. Les informations entre les centres de donn\u00e9es sont transf\u00e9r\u00e9es entre les serveurs. Ici, les clients interagissent localement. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/24a8f749195447c54e4405ad0be5728e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Quelle API fournit Consul ? Pour obtenir des informations, Consul propose deux types d'API.<\/p>\n<p><\/p>\n<p>C'est l'API DNS. Par d\u00e9faut, Consul s'ex\u00e9cute sur le port 8600. Nous pouvons configurer le proxy pour acc\u00e9der via le r\u00e9solveur local, gr\u00e2ce au DNS local. Nous pouvons faire une requ\u00eate par domaine et obtenir en r\u00e9ponse des informations sur l'adresse IP.<\/p>\n<p><\/p>\n<p>API HTTP \u2013 soit nous pouvons localement faire une requ\u00eate sur le port 8500 pour obtenir des informations sur un service particulier et obtenir une r\u00e9ponse JSON indiquant quelle IP a le serveur, quel h\u00f4te, quel port est enregistr\u00e9. Des informations suppl\u00e9mentaires peuvent \u00eatre transmises via un token.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6af7cc95a392c5d2fe278131245b8f5d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Que faut-il pour d\u00e9marrer Consul ?<\/p>\n<p><\/p>\n<p>Dans la premi\u00e8re option, nous sp\u00e9cifions un indicateur en mode d\u00e9veloppeur, indiquant qu'il s'agit d'un mode d\u00e9veloppeur. L'Agent d\u00e9marre en tant que serveur et ex\u00e9cute toute la fonction de mani\u00e8re autonome sur une seule machine. C'est pratique, rapide et il n'est pratiquement pas n\u00e9cessaire de faire des r\u00e9glages suppl\u00e9mentaires pour le premier d\u00e9marrage.<\/p>\n<p><\/p>\n<p>Le deuxi\u00e8me mode est le lancement en production. Ici, le d\u00e9marrage est un peu plus compliqu\u00e9. Si nous n'avons pas de version du consul, nous devons d\u00e9marrer la premi\u00e8re machine en mode bootstrap, c'est-\u00e0-dire la machine qui assumera les responsabilit\u00e9s de leader. Nous la lan\u00e7ons, puis nous mettons en place un deuxi\u00e8me serveur en lui fournissant les informations sur l'emplacement du ma\u00eetre. Puis nous d\u00e9marrons le troisi\u00e8me. Une fois que nous avons trois machines op\u00e9rationnelles, nous red\u00e9marrons la premi\u00e8re machine \u00e0 partir de Bootstrap en mode normal. Les donn\u00e9es sont synchronis\u00e9es, et le cluster initial est d\u00e9j\u00e0 \u00e9tabli. <\/p>\n<p><\/p>\n<p>Il est recommand\u00e9 de faire fonctionner de trois \u00e0 sept instances en mode serveur. Cela est d\u00fb au fait que si le nombre de serveurs augmente, le temps n\u00e9cessaire \u00e0 la synchronisation des informations entre eux s'allonge. Le nombre de n\u0153uds doit \u00eatre impair pour garantir le quorum. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/6d0a230bd31980d78e73041cbac3496f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Comment les v\u00e9rifications de sant\u00e9 sont-elles assur\u00e9es ? Dans le r\u00e9pertoire de configuration de Consul, nous \u00e9crivons une r\u00e8gle de v\u00e9rification au format Json. La premi\u00e8re option consiste \u00e0 v\u00e9rifier la disponibilit\u00e9, dans cet exemple, du domaine google.com. Nous indiquons qu'une v\u00e9rification doit \u00eatre effectu\u00e9e toutes les 30 secondes. Ainsi, nous v\u00e9rifions que notre n\u0153ud a acc\u00e8s \u00e0 l'ext\u00e9rieur.<\/p>\n<p><\/p>\n<p>La deuxi\u00e8me option est de se v\u00e9rifier soi-m\u00eame. Nous utilisons simplement curl pour interroger localhost sur le port sp\u00e9cifi\u00e9 \u00e0 un intervalle de 10 secondes. <\/p>\n<p><\/p>\n<p>Ces v\u00e9rifications sont cumul\u00e9es et envoy\u00e9es au Service Discovery. En fonction de la disponibilit\u00e9, ces n\u0153uds sont soit exclus, soit ajout\u00e9s \u00e0 la liste des machines disponibles et fonctionnant correctement. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/551d98ded7111f48afd0a6406b83cba0.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Consul fournit \u00e9galement une interface utilisateur qui est lanc\u00e9e avec un drapeau sp\u00e9cifique et sera accessible sur la machine. Cela permet de visualiser les informations et d'apporter certaines modifications. <\/p>\n<p><\/p>\n<p>Dans cet exemple, l'onglet \u00ab Service \u00bb est ouvert. Il montre que trois services sont en cours d'ex\u00e9cution, dont un est Consul. Le nombre de v\u00e9rifications effectu\u00e9es est affich\u00e9. Et il y a trois centres de donn\u00e9es dans lesquels se situent les machines.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"La d\u00e9couverte de services dans les syst\u00e8mes distribu\u00e9s \u00e0 travers l&#039;exemple de Consul. Alexandre Sigachev\" src=\"\/wp-content\/uploads\/2020\/02\/cd684146191a7b262df76d1b88f7df7c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ceci est un exemple d'onglet \u00ab Nodes \u00bb. Nous constatons qu'ils ont des noms compos\u00e9s impliquant des centres de donn\u00e9es. Il montre \u00e9galement quels services sont en cours d'ex\u00e9cution, c'est-\u00e0-dire que nous voyons que les balises ne sont pas d\u00e9finies. Dans ces balises suppl\u00e9mentaires, il est possible d'indiquer certaines informations que le d\u00e9veloppeur peut utiliser pour sp\u00e9cifier des param\u00e8tres suppl\u00e9mentaires. <\/p>\n<p><\/p>\n<p>Il est \u00e9galement possible de transmettre des informations \u00e0 Consul sur l'\u00e9tat des disques, sur la charge moyenne.<\/p>\n<p><\/p>\n<p>Questions<\/p>\n<p><\/p>\n<p>Question : Nous avons un conteneur Docker, comment l'utiliser avec Consul ?<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Pour le conteneur Docker, il existe plusieurs approches. L'une des plus courantes consiste \u00e0 utiliser un conteneur Docker tiers charg\u00e9 de l'enregistrement. Lors du d\u00e9marrage, il re\u00e7oit le socket Docker. Tous les \u00e9v\u00e9nements d'enregistrement et de d\u00e9publication du conteneur sont consign\u00e9s dans Consul.<\/p>\n<p><\/p>\n<p>Question : C'est-\u00e0-dire que Consul d\u00e9marre lui-m\u00eame le conteneur Docker ?<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Non. Nous d\u00e9marrons le conteneur Docker. Et lors de la configuration, nous indiquons \u2013 \u00e9coute ce socket. C'est \u00e0 peu pr\u00e8s comme avec un certificat, quand nous transmettons des informations sur o\u00f9 se trouvent nos fichiers. <\/p>\n<p><\/p>\n<p>Question : Cela signifie-t-il qu'\u00e0 l'int\u00e9rieur du conteneur Docker que nous essayons de connecter au Service Discovery, il doit y avoir une certaine logique capable de fournir des donn\u00e9es \u00e0 Consul ?<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Pas tout \u00e0 fait. Lorsqu'il d\u00e9marre, nous transmettons des variables via des variables d'environnement. Par exemple, le nom du service, le port du service. Le registre \u00e9coute ces informations et les ins\u00e8re dans Consul.<\/p>\n<p><\/p>\n<p>Question : J'ai encore une question au sujet de l'interface utilisateur. Nous avons d\u00e9ploy\u00e9 l'UI, disons, sur le serveur de production. Qu'en est-il de la s\u00e9curit\u00e9 ? O\u00f9 sont stock\u00e9es les donn\u00e9es ? Est-il possible de regrouper les donn\u00e9es ?<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Dans l'UI, les donn\u00e9es proviennent de la base et du Service Discovery. Nous d\u00e9finissons nous-m\u00eames les mots de passe dans les param\u00e8tres. <\/p>\n<p><\/p>\n<p>Question : Peut-on publier cela sur Internet ?<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Par d\u00e9faut, Consul d\u00e9marre sur localhost. Pour le publier sur Internet, il faudra mettre en place un proxy. Nous sommes responsables des r\u00e8gles de s\u00e9curit\u00e9.<\/p>\n<p><\/p>\n<p>Question : Fournit-il des donn\u00e9es historiques par d\u00e9faut ? Je suis int\u00e9ress\u00e9 par les statistiques des v\u00e9rifications de sant\u00e9. On peut diagnostiquer des probl\u00e8mes si le serveur tombe souvent.<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Je ne suis pas s\u00fbr qu'il y ait des d\u00e9tails sur les v\u00e9rifications. <\/p>\n<p><\/p>\n<p>Question : Ce n'est pas tant l'\u00e9tat actuel qui est important, mais la dynamique.<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Pour l'analyse \u2013 oui.<\/p>\n<p><\/p>\n<p>Question : Il vaut mieux ne pas utiliser Consul pour le Service Discovery de Docker ?<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Je ne le recommanderais pas. L'objectif de la pr\u00e9sentation est de vous familiariser avec ce concept. Historiquement, il a parcouru un chemin, me semble-t-il, jusqu'\u00e0 la premi\u00e8re version. Il existe maintenant des solutions plus compl\u00e8tes, comme Kubernetes, qui int\u00e8gre tout cela en interne. Dans Kubernetes, la d\u00e9couverte de services c\u00e8de la place \u00e0 Etcd. Mais je ne le connais pas aussi bien que Consul. C'est pourquoi j'ai d\u00e9cid\u00e9 de faire un exemple de d\u00e9couverte de services avec Consul.<\/p>\n<p><\/p>\n<p>Question : Le sch\u00e9ma avec le serveur leader ralentit-il le d\u00e9marrage de l'application dans son ensemble ? Et comment Consul d\u00e9termine-t-il un nouveau leader, si celui-ci est hors ligne ?<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Ils ont d\u00e9crit un protocole complet. Si cela vous int\u00e9resse, vous pouvez le lire.<\/p>\n<p><\/p>\n<p>Question : Consul fonctionne-t-il comme un serveur complet et toutes les requ\u00eates passent-elles par lui ?<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Il n'agit pas comme un serveur complet, mais prend une certaine zone. Celle-ci se termine g\u00e9n\u00e9ralement par service.consul. Et ensuite, nous suivons la logique. Nous n'utilisons pas de noms de domaine en production, mais plut\u00f4t une infrastructure interne, qui est g\u00e9n\u00e9ralement cach\u00e9e derri\u00e8re le cache du serveur, si nous travaillons via DNS.<\/p>\n<p><\/p>\n<p>Question : Donc, si nous voulons acc\u00e9der \u00e0 la base de donn\u00e9es, nous devrons n\u00e9cessairement passer par Consul pour d'abord trouver cette base, n'est-ce pas ?<\/p>\n<p><\/p>\n<p>R\u00e9ponse : Oui. Si nous travaillons via DNS, cela fonctionne comme sans Consul, lorsque nous utilisons des noms DNS. En g\u00e9n\u00e9ral, les applications modernes ne font pas de requ\u00eate pour chaque nom de domaine, car nous avons \u00e9tabli la connexion, tout fonctionne et dans un avenir proche, nous ne l'utilisons pratiquement plus. Si la connexion est rompue, alors oui, nous demandons \u00e0 nouveau o\u00f9 se trouve la base et nous y allons.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ru_hashicorp\">Chat sur les produits Hashicorp<\/a><\/noindex> \u2014 Chat des utilisateurs de Hashicorp : Consul, Nomad, Terraform<\/p>\n<p><\/p>\n<p>P.S. Concernant les v\u00e9rifications d'\u00e9tat. Consul utilise, tout comme Kubernetes, un syst\u00e8me de v\u00e9rification de l'\u00e9tat de sant\u00e9 des services bas\u00e9 sur le code de statut.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">200 OK pour sain\n503 Service indisponible pour non sain<\/code><\/pre>\n<p><\/p>\n<p>Sources :<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>Source : <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.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 \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\/fr\/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.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\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\/fr\/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\udd47 D\u00e9couverte de services dans des syst\u00e8mes distribu\u00e9s \u00e0 l'exemple de Consul. Alexandre Sigachev | ProHoster","description":"Je vous propose de consulter l'analyse de la pr\u00e9sentation d'Alexandre Sigachev sur la d\u00e9couverte de services dans des syst\u00e8mes distribu\u00e9s \u00e0 l'exemple de Consul. La d\u00e9couverte de services est con\u00e7ue pour \u00eatre minimaliste.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/service-discovery-v-raspredelennyh-sistemah-na-primere-consul-aleksandr-sigachev","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\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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/56387","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=56387"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/56387\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=56387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=56387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=56387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}