ΠšΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ, микросСрвиси ΠΈ сСрвисни ΠΌΡ€Π΅ΠΆΠΈ

На ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΊΡƒΠΏ статии ΠΎ сСрвисна ΠΌΡ€Π΅ΠΆΠ° (сСрвисна ΠΌΡ€Π΅ΠΆΠ°), Π° Π΅Π²Π΅ ΡƒΡˆΡ‚Π΅ Π΅Π΄Π½Π°. Π£Ρ€Π°! Но Π·ΠΎΡˆΡ‚ΠΎ? ΠŸΠΎΡ‚ΠΎΠ°, сакам Π΄Π° Π³ΠΎ ΠΈΠ·Ρ€Π°Π·Π°ΠΌ ΠΌΠΎΠ΅Ρ‚ΠΎ мислСњС Π΄Π΅ΠΊΠ° ќС бСшС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΎ Π°ΠΊΠΎ сСрвиснитС ΠΌΡ€Π΅ΠΆΠΈ сС појавија ΠΏΡ€Π΅Π΄ 10 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΏΡ€Π΅Π΄ ΠΏΠΎΡ˜Π°Π²Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΡΠΊΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Docker ΠΈ Kubernetes. НС Π²Π΅Π»Π°ΠΌ Π΄Π΅ΠΊΠ° ΠΌΠΎΡ˜Π°Ρ‚Π° Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π° ΠΈΠ»ΠΈ полоша ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅, Π½ΠΎ бидСјќи сСрвиснитС ΠΌΡ€Π΅ΠΆΠΈ сС ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ слоТСни ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΈ, ΠΏΠΎΠ²Π΅ΡœΠ΅ΠΊΡ€Π°Ρ‚Π½ΠΈΡ‚Π΅ Π³Π»Π΅Π΄ΠΈΡˆΡ‚Π° ќС ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΎ Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚.

ЌС Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° dotCloud, која бСшС ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° Π½Π° повСќС ΠΎΠ΄ сто микросСрвиси ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°ΡˆΠ΅ ΠΈΠ»Ρ˜Π°Π΄Π½ΠΈΡ†ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ЌС Π³ΠΈ објаснам ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΡ†ΠΈΡ‚Π΅ со ΠΊΠΎΠΈ сС соочивмС ΠΏΡ€ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡšΠ΅ ΠΈ Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅, ΠΈ ΠΊΠ°ΠΊΠΎ сСрвиснитС ΠΌΡ€Π΅ΠΆΠΈ ΠΌΠΎΠΆΠ΅ (ΠΈΠ»ΠΈ Π½Π΅) Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ˜Π° Π½Π° dotCloud

ΠŸΠΈΡˆΡƒΠ²Π°Π² Π·Π° ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° dotCloud ΠΈ Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π·Π° ΠΎΠ²Π°Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π½ΠΎ Π½Π΅ Π·Π±ΠΎΡ€ΡƒΠ²Π°Π² ΠΌΠ½ΠΎΠ³Ρƒ Π·Π° ΠΌΡ€Π΅ΠΆΠ½ΠΈΠΎΡ‚ слој. Ако Π½Π΅ сакатС Π΄Π° сС Π½ΡƒΡ€Π½Π΅Ρ‚Π΅ Π²ΠΎ Ρ‡ΠΈΡ‚Π°ΡšΠ΅Ρ‚ΠΎ послСдната ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° Π·Π° dotCloud, Π΅Π²Π΅ ја ΡΡƒΡˆΡ‚ΠΈΠ½Π°Ρ‚Π° Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ: Ρ‚ΠΎΠ° Π΅ PaaS ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°-ΠΊΠ°ΠΊΠΎ-услуга која ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Π°Ρ‚ ΡˆΠΈΡ€ΠΎΠΊ спСктар Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Java, PHP, Python...), со ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΡˆΠΈΡ€ΠΎΠΊ опсСг Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ услуги (MongoDB, MySQL, Redis...) ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Ρ‚Π΅ΠΊ ΠΊΠ°ΠΊΠΎ Heroku: Π³ΠΎ поставуватС Π²Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Ρ‚Π°Π° создава слики ΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΈ Π³ΠΈ распорСдува.

ЌС Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ΠΎΡ‚ бСшС насочСн ΠΊΠΎΠ½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° dotCloud. НС Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ бСшС особСно ΠΊΡƒΠ» (ΠΈΠ°ΠΊΠΎ систСмот Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ Π΄ΠΎΠ±Ρ€ΠΎ Π²ΠΎ своСто Π²Ρ€Π΅ΠΌΠ΅!), Ρ‚ΡƒΠΊΡƒ првСнствСно Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ со соврСмСни Π°Π»Π°Ρ‚ΠΊΠΈ Ρ‚Π°ΠΊΠ²ΠΈΠΎΡ‚ дизајн ΠΌΠΎΠΆΠ΅ лСсно Π΄Π° сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° Π·Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΎΠ΄ скромСн Ρ‚ΠΈΠΌ, Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ ΠΈΠΌ Ρ‚Ρ€Π΅Π±Π° Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π³ΠΎ насочат ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ΠΎΡ‚ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ ΠΊΡƒΠΏ Π½Π° микросСрвиси ΠΈΠ»ΠΈ Π΅Π΄Π΅Π½ ΠΊΡƒΠΏ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. На овој Π½Π°Ρ‡ΠΈΠ½, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ спорСдитС ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅: ΡˆΡ‚ΠΎ ќС сС случи Π°ΠΊΠΎ Ρ€Π°Π·Π²ΠΈΠ΅Ρ‚Π΅ сè сами ΠΈΠ»ΠΈ користитС постоСчка ΠΌΡ€Π΅ΠΆΠ° Π·Π° услуги. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Π΄Π΅Π½ ΠΈΠ·Π±ΠΎΡ€ Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ сами ΠΈΠ»ΠΈ Π΄Π° Π³ΠΎ ΠΊΡƒΠΏΠΈΡ‚Π΅.

