เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Tinder เป„เบ› Kubernetes

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹. เปเบ›.: เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบšเปเบฅเบดเบเบฒเบ™ Tinder เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบชเบฝเบ‡เบ‚เบญเบ‡เป‚เบฅเบเป€เบกเบทเปˆเบญเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰เป„เบ”เป‰เปเบšเปˆเบ‡เบ›เบฑเบ™เบšเบฒเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป„เบ› Kubernetes. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบเบทเบญเบšเบชเบญเบ‡เบ›เบตเปเบฅเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบเปƒเบ™ K8s, เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบšเปเบฅเบดเบเบฒเบ™ 200 เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบžเบฒเบšเปƒเบ™ 48 เบžเบฑเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต. เบงเบดเบชเบฐเบงเบฐเบเบญเบ™ Tinder เบ›เบฐเบชเบปเบšเบเบฑเบšเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบญเบฑเบ™เปƒเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเปเบฅเบฐเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบซเบเบฑเบ‡? เบญเปˆเบฒเบ™เบ„เปเบฒเปเบ›เบ™เบตเป‰.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Tinder เป„เบ› Kubernetes

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡?

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

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

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบเบฒเบเบกเบฒเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบ. เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบ•เบปเป‰เบ™เบ›เบต 2019, เบเบธเปˆเบก Kubernetes เป„เบ”เป‰เบšเบฑเบ™เบฅเบธเป€เบ–เบดเบ‡เบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบžเบปเบšเบšเบฑเบ™เบซเบฒเบ•เปˆเบฒเบ‡เป†เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ›เบฐเบฅเบดเบกเบฒเบ™เบเบฒเบ™เบชเบฑเบ™เบˆเบญเบ™, เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบเบธเปˆเบก เปเบฅเบฐ DNS. เบ„เบฝเบ‡เบ„เบนเปˆเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ 200 เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบฎเบฑเบเบชเบฒเบเบธเปˆเบก Kubernetes เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ 1000 nodes, 15000 pods เปเบฅเบฐ 48000 containers เปเบฅเปˆเบ™.

เปเบ™เบงเปƒเบ”?

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

เบเบฒเบ™เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเบชเปเบฒเบฅเบฑเบš Kubernetes

เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 30 source code repositories เบชเปเบฒเบฅเบฑเบš microservices เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบเบธเปˆเบก Kubernetes. เบฅเบฐเบซเบฑเบ”เปƒเบ™ repositories เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เบฝเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡: Node.js, Java, Scala, Go) เบ—เบตเปˆเบกเบตเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก runtime เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบ”เบฝเบงเบเบฑเบ™.

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

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Tinder เป„เบ› Kubernetes
เบฎเบนเบšเบ—เบต 1-1. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบœเปˆเบฒเบ™ Builder container

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

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฒเบŠเบฐเบ™เบฐเบ‚เบญเบ‡เบฅเบฒเบงเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบ•เบฑเบเบ™เบดเบ Docker เบ‚เบฑเป‰เบ™เบชเบนเบ‡. Builder เบชเบทเบšเบ—เบญเบ” ID เบœเบนเป‰เปƒเบŠเป‰เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ เปเบฅเบฐเบ„เบงเบฒเบกเบฅเบฑเบš (เป€เบŠเบฑเปˆเบ™: เบเบฐเปเบˆ SSH, เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเปเบฒเบ•เบปเบงเบ‚เบญเบ‡ AWS, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ Tinder เบชเปˆเบงเบ™เบ•เบปเบง. เบกเบฑเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบกเบตเปเบซเบผเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเบดเปˆเบ‡เบ›เบฐเบ”เบดเบ”เบชเป‰เบฒเบ‡เบ•เบฒเบกเบ—เปเบฒเบกเบฐเบŠเบฒเบ”. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ„เบฑเบ”เบฅเบญเบเบชเบดเปˆเบ‡เบ›เบฐเบ”เบดเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡ Builder container เปเบฅเบฐเป€เบˆเบปเป‰เบฒเบžเบฒเบš. เบงเบฑเบ”เบ–เบธเบ›เบฐเบ”เบดเบ”เบชเป‰เบฒเบ‡เบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เบชเบฒเบกเบฒเบ”เบ™เปเบฒเบกเบฒเปƒเบŠเป‰เบ„เบทเบ™เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบšเปเบฅเบดเบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡ container เบญเบทเปˆเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก runtime (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, Node.js bcrypt library เบเปเปˆเบชเป‰เบฒเบ‡ binary artifacts เบชเบฐเป€เบžเบฒเบฐเป€เบงเบ—เบตเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡). เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™, เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบฒเบ”เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เปเบฅเบฐ Dockerfile เบชเบธเบ”เบ—เป‰เบฒเบเบˆเบฐเบ–เบทเบเบฅเบงเบšเบฅเบงเบกเปƒเบ™เบ—เบฑเบ™เบ—เบต.

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบ‚เบญเบ‡เบเบธเปˆเบก Kubernetes เปเบฅเบฐเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ

เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบเบธเปˆเบก

เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเปƒเบŠเป‰ kube-aws เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเบธเปˆเบกเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™ Amazon EC2 instances. เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบชเบฐเบ™เบธเบเป€เบเบตเบ—เบปเปˆเบงเป„เบ›เบ”เบฝเบง. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบฎเบนเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบงเปˆเบญเบ‡โ€‹เป„เบงโ€‹เป€เบ–เบดเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบˆเบณโ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เปเบเบโ€‹เบ‚เบฐโ€‹เปœเบฒเบ”โ€‹เบงเบฝเบโ€‹เบญเบญเบโ€‹เบ•เบฒเบกโ€‹เบ‚เบฐโ€‹เปœเบฒเบ” เปเบฅเบฐ เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡ เป€เบžเบทเปˆเบญโ€‹เบ™เบณโ€‹เปƒเบŠเป‰โ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เบกเบตโ€‹เบ›เบฐโ€‹เบชเบดเบ”โ€‹เบ—เบดโ€‹เบœเบปเบ™โ€‹เบเบงเปˆเบฒ. เป€เบซเบ”เบœเบปเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เปเบฅเปˆเบ™ pods เบซเบผเบฒเบ threaded เป‚เบซเบผเบ”เบซเบผเบฒเบเป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเป€เบ›เบฑเบ™เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบซเบผเบฒเบเปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบเปˆเบงเบฒเบเบฒเบ™เบขเบนเปˆเบฎเปˆเบงเบกเบเบฑเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ‚เบญเบ‡เบเบฑเบเบ”เบฝเบง threaded.

เปƒเบ™เบ—เบตเปˆเบชเบธเบ”เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบปเบเบฅเบปเบ‡:

  • m5.4x เปƒเบซเบเปˆ โ€” เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบก (Prometheusโ€‹)โ€‹;
  • c5.4xlarge - เบชเปเบฒเบฅเบฑเบš Node.js workload (single-threaded workload);
  • c5.2xlarge - เบชเปเบฒโ€‹เบฅเบฑเบš Java เปเบฅเบฐ Go (เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบ multithreadedโ€‹)โ€‹;
  • c5.4xlarge - เบชเปเบฒเบฅเบฑเบšเปเบœเบ‡เบ„เบงเบšเบ„เบธเบก (3 nodes).

เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบˆเบฒเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบเบปเปˆเบฒเป„เบ›เบซเบฒ Kubernetes เปเบกเปˆเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เป‚เบ”เบเบเบปเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป„เบ›เบซเบฒเบœเบนเป‰เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เปƒเบซเบกเปˆ (Elastic Load Balancers (ELB). เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเปˆเบญเบเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ„เบฅเบฒเบงเบชเปˆเบงเบ™เบ•เบปเบง virtual (VPC). เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเปˆเบญเบเบ™เบตเป‰เป„เบ”เป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš Kubernetes VPC. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบเป‰เบฒเบเป‚เบกเบ”เบนเบ™เบ„เปˆเบญเบเป†, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™.

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

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

เบšเบปเบ”เบฎเบฝเบ™

เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบœเป‰เบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบ

เปƒเบ™เบ•เบญเบ™เป€เบŠเบปเป‰เบฒเบ‚เบญเบ‡เบงเบฑเบ™เบ—เบต 8 เบกเบฑเบ‡เบเบญเบ™ 2019, เป€เบงเบ—เบต Tinder เป€เบเบตเบ”เบญเบธเบ›เบฐเบ•เบดเป€เบซเบ”เบขเปˆเบฒเบ‡เบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”. เปƒเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ•เปเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปƒเบ™เบ„เบงเบฒเบกเบŠเบฑเบเบŠเป‰เบฒเบ‚เบญเบ‡เป€เบงเบ—เบตเปƒเบ™เบ•เบญเบ™เป€เบŠเบปเป‰เบฒเบ™เบฑเป‰เบ™, เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฑเบเปเบฅเบฐเบ‚เปเป‰เปƒเบ™เบเบธเปˆเบกเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เบญเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ ARP cache เปเบปเบ”เป„เบ›เปƒเบ™เบ—เบธเบ nodes เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบกเบตเบชเบฒเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ Linux เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš cache ARP:

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Tinder เป„เบ› Kubernetes
(เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™)

gc_thresh3 - เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบ‚เบญเบšโ€‹เป€เบ‚เบ”โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบเบฒเบโ€‹. เบฎเบนเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบฅเบฒเบเบเบฒเบ™ "เบเบฒเบ™เบฅเบปเป‰เบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบžเบทเปˆเบญเบ™เบšเป‰เบฒเบ™" เปƒเบ™เบšเบฑเบ™เบ—เบถเบเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ synchronous (GC), เบšเปเปˆเบกเบตเบžเบทเป‰เบ™เบ—เบตเปˆเบžเบฝเบ‡เบžเปเปƒเบ™ cache ARP เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบเป‰เบ„เบฝเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เปเบเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบ–เบดเป‰เบกเปเบžเบฑเบเป€เบเบฑเบ”เบซเบกเบปเบ”.

เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ Flannel เป€เบ›เบฑเบ™เบœเป‰เบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ™ Kubernetes. เปเบžเบฑเบเป€เบเบฑเบ”เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™ VXLAN. VXLAN เปเบกเปˆเบ™เบญเบธเป‚เบกเบ‡ L2 เบ—เบตเปˆเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒเบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ L3. เป€เบ—เบเป‚เบ™เป‚เบฅเบเบตเปƒเบŠเป‰ MAC-in-UDP (MAC Address-in-User Datagram Protocol) encapsulation เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ‚เบฐเบซเบเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Layer 2. เป‚เบ›เป‚เบ•เบ„เบญเบ™เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเปเบกเปˆเบ™ IP เบšเบงเบ UDP.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Tinder เป„เบ› Kubernetes
เบฎเบนเบš 2โ€“1. เปเบœเบ™เบงเบฒเบ” Flannel (เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™)

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Tinder เป„เบ› Kubernetes
เบฎเบนเบšเบ—เบต 2-2. เบŠเบธเบ” VXLAN (เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™)

เปเบ•เปˆเบฅเบฐ node เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™ Kubernetes เบˆเบฑเบ”เบชเบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ virtual เบเบฑเบš /24 เบซเบ™เป‰เบฒเบเบฒเบเบˆเบฒเบ /9 block เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ node เบ™เบตเป‰เปเบกเปˆเบ™ เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ เบซเบ™เบถเปˆเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เบซเบ™เบถเปˆเบ‡เป€เบ‚เบปเป‰เบฒเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ ARP (เปƒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš flannel.1), เปเบฅเบฐเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฐเบซเบผเบฑเบš (FDB). เบžเบงเบเบกเบฑเบ™เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบ™เบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ”เบ—เบตเปˆเป‚เบซเบกเบ”เบœเบนเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบ–เบทเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เบซเบผเบทเปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡เบ—เบตเปˆเป‚เบ™เบ”เปƒเปเปˆเบ–เบทเบเบ„เบปเป‰เบ™เบžเบปเบš.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™ node-pod (เบซเบผเบท pod-pod) เบชเบธเบ”เบ—เป‰เบฒเบเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš eth0 (เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เปเบœเบ™เบงเบฒเบ” Flannel เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡). เบญเบฑเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบกเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ ARP เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเปเบซเบผเปˆเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ เปเบฅเบฐเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ›เบฒเบเบ—เบฒเบ‡.

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

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง, เบกเบต 605 nodes เปƒเบ™ cluster. เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเป€เบญเบปเบฒเบŠเบฐเบ™เบฐเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™ gc_thresh3, เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบกเบทเปˆเบญเบชเบดเปˆเบ‡เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบทเป‰เบ™, เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเปเบžเบฑเบเป€เบเบฑเบ”เป€เบฅเบตเปˆเบกเบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡, เปเบ•เปˆเบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ virtual Flannel เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบกเบตเบซเบ™เป‰เบฒเบเบฒเบ / 24 เบซเบฒเบเป„เบ›เบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ ARP. เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™ Node-pod เปเบฅเบฐเบเบฒเบ™เบชเบญเบšเบ–เบฒเบก DNS เบ–เบทเบเบฅเบปเบšเบเบงเบ™ (DNS เบ–เบทเบเป‚เบฎเบ”เบขเบนเปˆเปƒเบ™ cluster; เบญเปˆเบฒเบ™เบ•เปเปˆเบกเบฒเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”).

เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒ gc_thresh1, gc_thresh2 ะธ gc_thresh3 เปเบฅเบฐเบฃเบตเบชเบฐเบ•เบฒเบ” Flannel เป€เบžเบทเปˆเบญเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›เบ„เบทเบ™เปƒเปเปˆ.

เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ DNS เบ—เบตเปˆเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰ DNS เบขเปˆเบฒเบ‡เบˆเบดเบ‡เบˆเบฑเบ‡เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ เปเบฅเบฐเบ„เปˆเบญเบเป†เป‚เบญเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบฒเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบเบปเปˆเบฒเป„เบ›เบซเบฒ Kubernetes. เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒ TTL เบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ•เปˆเปเบฒเบชเปเบฒเบฅเบฑเบš RecordSets เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปƒเบ™ Route53. เป€เบกเบทเปˆเบญเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบเบปเปˆเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡ EC2, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™ Amazon DNS. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบญเบปเบฒเบญเบฑเบ™เบ™เบตเป‰เป„เบงเป‰เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปเบฅเบฐเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡ TTL เบ•เปˆเปเบฒเบ•เปเปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ Amazon (เป€เบŠเบฑเปˆเบ™: DynamoDB) เบšเปเปˆเป„เบ”เป‰เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆ.

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเป‰เบฒเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป„เบ›เบซเบฒ Kubernetes, เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเบงเปˆเบฒ DNS เบเปเบฒเบฅเบฑเบ‡เบ›เบฐเบกเบงเบ™เบœเบปเบ™ 250 เบžเบฑเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบฅเบตเปˆเบกเบ›เบฐเบชเบปเบšเบเบฑเบšเบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบฎเป‰เบฒเบเปเบฎเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบญเบšเบ–เบฒเบก DNS. เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบขเปˆเบฒเบ‡เบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบ›เปˆเบฝเบ™เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ DNS เป„เบ›เบซเบฒ CoreDNS (เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบชเบนเบ‡เบชเบธเบ”เป€เบ–เบดเบ‡ 1000 pods เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™ 120 cores).

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

เบšเบฑเบ™เบซเบฒเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเบ—เบตเปˆเบขเบนเปˆเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบซเบผเปˆเบ‡เปเบฅเบฐเบ›เบฒเบเบ—เบฒเบ‡ (SNAT เปเบฅเบฐ DNAT) เปเบฅเบฐเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เปเปˆเบกเบฒ เบ•เบดเบ”เบ•เบฒเบก. เบซเบ™เบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เป„เบ”เป‰เบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเบžเบฒเบเปƒเบ™เปเบฅเบฐเปเบ™เบฐเบ™เปเบฒเป‚เบ”เบเบŠเบธเบกเบŠเบปเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบเป‰เบฒเบ DNS เป„เบ›เบซเบฒ node เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เป€เบญเบ‡. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰:

  • SNAT เปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบฒเบฐเบงเปˆเบฒเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™ node. เบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเบ™เปเบฒเป„เบ›เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš eth0.
  • DNAT เปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบฒเบฐเบงเปˆเบฒ IP เบ›เบฒเบเบ—เบฒเบ‡เปเบกเปˆเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบเบฑเบš node, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบเบฑเบเบ—เบตเปˆเป€เบฅเบทเบญเบเปเบšเบšเบชเบธเปˆเบกเบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš. iptables.

เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเบถเบ”เบ•เบดเบ”เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰. CoreDNS เบ–เบทเบเปƒเบŠเป‰เป€เบ›เบฑเบ™ DaemonSet เปƒเบ™ Kubernetes เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ DNS node เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ solve.conf เปเบ•เปˆเบฅเบฐเบเบฑเบเป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ—เบธเบ‡ --cluster-dns เบ„เบณ เบชเบฑเปˆเบ‡ เบเบฐเบ”เบนเบโ€Š. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒ DNS.

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

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Envoy เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ

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

เบเบฒเบ™เปเบเป‰เป„เบ‚เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰, เบเบฑเบโ€‹เบ—เบตเปˆโ€‹เบงเบฒเบ‡โ€‹เป„เบงเป‰โ€‹เปƒเบเป‰โ€‹เบ„เบฝเบ‡โ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบŠเปˆเบญเบ‡โ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบซเบผเบฒเบโ€‹เบเบงเปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐ maneuver เป€เบกเบทเปˆเบญโ€‹เบ—เบฝเบšโ€‹เปƒเบชเปˆโ€‹เบเบฑเบšโ€‹เบเบฑเบโ€‹เบซเบ™เบฑเบโ€‹เบญเบทเปˆเบ™เป†. เบกเบฑเบ™เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เป„เบฅเบเบฐเบเบฒเบงเบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเป€เบชเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Node เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™ single-threaded เปเบฅเบฐ, เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบซเบผเบฑเบ. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบžเบฝเบ‡เปเบ•เปˆเปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ.

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบขเบฒเบโ€‹เบฎเบนเป‰โ€‹เบšเบธเบ™โ€‹เบ„เบธเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบ•เบฑเบกโ€‹เบชเปˆเบงเบ™ เบ—เบนเบ”เบžเบดเป€เบชเบ”. เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบˆเปเบฒเบเบฑเบ”เบซเบผเบฒเบเปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบ—เบฑเบ™เบ—เบต. Envoy เป€เบ›เบฑเบ™เบžเบฃเบฑเบญเบเบŠเบตเบŠเบฑเป‰เบ™เบชเบนเบ‡, เป€เบ›เบตเบ”เปเบซเบผเปˆเบ‡, เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบ—เบตเปˆเบญเบญเบเปเบšเบšเบกเบฒเบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ SOA เบ‚เบฐเปœเบฒเบ”เปƒเบซเบเปˆ. เบกเบฑเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป€เบ•เบฑเบโ€‹เบ™เบดเบโ€‹เบเบฒเบ™โ€‹เบ”เบธเปˆเบ™โ€‹เบ”เปˆเบฝเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบซเบผเบ”โ€‹เบ‚เบฑเป‰เบ™โ€‹เบชเบนเบ‡โ€‹, เบฅเบงเบกโ€‹เบ—เบฑเบ‡โ€‹เบเบฒเบ™ retry เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹, breakers เบงเบปเบ‡โ€‹เบˆเบญเบ™โ€‹, เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบญเบฑเบ”โ€‹เบ•เบฒโ€‹เบเบฒเบ™โ€‹เบ—เบปเปˆเบงโ€‹เป‚เบฅเบโ€‹. (เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹. เปเบ›.: เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™ เบšเบปเบ”เบ‚เบฝเบ™เบ™เบตเป‰ เบเปˆเบฝเบงเบเบฑเบš Istio, เป€เบŠเบดเปˆเบ‡เบญเบตเบ‡เปƒเบชเปˆ Envoy.)

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰: เบกเบต sidecar Envoy เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบเบฑเบโ€‹เปเบฅเบฐโ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เบ”เบฝเบง, เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบธเปˆเบกโ€‹เบเบฑเบšโ€‹เบžเบฒโ€‹เบŠเบฐโ€‹เบ™เบฐโ€‹เปƒเบ™โ€‹เบ—เป‰เบญเบ‡โ€‹เบ–เบดเปˆเบ™โ€‹เป‚เบ”เบโ€‹เบœเปˆเบฒเบ™โ€‹เบ—เปˆเบฒโ€‹เป€เบฎเบทเบญ. เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบ•เบปเบเป€เบ›เบฑเบ™เป€เบซเบเบทเปˆเบญเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™ เปเบฅเบฐ เบฎเบฑเบเบชเบฒเบฅเบฑเบ”เบชเบฐเปเบตเบ™เป‰เบญเบเป†, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰เป€เบฎเบทเบญเบ‚เบญเบ‡ Envoy front-proxy pods, เบซเบ™เบถเปˆเบ‡เบ•เปเปˆเป€เบ‚เบ” Availability Zone (AZ) เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบšเปเบฅเบดเบเบฒเบ™. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบญเบตเบ‡เปƒเบชเปˆเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบ‚เบฝเบ™เป‚เบ”เบเบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบžเบฝเบ‡เปเบ•เปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบเบฑเบเปƒเบ™เปเบ•เปˆเบฅเบฐ AZ เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเปƒเบซเป‰.

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

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

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

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

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Tinder เป„เบ› Kubernetes
เบฎเบนเบš 3โ€“1. CPU convergence เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เป„เบ› Envoy

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Tinder เป„เบ› Kubernetes

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ Tinder เป„เบ› Kubernetes

เบœเบปเบ™เบชเบธเบ”เบ—เป‰เบฒเบ

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

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

เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบเบทเบญเบš 2019 เบ›เบต, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเปเบฒเป€เบฅเบฑเบ”เปƒเบ™เป€เบ”เบทเบญเบ™เบกเบตเบ™เบฒ 200. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก Tinder เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเบขเบนเปˆเปƒเบ™เบเบธเปˆเบก Kubernetes เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบšเปเบฅเบดเบเบฒเบ™ 1000, 15 nodes, 000 เบเบฑเบ เปเบฅเบฐ 48 เบเปˆเบญเบ‡เบšเบฑเบ™เบˆเบธ. เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบšเปเปˆเปเบกเปˆเบ™เป‚เบ”เป€เบกเบ™เบ”เบฝเบงเบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบญเบตเบเบ•เปเปˆเป„เบ›. เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ™เบตเป‰เปเบฅเบฐเบ„เบงเบšเบ„เบธเบกเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

PS เบˆเบฒเบเบ™เบฑเบเปเบ›

เบญเปˆเบฒเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

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

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