Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΎΠΉ Π΄ΠΎΠΊΠ»Π°Π΄Π° АлСксандра Π‘ΠΈΠ³Π°Ρ‡Π΅Π²Π° Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul.

Service Discovery создан для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ нашС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Service Discovery, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ максимально Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΊΠ΅Ρ€Π°, Π»ΠΈΠ±ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвис ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ окруТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π·Π°ΠΏΡƒΡ‰Π΅Π½.

Π― всСх ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ! Π― Π‘ΠΈΠ³Π°Ρ‡Π΅Π² АлСксандр, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Inventos. И сСгодня я вас познакомлю с Ρ‚Π°ΠΊΠΈΠΌ понятиСм ΠΊΠ°ΠΊ Service Discovery. Рассмотрим ΠΌΡ‹ Service Discovery Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

КакиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Service Discovery? Service Discovery создан для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ нашС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Service Discovery, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ максимально Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΊΠ΅Ρ€Π°, Π»ΠΈΠ±ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвис ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ окруТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π·Π°ΠΏΡƒΡ‰Π΅Π½.

Как это выглядит? На классичСском ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² Π²Π΅Π±Π΅ – это Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ запрос ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π”Π°Π»ΡŒΡˆΠ΅ выполняСт ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΅Π³ΠΎ Π½Π° backend. На Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ – это load-balancer балансируСт Π½Π° Π΄Π²Π° backend.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ запускаСм Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ экзСмпляр прилоТСния. БоотвСтствСнно, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся, ΠΎΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ Π² Service Discovery. Service Discovery увСдомляСт load-balancer. Load-balancer мСняСт свой ΠΊΠΎΠ½Ρ„ΠΈΠ³ автоматичСски ΠΈ ΡƒΠΆΠ΅ Π½ΠΎΠ²Ρ‹ΠΉ backend ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ backend, Π»ΠΈΠ±ΠΎ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΈΠ· Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Service Discovery? Π’ Service Discovery ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ nginx, сСртификаты ΠΈ список Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… backend-сСрвСров.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²Π’Π°ΠΊΠΆΠ΅ Service Discovery позволяСт ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ сбой, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Π·Ρ‹. КакиС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ схСмы ΠΏΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ²?

  • Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, само увСдомляСт Service Discovery, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π΅Ρ‰Π΅ Π΄ΠΎ сих ΠΏΠΎΡ€ работоспособно.
  • Service Discovery со своСй стороны ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ„Π°ΠΊΡ‚ доступности.
  • Или ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сторонний скрипт ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ провСряСт нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΈ увСдомляСт Service Discovery, Ρ‡Ρ‚ΠΎ всС Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ρ‡Ρ‚ΠΎ всС ΠΏΠ»ΠΎΡ…ΠΎ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ этот экзСмпляр прилоТСния ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· балансировки.

КаТдая ΠΈΠ· схСм ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ПО ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ. НапримСр, ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‚ΠΎ ΠΌΡ‹ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ схСму, ΠΊΠΎΠ³Π΄Π° нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ увСдомляСт Service Discovery. Π›ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Service Discovery ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ.

Если ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π°ΠΌ Π² наслСдство ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΊΠ΅ΠΌ-Ρ‚ΠΎ сторонним, Ρ‚ΠΎ здСсь ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ пишСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΈ всС это встаСт Π² Π½Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ автоматичСски.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Load-balancer Π² Π²ΠΈΠ΄Π΅ nginx пСрСзагруТаСтся. Π­Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, которая прСдоставляСтся вмСстС с Consul. Π­Ρ‚ΠΎ consul-template. ΠœΡ‹ описываСм ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ. Π“ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ шаблон (Π¨Π°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€ Golang). ΠŸΡ€ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ событий, ΠΏΡ€ΠΈ увСдомлСниях, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ измСнСния, ΠΎΠ½ пСрСгСнСрируСтся ΠΈ Service Discovery присылаСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«reloadΒ». ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ пСрСконфигурируСтся nginx ΠΈ пСрСзапускаСтся.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Consul?

  • ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго – это Service Discovery.

  • Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ доступности – Health Checking.

  • Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ KV Store.

  • И Π² Π΅Π³ΠΎ основу Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Multi Datacenter.

Для Ρ‡Π΅Π³ΠΎ всС это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? Π’ KV Store ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ². Health Checking ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ локального сСрвиса ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ‚ΡŒ. Multi Datacenter ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ сСрвисов. НапримСр, Amazon ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Π·ΠΎΠ½ ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ Π»ΠΈΡˆΠ½ΠΈΡ… запросов ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ локального Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΈ, соотвСтствСнно, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