Π ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ Π·Π° хостирани Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

АпликациитС Π½Π° dotCloud ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π³ΠΈ ΠΈΠ·Π»ΠΎΠΆΠ°Ρ‚ HTTP ΠΈ TCP ΠΊΡ€Π°Ρ˜Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ.

HTTP ΠΊΡ€Π°Ρ˜Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡ΠΊΠΈ Π΄ΠΎΠ΄Π°Π΄Π΅Π½ Π²ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° кластСрот Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π₯ΠΈΠΏΠ°Ρ‡Π΅. Ова Π΅ слично Π½Π° ΠΎΠ½Π° ΡˆΡ‚ΠΎ Π³ΠΎ ΠΏΡ€Π°Π²Π°Ρ‚ рСсурситС дСнСс ЦСлосно Π²ΠΎ Kubernetes ΠΈ load balancer ΠΊΠ°ΠΊΠΎ Π’Ρ€Π°Π΅Ρ„ΠΈΠΊ.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ сС ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°Π°Ρ‚ со HTTP ΠΊΡ€Π°Ρ˜Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΡ€Π΅ΠΊΡƒ соодвСтни Π΄ΠΎΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ΄ услов ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ Π΄Π° ΡƒΠΊΠ°ΠΆΡƒΠ²Π° Π½Π° балансСри Π½Π° ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ dotCloud. ΠΠΈΡˆΡ‚ΠΎ посСбно.

TCP ΠΊΡ€Π°Ρ˜Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠ²Ρ€Π·Π°Π½ со Π±Ρ€ΠΎΡ˜ Π½Π° ΠΏΠΎΡ€Ρ‚Π°, кој ΠΏΠΎΡ‚ΠΎΠ° сС прСнСсува Π΄ΠΎ ситС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Π²ΠΎ Ρ‚ΠΎΡ˜ оџак ΠΏΡ€Π΅ΠΊΡƒ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π°.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π°Ρ‚ со ΠΊΡ€Π°Ρ˜Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° TCP ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ соодвСтно ΠΈΠΌΠ΅ Π½Π° домаќин (Π½Π΅ΡˆΡ‚ΠΎ ΠΊΠ°ΠΊΠΎ gateway-X.dotcloud.com) ΠΈ Π±Ρ€ΠΎΡ˜ Π½Π° ΠΏΠΎΡ€Ρ‚Π°.

Ова ΠΈΠΌΠ΅ Π½Π° домаќин сС Ρ€Π΅ΡˆΠ°Π²Π° Π²ΠΎ кластСрот Π½Π° сСрвСри β€žnatsβ€œ (Π½Π΅ Π΅ ΠΏΠΎΠ²Ρ€Π·Π°Π½ со НАВБ), ΡˆΡ‚ΠΎ ќС Π³ΠΈ насочи Π΄ΠΎΡ˜Π΄ΠΎΠ²Π½ΠΈΡ‚Π΅ TCP ΠΊΠΎΠ½Π΅ΠΊΡ†ΠΈΠΈ Π΄ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ (ΠΈΠ»ΠΈ, Π²ΠΎ ΡΠ»ΡƒΡ‡Π°Ρ˜ Π½Π° услуги балансирани со ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅, Π΄ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ).

Ако стС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Π½ΠΈ со Kubernetes, ΠΎΠ²Π° Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ ќС Π²Π΅ потсСти Π½Π° Services NodePort.

НСмашС Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΈ услуги Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° dotCloud ClusterIP: Π—Π° Сдноставност, Π΄ΠΎ услугитС сС ΠΏΡ€ΠΈΡΡ‚Π°ΠΏΡƒΠ²Π°ΡˆΠ΅ Π½Π° ист Π½Π°Ρ‡ΠΈΠ½ ΠΈ ΠΎΠ΄ Π²Π½Π°Ρ‚Ρ€Π΅ ΠΈ ΠΎΠ΄ Π½Π°Π΄Π²ΠΎΡ€ ΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Π‘Γ¨ бСшС ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Сдноставно: ΠΏΡ€Π²ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° HTTP ΠΈ TCP Ρ€ΡƒΡ‚ΠΈΡ€Π°Ρ‡ΠΊΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠΈ Π±Π΅Π° Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ само Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ стотици Π»ΠΈΠ½ΠΈΠΈ Π½Π° Python сСкоја. Едноставни (Π±ΠΈ Ρ€Π΅ΠΊΠ»Π° Π½Π°ΠΈΠ²Π½ΠΈ) Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ ΠΊΠΎΠΈ сС ΡƒΡΠΎΠ²Ρ€ΡˆΡƒΠ²Π°Π° ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ€Π°ΡΡ‚Π΅ΡˆΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈ сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π±Π°Ρ€Π°ΡšΠ°.

