เบ•เบนเป‰เบšเบฑเบ™เบˆเบธ, microservices เปเบฅเบฐเบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™

เปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ” เบŠเปเปˆ เบšเบปเบ”เบ„เบงเบฒเบก ะพ เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ (เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™), เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบญเบฑเบ™เบญเบทเปˆเบ™. เป‚เบซเป‰เบ! เปเบ•เปˆเป€เบ›เบฑเบ™เบซเบเบฑเบ‡? เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบตเบเบงเปˆเบฒเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ›เบฒเบเบปเบ” 10 เบ›เบตเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบกเบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡เป€เบงเบ—เบตเบšเบฑเบ™เบˆเบธเป€เบŠเบฑเปˆเบ™ Docker เปเบฅเบฐ Kubernetes. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบกเปˆเบ™เบ”เบตเบเบงเปˆเบฒเบซเบผเบทเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเบ„เบปเบ™เบญเบทเปˆเบ™, เปเบ•เปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบกเปˆเบ™เบชเบฑเบ”เบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบชเบฑเบšเบชเบปเบ™, เบ—เบฑเบ”เบชเบฐเบ™เบฐเบซเบผเบฒเบเบˆเบธเบ”เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰เบ”เบตเบ‚เบถเป‰เบ™.

เบ‚เป‰เบญเบเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก dotCloud, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบฎเป‰เบญเบ microservices เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบซเบฅเบฒเบเบžเบฑเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบšเบฑเบ™เบˆเบธ. เบ‚เป‰เบญเบเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบชเบดเปˆเบ‡เบ—เป‰เบฒเบ—เบฒเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเป€เบŠเบตเบ™เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเป€เบ›เบตเบ”เบ•เบปเบงเบกเบฑเบ™, เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบชเบฒเบกเบฒเบ” (เบซเบผเบทเบšเปเปˆเบชเบฒเบกเบฒเบ”) เบŠเปˆเบงเบเป„เบ”เป‰.

เบ›เบฐเบซเบงเบฑเบ”เบ‚เบญเบ‡ dotCloud

เบ‚เป‰เบญเบเป„เบ”เป‰เบ‚เบฝเบ™เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเบซเบงเบฑเบ”เบ‚เบญเบ‡ dotCloud เปเบฅเบฐเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบตเบ™เบตเป‰, เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบŠเบฑเป‰เบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบญเปˆเบฒเบ™โ€‹ เบšเบปเบ”เบ„เบงเบฒเบกเบชเบธเบ”เบ—เป‰เบฒเบ เบเปˆเบฝเบงเบเบฑเบš dotCloud, เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เปเป‰เบชเบฐเบซเบผเบธเบšเป‚เบ”เบเบซเบเปเป‰: เบกเบฑเบ™เป€เบ›เบฑเบ™ PaaS platform-as-a-service เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบซเบฅเบฒเบเบซเบฅเบฒเบ (Java, PHP, Python ...), เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบเป‰เบงเบฒเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ (MongoDB, MySQL, Redis ... ) เปเบฅเบฐเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป€เบŠเบฑเปˆเบ™ Heroku: เบ—เปˆเบฒเบ™เบญเบฑเบšเป‚เบซเบฅเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบชเปˆเป€เบงเบ—เบต, เบกเบฑเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™.

เบ‚เป‰เบญเบเบˆเบฐเบšเบญเบเป€เบˆเบปเป‰เบฒเบงเปˆเบฒเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ–เบทเบเบ™เปเบฒเป„เบ›เบซเบฒเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก dotCloud เปเบ™เบงเปƒเบ”. เบšเปเปˆเปเบกเปˆเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบขเบฑเบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบฅเบฐเบšเบปเบšเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบตเบชเปเบฒเบฅเบฑเบšเป€เบงเบฅเบฒเบ‚เบญเบ‡เบกเบฑเบ™!), เปเบ•เปˆเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเป€เบŠเบฑเปˆเบ™เบเบฒเบ™เบญเบญเบเปเบšเบšเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเปƒเบ™เป€เบงเบฅเบฒเบชเบฑเป‰เบ™เป†เป‚เบ”เบเบ—เบตเบกเบ‡เบฒเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบธเปˆเบก. เบ‚เบญเบ‡ microservices เบซเบผเบทเบŠเปเปˆเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฝเบšเบ—เบฝเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เปˆเบฒเบ‡เป†: เบˆเบฐเป€เบเบตเบ”เบซเบเบฑเบ‡เบ‚เบถเป‰เบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบซเบผเบทเปƒเบŠเป‰เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡เบซเบผเบทเบŠเบทเป‰เบกเบฑเบ™.

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบš

เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบ™ dotCloud เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เป€เบœเบตเบเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ” HTTP เปเบฅเบฐ TCP.

เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ” HTTP เป€เบžเบตเปˆเบกเปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบเปƒเบชเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบธเปˆเบก load balancer Hipache. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบฎเบฑเบ”เปƒเบ™เบกเบทเป‰เบ™เบตเป‰ Ingress เปƒเบ™ Kubernetes เปเบฅเบฐเบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เป€เบŠเบฑเปˆเบ™ Traefik.

เบฅเบนเบเบ„เป‰เบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ” HTTP เบœเปˆเบฒเบ™เป‚เบ”เป€เบกเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบงเปˆเบฒเบŠเบทเปˆเป‚เบ”เป€เบกเบ™เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™ dotCloud load balancers. เบšเปเปˆโ€‹เบกเบตโ€‹เบซเบเบฑเบ‡โ€‹เบžเบดโ€‹เป€เบชเบ”.

TCP เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ” เบ—เบตเปˆเบเปˆเบฝเบงเบžเบฑเบ™เบเบฑเบšเปเบฒเบเป€เบฅเบเบžเบญเบ”, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เป„เบ›เบเบฑเบ‡เบ–เบฑเบ‡เบšเบฑเบ™เบˆเบธเบ—เบฑเบ‡เปเบปเบ”เปƒเบ™ stack เบ™เบฑเป‰เบ™เบœเปˆเบฒเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก.

เบฅเบนเบเบ„เป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡ TCP เป‚เบ”เบเปƒเบŠเป‰เบŠเบทเปˆเป‚เบฎเบ”เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก (เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™: gateway-X.dotcloud.com) เปเบฅเบฐเปเบฒเบเป€เบฅเบเบžเบญเบ”.

เบŠเบทเปˆเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ™เบตเป‰เปเบเป‰เป„เบ‚เปƒเบซเป‰เบเบฑเบšเบเบธเปˆเบกเป€เบŠเบตเบšเป€เบงเบต โ€œnatsโ€ (เบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš เบ—เบณ เบกเบฐเบŠเบฒเบ”), เป€เบŠเบดเปˆเบ‡เบˆเบฐเบชเบปเปˆเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เบ‚เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เบซเบฒเบ–เบฑเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ (เบซเบผเบท, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบปเบกเบ”เบธเบ™เบเบฒเบ™เป‚เบซเบผเบ”, เป„เบ›เบซเบฒเบ–เบฑเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡).

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบš Kubernetes, เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ•เบทเบญเบ™เบ—เปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ NodePort.

เบšเปเปˆเบกเบตเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบขเบนเปˆเปƒเบ™เป€เบงเบ—เบต dotCloud ClusterIP: เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบ, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ”เป‰เบงเบเบงเบดเบ—เบตเบ”เบฝเบงเบเบฑเบ™เบ—เบฑเบ‡เบˆเบฒเบเบžเบฒเบเปƒเบ™ เปเบฅเบฐเบžเบฒเบเบ™เบญเบเป€เบงเบ—เบต.

เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ: เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡ HTTP เปเบฅเบฐ TCP เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบชเบฒเบกเบฎเป‰เบญเบเบชเบฒเบเบ‚เบญเบ‡ Python เปเบ•เปˆเบฅเบฐเบ„เบปเบ™. เบ‡เปˆเบฒเบเบ”เบฒเบ (เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒ naive) algorithms เบ—เบตเปˆเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเบกเปˆเบเป‰เบญเบ™เบงเปˆเบฒเป€เบงเบ—เบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเปเบฅเบฐเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ›เบฒเบเบปเบ”.

เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡. เป‚เบ”เบโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐ, 12 เปเบญเบฑเบšเบ›เบฑเบ”เป„เบˆ เป‚เบ”เบเบเบปเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบœเปˆเบฒเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก.

เบ™เบตเป‰เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบ•เบฒเบซเบ™เปˆเบฒเบ‡เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเปเบ™เบงเปƒเบ”?

