Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ
Π©Π΅ Π³ΠΎΠ²ΠΎΡΡ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° dotCloud, ΠΊΠΎΡΡΠΎ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π²ΡΡΡ
Ρ Π½Π°Π΄ ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Ρ
ΠΈΠ»ΡΠ΄ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. Π©Π΅ ΠΎΠ±ΡΡΠ½Ρ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»ΡΡΠ²Π°ΡΠ°, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ
ΠΌΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΡ, ΠΈ ΠΊΠ°ΠΊ ΠΌΡΠ΅ΠΆΠΈΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π±ΠΈΡ
Π° ΠΌΠΎΠ³Π»ΠΈ (ΠΈΠ»ΠΈ Π½Π΅ Π±ΠΈΡ
Π° ΠΌΠΎΠ³Π»ΠΈ) Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ.
ΠΡΡΠΎΡΠΈΡ Π½Π° dotCloud
ΠΠΈΡΠ°Π» ΡΡΠΌ Π·Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° dotCloud ΠΈ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π° ΡΠ°Π·ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Π½ΠΎ Π½Π΅ ΡΡΠΌ Π³ΠΎΠ²ΠΎΡΠΈΠ» ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΠ»ΠΎΠΉ. ΠΠΊΠΎ Π½Π΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ΅ Π³ΠΌΡΡΠ½Π΅ΡΠ΅ Π² ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ
Π©Π΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΠΊΡΡ Π±Π΅ΡΠ΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° dotCloud. ΠΠ΅ Π·Π°ΡΠΎΡΠΎ Π±Π΅ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ Π΄ΠΎΠ±ΡΠ΅ Π·Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠΈ!), Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈ Π²ΡΠΈΡΠΊΠΎ Π·Π°ΡΠΎΡΠΎ Ρ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ Π·Π° ΠΊΡΠ°ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΎΡ ΡΠΊΡΠΎΠΌΠ΅Π½ Π΅ΠΊΠΈΠΏ, Π°ΠΊΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π³ΡΡΠΏΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ ΠΈΠ»ΠΈ ΠΊΡΠΏ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°Π²Π½ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈΡΠ΅: ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°, Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π° ΠΌΡΠ΅ΠΆΠ°. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ ΠΈΠ·Π±ΠΎΡ Π΅ Π΄Π° ΡΠΈ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ ΠΊΡΠΏΠΈΡΠ΅.
ΠΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π·Π° Ρ ΠΎΡΡΠ²Π°Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π² dotCloud ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π·ΠΊΡΠΈΠ²Π°Ρ HTTP ΠΈ TCP ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ.
HTTP ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ
ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ Ρ HTTP ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΡΡΠ΅Π· ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΡΠΎΡΠΈ ΠΊΡΠΌ dotCloud load balancers. ΠΠΈΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ.
TCP ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ ΡΠ²ΡΡΠ·Π°Π½ Ρ Π½ΠΎΠΌΠ΅Ρ Π½Π° ΠΏΠΎΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΡΠΎΠ·ΠΈ ΡΡΠ΅ΠΊ ΡΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°.
ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ ΠΊΡΠΌ TCP ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎΡΠΎ ΠΈΠΌΠ΅ Π½Π° Ρ ΠΎΡΡ (Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ gateway-X.dotcloud.com) ΠΈ Π½ΠΎΠΌΠ΅Ρ Π½Π° ΠΏΠΎΡΡ.
Π’ΠΎΠ²Π° ΠΈΠΌΠ΅ Π½Π° Ρ
ΠΎΡΡ ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π² ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ βnatsβ (Π½Π΅ Π΅ ΡΠ²ΡΡΠ·Π°Π½ Ρ
ΠΠΊΠΎ ΡΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°ΡΠΈ Ρ Kubernetes, ΡΠΎΠ²Π° Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ Π²ΠΈ Π½Π°ΠΏΠΎΠΌΠ½ΠΈ Π·Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅
ΠΡΠΌΠ°ΡΠ΅ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° dotCloud
ΠΡΠΈΡΠΊΠΎ Π±Π΅ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΡΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ: ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° HTTP ΠΈ TCP ΠΌΡΠ΅ΠΆΠΈΡΠ΅ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π±ΡΡ Π° ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎΡΡΠΎΡΠΈΠ½ ΡΠ΅Π΄Π° Π½Π° Python Π²ΡΡΠΊΠ°. ΠΡΠΎΡΡΠΈ (Π±ΠΈΡ ΠΊΠ°Π·Π°Π» Π½Π°ΠΈΠ²Π½ΠΈ) Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΡΡ Π° ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°Π½ΠΈ Ρ ΡΠ°Π·ΡΠ°ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΠΈ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ.
ΠΠ΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠ΅ ΠΎΠ±ΡΠΈΡΠ½ΠΎ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡ ΠΊΠΎΠ΄. Π ΡΠ°ΡΡΠ½ΠΎΡΡ,
ΠΠ°ΠΊ ΡΠΎΠ²Π° Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ ΠΎΡ ΠΌΠΎΠ΄Π΅ΡΠ½Π°ΡΠ° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π° ΠΌΡΠ΅ΠΆΠ°?
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ. ΠΠ·ΠΎΠ±ΡΠΎ Π½ΡΠΌΠ°Ρ ΠΌΠ΅ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° TCP. Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ HTTP ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ, ΠΏΠΎ-ΠΊΡΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π²ΡΠ²Π΅Π΄ΠΎΡ Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΈ HTTP ΠΌΠ΅ΡΡΠΈΠΊΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π·Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π° Π·Π° ΡΠ΅Π°ΠΊΡΠΈΡ, Π½ΠΎ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠΈ Π·Π° ΡΡΠ»ΡΠ³ΠΈ ΠΎΡΠΈΠ²Π°Ρ Π΄ΠΎΡΠΈ ΠΏΠΎ-Π΄Π°Π»Π΅Ρ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΊΠ°ΡΠΎ Prometheus, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΠΈΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΅ Π²Π°ΠΆΠ½Π° Π½Π΅ ΡΠ°ΠΌΠΎ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π° Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° (Π·Π° Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ), Π½ΠΎ ΠΈ ΠΏΡΠΈ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘ΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ
ΠΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ ΡΡΡΠΎ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ. Π ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° dotCloud ΡΠ΅Π»ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΏΡΠ΅Π· ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°Π½ΠΈΡΠΈ Π½Π° AZ (Π·ΠΎΠ½Π° Π½Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡ) ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡΡΠ°. Π‘ΠΏΠΎΠΌΠ½ΡΠΌ ΡΠΈ ΠΊΠΎΠ΄Π° Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ°Π²Π΅ΡΠ΅ Π½Π°Π΄ ΡΡΠΎ SQL Π·Π°ΡΠ²ΠΊΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° ΠΈ ΠΎΡΠ²Π°ΡΡΡΠ΅ Π½ΠΎΠ²Π° Π²ΡΡΠ·ΠΊΠ° ΠΊΡΠΌ SQL ΡΡΡΠ²ΡΡΠ° Π·Π° Π²ΡΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ°. ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎ, ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ, Π½ΠΎ Π² dotCloud Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ ΠΎΡΠ½Π΅ΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΡΠΊΠ° TCP Π²ΡΡΠ·ΠΊΠ° (ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ° SQL Π·Π°ΡΠ²ΠΊΠ°) ΠΎΡΠ½Π΅ΠΌΠ° Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΠΈΡ Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ Π΄Π°Π»ΠΈ Π²ΡΡΠ·ΠΊΠΈΡΠ΅ ΡΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ°. ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡΡ ΠΏΠΎΡΠΎΠΊ Π΅ ΡΡΡΠΈΡΡ: ΠΊΠ»ΠΈΠ΅Π½Ρ β ΠΌΠ΅Ρ β ΡΠ΅ΡΠ²ΠΈΡ
, Π½ΠΎ ΡΠ΅Π³Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π° Π½Π΅ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ Π²ΡΠ·Π»ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ β ΠΌΠ΅Ρ
Π΅ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ· (ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ).
Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΠΏΠΎ-ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ. ΠΠ°ΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Ρ ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΡΠ° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ²Π΅ΡΠ΅, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΠ°ΡΠΈΠΊ ΠΊΡΠΌ ΠΏΠΎ-Π±ΡΡΠ·ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ²Π΅, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΡΠ»ΠΎΡΡΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΡΡΡΠΎ. ΠΡΠ΅ΠΆΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° dotCloud ΡΠ°Π±ΠΎΡΠΈ ΠΈΠ·ΡΡΠ»ΠΎ Π½Π° EC2 Classic ΠΈ Π½Π΅ ΡΠΈΡΡΠΎΠ²Π° ΡΡΠ°ΡΠΈΠΊ (Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ΅ Π°ΠΊΠΎ Π½ΡΠΊΠΎΠΉ ΡΡΠΏΠ΅Π΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈ ΡΠ½ΠΈΡΡΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ°ΡΠΈΠΊ Π½Π° EC2, Π²ΠΈΠ΅ Π²Π΅ΡΠ΅ ΡΡΠ΅ ΠΈΠΌΠ°Π»ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ). ΠΠΎΠ΄Π΅ΡΠ½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠ΅ΡΡΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π·Π°ΡΠΈΡΠ°Π²Π°Ρ ΡΠ΅Π»ΠΈΡ Π½ΠΈ ΡΡΠ°ΡΠΈΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎ TLS ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅.
ΠΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ
ΠΠΎΠ±ΡΠ΅, ΠΎΠ±ΡΡΠ΄ΠΈΡ ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ Π·Π° ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° dotCloud?
Π‘Π°ΠΌΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ΅ ΡΡΡΡΠΎΠ΅ΡΠ΅ ΠΎΡ ΠΎΠΊΠΎΠ»ΠΎ ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΊΠΎΠΈ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈ, Π° Π½ΡΠΊΠΎΠΈ Π±ΡΡ Π° ΡΠΎΠ½ΠΎΠ²ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ Π° Ρ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ, Π½ΠΎ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ΅ Π½Π΅ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ Π° Π²ΡΡΠ·ΠΊΠΈ. ΠΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ Π²ΡΡΠΊΠ° ΡΡΠ»ΡΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Π½Π° Π°Π΄ΡΠ΅ΡΠΈΡΠ΅, ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅.
ΠΠ½ΠΎΠ³ΠΎ ΡΡΠ»ΡΠ³ΠΈ Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅, ΠΎΠΏΠΈΡΠ°Π½Π° ΠΏΠΎ-Π³ΠΎΡΠ΅. ΠΡΡΡΠ½ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ Π½Π° dotCloud ΡΠ° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° dotCloud. ΠΠΎ ΠΌΠ°Π»ΡΠΊ Π±ΡΠΎΠΉ ΡΡΠ»ΡΠ³ΠΈ ΠΎΡ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ (ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Ρ ΡΠ°Π·ΠΈ ΠΌΡΠ΅ΠΆΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅) ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅Ρ Π° ΠΎΡ Π½Π΅ΡΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ, Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° ΡΠ°Π·ΡΠΈΡΠ°Ρ Π½Π° ΡΠ΅Π±Π΅ ΡΠΈ, Π·Π° Π΄Π° ΡΠ°Π±ΠΎΡΡΡ - Π΄ΠΎΠ±ΡΠΈΡΡ ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΊΠΎΠΊΠΎΡΠΊΠ°ΡΠ° ΠΈ ΡΠΉΡΠ΅ΡΠΎ).
Π’Π΅Π·ΠΈ ΠΊΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΌΠΈΡΠΈΡΡΠ° ΡΡΠ»ΡΠ³ΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π±ΡΡ
Π° ΡΠ°Π·Π³ΡΡΠ½Π°ΡΠΈ ΡΡΠ΅Π· ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΡΡΠΎΠ²ΠΈ Π²ΡΠ·Π΅Π»Π°. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°: Π»ΠΈΠ½ΠΊΠ΅Ρ, ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΈ Π±Π΅Π³Π°Ρ. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΡΠ°Π²Π½ΠΈΡΠ΅ Ρ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΡΠΎΠ²Π° Π΅ ΠΊΠ°ΡΠΎ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° ΡΠ°Π²Π½ΠΈΠ½Π° Ρ docker run
Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Π΄Π΅Π»Π΅Π³ΠΈΡΠ°ΡΠ΅ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π½Π° Kubernetes. ΠΠΎΡΡΠ° Π΅ ΡΡ
ΠΎΠ΄Π΅Π½ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ
Π’Π΅Π·ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π±ΡΡ Π° ΡΠ°Π·ΠΊΡΠΈΡΠΈ ΠΏΠΎ ΠΏΡΠΎΡΡ ΠΈ Π³ΡΡΠ± Π½Π°ΡΠΈΠ½: YAML ΡΠ°ΠΉΠ» ΠΈΠ·Π±ΡΠΎΡΠ²Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΈ Π°Π΄ΡΠ΅ΡΠΈ; ΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΠΊΠΎΠΏΠΈΠ΅ ΠΎΡ ΡΠΎΠ·ΠΈ YAML ΡΠ°ΠΉΠ» Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅.
ΠΡ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, ΡΠΎΠΉ Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²ΡΠ½ΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° ΠΊΠ»ΡΡΠΎΠ²Π΅/ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ Zookeeper (Π½Π΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅, ΡΠ΅ etcd ΠΈΠ»ΠΈ Consul Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π° ΠΏΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅). ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, ΡΠΎΠ²Π° Π·Π°ΡΡΡΠ΄Π½ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ»ΡΠ³ΠΈ. ΠΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ YAML ΡΠ°ΠΉΠ» (ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅). ΠΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ!
ΠΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
ΠΌΠ΅ Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°ΠΌΠ΅ Π½ΠΎΠ²Π° ΡΡ
Π΅ΠΌΠ°, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°ΡΠ΅ Ρ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡ. ΠΠΌΠ΅ΡΡΠΎ Π°Π΄ΡΠ΅Ρ ΠΈ ΠΏΠΎΡΡ, ΡΠΎΠΉ ΡΡΡΠ±Π²Π° ΡΠ°ΠΌΠΎ Π΄Π° Π·Π½Π°Π΅ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΠΏΠΎΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΈ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ ΡΡΠ΅Π· localhost
. ΠΠΎΠΊΠ°Π»Π½ΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ°Π·ΠΈ Π²ΡΡΠ·ΠΊΠ° ΠΈ Ρ ΠΏΡΠ΅ΠΏΡΠ°ΡΠ° ΠΊΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈΡ ΡΡΡΠ²ΡΡ. Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° Π΄ΡΡΠ³Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈΠ»ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°ΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, ΡΡΡΠ±Π²Π° ΡΠ°ΠΌΠΎ Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡΠΎΠΊΡΠΈΡΠ°; ΠΈ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅.
(ΠΠ΅ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ° ΡΡΠ°ΡΠΈΠΊΡΡ Π² TLS Π²ΡΡΠ·ΠΊΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ Π΄ΡΡΠ³ ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡ Π½Π° ΠΏΡΠΈΠ΅ΠΌΠ°ΡΠ°ΡΠ° ΡΡΡΠ°Π½Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ TLS ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ Π±Π΅Π· ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ΅ΠΌΠ°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π° Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΌΠΎ Π½Π° localhost
. ΠΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ²Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ).
Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π°
ΠΠ· Π»ΠΈΡΠ½ΠΎ ΡΡΠΈΡΠ°ΠΌ SmartStack Π·Π° Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠ°ΡΠΎ Istio, Linkerd ΠΈ Consul Connect, Π·Π°ΡΠΎΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ»Π΅Π΄Π²Π°Ρ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΌΠΎΠ΄Π΅Π»:
- ΠΡΡΠ½Π΅ΡΠ΅ ΠΏΡΠΎΠΊΡΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π».
- ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ Ρ ΠΏΡΠΎΠΊΡΠΈΡΠΎ.
- ΠΠΎΠ½ΡΡΠΎΠ»Π½Π°ΡΠ° ΡΠ°Π²Π½ΠΈΠ½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ΡΡ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ.
- ... ΠΠ΅ΡΠ°Π»Π±Π°!
Π‘ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π° ΠΌΡΠ΅ΠΆΠ°
ΠΠΊΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΠΌΡΠ΅ΠΆΠ° Π΄Π½Π΅Ρ, Π±ΠΈΡ
ΠΌΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π²ΡΡΡΠ΅ΡΠ½Π° DNS Π·ΠΎΠ½Π°, ΠΊΠ°ΡΠΎ ΡΡΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΡΠ»ΡΠ³ΠΈ Ρ Π°Π΄ΡΠ΅ΡΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ 127.0.0.0/8
. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ HAProxy Π½Π° Π²ΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΏΡΠΈΠ΅ΠΌΠ°ΠΉΠΊΠΈ Π²ΡΡΠ·ΠΊΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π°Π΄ΡΠ΅Ρ Π½Π° ΡΡΠ»ΡΠ³Π° (Π² ΡΠ°Π·ΠΈ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ° 127.0.0.0/8
) ΠΈ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅/Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΊΡΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΡΠ΅ Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ²Π΅. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° HAProxy ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°
ΠΠΎ Π³ΠΎΠ»ΡΠΌΠ° ΡΡΠ΅ΠΏΠ΅Π½ ΡΠ°ΠΊΠ° ΡΠ°Π±ΠΎΡΠΈ Istio! ΠΠΎ Ρ Π½ΡΠΊΠΎΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ:
- Π£ΠΏΠΎΡΡΠ΅Π±ΠΈ
ΠΡΠ»Π½ΠΎΠΌΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΏΡΠ°ΡΠ΅Π½ΠΈΠΊΠ° Π²ΠΌΠ΅ΡΡΠΎ HAProxy. - Π‘ΡΡ ΡΠ°Π½ΡΠ²Π° Π±Π΅ΠΊΠ΅Π½Π΄ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΠ΅Π· Kubernetes API Π²ΠΌΠ΅ΡΡΠΎ etcd ΠΈΠ»ΠΈ Consul.
- Π£ΡΠ»ΡΠ³ΠΈΡΠ΅ ΡΠ° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π°Π΄ΡΠ΅ΡΠΈ Π²ΡΠ² Π²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ° (IP Π°Π΄ΡΠ΅ΡΠΈ Π½Π° Kubernetes Cluster) Π²ΠΌΠ΅ΡΡΠΎ 127.0.0.0/8.
- ΠΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Citadel) Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π²Π·Π°ΠΈΠΌΠ½ΠΎ TLS ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΡΡΠ²ΡΡΠΈΡΠ΅.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠ° Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ Π½Π° Π²Π΅ΡΠΈΠ³Π°ΡΠ°, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅, ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° Canary ΠΈ Π΄Ρ.
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π°Π±ΡΡΠ·ΠΎ Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅.
ΠΡΠ»Π½ΠΎΠΌΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΏΡΠ°ΡΠ΅Π½ΠΈΠΊΠ°
Envoy Proxy Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΎΡ Lyft [ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½Ρ Π½Π° Uber Π½Π° ΠΏΠ°Π·Π°ΡΠ° Π½Π° ΡΠ°ΠΊΡΠΈΡΠ° - ΠΏΡΠΈΠ±Π». ΠΏΠ»Π°ΡΠ½ΠΎ]. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½ΠΈ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡΠΈ (Π½Π°ΠΏΡ. HAProxy, Nginx, Traefik...), Π½ΠΎ Lyft Π½Π°ΠΏΠΈΡΠ° ΡΠ²ΠΎΡ, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅Ρ Π° ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π»ΠΈΠΏΡΠ²Π°Ρ Π° Π½Π° Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡΠΈ, ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΠΏΠΎ-ΡΠΌΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½ΠΎΠ², Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΡ.
Envoy ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ. ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ Ρ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΌΠΎΠ³Π° Π΄Π° Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΌ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ Envoy ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΌ ΠΈ ΠΏΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΌ Envoy Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ»Π΅Π΄ΠΈ Π½Π° ΠΎΠ±Π°ΠΆΠ΄Π°Π½ΠΈΡΡΠ° Π² ΠΊΠΎΠ΄Π°, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΡΡΠ°ΡΠΈΠΊ ΠΊΡΠΌ Envoy ΠΈ ΡΠΎΠΉ ΡΡΠ±ΠΈΡΠ° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° Π½Π°Ρ.
ΠΠΎ Envoy ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΡΠΎ ΡΠ°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ (ΡΠ°Π²Π½ΠΈΠ½Π° Π½Π° Π΄Π°Π½Π½ΠΈ) Π·Π° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Envoy Π²Π΅ΡΠ΅ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ Π·Π° ΡΠ°Π·ΠΈ ΡΡΠ»ΡΠ³Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° ΡΠ°Π²Π½ΠΈΠ½Π° (ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° ΡΠ°Π²Π½ΠΈΠ½Π°).
ΠΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΡΠ°ΠΌΠΎΠ»Π΅Ρ
ΠΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π°ΡΠ° ΡΠ°Π²Π½ΠΈΠ½Π° Istio ΡΠ°Π·ΡΠΈΡΠ° Π½Π° Kubernetes API. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° confd, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·ΡΠΈΡΠ° Π½Π° etcd ΠΈΠ»ΠΈ Consul Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ. Istio ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Kubernetes API Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠ΅ΡΡΡΡΠΈ Π½Π° Kubernetes.
ΠΠ΅ΠΆΠ΄Ρ ΡΠΎΠ²Π° ΠΈ ΡΠΎΠ³Π°Π²Π°: ΠΠΈΡΠ½ΠΎ Π½Π°ΠΌΠΈΡΠ°ΠΌ ΡΠΎΠ²Π° Π·Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ
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 load balancers, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½), Π·Π° Π΄Π° ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ΅ ΡΠ΅Π»Π΅Π²ΠΈΡΠ΅ 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). ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π°ΡΠ΅ΡΠ΅Π½ Π¦ΠΈΡΠ°Π΄Π΅Π»Π°.
ΠΠΌΠ° ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΠΈΠΊΡΠ΅Ρ, ΠΊΠΎΠΈΡΠΎ Envoy ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΈΡΠΊΠ° Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΠΈΡΠΊΠ°ΠΉΡΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΊΡΠΎΡΠΈ ΠΊΠ°ΡΠΎ Ρ Π΅Π΄ΡΡΠΈ, Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΠΈ Ρ.Π½... (Π½Π΅ ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°ΠΉΡΠ΅: ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ Mixer Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΈ Π΄ΠΎΡΠΈ Π΄Π° ΡΠ΅ ΡΡΠΈΠ½Π΅, Envoy ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠ΅ ΠΊΠ°ΡΠΎ ΠΏΡΠ»Π½ΠΎΠΌΠΎΡΠ½ΠΈΠΊ).
Π, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΌΠ΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡΠ°: Envoy ΡΡΠ±ΠΈΡΠ° ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅. Π Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, Π°ΠΊΠΎ Π΅Π΄Π½Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° API ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΏΡΠ΅Π· ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ A, B, C ΠΈ D, ΡΠΎΠ³Π°Π²Π° ΠΏΡΠΈ Π²Π»ΠΈΠ·Π°Π½Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎΡΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΡΠΌ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΠΈ ΡΠΎΠ·ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ΅Π· ΠΏΠΎΠ΄Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΌΠΈΠΊΡΠΎΡΡΠ»ΡΠ³ΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ»ΠΎΠ²Π΅Π½ΠΈ.Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡ ΠΈ Π΄Ρ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΊΡΠΏΠ΅ΡΠ΅
Istio ΠΈΠΌΠ° ΡΠ΅ΠΏΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ»ΠΎΠΆΠ΅Π½. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΠΎΠ²Π°, ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°ΡΠ°ΡΠ° ΠΌΡΠ΅ΠΆΠ°, ΠΊΠΎΡΡΠΎ ΠΎΠΏΠΈΡΠ°Ρ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ, Π΅ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ Π»Π΅ΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ. Π ΡΠ°ΠΊΠ°, ΠΈΠΌΠ° Π»ΠΈ ΡΠΌΠΈΡΡΠ» Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π° ΠΌΡΠ΅ΠΆΠ°?
ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΊΡΠΎΠΌΠ½ΠΈ Π½ΡΠΆΠ΄ΠΈ (Π½ΡΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ, ΠΏΡΠ΅ΠΊΡΡΠ²Π°Ρ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ½ΠΊΠΎΡΡΠΈ), ΡΠΎΠ³Π°Π²Π° ΠΌΠΈΡΠ»ΠΈΡΠ΅ ΠΈΠ΄Π²Π°Ρ Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠΎ Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Kubernetes, ΠΌΠΎΠΆΠ΅ Π΄ΠΎΡΠΈ Π΄Π° Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π°ΡΠΎΡΠΎ Kubernetes Π²Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ, ΡΠΎΠ³Π°Π²Π° βΠ·Π°ΠΊΡΠΏΡΠ²Π°Π½Π΅ΡΠΎβ Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π° ΠΌΡΠ΅ΠΆΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΡ Π²Π°ΡΠΈΠ°Π½Ρ. (Π’ΠΎΠ²Π° Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ βΠΊΡΠΏΡΠ²Π°Π½Π΅β, ΡΡΠΉ ΠΊΠ°ΡΠΎ Istio Π΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π° Π΄Π° Π³ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, Π²Π½Π΅Π΄ΡΠΈΠΌ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΠΌΠ΅.)
Π’ΡΡΠ±Π²Π° Π»ΠΈ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ° Istio, Linkerd ΠΈΠ»ΠΈ Consul Connect?
ΠΠΎΡΠ΅Π³Π° Π³ΠΎΠ²ΠΎΡΠΈΡ
ΠΌΠ΅ ΡΠ°ΠΌΠΎ Π·Π° Istio, Π½ΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΡΡ ΠΌΠ΅Ρ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°. ΠΠΎΠΏΡΠ»ΡΡΠ½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° -
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ?
Π§Π΅ΡΡΠ½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π½Π΅ Π·Π½Π°ΠΌ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π΅ ΡΠ΅ ΡΠΌΡΡΠ°ΠΌ Π·Π° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠ΅Π½ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΡ Π½Π° ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ. ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ
ΠΠ΄ΠΈΠ½ ΠΎΠ±Π΅ΡΠ°Π²Π°Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠ°ΡΠΎ
ΠΠ°Π±Π°Π²Π»ΡΠ²Π°Ρ
ΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ Ρ Istio ΠΈ SuperGloo ΠΈ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π΄Π° Π΄ΠΎΠ±Π°Π²Ρ Istio ΠΈΠ»ΠΈ Linkerd ΠΊΡΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΊΠ»ΡΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° SuperGloo ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ Π²ΡΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ°, ΡΠΎΠ΅ΡΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ΅ ΠΎΡ Π΅Π΄Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·Π½Π° ΠΌΡΠ΅ΠΆΠ° ΠΊΡΠΌ Π΄ΡΡΠ³Π° Π±Π΅Π· ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com