НС бСшС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ ΠΎΠΏΡˆΠΈΡ€Π½ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° постоСчкиот ΠΊΠΎΠ΄. ОсобСно, Апликации со 12 Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈ ΠΌΠΎΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π΄Π° ја користи адрСсата Π΄ΠΎΠ±ΠΈΠ΅Π½Π° ΠΏΡ€Π΅ΠΊΡƒ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π°.

Како ΠΎΠ²Π° сС Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π° ΠΎΠ΄ ΠΌΠΎΠ΄Π΅Ρ€Π½Π°Ρ‚Π° сСрвисна ΠΌΡ€Π΅ΠΆΠ°?

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ видливост. Π’ΠΎΠΎΠΏΡˆΡ‚ΠΎ Π½Π΅ΠΌΠ°Π²ΠΌΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° Π·Π° TCP Ρ€ΡƒΡ‚ΠΈΡ€Π°Ρ‡ΠΊΠ°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ°. Кога станува Π·Π±ΠΎΡ€ Π·Π° Ρ€ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅ HTTP, ΠΏΠΎΠ΄ΠΎΡ†Π½Π΅ΠΆΠ½ΠΈΡ‚Π΅ Π²Π΅Ρ€Π·ΠΈΠΈ Π²ΠΎΠ²Π΅Π΄ΠΎΠ° Π΄Π΅Ρ‚Π°Π»Π½ΠΈ HTTP ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° со ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€, Π½ΠΎ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΡ‚Π΅ сСрвисни ΠΌΡ€Π΅ΠΆΠΈ ΠΎΠ΄Π°Ρ‚ ΡƒΡˆΡ‚Π΅ ΠΏΠΎΠ΄Π°Π»Π΅ΠΊΡƒ, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Ρ˜ΡœΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° со систСми Π·Π° ΡΠΎΠ±ΠΈΡ€Π°ΡšΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ Prometheus, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Видливоста Π΅ Π²Π°ΠΆΠ½Π° Π½Π΅ само ΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π° пСрспСктива (Π·Π° Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π²ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ), Ρ‚ΡƒΠΊΡƒ ΠΈ ΠΊΠΎΠ³Π° сС ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎ сино-Π·Π΅Π»Π΅Π½ΠΎ Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΈ Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠ°Π½Π°Ρ€ΠΈ.

Ефикасност Π½Π° Ρ€ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅ Π΅ исто Ρ‚Π°ΠΊΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½. Π’ΠΎ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π·Π° Ρ€ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅ dotCloud, Ρ†Π΅Π»ΠΈΠΎΡ‚ ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ ΠΌΠΎΡ€Π°ΡˆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π΅ Π½ΠΈΠ· кластСр Π½Π° посвСтСни Ρ€ΡƒΡ‚ΠΈΡ€Π°Ρ‡ΠΊΠΈ јазли. Ова Π·Π½Π°Ρ‡Π΅ΡˆΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½ΡƒΠ²Π°ΡšΠ΅ Π½Π° повСќС Π³Ρ€Π°Π½ΠΈΡ†ΠΈ AZ (Π·ΠΎΠ½Π° Π½Π° достапност) ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° латСнтноста. Π‘Π΅ сСќавам Π½Π° ΠΊΠΎΠ΄ Π·Π° смСна Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΡˆΡ‚ΠΎ ΠΏΡ€Π°Π²Π΅ΡˆΠ΅ Π½Π°Π΄ сто SQL Π±Π°Ρ€Π°ΡšΠ° ΠΏΠΎ страница ΠΈ ΠΎΡ‚Π²ΠΎΡ€Π°ΡˆΠ΅ Π½ΠΎΠ²Π° врска со SQL сСрвСрот Π·Π° сСкоС Π±Π°Ρ€Π°ΡšΠ΅. Кога Ρ€Π°Π±ΠΎΡ‚ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, страницата сС Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π° вСднаш, Π½ΠΎ Π²ΠΎ dotCloud ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ сС Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ сСкунди Π·Π° Π΄Π° сС Π²Ρ‡ΠΈΡ‚Π° бидСјќи сСкоја TCP ΠΊΠΎΠ½Π΅ΠΊΡ†ΠΈΡ˜Π° (ΠΈ послСдоватСлно SQL Π±Π°Ρ€Π°ΡšΠ΅) Ρ‚Ρ€Π°Π΅ дСсСтици милисСкунди. Π’ΠΎ овој ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΡΠ»ΡƒΡ‡Π°Ρ˜, ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΈΡ‚Π΅ врски Π³ΠΎ Ρ€Π΅ΡˆΠΈΡ˜Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅ сСрвисни ΠΌΡ€Π΅ΠΆΠΈ сС ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ Π²ΠΎ ΡΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ со Π²Π°ΠΊΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. ΠŸΡ€Π²ΠΎ, Ρ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π°Π°Ρ‚ Π΄Π°Π»ΠΈ врскитС сС насочуваат Π²ΠΎ ΠΈΠ·Π²ΠΎΡ€ΠΎΡ‚. Π›ΠΎΠ³ΠΈΡ‡ΠΊΠΈΠΎΡ‚ Ρ‚Π΅ΠΊ Π΅ ист: ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β†’ мСш β†’ сСрвис, Π½ΠΎ сСга ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π° Π½Π΅ Π½Π° ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ јазли, ΠΏΠ° врската ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β†’ мСш Π΅ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ Π±Ρ€Π· (микросСкунди намСсто милисСкунди).

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅ сСрвисни ΠΌΡ€Π΅ΠΆΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π°Ρ‚ ΠΏΠΎΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° Π±Π°Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅. Π‘ΠΎ слСдСњС Π½Π° Π·Π΄Ρ€Π°Π²Ρ˜Π΅Ρ‚ΠΎ Π½Π° позадинскитС систСми, Ρ‚ΠΈΠ΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° испратат повСќС ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ Π΄ΠΎ ΠΏΠΎΠ±Ρ€Π·ΠΈ Π·Π°Π΄Π½ΠΈ Π΄Π΅Π»ΠΎΠ²ΠΈ, ΡˆΡ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π° со ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ Π²ΠΊΡƒΠΏΠ½ΠΈ пСрформанси.