НСмноТко разбСрСмся с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Consul ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

  • Consul – сСрвис, написанный Π½Π° Go. Одним ΠΈΠ· прСимущСств ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Go – это 1 Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ‹ просто скачал. Запустил ΠΈΠ· любого мСста ΠΈ Ρƒ тСбя Π½ΠΈΠΊΠ°ΠΊΠΈΡ… зависимостСй Π½Π΅Ρ‚.
  • Π”Π°Π»ΡŒΡˆΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этот сСрвис Π»ΠΈΠ±ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π»ΠΈΠ±ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ сСрвСра.
  • Π’Π°ΠΊΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Β«datacenterΒ» позволяСт ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Ρƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π΄Π°Π½Π½Ρ‹ΠΉ сСрвСр.
  • Consensus – базируСтся Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ raft. Если ΠΊΠΎΠΌΡƒ интСрСсно, Ρ‚ΠΎ ΠΎΠ± этом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π½Π° сайтС Consul. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π»ΠΈΠ΄Π΅Ρ€Π° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅Π½Π½Ρ‹Π΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌΠΈ ΠΈ доступными.
  • Gossip – это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ΄Π°ΠΌΠΈ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ эта систСма являСтся Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π° всС Π½ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ с сосСдями. И, соотвСтствСнно, пСрСдаСтся Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ информация ΠΎΠ± Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это сплСтни ΠΌΠ΅ΠΆΠ΄Ρƒ сосСдями.
  • LAN Gossip – Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ сосСдями Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°.
  • WAN Gossip – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌΠΈ. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΈΠ΄Π΅Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ сСрвСр.
  • RPC – позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запросы Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° сСрвСрС.

ОписаниС RPC. Допустим, Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС ΠΈΠ»ΠΈ физичСском сСрвСрС Π·Π°ΠΏΡƒΡ‰Π΅Π½ Consul Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. К Π½Π΅ΠΌΡƒ локально обращаСмся. А дальшС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρƒ сСрвСра ΠΈ синхронизируСтся. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ Π² зависимости ΠΎΡ‚ настроСк ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈΠ· локального кэша, Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ синхронизирована с Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ, с мастСром сСрвСра.

Π£ этих Π΄Π²ΡƒΡ… схСм Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ»ΡŽΡΡ‹, Ρ‚Π°ΠΊ ΠΈ минусы. Если ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ кэшСм, Ρ‚ΠΎ это быстро. Если ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π½Π° сСрвСрС, Ρ‚ΠΎ это дольшС, Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Если это ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ графичСски, Ρ‚ΠΎ Π²ΠΎΡ‚ такая ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° сайта. ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Ρ‚Ρ€ΠΈ мастСра. Один Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ Π»ΠΈΠ΄Π΅Ρ€. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Ρ€ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ локально ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ UDP/TCP. А информация ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°ΠΌΠΈ пСрСдаСтся ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСрами. Π—Π΄Π΅ΡΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой локально.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Какой API прСдоставляСт Consul? Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²ΠΈΠ΄Π° API Ρƒ Consul.

Π­Ρ‚ΠΎ DNS API. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Consul запускаСтся Π½Π° 8600 ΠΏΠΎΡ€Ρ‚Ρƒ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ проксированиС запроса ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ доступ Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΠΎΠ»Π²ΠΈΠ½Π³, Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ DNS. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎ Π΄ΠΎΠΌΠ΅Π½Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π² ΠΎΡ‚Π²Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± IP-адрСсС.

HTTP API – Π»ΠΈΠ±ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ локально Π½Π° 8500 ΠΏΠΎΡ€Ρ‚Ρƒ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ сСрвисС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ JSON ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ IP ΠΈΠΌΠ΅Π΅Ρ‚ сСрвСр, ΠΊΠ°ΠΊΠΎΠΉ host, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡ€Ρ‚ зарСгистрирован. И Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° Ρ‡Π΅Ρ€Π΅Π· token.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Consul?

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΌΡ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„Π»Π°Π³, Ρ‡Ρ‚ΠΎ это Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Agent стартуСт ΠΊΠ°ΠΊ сСрвСр. И всю Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ выполняСт ΡƒΠΆΠ΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ машинС. Π£Π΄ΠΎΠ±Π½ΠΎ, быстро ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… практичСски Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… настроСк для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ старта Π½Π΅ трСбуСтся.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ – это запуск Π² production. Π—Π΄Π΅ΡΡŒ запуск Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ услоТняСтся. Если Ρƒ нас Π½Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ вСрсии консула, Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ привСсти Π² bootstrap ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, Ρ‚. Π΅. эта машина, которая Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ Π½Π° сСбя обязанности Π»ΠΈΠ΄Π΅Ρ€Π°. ΠœΡ‹ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ Π΅Π΅, Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ экзСмпляр сСрвСра, пСрСдавая Π΅ΠΌΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π³Π΄Π΅ Ρƒ нас находится мастСр. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρƒ нас поднято Ρ‚Ρ€ΠΈ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΌΡ‹ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ машинС ΠΈΠ· Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ bootstrap, пСрСзапускаСм Π΅Π΅ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π”Π°Π½Π½Ρ‹Π΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ кластСр ΡƒΠΆΠ΅ поднят.

