Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ (service mesh), ΠΈ Π΅ΡΠΎ ΠΎΡΠ΅ Π΅Π΄Π½ΠΎ. Π£ΡΠ°! ΠΠΎ Π·Π°ΡΠΎ? ΠΠ°ΡΠΎΡΠΎ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ, ΡΠ΅ Π±Π΅ΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ ΠΏΡΠ΅Π΄ΠΈ 10 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΏΡΠ΅Π΄ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΊΠ°ΡΠΎ Docker ΠΈ Kubernetes. ΠΠ΅ ΡΠ²ΡΡΠ΄Ρ, ΡΠ΅ Π³Π»Π΅Π΄Π½Π°ΡΠ° ΠΌΠΈ ΡΠΎΡΠΊΠ° Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ° ΠΈΠ»ΠΈ ΠΏΠΎ-Π»ΠΎΡΠ° ΠΎΡ Π΄ΡΡΠ³ΠΈΡΠ΅, Π½ΠΎ ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠΈ ΡΠ° Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΡΡΠ΅ΡΡΠ²Π°, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΡΠΎ Π³Π»Π΅Π΄Π½ΠΈ ΡΠΎΡΠΊΠΈ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° ΡΡΡ Π½ΠΎΡΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
Π©Π΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° dotCloud, ΠΊΠΎΡΡΠΎ Π±Π΅ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π° ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ Ρ
ΠΈΠ»ΡΠ΄ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π©Π΅ ΠΎΠ±ΡΡΠ½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ
ΠΌΠ΅ ΠΏΡΠΈ Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠΈ ΠΌΠΎΠΆΠ΅Ρ
Π° Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ (ΠΈΠ»ΠΈ Π½Π΅).
ΠΡΡΠΎΡΠΈΡ Π½Π° dotCloud
ΠΠ΅ΡΠ΅ ΡΡΠΌ ΠΏΠΈΡΠ°Π» Π·Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° dotCloud ΠΈ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π° ΡΠ°Π·ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Π½ΠΎ ΠΌΠ°Π»ΠΊΠΎ ΡΠ°Π·ΠΊΠ°Π·Π°Ρ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎΡΠΎ Π½ΠΈΠ²ΠΎ. ΠΠΊΠΎ Π½Π΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ°Π²Π°ΡΠ΅ Π² ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ Π·Π° dotCloud, Π½Π°ΠΊΡΠ°ΡΠΊΠΎ Π΅ΡΠΎ ΡΡΡΠ½ΠΎΡΡΡΠ°: ΡΠΎΠ²Π° Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π° PaaS, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΡΠΈΡΠΎΠΊΠ° Π³Π°ΠΌΠ° ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Java, PHP, Pythonβ¦), Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ (MongoDB, MySQL, Redisβ¦) ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΠΊΠ°ΡΠΎ ΠΏΡΠΈ Heroku: ΠΊΠ°ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, ΡΡ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Π³ΠΈ ΡΠ°Π·Π³ΡΡΡΠ°.
Π©Π΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΡΠ΅ Π½Π°ΡΠΎΡΠ²Π°ΡΠ΅ ΡΡΠ°ΡΠΈΠΊΡΡ ΠΊΡΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° dotCloud. ΠΠ΅ Π·Π°ΡΠΎΡΠΎ Π±Π΅ΡΠ΅ Π½Π΅ΡΠΎ ΠΎΡΠΎΠ±Π΅Π½ΠΎ (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π·Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ Π΄ΠΎΡΡΠ° Π΄ΠΎΠ±ΡΠ΅!), Π° Π½Π°ΠΉ-Π²Π΅ΡΠ΅ Π·Π°ΡΠΎΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΡΠ°ΠΊΡΠ² Π΄ΠΈΠ·Π°ΠΉΠ½ Π»Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΠΊΡΠ°ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΎΡ ΡΠΊΡΠΎΠΌΠ΅Π½ Π΅ΠΊΠΈΠΏ, Π°ΠΊΠΎ ΠΈΠΌ Π΅ Π½ΡΠΆΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π° ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ°Π²Π½ΠΈΠΌ ΠΎΠΏΡΠΈΠΈΡΠ΅: ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°, Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π° ΠΌΡΠ΅ΠΆΠ°. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ ΠΈΠ·Π±ΠΎΡ: Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π° ΠΊΡΠΏΠΈΠΌ.
ΠΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π·Π° Ρ ΠΎΡΡΠ²Π°Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π½Π° dotCloud ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ HTTP ΠΈ TCP ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ.
HTTP ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΡΠ΅ Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈΡΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ . Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΄Π½Π΅Ρ ΠΏΡΠ°Π²ΡΡ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π² Kubernetes ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° .
ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ Ρ HTTP ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ ΡΡΠ΅Π· ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΡΠ΅ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΡΡ ΡΠΎΡΠΈ ΠΊΡΠΌ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈΡΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° dotCloud. ΠΠΈΡΠΎ ΠΎΡΠΎΠ±Π΅Π½ΠΎ.
TCP ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΠΏΠΎΡΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΡΠΎΠ·ΠΈ ΡΡΠ΅ΠΊ ΡΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°.
ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ Ρ TCP ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎΡΠΎ ΠΈΠΌΠ΅ Π½Π° Ρ ΠΎΡΡΠ° (Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ gateway-X.dotcloud.com) ΠΈ Π½ΠΎΠΌΠ΅Ρ Π½Π° ΠΏΠΎΡΡΠ°.
Π’ΠΎΠ²Π° ΠΈΠΌΠ΅ Π½Π° Ρ ΠΎΡΡΠ° ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π° Π΄ΠΎ ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΎΡ ΡΡΡΠ²ΡΡΠΈ βnatsβ (Π½ΡΠΌΠ° ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΌ ), ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈΡΠ΅ TCP Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ (ΠΈΠ»ΠΈ, Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Ρ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΡΠ° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ°, ΠΊΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ).
ΠΠΊΠΎ ΡΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°ΡΠΈ Ρ Kubernetes, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ Π²ΠΈ Π½Π°ΠΏΠΎΠΌΠ½ΠΈ Π·Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ .
ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° dotCloud Π½ΡΠΌΠ°ΡΠ΅ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ : Π·Π° ΠΏΡΠΎΡΡΠΎΡΠ°, Π΄ΠΎΡΡΡΠΏΡΡ Π΄ΠΎ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π±Π΅ΡΠ΅ Π΅Π΄Π½Π°ΠΊΡΠ² ΠΊΠ°ΠΊΡΠΎ ΠΎΡ Π²ΡΡΡΠ΅, ΡΠ°ΠΊΠ° ΠΈ ΠΎΡ Π²ΡΠ½ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°.
ΠΡΠΈΡΠΊΠΎ Π±Π΅ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π΄ΠΎΡΡΠ° ΠΏΡΠΎΡΡΠΎ: ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΡΠ°ΡΠ°ΡΠ° ΠΌΡΠ΅ΠΆΠ° HTTP ΠΈ TCP, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΡΡΠΎΡΡΠΈ ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠΎΡΠΈΠ½ ΡΠ΅Π΄Π° Python. ΠΡΠΎΡΡΠΈΡΠΊΠΈ (Π±ΠΈΡ ΠΊΠ°Π·Π°Π», Π½Π°ΠΈΠ²Π½ΠΈ) Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΡΡ Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½ΠΈ Ρ Π½Π°ΡΠ°ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΠΈ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ.
ΠΠ±ΡΠΈΡΠ΅Π½ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡ ΠΊΠΎΠ΄ Π½Π΅ Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, ΠΌΠΎΠ³Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π°Π΄ΡΠ΅ΡΠ°, ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°.
Π‘ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°ΡΠ° service mesh?
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΎΠ±Π·ΠΎΡΠ½ΠΎΡΡ. ΠΠΈΠ΅ Π²ΡΠΎΠ±ΡΠ΅ Π½ΡΠΌΠ°Ρ ΠΌΠ΅ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ TCP. Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° HTTP, Π² ΠΏΠΎ-ΠΊΡΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΈ HTTP ΠΌΠ΅ΡΡΠΈΠΊΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ, Π½ΠΎ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ meshes Π·Π° ΡΡΠ»ΡΠ³ΠΈ ΠΎΡΠΈΠ²Π°Ρ ΠΎΡΠ΅ ΠΏΠΎ-Π΄Π°Π»Π΅Ρ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΊΠ°ΡΠΎ Prometheus, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΠ±Π·ΠΎΡΠ½ΠΎΡΡΡΠ° Π΅ Π²Π°ΠΆΠ½Π° Π½Π΅ ΡΠ°ΠΌΠΎ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π° Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° (Π·Π° Π΄Π° ΠΏΠΎΠΌΠ°Π³Π° ΠΏΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ), Π½ΠΎ ΠΈ ΠΏΡΠΈ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘ΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ ΠΈ .
ΠΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΡΡΡΠΎ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°. Π ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°ΡΠ°ΡΠ° ΠΌΡΠ΅ΠΆΠ° dotCloud ΡΠ΅Π»ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· ΠΊΠ»ΡΡΡΠ΅ΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠΈ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°ΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΡΠ°Π½ΠΈΡΠΈ Π½Π° AZ (Π·ΠΎΠ½ΠΈ Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ) ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎΠΌΠ½Ρ ΠΊΠ°ΠΊ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ°Π²Π΅ΡΠ΅ Π½Π°Π΄ ΡΡΠΎ SQL Π·Π°ΡΠ²ΠΊΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° ΠΈ Π·Π° Π²ΡΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ° ΠΎΡΠ²Π°ΡΡΡΠ΅ Π½ΠΎΠ²Π° Π²ΡΡΠ·ΠΊΠ° Ρ SQL ΡΡΡΠ²ΡΡΠ°. ΠΡΠΈ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΡΡΠ°ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΎ, Π½ΠΎ Π² dotCloud Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ ΠΎΡΠ½Π΅ΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π·Π°ΡΠΎΡΠΎ Π·Π° Π²ΡΡΠΊΠΎ TCP ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ (ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ° SQL Π·Π°ΡΠ²ΠΊΠ°) ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π±Π΅ ΡΠ΅ΡΠ΅Π½ ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ.
Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡ-ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Ρ ΡΠ°ΠΊΠΈΠ²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΡΡΠ²ΠΎ, ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ, ΡΠ΅ Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Ρ Π² ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ°. ΠΠΎΠ³ΠΈΡΠ½ΠΈΡΡ ΠΏΠΎΡΠΎΠΊ Π΅ ΡΡΡΠΈΡΡ: ΠΊΠ»ΠΈΠ΅Π½Ρ β ΠΌΡΠ΅ΠΆΠ° β ΡΡΠ»ΡΠ³Π°, Π½ΠΎ ΡΠ΅Π³Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π° Π½Π΅ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ Π²ΡΠ·Π»ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ β ΠΌΡΠ΅ΠΆΠ° Π΅ Π»ΠΎΠΊΠ°Π»Π½Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ·Π° (ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ).
Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡ-ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΏΠΎ-ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΠΉΠΊΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄ΠΈΡΠ΅, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΠ°ΡΠΈΠΊ ΠΊΡΠΌ ΠΏΠΎ-Π±ΡΡΠ·ΠΈΡΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡ ΡΡΡΠΎ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅. ΠΡΠ΅ΠΆΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° dotCloud ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ ΠΈΠ·ΡΡΠ»ΠΎ Π½Π° EC2 Classic ΠΈ Π½Π΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°ΡΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° (ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎ, ΡΠ΅ Π°ΠΊΠΎ Π½Π° Π½ΡΠΊΠΎΠ³ΠΎ Π΅ ΡΡΠΏΡΠ»ΠΎ Π΄Π° ΠΌΡ ΡΠ»ΠΎΠΆΠΈ ΡΠΏΠΈΠΎΠ½ΠΈΠ½ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ°ΡΠΈΠΊ EC2, Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ). Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡ-ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π·Π°ΡΠΈΡΠ°Π²Π°Ρ ΡΠ΅Π»ΠΈΡ Π½Π°Ρ ΡΡΠ°ΡΠΈΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ Π²Π·Π°ΠΈΠΌΠ½Π° TLS Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅.
ΠΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π·Π° ΡΡΠ»ΡΠ³ΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°
ΠΠΎΠ±ΡΠ΅, ΠΎΠ±ΡΡΠ΄ΠΈΡ ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° dotCloud?
Π‘Π°ΠΌΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ΅ ΡΡΡΡΠΎΠ΅ΡΠ΅ ΠΎΡ ΠΎΠΊΠΎΠ»ΠΎ ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π°, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΊΠΎΠΈ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡΠ΅, Π° Π½ΡΠΊΠΎΠΈ Π±ΡΡ Π° ΡΠΎΠ½ΠΎΠ²ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ Π° Ρ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ, Π½ΠΎ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ΅ Π½Π΅ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ Π° Π²ΡΡΠ·ΠΊΠΈ. ΠΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ Π²ΡΡΠΊΠ° ΡΡΠ»ΡΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Π½Π° Π°Π΄ΡΠ΅ΡΠΈΡΠ΅, ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅.
ΠΠ½ΠΎΠ³ΠΎ Π²ΠΈΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π° ΠΏΠΎ-Π³ΠΎΡΠ΅. ΠΡΡΡΠ½ΠΎΡΡ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π° Π½Π° dotCloud Π±ΡΡ Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° dotCloud. ΠΠΎ ΠΌΠ°Π»ΠΊΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ (ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠ°Π·ΠΈ ΠΌΡΠ΅ΠΆΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ) ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅Ρ Π° ΠΎΡ Π½Π΅ΡΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ, Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ΅Π±Π΅ ΡΠΈ β ΡΡΠ°ΡΠ°ΡΠ° Π΄ΠΎΠ±ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ Π½Π° ΠΊΠΎΠΊΠΎΡΠΊΠ°ΡΠ° ΠΈ ΡΠΉΡΠ΅ΡΠΎ).
Π’Π΅Π·ΠΈ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π½ΠΈ, Π²Π°ΠΆΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π±ΡΡ
Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ ΡΡΠ΅Π· ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΡΡΠΎΠ²ΠΈ Π²ΡΠ·Π»ΠΈ. ΠΡΠΈ ΡΠΎΠ²Π° Π½Π΅ Π±ΡΡ
Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°: ΡΡΠ±ΠΈΡΠ°Ρ, ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΈ runner. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΡΠ°Π²Π½ΠΈΡΠ΅ Ρ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΡΠΎΠ²Π° Π΅ Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΠΏΠ°Π½Π΅Π» Ρ docker run Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡΠ°Ρ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π½Π° Kubernetes. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° ΡΡ
ΠΎΠ΄Π½ΠΎ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° , ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ»ΠΈ ΠΏΡΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π°Π²ΡΠΎΠ½ΠΎΠΌΠ΅Π½ ΠΊΠ»Π°ΡΡΠ΅Ρ.
Π’Π΅Π·ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π±ΡΡ Π° Π΅ΠΊΡΠΏΠΎΠ½ΠΈΡΠ°Π½ΠΈ ΠΏΠΎ ΠΏΡΠΎΡΡ ΠΈ Π³ΡΡΠ± Π½Π°ΡΠΈΠ½: Π² YAML ΡΠ°ΠΉΠ»Π° Π±ΡΡ Π° ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ ΠΈΠΌΠ΅Π½Π°ΡΠ° ΠΈ Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ ΠΈΠΌ; Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° ΡΠΎΠ·ΠΈ YAML ΡΠ°ΠΉΠ» Π·Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅.
ΠΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, ΡΠΎΠ²Π° Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²ΡΠ½ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΎΡ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΠ°ΡΠΎ Zookeeper (Π½Π΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅, ΠΏΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ΅ etcd ΠΈΠ»ΠΈ Consul). ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, ΡΠΎΠ²Π° Π·Π°ΡΡΡΠ΄Π½ΡΠ²Π°ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅. ΠΡΠ΅ΠΊΠΈ ΠΏΡΡ ΠΏΡΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ YAML ΡΠ°ΠΉΠ» (ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π·Π°ΡΠ΅Π΄ΡΡ). ΠΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ!
ΠΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
ΠΌΠ΅ Π΄Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΎΠ²Π° ΡΡ
Π΅ΠΌΠ°, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°ΡΠ΅ Ρ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΡΠΎΠΊΡΠΈ-ΡΡΡΠ²ΡΡ. ΠΠΌΠ΅ΡΡΠΎ Π°Π΄ΡΠ΅ΡΠ° ΠΈ ΠΏΠΎΡΡΠ°, ΠΌΡ Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ ΡΠ°ΠΌΠΎ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΠΏΠΎΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΈ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ ΡΡΠ΅Π· localhost. ΠΠΎΠΊΠ°Π»Π½ΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΡΡΠ²ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΡΠΎΠ²Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΈ Π³ΠΎ Π½Π°ΡΠΎΡΠ²Π° ΠΊΡΠΌ ΡΠ΅Π°Π»Π½ΠΈΡ ΡΡΡΠ²ΡΡ. Π‘Π΅Π³Π° ΠΏΡΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° Π΄ΡΡΠ³Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈΠ»ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΊΡΠΈΡΠ°; ΠΈ ΠΏΡΠ΅Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
(Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ° ΡΡΠ°ΡΠΈΠΊΡΡ Π² TLS Π²ΡΡΠ·ΠΊΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡ Π½Π° ΠΏΡΠΈΠ΅ΠΌΠ°ΡΠ°ΡΠ° ΡΡΡΠ°Π½Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ TLS ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ Π±Π΅Π· ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ΅ΠΌΠ°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π° Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΌΠΎ Π½Π° localhost. ΠΠ° ΡΠΎΠ²Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ).
Π’ΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΈΡΠ° Π½Π° ΠΎΡ Airbnb, Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° Π΅, ΡΠ΅ SmartStack Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΈ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ, Π΄ΠΎΠΊΠ°ΡΠΎ Π²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° dotCloud Π±Π΅ΡΠ΅ ΠΏΡΠΈΠ±ΡΠ°Π½Π° Π² ΡΠ΅ΠΊΠΌΠ΅Π΄ΠΆΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ dotCloud ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² Docker.
ΠΠΈΡΠ½ΠΎ Π°Π· ΡΡΠΈΡΠ°ΠΌ SmartStack Π·Π° Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠ°ΡΠΎ Istio, Linkerd ΠΈ Consul Connect, Π·Π°ΡΠΎΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ»Π΅Π΄Π²Π°Ρ Π΅Π΄ΠΈΠ½ ΡΠ°Π±Π»ΠΎΠ½:
- Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΊΡΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π».
- ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ Ρ ΠΏΡΠΎΠΊΡΠΈΡΠΎ.
- Π£ΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ°ΡΠ° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡΠ° ΠΏΡΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄ΠΈΡΠ΅.
- β¦ ΠΡΠΎΡΠΈΡ!
Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΅ΡΠ²ΠΈΡ ΠΌΡΠ΅ΠΆΠ°
ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΠΌΡΠ΅ΠΆΠ° Π΄Π½Π΅Ρ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π½Π°ΡΡΡΠΎΠΈΠΌ Π²ΡΡΡΠ΅ΡΠ½Π° DNS Π·ΠΎΠ½Π°, ΡΡΠ°ΡΡΠ²Π°ΡΠ° ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΡΠ»ΡΠ³ΠΈ Ρ Π°Π΄ΡΠ΅ΡΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ 127.0.0.0/8. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ HAProxy Π½Π° Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΏΡΠΈΠ΅ΠΌΠ°ΡΠ° Π²ΡΡΠ·ΠΊΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π°Π΄ΡΠ΅Ρ Π½Π° ΡΡΠ»ΡΠ³Π° (Π² ΡΠ°Π·ΠΈ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ° 127.0.0.0/8) ΠΈ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°ΠΉΠΊΠΈ/Π±Π°Π»Π°Π½ΡΠΈΡΠ°ΠΉΠΊΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° HAProxy ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π΄Π° ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° Π² etcd ΠΈΠ»ΠΈ Consul ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΡΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π΅Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° HAProxy, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
Π’Π°ΠΊΠ° ΡΠ°Π±ΠΎΡΠΈ Istio! ΠΠΎ Ρ Π½ΡΠΊΠΎΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ:
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΠΌΠ΅ΡΡΠΎ HAProxy.
- ΠΠ°ΠΏΠ°Π·Π²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΏΡΠ΅Π· Kubernetes API Π²ΠΌΠ΅ΡΡΠΎ etcd ΠΈΠ»ΠΈ Consul.
- ΠΠ° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π°Π΄ΡΠ΅ΡΠΈ Π²ΡΠ² Π²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ° (Π°Π΄ΡΠ΅ΡΠΈ Kubernetes ClusterIP) Π²ΠΌΠ΅ΡΡΠΎ 127.0.0.0/8.
- ΠΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Citadel) Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π²Π·Π°ΠΈΠΌΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡ TLS ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΡΡΠ²ΡΡΠΈΡΠ΅.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠ° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΡΡΡΠΏΠ²Π°Π½Π΅ Π½Π° Π²Π΅ΡΠΈΠ³Π°ΡΠ° (circuit breaking), ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΡΠ°ΡΠΈΡΠ°Π½Π΅, ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΠΊΠ°Π½Π°ΡΠΊΠΈ ΠΈ Π΄Ρ.
ΠΠ΅ΠΊΠ° Π½Π°ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ.
Envoy Proxy
Envoy Proxy Π±Π΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Lyft [ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½Ρ Π½Π° Uber Π½Π° ΠΏΠ°Π·Π°ΡΠ° Π½Π° ΡΠ°ΠΊΡΠΈΡΠ° - Π±Π΅Π». ΡΠ΅Π΄.]. Π’ΠΎΠΉ Π΅ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠΊΡΠΈΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HAProxy, Nginx, Traefikβ¦), Π½ΠΎ Lyft ΡΡΠ·Π΄Π°Π΄ΠΎΡ Π° ΡΠ²ΠΎΡ, Π·Π°ΡΠΎΡΠΎ ΠΈΠΌ Π±ΡΡ Π° Π½ΡΠΆΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΡΡΡΡΠ²Π°Ρ Π² Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΏΡΠΎΠΊΡΠΈΡΠ°, ΠΈ ΠΏΠΎ-ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Π»ΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΡΡ Π½ΠΎΠ², ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΄Π° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡ.
Envoy ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ. ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ Ρ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΌΠΎΠ³Π° Π΄Π° Ρ Π½Π°ΡΡΡΠΎΡ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ Ρ Envoy ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π΄Π° Π½Π°ΡΡΡΠΎΡ ΠΈ ΠΏΡΠ΅Π½Π°ΡΡΡΠΎΡ Envoy Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΡΡΠ³ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΉΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠ»ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ, Π½ΠΈΠ΅ Π½Π°ΡΠΎΡΠ²Π°ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΡΠΌ Envoy, Π° ΡΠΎΠΉ ΡΡΠ±ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π·Π° Π½Π°Ρ.
ΠΠΎ Envoy ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΡΠΎ Π΄Π°Π½ΡΡΠ½Π° ΠΏΠ»ΠΎΡ (data plane) Π·Π° service mesh. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅Π³Π° Π·Π° ΡΠΎΠ·ΠΈ service mesh Envoy ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠ²Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ° ΠΏΠ»ΠΎΡ (control plane).
Π£ΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ° ΠΏΠ»ΠΎΡ
Π ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ°ΡΠ° ΠΏΠ»ΠΎΡ Istio ΡΠ°Π·ΡΠΈΡΠ° Π½Π° Kubernetes API. Π’ΠΎΠ²Π° Π½Π΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° confd, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·ΡΠΈΡΠ° Π½Π° etcd ΠΈΠ»ΠΈ Consul Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΎΡ Π΄Π°Π½Π½ΠΈ. Istio ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ΅ΡΡΡΡΠΈ Kubernetes ΡΡΠ΅Π· Kubernetes API.
ΠΠ΅ΠΆΠ΄ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ: Π½Π° ΠΌΠ΅Π½ ΠΌΠΈ ΡΠ΅ ΡΡΠΎΡΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΎΠ²Π° , ΠΊΠΎΠ΅ΡΠΎ Π³Π»Π°ΡΠΈ:
Π‘ΡΡΠ²ΡΡΡΡ Π½Π° Kubernetes API Π΅ "Π³Π»ΡΠΏΠ°Π² ΡΡΡΠ²ΡΡ", ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΡΡΠΈΠΈ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° API.
Istio Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ Kubernetes; ΠΈ Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ·Π²ΡΠ½ Kubernetes, ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ Π½Π° ΡΡΡΠ²ΡΡ Kubernetes API (ΠΈ ΠΏΠΎΠΌΠΎΡΠ½Π° ΡΡΠ»ΡΠ³Π° etcd).
ΠΠ΄ΡΠ΅ΡΠΈ Π½Π° ΡΡΠ»ΡΠ³ΠΈ
Istio ΡΠ°Π·ΡΠΈΡΠ° Π½Π° Π°Π΄ΡΠ΅ΡΠΈ ClusterIP, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Kubernetes, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π½Π° Istio ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π²ΡΡΡΠ΅ΡΠ΅Π½ Π°Π΄ΡΠ΅Ρ (Π½Π΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° 127.0.0.0/8).
Π’ΡΠ°ΡΠΈΠΊΡΡ ΠΊΡΠΌ Π°Π΄ΡΠ΅ΡΠ° ClusterIP Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° ΡΡΠ»ΡΠ³Π° Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes Π±Π΅Π· Istio ΡΠ΅ ΠΏΡΠΈΡ Π²Π°ΡΠ° ΠΎΡ kube-proxy ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ½Π°ΡΠ° ΡΠ°ΡΡ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠΊΡΠΈ. ΠΠΊΠΎ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ, kube-proxy ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»Π° iptables (ΠΈΠ»ΠΈ IPVS Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΠΈ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½), Π·Π° Π΄Π° ΠΏΡΠ΅ΠΏΠΈΡΠ΅ IP Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ Π½Π° Π΄Π΅ΡΡΠΈΠ½Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΠΎ Π°Π΄ΡΠ΅Ρ ClusterIP.
Π‘Π»Π΅Π΄ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Istio Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes Π½ΠΈΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅ ΡΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ ΡΡΠ»ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π·Π° ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π΅, ΠΊΠ°ΡΠΎ ΡΠ΅ Π²ΡΠ²Π΅Π΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΡ sidecar Π² ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ²Π΅. Π’ΠΎΠ·ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ Π½Π° Envoy ΠΈ ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π° iptables Π·Π° ΠΏΡΠΈΡ
Π²Π°ΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ°, ΠΈΠ΄Π²Π°Ρ ΠΊΡΠΌ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΈ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΡΡΠ°ΡΠΈΠΊ ΠΊΡΠΌ Envoy.
ΠΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Kubernetes DNS ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π½Π°ΡΠΈΡΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° ΠΏΠΎ ΠΈΠΌΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π°, Π° Π²ΡΠΈΡΠΊΠΎ "ΠΏΡΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ". Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, Π½Π°ΡΠΈΡΡ ΠΊΠΎΠ΄ ΠΏΡΠ°Π²ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° http://api/v1/users/4242, ΡΠΎΠ³Π°Π²Π° api ΡΠ΅Π·ΠΎΠ»Π²ΠΈΡΠ° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° 10.97.105.48, ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π½Π° iptables ΠΏΡΠΈΡ
Π²Π°ΡΠ°Ρ ΡΠ²ΡΡΠ·Π²Π°Π½ΠΈΡΡΠ° Ρ 10.97.105.48 ΠΈ Π³ΠΈ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Ρ ΠΊΡΠΌ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΡΠΎΠΊΡΠΈ Envoy, Π° ΡΠΎΠ·ΠΈ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΡΠΎΠΊΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈΡ Π±Π΅ΠΊΠ΅Π½Π΄ API. Π₯Π°!
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
Istio ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΊΡΠ°ΠΉΠ½ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ ΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠ΅Π· mTLS (Π²Π·Π°ΠΈΠΌΠ½ΠΎ TLS). ΠΠ° ΡΠΎΠ²Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π°ΡΠ΅ΡΠ΅Π½ Citadel.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Mixer, ΠΊΠΎΠΉΡΠΎ Envoy ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΈΡΠΊΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅, Π·Π° Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΎΠ²Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΊΡΠΎΡΠΈ, ΠΊΠ°ΡΠΎ Π·Π°Π³Π»Π°Π²ΠΈΡ, Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΈ Ρ.Π½β¦ (Π½Π΅ ΡΠ΅ ΡΡΠ΅Π²ΠΎΠΆΠ΅ΡΠ΅: ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π½Π° Mixer, ΠΈ Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΡΠΎΠΉ ΡΠ΅ ΡΡΠΈΠ½Π΅, Envoy ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΊΡΠΈ).
Π, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΌΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡΡΠ°: Envoy ΡΡΠ±ΠΈΡΠ° ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΠΉΠΊΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅. Π Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅, Π°ΠΊΠΎ Π΅Π΄Π½ΠΎ API Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΏΡΠ΅Π· ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈΡΠ΅ A, B, C ΠΈ D, ΡΠΎ ΠΏΡΠΈ Π²Π»ΠΈΠ·Π°Π½Π΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎΡΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π΄ΠΎΠ±Π°Π²Ρ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΡΠΌ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π·Π°ΠΏΠ°Π·Π²Π° ΡΠΎΠ·ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠ΅Π· ΠΏΠΎΠ΄Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ° ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ ΡΠΈΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ, ΡΡΡ Π½Π°ΡΠ° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡ ΠΈ Ρ.Π½.
Π Π°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΠΌ ΠΈΠ»ΠΈ ΠΊΡΠΏΡΠ²Π°ΠΌ
Istio ΠΈΠΌΠ° ΡΠ΅ΠΏΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ»ΠΎΠΆΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅, ΠΊΠΎΡΡΠΎ ΠΎΠΏΠΈΡΠ°Ρ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΡΡ, Π΅ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΎΡΡΠΎ Ρ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ. Π’Π°ΠΊΠ° ΡΠ΅, ΠΈΠΌΠ° Π»ΠΈ ΡΠΌΠΈΡΡΠ» Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΡΠ΅ΡΠ²ΠΈΡ ΠΌΡΠ΅ΠΆΠ°?
ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΊΡΠΎΠΌΠ½ΠΈ Π½ΡΠΆΠ΄ΠΈ (Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡ, ΠΏΡΠ΅ΠΊΡΡΠ²Π°Ρ Π½Π° Π²Π΅ΡΠΈΠ³Π° ΠΈ Π΄ΡΡΠ³ΠΈ Π½ΡΠ°Π½ΡΠΈ), ΠΈΠ΄Π²Π°Ρ ΠΌΠΈΡΠ»ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠΎ Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Kubernetes, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄ΠΎΡΠΈ Π΄Π° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ, Π·Π°ΡΠΎΡΠΎ Kubernetes Π²Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ, ΡΠΎΠ³Π°Π²Π° "ΠΊΡΠΏΡΠ²Π°Π½Π΅ΡΠΎ" Π½Π° ΡΠ΅ΡΠ²ΠΈΡ ΠΌΡΠ΅ΠΆΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ° ΠΎΠΏΡΠΈΡ. (ΠΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΠ°Π²Π° Π΄ΡΠΌΠ° Π·Π° "ΠΏΠΎΠΊΡΠΏΠΊΠ°", ΡΡΠΉ ΠΊΠ°ΡΠΎ Istio ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ, Π΄Π° Π³ΠΎ ΡΠ°Π·Π³ΡΡΠ½Π΅ΠΌ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΠΌΠ΅).
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ: Istio, Linkerd ΠΈΠ»ΠΈ Consul Connect?
ΠΠΎΡΠ΅Π³Π° Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π·Π° Istio, Π½ΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΡΠ»ΡΠ³Π° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅. ΠΠΎΠΏΡΠ»ΡΡΠ½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π΅ , Π° ΠΈΠΌΠ° ΠΈ .
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ?
Π§Π΅ΡΡΠ½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π½Π΅ Π·Π½Π°ΠΌ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π΅ ΡΠ΅ ΡΠΌΡΡΠ°ΠΌ Π·Π° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠ΅Π½, Π·Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΡ Π½Π° ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ. ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΈ Π΄ΠΎΡΠΈ .
ΠΠ΄ΠΈΠ½ ΠΎΡ ΠΎΠ±Π΅ΡΠ°Π²Π°ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈ Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠ°ΡΠΎ . Π’ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ»ΠΎΠΉ Π½Π° Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ, Π·Π° Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈ ΠΈ ΡΠ½ΠΈΡΠΈΡΠΈΡΠ° API-ΡΠ°ΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½ΠΈ ΠΎΡ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅ΡΠΎΠ²Π΅ΡΠ΅. ΠΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°ΠΌΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ (ΠΈ, ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΈ) API Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅ΡΠΎΠ²Π΅, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° SuperGloo ΠΈ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ Π½Π° Π΄ΡΡΠ³, ΡΡΠΊΠ°Ρ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΠΈΡΠ²Π° HTTP ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π° Nginx, HAProxy, Traefik, Apacheβ¦
ΠΠΎΠΈΠ³ΡΠ°Π²Π°Π» ΡΡΠΌ ΠΌΠ°Π»ΠΊΠΎ Ρ Istio ΠΈ SuperGloo, Π° Π² ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π΄Π° Π΄ΠΎΠ±Π°Π²Ρ Istio ΠΈΠ»ΠΈ Linkerd Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΊΠ»Π°ΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° SuperGloo ΠΈ ΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΎΠ±ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΡΠ΅ ΡΠΏΡΠ°Π²Ρ ΡΡΡ Π·Π°Π΄Π°ΡΠ°ΡΠ° ΡΠΈ, Ρ.Π΅. ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅Ρ Π½Π° Π΄ΡΡΠ³ Π±Π΅Π· ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