бСзбСдност ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΎ исто Ρ‚Π°ΠΊΠ°. Π Π΅ΡˆΠ΅Ρ‚ΠΊΠ°Ρ‚Π° Π·Π° Ρ€ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅ dotCloud цСлосно Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ Π½Π° EC2 Classic ΠΈ Π½Π΅ Π³ΠΎ ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡˆΠ΅ ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ΠΎΡ‚ (Π²Ρ€Π· основа Π½Π° прСтпоставката Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ нСкој успСС Π΄Π° стави Ρ‚Ρ€Π°Π³Π°Ρ‡ Π½Π° ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ΠΎΡ‚ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° EC2, вСќС стС Π±ΠΈΠ»Π΅ Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° нСволја). Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅ сСрвисни ΠΌΡ€Π΅ΠΆΠΈ транспарСнтно Π³ΠΎ ΡˆΡ‚ΠΈΡ‚Π°Ρ‚ Ρ†Π΅Π»ΠΈΠΎΡ‚ наш ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, со мСѓусСбна TLS Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΈ послСдоватСлно ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅.

Π ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ΠΎΡ‚ Π·Π° услуги Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°

Π”ΠΎΠ±Ρ€ΠΎ, Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€Π°Π²ΠΌΠ΅ Π·Π° ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ΠΎΡ‚ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅, Π½ΠΎ ΡˆΡ‚ΠΎ Π΅ со самата ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° dotCloud?

Π‘Π°ΠΌΠ°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° сС ΡΠΎΡΡ‚ΠΎΠ΅ΡˆΠ΅ ΠΎΠ΄ ΠΎΠΊΠΎΠ»Ρƒ стотина микросСрвиси ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π½ΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НСкои Π³ΠΈ ΠΏΡ€ΠΈΡ„Π°Ρ‚ΠΈΡ˜Π° Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈ, Π° Π½Π΅ΠΊΠΎΠΈ Π±Π΅Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ ΠΊΠΎΠΈ сС ΠΏΠΎΠ²Ρ€Π·Π°Π° со Π΄Ρ€ΡƒΠ³ΠΈ услуги, Π½ΠΎ самитС Π½Π΅ ΠΏΡ€ΠΈΡ„Π°ΡœΠ°Π° врски. Π’ΠΎ сСкој ΡΠ»ΡƒΡ‡Π°Ρ˜, сСкоја услуга ΠΌΠΎΡ€Π° Π΄Π° Π³ΠΈ Π·Π½Π°Π΅ ΠΊΡ€Π°Ρ˜Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° адрСситС Π½Π° ΠΊΠΎΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π΅.

ΠœΠ½ΠΎΠ³Ρƒ услуги Π½Π° високо Π½ΠΈΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ја користат ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π·Π° Π½Π°ΡΠΎΡ‡ΡƒΠ²Π°ΡšΠ΅ опишана ΠΏΠΎΠ³ΠΎΡ€Π΅. Π’ΡΡƒΡˆΠ½ΠΎΡΡ‚, ΠΌΠ½ΠΎΠ³Ρƒ ΠΎΠ΄ повСќС ΠΎΠ΄ стотина микросСрвиси Π½Π° dotCloud сС распорСдСни ΠΊΠ°ΠΊΠΎ Ρ€Π΅Π΄ΠΎΠ²Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° самата ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° dotCloud. Но, Π½Π° ΠΌΠ°Π» Π±Ρ€ΠΎΡ˜ услуги Π½Π° ниско Π½ΠΈΠ²ΠΎ (особСно ΠΎΠ½ΠΈΠ΅ ΡˆΡ‚ΠΎ ја спровСдуваат ΠΎΠ²Π°Π° ΠΌΡ€Π΅ΠΆΠ° Π·Π° Π½Π°ΡΠΎΡ‡ΡƒΠ²Π°ΡšΠ΅) ΠΈΠΌ Ρ‚Ρ€Π΅Π±Π°ΡˆΠ΅ Π½Π΅ΡˆΡ‚ΠΎ поСдноставно, со ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ зависности (бидСјќи Π½Π΅ ΠΌΠΎΠΆΠ΅Π° Π΄Π° зависат ΠΎΠ΄ сСбС Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ - стариот Π΄ΠΎΠ±Π°Ρ€ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со пилСшко ΠΈ Ρ˜Π°Ρ˜Ρ†Π°).