เบˆเบณเบเบฑเบ” เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบงเบฑเบ”โ€‹เปเบ—เบโ€‹เปƒเบ”เป†โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ•เบฒโ€‹เบซเบ™เปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบชเบฑเป‰เบ™ TCP เป€เบฅเบตเบ. เป€เบกเบทเปˆเบญเป€เบงเบปเป‰เบฒเป€เบ–เบดเบ‡ HTTP routing, เบฎเบธเปˆเบ™เบ•เปเปˆเบกเบฒเป„เบ”เป‰เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบฅเบฒเบเบฅเบฐเบญเบฝเบ” HTTP metrics เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเป€เบงเบฅเบฒเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡, เปเบ•เปˆเบญเบธเบ›เบฐเบเบญเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเป„เบ›เบ•เบทเปˆเบกเบญเบตเบ, เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบšเบฅเบฐเบšเบปเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบก metrics เป€เบŠเบฑเปˆเบ™ Prometheus, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡.

เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบˆเบฒเบเบ—เบฑเบ”เบชเบฐเบ™เบฐเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ (เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ), เปเบ•เปˆเบเบฑเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เปˆเบญเบเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆ. เบกเบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบชเบตโ€‹เบŸเป‰เบฒโ€‹เบ‚เบฝเบงโ€‹ ะธ เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ canary.

เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ เบเบฑเบ‡เบ–เบทเบเบˆเปเบฒเบเบฑเบ”. เปƒเบ™เบ•เบฒเปœเปˆเบฒเบ‡เบเบฒเบ™เบเบณเบ™เบปเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ‚เบญเบ‡ dotCloud, เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบฑเบ‡เปเบปเบ”เบ•เป‰เบญเบ‡เบœเปˆเบฒเบ™เบเบธเปˆเบกเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบชเบฐเป€เบžเบฒเบฐ. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบตเบ—เปˆเบฒเปเบฎเบ‡เบ‚เป‰เบฒเบกเป€เบ‚เบ”เปเบ”เบ™ AZ (Availability Zone) เบซเบผเบฒเบเบญเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบฅเปˆเบฒเบชเบฑเบ”เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ. เบ‚เป‰เบญเบเบˆเบทเปˆเบˆเปเบฒเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบฎเป‰เบญเบ SQL เปเบšเบšเบชเบญเบšเบ–เบฒเบกเบ•เปเปˆเบซเบ™เป‰เบฒเปเบฅเบฐเป€เบ›เบตเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบซเบกเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ SQL เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบ–เบฒเบก. เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เบซเบ™เป‰เบฒเบˆเบฐเป‚เบซเบฅเบ”เบ—เบฑเบ™เบ—เบต, เปเบ•เปˆเปƒเบ™ dotCloud เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบชเบญเบ‡เบชเบฒเบกเบงเบดเบ™เบฒเบ—เบตเป€เบžเบทเปˆเบญเป‚เบซเบฅเบ”เป€เบžเบฒเบฐเบงเปˆเบฒเปเบ•เปˆเบฅเบฐ TCP เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ (เปเบฅเบฐเบเบฒเบ™เบชเบญเบšเบ–เบฒเบก SQL เบ•เปเปˆเบกเบฒ) เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบชเบดเบšเบกเบดเบ™เบฅเบดเบงเบดเบ™เบฒเบ—เบต. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เบปเบ‡เบ—เบตเปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเป„เบ”เป‰.

เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเปเบกเปˆเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบžเบงเบเป€เบ‚เบปเบฒเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆ เปƒเบ™เปเบซเบผเปˆเบ‡. เบเบฒเบ™เป„เบซเบผเบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™: ะบะปะธะตะฝั‚ โ†’ ะผะตัˆ โ†’ ัะตั€ะฒะธั, เปเบ•เปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ•เบฒเบซเบ™เปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเบšเปเปˆเบขเบนเปˆเปƒเบ™ nodes เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ ะบะปะธะตะฝั‚ โ†’ ะผะตัˆ เปเบกเปˆเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเป„เบงเบซเบผเบฒเบ (microseconds เปเบ—เบ™ milliseconds).

เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบเบฑเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบดเบ—เบตเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบชเบฐเบซเบฅเบฒเบ”เบเบงเปˆเบฒ. เป‚เบ”เบเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบชเบธเบ‚เบฐเบžเบฒเบšเบ‚เบญเบ‡ backends, เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบซเบผเบฒเบเป„เบ›เบซเบฒ backends เบ—เบตเปˆเป„เบงเบ‚เบถเป‰เบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบฅเบงเบก.

เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž เบ”เบตเบเบงเปˆเบฒ. dotCloud routing mesh เปเบฅเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ EC2 Classic เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ (เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบงเปˆเบฒเบ–เป‰เบฒเปƒเบœเบœเบนเป‰เบซเบ™เบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เปƒเบชเปˆ sniffer เปƒเบ™เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ EC2, เบ—เปˆเบฒเบ™เบกเบตเบšเบฑเบ™เบซเบฒเปƒเบซเบเปˆเบขเบนเปˆเปเบฅเป‰เบง). เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ›เบปเบเบ›เป‰เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบขเปˆเบฒเบ‡เป‚เบ›เปˆเบ‡เปƒเบช, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ”เป‰เบงเบเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™ TLS เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เปเบฅเบฐเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ•เปเปˆเบกเบฒ.

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบงเบ—เบต

เบ•เบปเบเบฅเบปเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบเบฑเบšเป€เบงเบ—เบต dotCloud เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡?

เป€เบงเบ—เบตเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ›เบฐเบกเบฒเบ™เบซเบ™เบถเปˆเบ‡เบฎเป‰เบญเบ microservices เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เปˆเบฒเบ‡เป†. เบšเบฒเบ‡เบ„เบปเบ™เบเบญเบกเบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบˆเบฒเบเบ„เบปเบ™เบญเบทเปˆเบ™, เปเบฅเบฐเบšเบฒเบ‡เบ„เบปเบ™เปเบกเปˆเบ™เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™เป†เปเบ•เปˆเบšเปเปˆเบเบญเบกเบฎเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเปƒเบ”เบเปเปˆเบ•เบฒเบก, เปเบ•เปˆเบฅเบฐเบšเปเบฅเบดเบเบฒเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบ•เบฒเบซเบ™เปˆเบฒเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เปƒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เบˆเบดเบ‡, dotCloud เบซเบผเบฒเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบฎเป‰เบญเบ microservices เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบ—เบต dotCloud เบ•เบปเบงโ€‹เบกเบฑเบ™โ€‹เป€เบญเบ‡. เปเบ•เปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปเปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบ™เป‰เบญเบ (เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบœเบนเป‰เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบซเบ™เปˆเบฒเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ™เบตเป‰) เบ•เป‰เบญเบ‡เบเบฒเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบเบงเปˆเบฒ, เป‚เบ”เบเบกเบตเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบซเบ™เป‰เบญเบ (เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ‚เบถเป‰เบ™เบเบฑเบšเบ•เบปเบงเป€เบญเบ‡เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบ - เบšเบฑเบ™เบซเบฒเป„เบเปˆเป€เบเบปเปˆเบฒเปเบฅเบฐเป„เบ‚เปˆเบ—เบตเปˆเบ”เบต).

เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเบณเบ„เบฑเบ™เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปเปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ™เบณเป„เบ›เปƒเบŠเป‰เป‚เบ”เบเบเบฒเบ™เปเบฅเปˆเบ™เบžเบฒเบŠเบฐเบ™เบฐเบšเบฑเบ™เบˆเบธเป‚เบ”เบเบเบปเบ‡เปƒเบชเปˆเบšเบฒเบ‡เบˆเบธเบ”เบชเบณเบ„เบฑเบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบงเบ—เบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰: linker, scheduler เปเบฅเบฐ runner. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ›เบฝเบšโ€‹เบ—เบฝเบšโ€‹เบเบฑเบšโ€‹เป€เบงโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบˆเบธโ€‹เบ—เบตเปˆโ€‹เบ—เบฑเบ™โ€‹เบชเบฐโ€‹เป„เบซเบกโ€‹, เบกเบฑเบ™โ€‹เบ„เป‰เบฒเบโ€‹เบ„เบทโ€‹เบเบฒเบ™โ€‹เปเบฅเปˆเบ™โ€‹เบเบปเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹ docker run เป‚เบ”เบเบเบปเบ‡เปƒเบ™ nodes, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบกเบญเบšเบซเบกเบฒเบเบงเบฝเบเบ‡เบฒเบ™เปƒเบซเป‰ Kubernetes. เบกเบฑเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปƒเบ™เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ” เป‚เบกเบ”เบนเบ™เบ„เบปเบ‡เบ—เบตเปˆ (เบเบฑเบ), เบ—เบตเปˆเบกเบฑเบ™เปƒเบŠเป‰ kubeadm เบซเบผเบท bootkube เปƒเบ™เป€เบงเบฅเบฒ booting cluster standalone.

เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เป€เบœเบตเบเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบ‚เบตเป‰เบฎเป‰เบฒเบ: เป„เบŸเบฅเปŒ YAML เบฅเบฐเบšเบธเบŠเบทเปˆเปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ; เปเบฅเบฐเบฅเบนเบเบ„เป‰เบฒเปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบ•เป‰เบญเบ‡เป€เบญเบปเบฒเบชเบณเป€เบ™เบปเบฒเบ‚เบญเบ‡เป„เบŸเบฅเปŒ YAML เบ™เบตเป‰เป€เบžเบทเปˆเบญเบ™เบณเปƒเบŠเป‰.

เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡, เบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบ—เบตเปˆเบชเบธเบ”เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบˆเบฒเบเบฎเป‰เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ / เบกเบนเบ™เบ„เปˆเบฒเบžเบฒเบเบ™เบญเบเป€เบŠเบฑเปˆเบ™ Zookeeper (เบˆเบทเปˆ, เปเบฅเบฐเบญเบทเปˆเบ™เป†เบซเบผเบท Consul เบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป€เบงเบฅเบฒเบ™เบฑเป‰เบ™). เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบเป‰เบฒเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบฅเบนเบเบ„เป‰เบฒเบ—เบฑเบ‡เปเบปเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเป„เบŸเบฅเปŒ YAML เบชเบฐเบšเบฑเบšเบ›เบฑเบšเบ›เบธเบ‡ (เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบ›เบดเบ”เป€เบ›เบตเบ”เปƒเปเปˆ). เบšเปเปˆเบชเบฐเบšเบฒเบเบซเบผเบฒเบ!

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เปƒเบซเบกเปˆ, เบšเปˆเบญเบ™เบ—เบตเปˆเบฅเบนเบเบ„เป‰เบฒเปเบ•เปˆเบฅเบฐเบ„เบปเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เบปเบงเปเบ—เบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเบขเบนเปˆเปเบฅเบฐเบžเบญเบ”, เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเป‰เบซเบกเบฒเบเป€เบฅเบเบžเบญเบ”เบ‚เบญเบ‡เบšเปเบฅเบดเบเบฒเบ™, เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบœเปˆเบฒเบ™ localhost. เบ•เบปเบงเปเบ—เบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ™เบตเป‰เปเบฅเบฐเบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เบปเบงเบˆเบดเบ‡. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เป€เบกเบทเปˆเบญเบเป‰เบฒเบ backend เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบญเบทเปˆเบ™เบซเบผเบทเบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบฅเบนเบเบ„เป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”, เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เบ•เบปเบงเปเบ—เบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰; เปเบฅเบฐเบเบฒเบ™เบ›เบดเบ”เป€เบ›เบตเบ”เปƒเปเปˆเปเบกเปˆเบ™เบšเปเปˆเบˆเบณเป€เบ›เบฑเบ™เบญเบตเบเบ•เปเปˆเป„เบ›.

(เบกเบฑเบ™เบเบฑเบ‡เป„เบ”เป‰เบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเบซเบธเป‰เบกเบซเปเปˆเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TLS เปเบฅเบฐเปƒเบชเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ•เบปเบงเปเบ—เบ™เบญเบทเปˆเบ™เบขเบนเปˆเบ”เป‰เบฒเบ™เบเบฒเบ™เบฎเบฑเบš, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™ TLS เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบฎเบฑเบš, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰เบเบญเบกเบฎเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. localhost. เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบ•เปเปˆเบกเบฒ).

