Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅
Π― ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ dotCloud, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΡΠΎΡΠ½Π΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°Ρ
ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π° ΡΡΡΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
. Π― ΠΎΠ±ΡΡΡΠ½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ ΠΏΡΠΈ Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈ Π·Π°ΠΏΡΡΠΊΠ΅, ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅ΡΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠΎΠΌΠΎΡΡ (ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ).
ΠΡΡΠΎΡΠΈΡ dotCloud
Π― ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π» ΠΎΠ± ΠΈΡΡΠΎΡΠΈΠΈ dotCloud ΠΈ Π²ΡΠ±ΠΎΡΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π½ΠΎ ΠΌΠ°Π»ΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π» ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. ΠΡΠ»ΠΈ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ³ΡΡΠΆΠ°ΡΡΡΡ Π² ΡΡΠ΅Π½ΠΈΠ΅
Π― ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠ°Π²Π»ΡΠ»ΡΡ ΡΡΠ°ΡΠΈΠΊ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ dotCloud. ΠΠ΅ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π·Π΄ΠΎΡΠΎΠ²ΠΎ (Ρ ΠΎΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π»Π° Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ!), Π½ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΊΠΎΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π·Π° ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΊΡΠΎΠΌΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π΅ΡΠ»ΠΈ ΠΈΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΡΡΠ΅ΠΉ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈΠ»ΠΈ ΠΊΡΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ: ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅Ρ. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ: ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΈΠ»ΠΈ ΠΊΡΠΏΠΈΡΡ.
ΠΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ° Π΄Π»Ρ hosted-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° dotCloud ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ HTTP ΠΈ TCP.
ΠΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ HTTP Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² Π½Π°Π³ΡΡΠ·ΠΊΠΈ
ΠΠ»ΠΈΠ΅Π½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΡΠΎΡΠΊΠ°ΠΌ HTTP ΡΠ΅ΡΠ΅Π· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ dotCloud. ΠΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ.
ΠΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ 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. ΠΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΡΡ ΡΠ΅ΡΠΊΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ) Π½ΡΠΆΠ΄Π°Π»ΠΈΡΡ Π² ΡΡΠΌ-ΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΌ, Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠ°ΠΌΠΈΡ ΡΠ΅Π±ΡΒ β ΡΡΠ°ΡΠ°Ρ Π΄ΠΎΠ±ΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΡΡΠΈΡΡ ΠΈ ΡΠΉΡΠ°).
ΠΡΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅, Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ Π±ΡΠ»ΠΈ ΡΠ°Π·Π²ΡΡΠ½ΡΡΡ ΠΏΡΡΡΠΌ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ·Π»Π°Ρ
. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ: ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ, ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΈ runner. ΠΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° Π·Π°ΠΏΡΡΠΊ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ 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! ΠΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΠ»ΠΈΡΠΈΡΠΌΠΈ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ
Envoy Proxy Π²ΠΌΠ΅ΡΡΠΎ 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) Π΄Π»Ρ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅ΡΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅ΡΠ° Envoy Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (control plane).
ΠΠ»ΠΎΡΠΊΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
Π ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ 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, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ), ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ 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 (mutual TLS). ΠΠ° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Citadel.
Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Mixer, ΠΊΠΎΡΠΎΡΡΠΉ Envoy ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, Π·Π°Π³ΡΡΠ·ΠΊΠ° Π±ΡΠΊΠ΅Π½Π΄Π° ΠΈ Ρ.Β Π΄β¦ (Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ: Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Mixer, ΠΈ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ»Π΅ΡΠΈΡ, Envoy ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΊΡΠΈ).
Π, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ ΠΎΠ±Π·ΠΎΡΠ½ΠΎΡΡΡ: Envoy ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡΠΈΠΊ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ. Π Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ API Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΡ A, B, C ΠΈ D, ΡΠΎ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½Π°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΊ Π·Π°ΠΏΡΠΎΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ΄Π·Π°ΠΏΡΠΎΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΈΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ Ρ.Β Π΄.
Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΊΡΠΏΠΈΡΡ
Π£ Istio ΡΠ΅ΠΏΡΡΠ°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΠΏΠΈΡΠ°Π» Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠ°ΠΊ, Π΅ΡΡΡ Π»ΠΈ ΡΠΌΡΡΠ» Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅Ρ?
ΠΡΠ»ΠΈ Ρ Π½Π°Ρ ΡΠΊΡΠΎΠΌΠ½ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ (Π½Π΅ Π½ΡΠΆΠ½Π° ΠΎΠ±Π·ΠΎΡΠ½ΠΎΡΡΡ, ΠΏΡΠ΅ΡΡΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΏΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ), ΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΌΡΡΠ»ΠΈ ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Kubernetes, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Kubernetes ΡΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ»ΡΠΆΠ± ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΠΎ Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ Β«ΠΏΠΎΠΊΡΠΏΠΊΠ°Β» ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ. (ΠΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Β«ΠΏΠΎΠΊΡΠΏΠΊΠ°Β», ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Istio ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½ΠΎ Π½Π°ΠΌ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅, Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌ).
Π§ΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ: Istio, Linkerd ΠΈΠ»ΠΈ Consul Connect?
ΠΠΎΠΊΠ° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ± Istio, Π½ΠΎ ΡΡΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅Ρ. ΠΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°Β β
Π§ΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ?
Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π½Π΅ Π·Π½Π°Ρ. Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π½Π΅ ΡΡΠΈΡΠ°Ρ ΡΠ΅Π±Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅ΡΠ°ΡΡΠΈΡ
ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ²Β β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²ΡΠΎΠ΄Π΅
Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ±Π°Π»ΠΎΠ²Π°Π»ΡΡ Ρ Istio ΠΈ SuperGloo, Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ Ρ
ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Istio ΠΈΠ»ΠΈ Linkerd Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SuperGloo, ΠΈ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΏΡΠ°Π²ΠΈΡΡΡ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡ-ΠΌΠ΅ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com