ОвиС услуги Π½Π° ниско Π½ΠΈΠ²ΠΎ, ΠΊΠ»ΡƒΡ‡Π½ΠΈ Π·Π° ΠΌΠΈΡΠΈΡ˜Π°Ρ‚Π°, Π±Π΅Π° распорСдСни со ΠΏΡƒΡˆΡ‚Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΊΠ»ΡƒΡ‡Π½ΠΈ јазли. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, стандарднитС платформски услуги Π½Π΅ Π±Π΅Π° користСни: ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°Ρ‡, распорСдувач ΠΈ Ρ‚Ρ€ΠΊΠ°Ρ‡. Ако сакатС Π΄Π° сС спорСдитС со ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ Π·Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ, Ρ‚ΠΎΠ° Π΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°Ρ‚Π΅ со ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ Π°Π²ΠΈΠΎΠ½ docker run Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° Ρ˜Π°Π·Π»ΠΈΡ‚Π΅, намСсто Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΄Π° сС Π΄Π΅Π»Π΅Π³ΠΈΡ€Π° Π½Π° Kubernetes. ΠŸΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π΅ сличСн ΠΏΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ статични ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (ΠΏΠΎΠ΄ΠΎΠ²ΠΈ), ΡˆΡ‚ΠΎ Π³ΠΎ користи kubeadm ΠΈΠ»ΠΈ bootkube ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΈΠ³Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° самостоСн кластСр.

ОвиС услуги Π±Π΅Π° ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° СдноставСн ΠΈ Π³Ρ€ΡƒΠ± Π½Π°Ρ‡ΠΈΠ½: Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° YAML Π³ΠΈ Π½Π°Π²Π΅Π΄Π΅ Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ имиња ΠΈ адрСси; ΠΈ сСкој ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΡ€Π°ΡˆΠ΅ Π΄Π° Π·Π΅ΠΌΠ΅ копија ΠΎΠ΄ ΠΎΠ²Π°Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° YAML Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅.

Од Π΅Π΄Π½Π° страна, Ρ‚ΠΎΡ˜ Π΅ исклучитСлно сигурСн бидСјќи Π½Π΅ Π±Π°Ρ€Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° ΠΎΠ΄ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½Π° ΠΏΡ€ΠΎΠ΄Π°Π²Π½ΠΈΡ†Π° Π·Π° ΠΊΠ»ΡƒΡ‡Π΅Π²ΠΈ/врСдности ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ Zookeeper (Π·Π°ΠΏΠΎΠΌΠ½Π΅Ρ‚Π΅, ΠΈΡ‚Π½. ΠΈΠ»ΠΈ ΠšΠΎΠ½Π·ΡƒΠ» Π½Π΅ ΠΏΠΎΡΡ‚ΠΎΠ΅ΡˆΠ΅ Π²ΠΎ Ρ‚ΠΎΠ° Π²Ρ€Π΅ΠΌΠ΅). Од Π΄Ρ€ΡƒΠ³Π° страна, Π³ΠΎ ΠΎΡ‚Π΅ΠΆΠ½ΡƒΠ²Π°ΡˆΠ΅ ΠΏΡ€Π΅ΠΌΠ΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° услугитС. БСкој ΠΏΠ°Ρ‚ ΠΊΠΎΠ³Π° ќС сС прСмСсти, ситС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°Π°Ρ‚ Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° YAML (ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ сС рСстартира). НС ΠΌΠ½ΠΎΠ³Ρƒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ!

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, ΠΏΠΎΡ‡Π½Π°Π²ΠΌΠ΅ Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π½ΠΎΠ²Π° шСма, ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ сСкој ΠΊΠ»ΠΈΠ΅Π½Ρ‚ сС ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡˆΠ΅ со Π»ΠΎΠΊΠ°Π»Π΅Π½ прокси-сСрвСр. НамСсто адрСса ΠΈ ΠΏΠΎΡ€Ρ‚Π°, Ρ‚Ρ€Π΅Π±Π° само Π΄Π° Π³ΠΎ Π·Π½Π°Π΅ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΏΠΎΡ€Ρ‚Π°Ρ‚Π° Π½Π° услугата ΠΈ Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π΅ ΠΏΡ€Π΅ΠΊΡƒ localhost. Π›ΠΎΠΊΠ°Π»Π½ΠΈΠΎΡ‚ прокси сС справува со ΠΎΠ²Π°Π° врска ΠΈ ја ΠΏΡ€Π΅ΠΏΡ€Π°ΡœΠ° Π΄ΠΎ вистинскиот сСрвСр. Π‘Π΅Π³Π°, ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΌΠ΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π·Π°Π΄Π½ΠΈΠ½Π°Ρ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³Π° машина ΠΈΠ»ΠΈ ΡΠΊΠ°Π»ΠΈΡ€Π°ΡšΠ΅, намСсто Π΄Π° Π³ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ ситС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Ρ‚Ρ€Π΅Π±Π° само Π΄Π° Π³ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ ситС ΠΎΠ²ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΈ прокси; ΠΈ повСќС Π½Π΅ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Ρ€Π΅ΡΡ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΡšΠ΅.

(Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, бСшС ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ Π΄Π° сС инкапсулира ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ΠΎΡ‚ Π²ΠΎ TLS ΠΊΠΎΠ½Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ Π΄Π° сС стави Π΄Ρ€ΡƒΠ³ прокси-сСрвСр Π½Π° ΠΏΡ€ΠΈΠΌΠ°Ρ‡ΠΊΠ°Ρ‚Π° страна, ΠΊΠ°ΠΊΠΎ ΠΈ Π΄Π° сС ΠΏΠΎΡ‚Π²Ρ€Π΄Π°Ρ‚ TLS сСртификатитС Π±Π΅Π· учСство Π½Π° услугата ΠΏΡ€ΠΈΠΌΠ°Ρ‡, која Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π° Π΄Π° ΠΏΡ€ΠΈΡ„Π°ΡœΠ° врски само Π½Π° localhost. ПовСќС Π·Π° ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΎΡ†Π½Π°).

Ова Π΅ ΠΌΠ½ΠΎΠ³Ρƒ слично Π½Π° SmartStack ΠΎΠ΄ 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.
  • Има Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (Π¦ΠΈΡ‚Π°Π΄Π΅Π»Π°) Π·Π° додавањС Π²Π·Π°Π΅ΠΌΠ½Π° TLS Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ ΠΈ сСрвСритС.
  • ΠŸΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ΠΏΡ€Π΅ΠΊΠΈΠ½ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ»ΠΎΡ‚ΠΎ, дистрибуирано слСдСњС, Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠ°Π½Π°Ρ€ΠΈ ΠΈΡ‚Π½.

АјдС Π±Ρ€Π·ΠΎ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅.

Полномошник Π½Π° ΠΏΡ€Π°Ρ‚Π΅Π½ΠΈΠΊ

Envoy Proxy Π³ΠΎ напиша Lyft [ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΡ‚ Π½Π° Uber Π½Π° такси ΠΏΠ°Π·Π°Ρ€ΠΎΡ‚ - ΠΏΡ€ΠΈΠ±Π». Π»Π΅Π½Ρ‚Π°]. Π‘Π»ΠΈΡ‡Π½ΠΎ Π΅ Π½Π° ΠΌΠ½ΠΎΠ³Ρƒ Π½Π°Ρ‡ΠΈΠ½ΠΈ со Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ прокси (Π½Π° ΠΏΡ€. HAProxy, Nginx, Traefik...), Π½ΠΎ Lyft Π³ΠΈ напиша Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ ΠΈΠΌ Ρ‚Ρ€Π΅Π±Π°Π° карактСристики ΡˆΡ‚ΠΎ ΠΈΠΌ нСдостигаа Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ прокси, ΠΈ сС Ρ‡ΠΈΠ½Π΅ΡˆΠ΅ ΠΏΠΎΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΎ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½ΠΎΠ² намСсто Π΄Π° сС ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈ ΠΏΠΎΡΡ‚ΠΎΡ˜Π½ΠΈΠΎΡ‚.

ΠŸΡ€Π°Ρ‚Π΅Π½ΠΈΠΊΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡ˜Π½ΠΎ. Ако ΠΈΠΌΠ°ΠΌ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° услуга ΡˆΡ‚ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π΅ со Π΄Ρ€ΡƒΠ³ΠΈ услуги, ΠΌΠΎΠΆΠ°ΠΌ Π΄Π° ја ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌ Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π΅ со Envoy, Π° ΠΏΠΎΡ‚ΠΎΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡ΠΊΠΈ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌ ΠΈ Ρ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌ Envoy со Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ услуги, ΠΏΡ€ΠΈΡ‚ΠΎΠ° добивајќи ΠΌΠ½ΠΎΠ³Ρƒ ΠΎΠ΄Π»ΠΈΡ‡Π½ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ функционалности, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ видливост. НамСсто приспособСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° со ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈΠ»ΠΈ Π²Π±Ρ€ΠΈΠ·Π³ΡƒΠ²Π°ΡšΠ΅ Ρ‚Ρ€Π°Π³ΠΈ ΠΎΠ΄ ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚, Π½ΠΈΠ΅ ΠΈΡΠΏΡ€Π°ΡœΠ°ΠΌΠ΅ ΡΠΎΠΎΠ±Ρ€Π°ΡœΠ°Ρ˜ Π΄ΠΎ Envoy ΠΈ Ρ‚ΠΎΡ˜ собира ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° Π·Π° нас.

Но, Π•Π½Π²ΠΎΡ˜ исто Ρ‚Π°ΠΊΠ° Π΅ способСн Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ‡Π½Π° Ρ€Π°ΠΌΠ½ΠΈΠ½Π° (Ρ€Π°ΠΌΠ½ΠΈΠ½Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ) Π·Π° сСрвисната ΠΌΡ€Π΅ΠΆΠ°. Ова Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° Envoy сСга Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Π·Π° ΠΎΠ²Π°Π° услуга ΠΌΡ€Π΅ΠΆΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ Π°Π²ΠΈΠΎΠ½ (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ€Π°ΠΌΠ½ΠΈΠ½Π°).

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ Π°Π²ΠΈΠΎΠ½

