ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΎΠΉ Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΠ° Π‘ΠΈΠ³Π°ΡΠ΅Π²Π° Service Discovery Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Consul.
Service Discovery ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π°ΡΡΠ°ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ Π½Π°ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Service Discovery, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΊΠ΅ΡΠ°, Π»ΠΈΠ±ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π·Π°ΠΏΡΡΠ΅Π½.
Π― Π²ΡΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ! Π― Π‘ΠΈΠ³Π°ΡΠ΅Π² ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ, ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Inventos. Π ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ Π²Π°Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Ρ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ Service Discovery. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΌΡ Service Discovery Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Consul.
ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°Π΅Ρ Service Discovery? Service Discovery ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π°ΡΡΠ°ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ Π½Π°ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Service Discovery, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΊΠ΅ΡΠ°, Π»ΠΈΠ±ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π·Π°ΠΏΡΡΠ΅Π½.
ΠΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ? ΠΠ° ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π² Π²Π΅Π±Π΅ β ΡΡΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°Π»ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π΅Π³ΠΎ Π½Π° backend. ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ β ΡΡΠΎ load-balancer Π±Π°Π»Π°Π½ΡΠΈΡΡΠ΅Ρ Π½Π° Π΄Π²Π° backend.
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΡΠ΅ΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΎΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π² Service Discovery. Service Discovery ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ load-balancer. Load-balancer ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈ ΡΠΆΠ΅ Π½ΠΎΠ²ΡΠΉ backend ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ°Π±ΠΎΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ backend, Π»ΠΈΠ±ΠΎ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΈΠ· ΡΠ°Π±ΠΎΡΡ.
Π§ΡΠΎ Π΅ΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Service Discovery? Π Service Discovery ΠΌΠΎΠ³ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ nginx, ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π°ΠΊΡΠΈΠ²Π½ΡΡ backend-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
Π’Π°ΠΊΠΆΠ΅ Service Discovery ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΡΠ±ΠΎΠΉ, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΎΡΠΊΠ°Π·Ρ. ΠΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΡ Π΅ΠΌΡ ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΎΡΠΊΠ°Π·ΠΎΠ²?
- ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ, ΡΠ°ΠΌΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ Service Discovery, ΡΡΠΎ ΠΎΠ½ΠΎ Π΅ΡΠ΅ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎ.
- Service Discovery ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΊΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ.
- ΠΠ»ΠΈ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΡΠΊΡΠΈΠΏΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ Service Discovery, ΡΡΠΎ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠ»ΠΎΡ ΠΎ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ· Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡ Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΠ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΎ ΠΌΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΡ Π΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ Service Discovery. ΠΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ, ΡΡΠΎ Service Discovery ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΠ°Π»ΠΎΡΡ Π½Π°ΠΌ Π² Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²ΠΎ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΊΠ΅ΠΌ-ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ, ΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΡΡΠ΅ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΈ Π²ΡΠ΅ ΡΡΠΎ Π²ΡΡΠ°Π΅Ρ Π² Π½Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². Load-balancer Π² Π²ΠΈΠ΄Π΅ nginx ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ. ΠΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Consul. ΠΡΠΎ consul-template. ΠΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ. ΠΠΎΠ²ΠΎΡΠΈΠΌ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½ (Π¨Π°Π±Π»ΠΎΠ½ΠΈΠ·Π°ΡΠΎΡ Golang). ΠΡΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΏΡΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡΡ , ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΈ Service Discovery ΠΏΡΠΈΡΡΠ»Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«reloadΒ». ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΡΡΡ nginx ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Consul?
-
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ β ΡΡΠΎ Service Discovery.
-
ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ β Health Checking.
-
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ KV Store.
-
Π Π² Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Ρ Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Multi Datacenter.
ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π²ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ? Π KV Store ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ². Health Checking ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ. Multi Datacenter ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΊΠ°ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Amazon ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·ΠΎΠ½ ΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ°ΡΠΈΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ Π±ΡΠ»ΠΎ Π»ΠΈΡΠ½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΈΡΠΈΡΠΈΡΡΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°, ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅Π½ΡΡΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ.
ΠΠ΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Consul ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ.
- Consul β ΡΠ΅ΡΠ²ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Go. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Go β ΡΡΠΎ 1 Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°ΡΠ°Π». ΠΠ°ΠΏΡΡΡΠΈΠ» ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΠΈ Ρ ΡΠ΅Π±Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π½Π΅Ρ.
- ΠΠ°Π»ΡΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠ΅ΡΠ²ΠΈΡ Π»ΠΈΠ±ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π»ΠΈΠ±ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
- Π’Π°ΠΊΠΆΠ΅ Π°ΡΡΠΈΠ±ΡΡ Β«datacenterΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π°Π³ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ.
- Consensus β Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ raft. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΠΎ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΏΠΎΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π½Π° ΡΠ°ΠΉΡΠ΅ Consul. ΠΡΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΠΈΠ΄Π΅ΡΠ° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅Π½Π½ΡΠ΅ ΡΡΠΈΡΠ°ΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ.
- Gossip β ΡΡΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΎΠ΄Π°ΠΌΠΈ. ΠΡΠΈΡΠ΅ΠΌ ΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ. Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° Π²ΡΠ΅ Π½ΠΎΠ΄Ρ ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΠΎΡΠ΅Π΄ΡΠΌΠΈ. Π, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠΏΠ»Π΅ΡΠ½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠ΅Π΄ΡΠΌΠΈ.
- LAN Gossip β Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠ΅Π΄ΡΠΌΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°.
- WAN Gossip β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°ΠΌΠΈ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ΄Π΅Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ.
- RPC β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ RPC. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ Consul Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π Π½Π΅ΠΌΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΠΌΡΡ. Π Π΄Π°Π»ΡΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡΡΡ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ°, Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Ρ Π»ΠΈΠ΄Π΅ΡΠΎΠΌ, Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π£ ΡΡΠΈΡ Π΄Π²ΡΡ ΡΡ Π΅ΠΌ Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ»ΡΡΡ, ΡΠ°ΠΊ ΠΈ ΠΌΠΈΠ½ΡΡΡ. ΠΡΠ»ΠΈ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΊΡΡΠ΅ΠΌ, ΡΠΎ ΡΡΠΎ Π±ΡΡΡΡΠΎ. ΠΡΠ»ΠΈ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΠΎ ΡΡΠΎ Π΄ΠΎΠ»ΡΡΠ΅, Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΡΠ»ΠΈ ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠΎ Π²ΠΎΡ ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΡΠ°ΠΉΡΠ°. ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΡΡΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ°. ΠΠ΄ΠΈΠ½ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ Π»ΠΈΠ΄Π΅Ρ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎ UDP/TCP. Π ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. ΠΠ΄Π΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ.
ΠΠ°ΠΊΠΎΠΉ API ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Consul? ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π΅ΡΡΡ Π΄Π²Π° Π²ΠΈΠ΄Π° API Ρ Consul.
ΠΡΠΎ DNS API. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Consul Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° 8600 ΠΏΠΎΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠ΅ΡΠ΅Π· Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π·ΠΎΠ»Π²ΠΈΠ½Π³, ΡΠ΅ΡΠ΅Π· Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ DNS. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΏΠΎ Π΄ΠΎΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π² ΠΎΡΠ²Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± IP-Π°Π΄ΡΠ΅ΡΠ΅.
HTTP API β Π»ΠΈΠ±ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π½Π° 8500 ΠΏΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ JSON ΠΎΡΠ²Π΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ IP ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ host, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½. Π Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° ΡΠ΅ΡΠ΅Π· token.
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Consul?
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΌΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ»Π°Π³, ΡΡΠΎ ΡΡΠΎ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Agent ΡΡΠ°ΡΡΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ. Π Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΆΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. Π£Π΄ΠΎΠ±Π½ΠΎ, Π±ΡΡΡΡΠΎ ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
ΠΡΠΎΡΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ β ΡΡΠΎ Π·Π°ΠΏΡΡΠΊ Π² production. ΠΠ΄Π΅ΡΡ Π·Π°ΠΏΡΡΠΊ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠ»Π°, ΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² bootstrap ΠΏΠ΅ΡΠ²ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, Ρ. Π΅. ΡΡΠ° ΠΌΠ°ΡΠΈΠ½Π°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·ΡΠΌΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ Π»ΠΈΠ΄Π΅ΡΠ°. ΠΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ Π΅Π΅, Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π΅ΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π³Π΄Π΅ Ρ Π½Π°Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ°ΡΡΠ΅Ρ. Π’ΡΠ΅ΡΠΈΠΉ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ Π½Π°Ρ ΠΏΠΎΠ΄Π½ΡΡΠΎ ΡΡΠΈ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΌΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈΠ· Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ bootstrap, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π΅Π΅ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠ°Π½Π½ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΡΡ, ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠΆΠ΅ ΠΏΠΎΠ΄Π½ΡΡ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΡ ΡΡΠ΅Ρ Π΄ΠΎ ΡΠ΅ΠΌΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎ ΠΎΠ±ΡΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΡΠ°ΡΡΠ΅Ρ, ΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π΅ΡΠ΅ΡΠ½ΡΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΊΠ²ΠΎΡΡΠΌ.
ΠΠ°ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΡΡ Health Checks? Π Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Consul ΠΌΡ Π² Π²ΠΈΠ΄Π΅ Json ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΡΡΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Π° google.com. Π Π³ΠΎΠ²ΠΎΡΠΈΠΌ, ΡΡΠΎ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π² 30 ΡΠ΅ΠΊΡΠ½Π΄ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ Π½Π°ΡΠ° Π½ΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ Π²ΠΎ Π²Π½Π΅ΡΠ½ΡΡ ΡΠ΅ΡΡ.
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅Π±Ρ. ΠΡ ΠΎΠ±ΡΡΠ½ΡΠΌ curl Π΄Π΅ΡΠ³Π°Π΅ΠΌ localhost ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ Π² 10 ΡΠ΅ΠΊΡΠ½Π΄.
ΠΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠΌΠΌΠΈΡΡΡΡΡΡ ΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π² Service Discovery. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΡΡΠΈ Π½ΠΎΠ΄Ρ Π»ΠΈΠ±ΠΎ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΡΡ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΌΠ°ΡΠΈΠ½ΠΎΠΊ.
Π’Π°ΠΊΠΆΠ΅ Consul ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ UI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠ»Π°Π³ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π° ΠΌΠ°ΡΠΈΠ½ΠΊΠ΅. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ° Β«Π‘Π΅ΡΠ²ΠΈΡΒ». ΠΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΡΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ 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 ΡΠ°Π·ΠΎΡΠ²Π°Π»ΡΡ, ΡΠΎ β Π΄Π°, ΠΌΡ ΠΎΠΏΡΡΡ ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ, Π³Π΄Π΅ Ρ Π½Π°Ρ Π»Π΅ΠΆΠΈΡ Π±Π°Π·Π° ΠΈ ΠΈΠ΄Π΅ΠΌ ΠΊ Π½Π΅ΠΉ.
P.S. ΠΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ health checks. Π Consul ΠΊΠ°ΠΊ ΠΈ Π² Kubernetes ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΆΠΈΠ²ΡΡΠ΅ΡΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π°.
200 OK for healthy
503 Service Unavailable for unhealthy
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΈ:
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com