เบ™เบตเป‰เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบซเบผเบฒเบ SmartStack เบˆเบฒเบ Airbnb, เปเบ•เปˆเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™เปเบกเปˆเบ™เบงเปˆเบฒ SmartStack เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบ–เบทเบ เบ™เบณ เปƒเบŠเป‰เป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฅเบฐเบšเบปเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡ dotCloud เบ–เบทเบเบซเบผเบปเปˆเบ™เบฅเบปเบ‡เป€เบกเบทเปˆเบญ dotCloud เบเบฒเบเป€เบ›เบฑเบ™ Docker.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ SmartStack เป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบœเบนเป‰เบชเบทเบšเบ—เบญเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป€เบŠเบฑเปˆเบ™ Istio, Linkerd เปเบฅเบฐ Consul Connect เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบฎเบนเบšเปเบšเบšเบ”เบฝเบงเบเบฑเบ™:

  • เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบปเบงเปเบ—เบ™เปƒเบ™เปเบ•เปˆเบฅเบฐ node.
  • เบฅเบนเบเบ„เป‰เบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ•เบปเบงเปเบ—เบ™.
  • เบเบปเบ™เบ„เบงเบšเบ„เบธเบกเบˆเบฐเบญเบฑเบšเป€เบ”เบ”เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบžเบฃเบฑเบญเบเบŠเบตเป€เบกเบทเปˆเบญ backends เบ›เปˆเบฝเบ™เปเบ›เบ‡.
  • ...เบเบณเป„เบฅ!

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ‚เบญเบ‡เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปƒเบ™เบกเบทเป‰เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบซเบผเบฑเบเบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ‚เบ” DNS เบžเบฒเบเปƒเบ™เป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบŠเบทเปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบŠเปˆเบญเบ‡ 127.0.0.0/8. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ HAProxy เปƒเบ™เปเบ•เปˆเบฅเบฐ node เปƒเบ™ cluster, เบเบญเบกเบฎเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เปเบ•เปˆเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบšเปเบฅเบดเบเบฒเบ™ (เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเปˆเบญเบเบ™เบฑเป‰เบ™. 127.0.0.0/8) เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ / เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เป„เบ›เบซเบฒ backends เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ HAProxy เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเป„เบ”เป‰ confd, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ backend เปƒเบ™ etcd เบซเบผเบท Consul เปเบฅเบฐเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” push เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฑเบš HAProxy เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆ Istio เป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฒเบ! เปเบ•เปˆเบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡:

  • เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบ•เบปเบงเปเบ—เบ™เบ—เบนเบ” เปเบ—เบ™ HAProxy.
  • เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ backend เบœเปˆเบฒเบ™ Kubernetes API เปเบ—เบ™ etcd เบซเบผเบท Consul.
  • เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเปˆเบญเบเบžเบฒเบเปƒเบ™ (เบ—เบตเปˆเบขเบนเปˆ Kubernetes ClusterIP) เปเบ—เบ™ 127.0.0.0/8.
  • เบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบก (Citadel) เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบเบฒเบ™เบเบงเบ”เบชเบญเบš TLS เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ.
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบ—เปเบฒเบฅเบฒเบเบงเบปเบ‡เบˆเบญเบ™, เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เปเบˆเบเบขเบฒเบ, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” canary, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบฅเบญเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบšเบดเปˆเบ‡เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡.

เบ•เบปเบงเปเบ—เบ™เบ—เบนเบ”

Envoy Proxy เป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เป‚เบ”เบ Lyft [เบ„เบนเปˆเปเบ‚เปˆเบ‡เบ‚เบญเบ‡ Uber เปƒเบ™เบ•เบฐเบซเบผเบฒเบ” taxi - เบ›เบฐเบกเบฒเบ™. เป€เบฅเบ™]. เบกเบฑเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปƒเบ™เบซเบผเบฒเบเบงเบดเบ—เบตเบเบฑเบšเบ•เบปเบงเปเบ—เบ™เบญเบทเปˆเบ™เป† (เป€เบŠเบฑเปˆเบ™: HAProxy, Nginx, Traefik ...), เปเบ•เปˆ Lyft เบ‚เบฝเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบ•เบปเบงเปเบ—เบ™เบญเบทเปˆเบ™เป†เบ‚เบฒเบ”, เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบชเบฐเบซเบฅเบฒเบ”เบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฐเบซเบเบฒเบเบญเบฑเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

Envoy เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡. เบ–เป‰เบฒเบ‚เป‰เบญเบเบกเบตเบšเปเบฅเบดเบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™เป†, เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš Envoy, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบฅเบฐเบ›เบฑเบšเบ„เปˆเบฒ Envoy เบเบฑเบšเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™เป†, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเป€เบŠเบฑเปˆเบ™เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เบซเบผเบทเปƒเบชเปˆเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เป‚เบ—เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฐเบซเบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป„เบ›เบซเบฒ Envoy, เปเบฅเบฐเบกเบฑเบ™เป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ.

เปเบ•เปˆ Envoy เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™ เบเบปเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™ (เบเบปเบ™เบ‚เปเป‰เบกเบนเบ™) เบชเปเบฒเบฅเบฑเบšเบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ Envoy เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ™เบตเป‰ เบเบปเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบก (เบเบปเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบก).

เบ„เบงเบšเบ„เบธเบกเบเบปเบ™