Π—Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° Ρ€Π°ΠΌΠ½ΠΈΠ½Π°, Istio сС ΠΏΠΎΡ‚ΠΏΠΈΡ€Π° Π½Π° Kubernetes API. Ова Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ ΠΎΠ΄ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° confd, кој сС ΠΏΠΎΡ‚ΠΏΠΈΡ€Π° Π½Π° etcd ΠΈΠ»ΠΈ Consul Π·Π° Π΄Π° Π³ΠΎ ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° мноТСството ΠΊΠ»ΡƒΡ‡Π΅Π²ΠΈ Π²ΠΎ ΠΏΡ€ΠΎΠ΄Π°Π²Π½ΠΈΡ†Π°Ρ‚Π° Π·Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Istio Π³ΠΎ користи Kubernetes API Π·Π° Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° Π·Π±ΠΈΡ€ Π½Π° рСсурси Π½Π° 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-прокси ΠΈ сС ΠΈΡΠΏΡ€Π°ΡœΠ° Π΄ΠΎ Π·Π°Π΄Π½ΠΈΠΎΡ‚ Π΄Π΅Π» Π½Π° Ρ‚ΠΎΡ˜ прокси. Ако Π²Π΅ интСрСсираат Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈΡ‚Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ, 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). ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° Π¦ΠΈΡ‚Π°Π΄Π΅Π»Π°Ρ‚Π°.

ΠŸΠΎΡΡ‚ΠΎΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠœΠΈΠΊΡΠ΅Ρ€, ΡˆΡ‚ΠΎ ΠŸΡ€Π°Ρ‚Π΅Π½ΠΈΠΊΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΠ±Π°Ρ€Π° ΠΎΠ΄ сСкоја ΠΏΠΎΠ±Π°Ρ€Π°Ρ˜Ρ‚Π΅ Π΄Π° донСсСтС посСбна ΠΎΠ΄Π»ΡƒΠΊΠ° Π·Π° Ρ‚ΠΎΠ° Π±Π°Ρ€Π°ΡšΠ΅ Π²ΠΎ зависност ΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС заглавија, ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π·Π°Π΄Π½ΠΈΠΎΡ‚ Π΄Π΅Π», ΠΈΡ‚Π½... (Π½Π΅ Π³Ρ€ΠΈΠΆΠ΅Ρ‚Π΅ сС: ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Mixer, ΠΏΠ° Π΄ΡƒΡ€ΠΈ ΠΈ Π°ΠΊΠΎ сС ΡƒΡ€Π½Π΅, Envoy ќС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠ°Ρ€ΠΈΡ‡Π½Π° ΠΊΠ°Π·Π½Π° ΠΊΠ°ΠΊΠΎ полномошник) .

И, сС Ρ€Π°Π·Π±ΠΈΡ€Π°, ја спомСнавмС видливоста: Envoy собира ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π° Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° дистрибуирано слСдСњС. Π’ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° микроуслуги, Π°ΠΊΠΎ Π΅Π΄Π½ΠΎ Π±Π°Ρ€Π°ΡšΠ΅ Π·Π° API ΠΌΠΎΡ€Π° Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π΅ Π½ΠΈΠ· микросСрвиситС A, B, C ΠΈ D, Ρ‚ΠΎΠ³Π°Ρˆ ΠΏΠΎ Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ, дистрибуираното слСдСњС ќС Π΄ΠΎΠ΄Π°Π΄Π΅ СдинствСн ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ ΠΈ ќС Π³ΠΎ складира овој ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅ΠΊΡƒ ΠΏΠΎΠ΄Π±Π°Ρ€Π°ΡšΠ° Π½Π° ситС ΠΎΠ²ΠΈΠ΅ микросСрвиси, ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°Ρ˜ΡœΠΈ ситС ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π΄Π° сС Ρ„Π°Ρ‚Π°Ρ‚.ΠΎΠ΄Π»ΠΎΠΆΡƒΠ²Π°ΡšΠ° ΠΈΡ‚Π½.

Π Π°Π·Π²ΠΈΡ˜Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΊΡƒΠΏΠ΅Ρ‚Π΅

Π˜ΡΡ‚ΠΈΠΎ ΠΈΠΌΠ° Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° комплСксСн. Π‘ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎ Π½Π° Ρ‚ΠΎΠ°, ΠΈΠ·Π³Ρ€Π°Π΄Π±Π°Ρ‚Π° Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π·Π° Π½Π°ΡΠΎΡ‡ΡƒΠ²Π°ΡšΠ΅ ΡˆΡ‚ΠΎ ја опишав Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° овој пост Π΅ Ρ€Π΅Π»Π°Ρ‚ΠΈΠ²Π½ΠΎ Сдноставна со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° постоСчки Π°Π»Π°Ρ‚ΠΊΠΈ. Π—Π½Π°Ρ‡ΠΈ, Π΄Π°Π»ΠΈ ΠΈΠΌΠ° смисла намСсто Ρ‚ΠΎΠ° Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ сопствСна сСрвисна ΠΌΡ€Π΅ΠΆΠ°?

Ако ΠΈΠΌΠ°ΠΌΠ΅ скромни ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈ (Π½Π΅ Π½ΠΈ Ρ‚Ρ€Π΅Π±Π° видливост, ΠΏΡ€Π΅ΠΊΠΈΠ½ΡƒΠ²Π°Ρ‡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ суптилности), Ρ‚ΠΎΠ³Π°Ρˆ размислувамС Π΄Π° Ρ€Π°Π·Π²ΠΈΠ΅ΠΌΠ΅ сопствСна Π°Π»Π°Ρ‚ΠΊΠ°. Но, Π°ΠΊΠΎ користимС Kubernetes, Ρ‚ΠΎΡ˜ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ бидСјќи Kubernetes вСќС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° основни Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Π½Π° услуги ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅.