РСкомСндуСтся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ… Π΄ΠΎ сСми экзСмпляров Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ сСрвСра. Π­Ρ‚ΠΎ обуславливаСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ссли количСство сСрвСров растСт, Ρ‚ΠΎ увСличиваСтся врСмя Π½Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π½ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΊΠ²ΠΎΡ€ΡƒΠΌ.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Как ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Health Checks? Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Consul ΠΌΡ‹ Π² Π²ΠΈΠ΄Π΅ Json пишСм ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – это Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄ΠΎΠΌΠ΅Π½Π° google.com. И Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π² 30 сСкунд Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ провСряСм, Ρ‡Ρ‚ΠΎ наша Π½ΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ доступ Π²ΠΎ внСшнюю ΡΠ΅Ρ‚ΡŒ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сСбя. ΠœΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ curl Π΄Π΅Ρ€Π³Π°Π΅ΠΌ localhost ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ с ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ Π² 10 сСкунд.

Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡΡƒΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² Service Discovery. На основании доступности эти Π½ΠΎΠ΄Ρ‹ Π»ΠΈΠ±ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² спискС доступных ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… машинок.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Π’Π°ΠΊΠΆΠ΅ Consul прСдоставляСт UI-интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π»Π°Π³ΠΎΠΌ запускаСтся ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ доступСн Π½Π° машинкС. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ° «БСрвис». Показано, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Ρ‚Ρ€ΠΈ сСрвиса, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Consul. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ. И ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся машинки.

Service Discovery Π² распрСдСлСнных систСмах Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul. АлСксандр Π‘ΠΈΠ³Π°Ρ‡Π΅Π²

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Β«NodesΒ». Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… составныС ΠΈΠΌΠ΅Π½Π° с участиСм Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ². Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ сСрвисы Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹, Ρ‚. Π΅. ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π³ΠΈ Π½Π΅ Π·Π°Π΄Π°Π½Ρ‹. Π’ этих Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π³Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для указания Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Consul ΠΎ состоянии дисков, ΠΎ срСднСй Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.

Вопросы

Вопрос: Π£ нас Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΊΠ΅Ρ€-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Consul ?

ΠžΡ‚Π²Π΅Ρ‚: Для Π΄ΠΎΠΊΠ΅Ρ€-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Один ΠΈΠ· самых распространСнных – это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сторонний Π΄ΠΎΠΊΠ΅Ρ€-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ. ΠŸΡ€ΠΈ запускС Π΅ΠΌΡƒ прокидываСтся сокСт Π΄ΠΎΠΊΠ΅Ρ€Π°. ВсС события ΠΏΠΎ рСгистрации ΠΈ Π΄Π΅ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° заносятся Π² Consul.

Вопрос: Π’. Π΅. Consul сам запускаСт Π΄ΠΎΠΊΠ΅Ρ€-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€?

ΠžΡ‚Π²Π΅Ρ‚: НСт. ΠœΡ‹ запускаСм Π΄ΠΎΠΊΠ΅Ρ€-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. И ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ – ΡΠ»ΡƒΡˆΠ°ΠΉ Ρ‚Π°ΠΊΠΎΠΉ-Ρ‚ΠΎ сокСт. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π° с сСртификатом, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΡ€ΠΎΠΊΠΈΠ΄Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π³Π΄Π΅ ΠΈ Ρ‡Ρ‚ΠΎ Ρƒ нас Π»Π΅ΠΆΠΈΡ‚.

Вопрос: ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΎΠΊΠ΅Ρ€-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ пытаСмся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ Service Discovery Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ какая-Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ°, которая ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Consul?

ΠžΡ‚Π²Π΅Ρ‚: НС совсСм. Когда ΠΎΠ½ стартуСт, Ρ‚ΠΎ ΠΌΡ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Допустим, сСрвис name, сСрвис ΠΏΠΎΡ€Ρ‚. Π’ рСгистрС ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ заносит Π² Consul.

Вопрос: Π£ мСня Π΅Ρ‰Π΅ ΠΏΠΎ UI вопрос. ΠœΡ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ UI, допустим, Π½Π° production-сСрвСрС. Π§Ρ‚ΠΎ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ? Π“Π΄Π΅ хранятся Π΄Π°Π½Π½Ρ‹Π΅? МоТно Π»ΠΈ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅?

ΠžΡ‚Π²Π΅Ρ‚: Π’ UI ΠΊΠ°ΠΊ Ρ€Π°Π· Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π±Π°Π·Ρ‹ ΠΈ ΠΈΠ· Service Discovery. ΠŸΠ°Ρ€ΠΎΠ»ΠΈ ΠΌΡ‹ ставим Π² настройках ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Вопрос: Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚?