เบชเปเบฒเบฅเบฑเบšเบเบปเบ™เบ„เบงเบšเบ„เบธเบก, Istio เบญเบตเบ‡เปƒเบชเปˆ Kubernetes API. เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบซเบผเบฒเบเบˆเบฒเบเบเบฒเบ™เปƒเบŠเป‰ confd, เป€เบŠเบดเปˆเบ‡เบญเบตเบ‡เปƒเบชเปˆ etcd เบซเบผเบท Consul เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบŠเบธเบ”เบ‚เบญเบ‡เบเบฐเปเบˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™. Istio เปƒเบŠเป‰ Kubernetes API เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบŠเบธเบ”เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ 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 เปเบฅเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ backend เบ‚เบญเบ‡ proxy เบ™เบฑเป‰เบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเบปเบ™เปƒเบˆเปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™, kube-proxy เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบปเบ”เบฅเบฐเบšเบฝเบš iptables (เบซเบผเบท IPVS load balancers, เบ‚เบถเป‰เบ™เบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ) เป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบ—เบตเปˆเบขเบนเปˆ IP เบ›เบฒเบเบ—เบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆ ClusterIP.

เป€เบกเบทเปˆเบญ Istio เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบเบธเปˆเบก Kubernetes, เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ›เปˆเบฝเบ™เปเบ›เบ‡เบˆเบปเบ™เบเปˆเบงเบฒเบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบ—เบตเปˆเบฅเบฐเบšเบธ, เบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡ namespace เบ—เบฑเบ‡เบซเบกเบปเบ”, เป‚เบ”เบเบเบฒเบ™เปเบ™เบฐเบ™เปเบฒ container. sidecar เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฑเบเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡. เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบ™เบตเป‰เบˆเบฐ spin up an instance เบ‚เบญเบ‡ Envoy เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบ‚เบญเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบš iptables เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™เป†เปเบฅเบฐ redirect เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ™เบฑเป‰เบ™เบเบฑเบš Envoy.

เป€เบกเบทเปˆเบญเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบš Kubernetes DNS, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบŠเบทเปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡ "เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เบงเบฝเบ." เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบšเบฑเบ™เบซเบฒเบ„เปเบฒเบ–เบฒเบกเป€เบŠเบฑเปˆเบ™ http://api/v1/users/4242เปเบฅเป‰เบง api เปเบเป‰โ€‹เป„เบ‚โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹ 10.97.105.48, เบเบปเบ”เบฅเบฐเบšเบฝเบš iptables เบˆเบฐเบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฒเบ 10.97.105.48 เปเบฅเบฐเบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบซเบฒเบ•เบปเบงเปเบ—เบ™ Envoy เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เปเบฅเบฐเบ•เบปเบงเปเบ—เบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ™เบฑเป‰เบ™เบˆเบฐเบชเบปเปˆเบ‡เบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เบเบฑเบ‡ backend API เบ•เบปเบงเบˆเบดเบ‡. เบŸเบตเบง!

frills เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

Istio เบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” end-to-end เปเบฅเบฐเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบœเปˆเบฒเบ™ mTLS (TLS เป€เบŠเบดเปˆเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™). เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ Citadel.

เบเบฑเบ‡เบกเบตเบชเปˆเบงเบ™เบ›เบฐเบเบญเบš mixer, เบ—เบตเปˆ Envoy เบชเบฒเบกเบฒเบ”เบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบกเบต เปเบ•เปˆเบฅเบฐเบ„เบปเบ™ เบ‚เปเปƒเบซเป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบžเบดเป€เบชเบ”เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ™เบฑเป‰เบ™เบ‚เบถเป‰เบ™เบขเบนเปˆเบเบฑเบšเบ›เบฑเบ”เปƒเบˆเบ•เปˆเบฒเบ‡เป†เป€เบŠเบฑเปˆเบ™ headers, backend load, เปเบฅเบฐเบญเบทเปˆเบ™เป† ... (เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฑเบ‡เบงเบปเบ™: เบกเบตเบซเบผเบฒเบเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเปƒเบซเป‰ Mixer เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเบ‚เบฑเบ”, Envoy เบˆเบฐเบชเบทเบšเบ•เปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ. เบ›เบฑเบšเปƒเปเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™).

เปเบฅเบฐ, เปเบ™เปˆเบ™เบญเบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™: เบ—เบนเบ”เป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ—เบตเปˆเปเบˆเบเบขเบฒเบ. เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ microservices, เบ–เป‰เบฒเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป API เบ”เบฝเบงเบ•เป‰เบญเบ‡เบœเปˆเบฒเบ™ microservices A, B, C, เปเบฅเบฐ D, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš, เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เปเบˆเบเบขเบฒเบเบˆเบฐเป€เบžเบตเปˆเบกเบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเปƒเบซเป‰เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเบงเบฅเบฐเบšเบธเบ™เบตเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบเปˆเบญเบเปƒเบซเป‰เบเบฑเบš microservices เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰. เบเบฒเบ™เป‚เบ—เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ—เบฑเบ‡เปเบปเบ”เบˆเบฐเบ–เบทเบเบˆเบฑเบš. เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒ, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบผเบทเบŠเบทเป‰

Istio เบกเบตเบŠเบทเปˆเบชเบฝเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™. เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฒเบซเบ™เปˆเบฒเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบ•เบญเบšเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบตเบขเบนเปˆ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เปเบ—เบ™?

เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบฅเบฑเบโ€‹เบ™เป‰เบญเบ (เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบฑเบ‡โ€‹เป€เบเบ”โ€‹เป€เบซเบฑเบ™โ€‹, breaker เปเบฅเบฐ subtleties เบญเบทเปˆเบ™เป†โ€‹)โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบ„เบงเบฒเบกโ€‹เบ„เบดเบ”โ€‹เบกเบฒโ€‹เป€เบžเบทเปˆเบญโ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป€เบญเบ‡โ€‹. เปเบ•เปˆเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ Kubernetes, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบฒเบฐเบงเปˆเบฒ Kubernetes เบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบžเบทเป‰เบ™เบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเป‰เบง.

เปเบ•เปˆเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบฑเป‰เบ™เบชเบนเบ‡, "เบเบฒเบ™เบŠเบทเป‰" เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ. (เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™ "เบเบฒเบ™เบŠเบทเป‰" เบชเบฐเป€เบซเบกเบตเป€เบžเบฒเบฐเบงเปˆเบฒ Istio เปเบกเปˆเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฅเบปเบ‡เบ—เบถเบ™เป€เบงเบฅเบฒเบงเบดเบชเบฐเบงเบฐเบเปเบฒเป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆ, เบ™เปเบฒเปƒเบŠเป‰, เปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เบกเบฑเบ™.)

เบ‚เป‰เบญเบเบ„เบงเบ™เป€เบฅเบทเบญเบ Istio, Linkerd เบซเบผเบท Consul Connect เบšเป?

เบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš Istio, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ™เบดเบเบปเบก - Linkerd, เปเบฅเบฐโ€‹เบกเบตโ€‹เบซเบผเบฒเบโ€‹ Consul Connect.

เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฅเบทเบญเบ?

เบ”เป‰เบงเบเบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”, เบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰. เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰, เบ‚เป‰เบญเบเบšเปเปˆเบ„เบดเบ”เบงเปˆเบฒเบ•เบปเบ™เป€เบญเบ‡เบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบ•เบญเบšเบ„เปเบฒเบ–เบฒเบกเบ™เบตเป‰. เบกเบตเบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบ เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ เบšเบปเบ”เบ„เบงเบฒเบก เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡ เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ”เบตเปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบŠเบฑเปˆเบ™: SuperGloo. เบกเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเบฑเป‰เบ™ abstraction เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเปเบฅเบฐเป€เบ›เบฑเบ™เป€เบญเบเบฐเบžเบฒเบš APIs เป€เบ›เบตเบ”เป€เบœเบตเบเป‚เบ”เบเบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰เบชเบฐเป€เบžเบฒเบฐ APIs (เปเบฅเบฐ, เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบชเบฑเบšเบชเบปเบ™) เบ‚เบญเบ‡เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ‚เบญเบ‡ SuperGloo - เปเบฅเบฐเบ›เปˆเบฝเบ™เบˆเบฒเบเบซเบ™เบถเปˆเบ‡เป„เบ›เบซเบฒเบญเบทเปˆเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ, เบ„เบทเบเบฑเบšเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป€เบ–เบดเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš HTTP เปเบฅเบฐ backends เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”. เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเบˆเบดเบ‡เบชเปเบฒเบฅเบฑเบš Nginx, HAProxy, Traefik, Apache ...

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰ dabbled เบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเบเบฑเบš Istio เปเบฅเบฐ SuperGloo, เปเบฅเบฐเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ•เปเปˆเป„เบ›เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบชเบฐเปเบ”เบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบก Istio เบซเบผเบท Linkerd เบเบฑเบšเบเบธเปˆเบกเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเป‚เบ”เบเปƒเบŠเป‰ SuperGloo, เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบชเบธเบ”เบ—เป‰เบฒเบเป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบ, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เปˆเบฝเบ™เบˆเบฒเบ. เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ•เบฒเบซเบ™เปˆเบฒเบ‡เบซเบ™เบถเปˆเบ‡เป„เบ›เบซเบฒเบญเบทเปˆเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฝเบ™เบ—เบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™