Но, Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½Π°ΠΏΡ€Π΅Π΄Π½ΠΈ Π±Π°Ρ€Π°ΡšΠ°, Ρ‚ΠΎΠ³Π°Ρˆ β€žΠΊΡƒΠΏΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎβ€œ Π½Π° сСрвисната ΠΌΡ€Π΅ΠΆΠ° сС Ρ‡ΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π° ΠΎΠΏΡ†ΠΈΡ˜Π°. (Ова Π½Π΅ Π΅ сСкогаш β€žΠΊΡƒΠΏΡƒΠ²Π°ΡšΠ΅β€œ бидСјќи Istio Π΅ со ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π½ΠΎ сСпак Ρ‚Ρ€Π΅Π±Π° Π΄Π° инвСстирамС инТСнСрско Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Π΄Π° Π³ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌΠ΅, распорСдимС ΠΈ ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΠΌΠ΅ со Π½Π΅Π³ΠΎ.)

Π”Π°Π»ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π°ΠΌ Istio, Linkerd ΠΈΠ»ΠΈ Consul Connect?

ДосСга Π·Π±ΠΎΡ€ΡƒΠ²Π°Π²ΠΌΠ΅ само Π·Π° Π˜ΡΡ‚ΠΈΠΎ, Π½ΠΎ ΠΎΠ²Π° Π½Π΅ Π΅ СдинствСната сСрвисна ΠΌΡ€Π΅ΠΆΠ°. ΠŸΠΎΠΏΡƒΠ»Π°Ρ€Π½Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° - Π›ΠΈΠ½ΠΊΠ΅Ρ€Π΄, ΠΈ ΠΈΠΌΠ° повСќС ΠšΠΎΠ½Π·ΡƒΠ» ΠŸΠΎΠ²Ρ€Π·Π΅Ρ‚Π΅.

Π¨Ρ‚ΠΎ Π΄Π° ΠΎΠ΄Π±Π΅Ρ€Π΅Ρˆ?

Π˜ΡΠΊΡ€Π΅Π½ΠΎ, Π½Π΅ Π·Π½Π°ΠΌ. Π’ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ сС смСтам сСбСси Π·Π° Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ‚Π΅Π½ Π΄Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π°ΠΌ Π½Π° ΠΎΠ²Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅. Има Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ интСрСсСн статии со спорСдба Π½Π° ΠΎΠ²ΠΈΠ΅ Π°Π»Π°Ρ‚ΠΊΠΈ ΠΈ Π΄ΡƒΡ€ΠΈ ΠΎΠ΄Ρ€Π΅Π΄Π½ΠΈΡ†ΠΈ.

Π•Π΄Π΅Π½ Π²Π΅Ρ‚ΡƒΠ²Π°Ρ‡ΠΊΠΈ пристап Π΅ Π΄Π° сС користи Π°Π»Π°Ρ‚ΠΊΠ° ΠΊΠ°ΠΊΠΎ Π‘ΡƒΠΏΠ΅Ρ€Π“Π»Ρƒ. Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° слој Π½Π° Π°ΠΏΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° Π·Π° Π΄Π° Π³ΠΈ поСдностави ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈ API-ΠΈΡ‚Π΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΠ΄ сСрвиснитС ΠΌΡ€Π΅ΠΆΠΈ. НамСсто Π΄Π° Π³ΠΈ ΡƒΡ‡ΠΈΠΌΠ΅ спСцифичнитС (ΠΈ, спорСд ΠΌΠΎΠ΅ мислСњС, Ρ€Π΅Π»Π°Ρ‚ΠΈΠ²Π½ΠΎ слоТСни) API-ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ сСрвисни ΠΌΡ€Π΅ΠΆΠΈ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ користимС поСдноставнитС конструкции Π½Π° SuperGloo - ΠΈ лСсно Π΄Π° сС ΠΏΡ€Π΅Ρ„Ρ€Π»Π°ΠΌΠ΅ ΠΎΠ΄ Π΅Π΄Π΅Π½ Π½Π° Π΄Ρ€ΡƒΠ³, ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ срСдСн конфигурациски Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ кој ΠΎΠΏΠΈΡˆΡƒΠ²Π° HTTP ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΈ ΠΈ ΠΏΠΎΠ·Π°Π΄ΠΈΠ½ΠΈ способни Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° вистинската ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° Π·Π° Nginx, HAProxy, Traefik, Apache...

ΠœΠ°Π»ΠΊΡƒ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Π² со Istio ΠΈ SuperGloo, Π° Π²ΠΎ слСдната ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° сакам Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ Istio ΠΈΠ»ΠΈ Linkerd Π½Π° постоСчки кластСр ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ SuperGloo, ΠΈ ΠΊΠ°ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ ја Π·Π°Π²Ρ€ΡˆΡƒΠ²Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°, односно Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π° Π΄Π° сС ΠΏΡ€Π΅Ρ„Ρ€Π»ΠΈΡ‚Π΅ ΠΎΠ΄ Π΅Π΄Π½Π° сСрвисна ΠΌΡ€Π΅ΠΆΠ° Π²ΠΎ Π΄Ρ€ΡƒΠ³Π° Π±Π΅Π· ΠΏΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€