ΠžΡ‚Π²Π΅Ρ‚: По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Consul стартуСт Π½Π° localhost. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² это ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ proxy. Π—Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° бСзопасности ΠΌΡ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅ΠΌ сами.

Вопрос: Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚? Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ статистику ΠΏΠΎ Health Checks. МоТно ΠΆΠ΅ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ссли сСрвСр часто Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя.

ΠžΡ‚Π²Π΅Ρ‚: Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ.

Вопрос: НС ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС, сколько Π²Π°ΠΆΠ½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°.

ΠžΡ‚Π²Π΅Ρ‚: Для Π°Π½Π°Π»ΠΈΠ·Π° – Π΄Π°.

Вопрос: Service Discovery для Π΄ΠΎΠΊΠ΅Ρ€Π° Consul Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

ΠžΡ‚Π²Π΅Ρ‚: Π― Π±Ρ‹ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ЦСль Π΄ΠΎΠΊΠ»Π°Π΄Π° – ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ понятиС. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΎΠ½ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π» ΠΏΡƒΡ‚ΡŒ, ΠΏΠΎ-ΠΌΠΎΠ΅ΠΌΡƒ, Π΄ΠΎ 1-ΠΎΠΉ вСрсии. БСйчас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Kubernetes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всС это ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ. Π’ составС Kubernetes Service Discovery уступаСт Etcd. Но я с Π½ΠΈΠΌ Π½Π΅ Ρ‚Π°ΠΊ ΠΏΠ»ΠΎΡ‚Π½ΠΎ Π·Π½Π°ΠΊΠΎΠΌ, ΠΊΠ°ΠΊ с Consul. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Service Discovery я Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Consul.

Вопрос: Π‘Ρ…Π΅ΠΌΠ° с сСрвСром Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ Π½Π΅ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ старт прилоТСния Π² Ρ†Π΅Π»ΠΎΠΌ? И ΠΊΠ°ΠΊ Consul опрСдСляСт Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅Ρ€Π°, Ссли этот Π»Π΅ΠΆΠΈΡ‚?

ΠžΡ‚Π²Π΅Ρ‚: Π£ Π½ΠΈΡ… описан Ρ†Π΅Π»Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ». Если интСрСсно, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Вопрос: Consul Ρƒ нас выступаСт ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ сСрвСром ΠΈ всС запросы Π»Π΅Ρ‚Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ?

ΠžΡ‚Π²Π΅Ρ‚: Он выступаСт Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ сСрвСром, Π° Π±Π΅Ρ€Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π·ΠΎΠ½Ρƒ. Она, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, оканчиваСтся service.consul. И дальшС ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΏΠΎ Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΈΠ΄Π΅ΠΌ. ΠœΡ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² production Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ инфраструктуру, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прячСтся Π·Π° ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСрвСра, Ссли ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ ΠΏΠΎ DNS.

Вопрос: Π’. Π΅. Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΌΡ‹ Π² любом случаС Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Ρ€Π³Π°Ρ‚ΡŒ Consul, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ эту Π±Π°Π·Ρƒ спСрва, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

ΠžΡ‚Π²Π΅Ρ‚: Π”Π°. Если Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ ΠΏΠΎ DNS, Ρ‚ΠΎ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π±Π΅Π· Consul, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ DNS ΠΈΠΌΠ΅Π½Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ соврСмСнныС прилоТСния Π½Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС Π΄Π΅Ρ€Π³Π°ΡŽΡ‚ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ connect установили, всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π² блиТайшСС врСмя ΠΌΡ‹ практичСски Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ. Если connect разорвался, Ρ‚ΠΎ – Π΄Π°, ΠΌΡ‹ ΠΎΠΏΡΡ‚ΡŒ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ, Π³Π΄Π΅ Ρƒ нас Π»Π΅ΠΆΠΈΡ‚ Π±Π°Π·Π° ΠΈ ΠΈΠ΄Π΅ΠΌ ΠΊ Π½Π΅ΠΉ.

Π§Π°Ρ‚ ΠΏΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌ hashicorp β€” Π§Π°Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Hashicorp: Consul, Nomad, Terraform

P.S. По ΠΏΠΎΠ²ΠΎΠ΄Ρƒ health checks. Π’ Consul ΠΊΠ°ΠΊ ΠΈ Π² Kubernetes ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ одинаковая систСма ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояния ТивучСсти сСрвиса Π½Π° основС статус ΠΊΠΎΠ΄Π°.

200 OK for healthy
503 Service Unavailable for unhealthy

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ:
https://www.consul.io/docs/agent/checks.html
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
https://thoslin.github.io/microservice-health-check-in-kubernetes/

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com