ืžื›ื•ืœื•ืช, ืžื™ืงืจื• ืฉื™ืจื•ืชื™ื ื•ืจืฉืชื•ืช ืฉื™ืจื•ืช

ื‘ืื™ื ื˜ืจื ื˜ ื—ื‘ื•ืจื” ืžืืžืจื™ื ะพ ืจืฉืช ืฉื™ืจื•ืช (ืจืฉืช ืฉื™ืจื•ืช), ื•ื”ื ื” ืขื•ื“ ืื—ืช. ื”ื™ื“ื“! ืื‘ืœ ืœืžื”? ืœืื—ืจ ืžื›ืŸ, ืื ื™ ืจื•ืฆื” ืœื”ื‘ื™ืข ืืช ื“ืขืชื™ ืฉืขื“ื™ืฃ ื”ื™ื” ืœื• ื™ื•ืคื™ืขื• ืจืฉืชื•ืช ืฉื™ืจื•ืช ืœืคื ื™ 10 ืฉื ื™ื, ืœืคื ื™ ื”ื•ืคืขืชืŸ ืฉืœ ืคืœื˜ืคื•ืจืžื•ืช ืžื›ื•ืœื•ืช ื›ืžื• Docker ื•-Kubernetes. ืื ื™ ืœื ืื•ืžืจ ืฉื ืงื•ื“ืช ื”ืžื‘ื˜ ืฉืœื™ ื˜ื•ื‘ื” ืื• ื’ืจื•ืขื” ืžืื—ืจื•ืช, ืื‘ืœ ืžื›ื™ื•ื•ืŸ ืฉืจืฉืชื•ืช ืฉื™ืจื•ืช ื”ืŸ ื—ื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืœืžื“ื™, ื ืงื•ื“ื•ืช ืžื‘ื˜ ืžืจื•ื‘ื•ืช ื™ืขื–ืจื• ืœื”ื‘ื™ืŸ ืื•ืชืŸ ื˜ื•ื‘ ื™ื•ืชืจ.

ืื ื™ ืื“ื‘ืจ ืขืœ ืคืœื˜ืคื•ืจืžืช dotCloud, ืฉื ื‘ื ืชื” ืขืœ ืœืžืขืœื” ืžืžืื” ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ื•ืชืžื›ื” ื‘ืืœืคื™ ืืคืœื™ืงืฆื™ื•ืช ืžื›ื•ืœื•ืช. ืืกื‘ื™ืจ ืืช ื”ืืชื’ืจื™ื ืฉืขืžื“ื ื• ื‘ืคื ื™ื ื• ื‘ืคื™ืชื•ื— ื•ื”ืฉืงืชื•, ื•ื›ื™ืฆื“ ืจืฉืชื•ืช ืฉื™ืจื•ืช ื™ื›ื•ืœื•ืช (ืื• ืœื ื™ื›ืœื•) ืœืขื–ื•ืจ.

ื”ื™ืกื˜ื•ืจื™ื” ืฉืœ dotCloud

ื›ืชื‘ืชื™ ืขืœ ื”ื”ื™ืกื˜ื•ืจื™ื” ืฉืœ dotCloud ื•ืขืœ ืืคืฉืจื•ื™ื•ืช ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืขื‘ื•ืจ ื”ืคืœื˜ืคื•ืจืžื” ื”ื–ื•, ืื‘ืœ ืœื ื“ื™ื‘ืจืชื™ ื”ืจื‘ื” ืขืœ ืฉื›ื‘ืช ื”ืจืฉืช. ืื ืืชื” ืœื ืจื•ืฆื” ืœืฆืœื•ืœ ืœืงืจื™ืื” ืžืืžืจ ืื—ืจื•ืŸ ืœื’ื‘ื™ dotCloud, ื”ื ื” ื”ืชืžืฆื™ืช ื‘ืงืฆืจื”: ื–ื•ื”ื™ ืคืœื˜ืคื•ืจืžืช PaaS-ื›ืฉื™ืจื•ืช ื”ืžืืคืฉืจืช ืœืœืงื•ื—ื•ืช ืœื”ืคืขื™ืœ ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ื™ื™ืฉื•ืžื™ื (Java, PHP, Python...), ืขื ืชืžื™ื›ื” ื‘ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ื ืชื•ื ื™ื ืฉื™ืจื•ืชื™ื (MongoDB, MySQL, Redis...) ื•ื–ืจื™ืžืช ืขื‘ื•ื“ื” ื›ืžื• Heroku: ืืชื” ืžืขืœื” ืืช ื”ืงื•ื“ ืฉืœืš ืœืคืœื˜ืคื•ืจืžื”, ื”ื™ื ื‘ื•ื ื” ืชืžื•ื ื•ืช ืงื•ื ื˜ื™ื™ื ืจ ื•ืคื•ืจืกืช ืื•ืชืŸ.

ืื ื™ ืื’ื™ื“ ืœืš ืื™ืš ื”ืชื ื•ืขื” ื”ื•ืคื ืชื” ืœืคืœื˜ืคื•ืจืžืช dotCloud. ืœื ื‘ื’ืœืœ ืฉื–ื” ื”ื™ื” ืžื’ื ื™ื‘ ื‘ืžื™ื•ื—ื“ (ืœืžืจื•ืช ืฉื”ืžืขืจื›ืช ืขื‘ื“ื” ื˜ื•ื‘ ืœืชืงื•ืคืชื”!), ืืœื ื‘ืขื™ืงืจ ื‘ื’ืœืœ ืฉื‘ืืžืฆืขื•ืช ื›ืœื™ื ืžื•ื“ืจื ื™ื™ื ืขื™ืฆื•ื‘ ื›ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื™ื•ืฉื ื‘ืงืœื•ืช ืชื•ืš ื–ืžืŸ ืงืฆืจ ืขืœ ื™ื“ื™ ืฆื•ื•ืช ืฆื ื•ืข ืื ื”ื ืฆืจื™ื›ื™ื ื“ืจืš ืœื ืชื‘ ืชื ื•ืขื” ื‘ื™ืŸ ื—ื‘ื•ืจื” ืฉืœ ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ืื• ืฉืœืœ ื™ื™ืฉื•ืžื™ื. ื›ืš ืชื•ื›ืœื• ืœื”ืฉื•ื•ืช ื‘ื™ืŸ ื”ืืคืฉืจื•ื™ื•ืช: ืžื” ืงื•ืจื” ืื ืžืคืชื—ื™ื ื”ื›ืœ ื‘ืขืฆืžื›ื ืื• ืžืฉืชืžืฉื™ื ื‘ืจืฉืช ืฉื™ืจื•ืช ืงื™ื™ืžืช. ื”ื‘ื—ื™ืจื” ื”ืกื˜ื ื“ืจื˜ื™ืช ื”ื™ื ืœื”ื›ื™ืŸ ืืช ื–ื” ื‘ืขืฆืžืš ืื• ืœืงื ื•ืช ืืช ื–ื”.

ื ื™ืชื•ื‘ ืชื ื•ืขื” ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ืžืชืืจื—ื™ื

ืืคืœื™ืงืฆื™ื•ืช ื‘-dotCloud ื™ื›ื•ืœื•ืช ืœื—ืฉื•ืฃ ื ืงื•ื“ื•ืช ืงืฆื” ืฉืœ HTTP ื•-TCP.

ื ืงื•ื“ื•ืช ืงืฆื” HTTP ื ื•ืกืฃ ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ืœืชืฆื•ืจืช ืืฉื›ื•ืœ ืžืื–ืŸ ื”ืขื•ืžืก ื”ื™ืคืืฆ'ื™. ื–ื” ื“ื•ืžื” ืœืžื” ืฉืขื•ืฉื™ื ืžืฉืื‘ื™ื ื”ื™ื•ื Ingress ื‘-Kubernetes ื•ืžืื–ืŸ ืขื•ืžืกื™ื ื›ืžื• ื˜ืจืืคื™ืง.

ืœืงื•ื—ื•ืช ืžืชื—ื‘ืจื™ื ืœื ืงื•ื“ื•ืช ืงืฆื” HTTP ื“ืจืš ื“ื•ืžื™ื™ื ื™ื ืžืชืื™ืžื™ื, ื‘ืชื ืื™ ืฉืฉื ื”ื“ื•ืžื™ื™ืŸ ืžืฆื‘ื™ืข ืขืœ ืžืื–ื ื™ ืขื•ืžืกื™ื ืฉืœ dotCloud. ืฉื•ื ื“ื‘ืจ ืžื™ื•ื—ื“.

ื ืงื•ื“ื•ืช ืงืฆื” ืฉืœ TCP ื”ืžืฉื•ื™ืš ืœืžืกืคืจ ื™ืฆื™ืื”, ืืฉืจ ืžื•ืขื‘ืจ ืœืื—ืจ ืžื›ืŸ ืœื›ืœ ื”ืงื•ื ื˜ื™ื™ื ืจื™ื ื‘ืžื—ืกื ื™ืช ื–ื• ื‘ืืžืฆืขื•ืช ืžืฉืชื ื™ ืกื‘ื™ื‘ื”.

ืœืงื•ื—ื•ืช ื™ื›ื•ืœื™ื ืœื”ืชื—ื‘ืจ ืœื ืงื•ื“ื•ืช ืงืฆื” ืฉืœ TCP ื‘ืืžืฆืขื•ืช ืฉื ื”ืžืืจื— ื”ืžืชืื™ื (ืžืฉื”ื• ื›ืžื• gateway-X.dotcloud.com) ื•ืžืกืคืจ ื”ื™ืฆื™ืื”.

ืฉื ืžืืจื— ื–ื” ื”ื•ืคืš ืœืืฉื›ื•ืœ ื”ืฉืจืชื™ื "nats" (ืœื ืงืฉื•ืจ ืœ NATS), ืฉื™ื ืชื‘ ื—ื™ื‘ื•ืจื™ TCP ื ื›ื ืกื™ื ืœืงื•ื ื˜ื™ื™ื ืจ ื”ื ื›ื•ืŸ (ืื•, ื‘ืžืงืจื” ืฉืœ ืฉื™ืจื•ืชื™ื ืžืื•ื–ื ื™ื ืขื•ืžืกื™ื, ืœืงื•ื ื˜ื™ื™ื ืจื™ื ื”ื ื›ื•ื ื™ื).

ืื ืืชื” ืžื›ื™ืจ ืืช Kubernetes, ื–ื” ื›ื ืจืื” ื™ื–ื›ื™ืจ ืœืš ืืช ื”ืฉื™ืจื•ืชื™ื NodePort.

ืœื ื”ื™ื• ืฉื™ืจื•ืชื™ื ืžืงื‘ื™ืœื™ื ื‘ืคืœื˜ืคื•ืจืžืช dotCloud ืืฉื›ื•ืœ IP: ืœืฉื ื”ืคืฉื˜ื•ืช, ื”ื’ื™ืฉื” ืœืฉื™ืจื•ืชื™ื ื”ื™ื™ืชื” ื‘ืื•ืชื• ืื•ืคืŸ ื”ืŸ ืžืชื•ืš ื”ืคืœื˜ืคื•ืจืžื” ื•ื”ืŸ ืžื—ื•ืฆื” ืœื”.

ื”ื›ืœ ื”ื™ื” ืžืื•ืจื’ืŸ ื‘ืฆื•ืจื” ืคืฉื•ื˜ื” ืœืžื“ื™: ื”ื”ื˜ืžืขื•ืช ื”ืจืืฉื•ื ื™ื•ืช ืฉืœ ืจืฉืชื•ืช ื ื™ืชื•ื‘ HTTP ื•-TCP ื”ื™ื• ื›ื ืจืื” ืจืง ื›ืžื” ืžืื•ืช ืฉื•ืจื•ืช ืฉืœ Python ื›ืœ ืื—ืช. ืืœื’ื•ืจื™ืชืžื™ื ืคืฉื•ื˜ื™ื (ื”ื™ื™ืชื™ ืื•ืžืจ ืชืžื™ืžื™ื) ืฉืฉื•ื›ืœืœื• ื›ื›ืœ ืฉื”ืคืœื˜ืคื•ืจืžื” ื’ื“ืœื” ื•ื”ื•ืคื™ืขื• ื“ืจื™ืฉื•ืช ื ื•ืกืคื•ืช.

ืœื ื”ื™ื” ืฆื•ืจืš ื‘ืขื™ื‘ื•ื“ ืžืงื™ืฃ ืฉืœ ืงื•ื“ ืงื™ื™ื. ื‘ืื•ืคืŸ ืžื™ื•ื—ื“, ืืคืœื™ืงืฆื™ื•ืช 12 ื’ื•ืจืžื™ื ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื™ืฉื™ืจื•ืช ื‘ื›ืชื•ื‘ืช ื”ืžืชืงื‘ืœืช ื‘ืืžืฆืขื•ืช ืžืฉืชื ื™ ืกื‘ื™ื‘ื”.

ื‘ืžื” ื–ื” ืฉื•ื ื” ืžืจืฉืช ืฉื™ืจื•ืช ืžื•ื“ืจื ื™ืช?

ืžื•ื’ื‘ืœ ืจึฐืื•ึผืช. ืœื ื”ื™ื• ืœื ื• ืžื“ื“ื™ื ืขื‘ื•ืจ ืจืฉืช ื”ื ื™ืชื•ื‘ ืฉืœ TCP ื‘ื›ืœืœ. ื‘ื›ืœ ื”ื ื•ื’ืข ืœื ื™ืชื•ื‘ HTTP, ื’ืจืกืื•ืช ืžืื•ื—ืจื•ืช ื™ื•ืชืจ ื”ืฆื™ื’ื• ืžื“ื“ื™ HTTP ืžืคื•ืจื˜ื™ื ืขื ืงื•ื“ื™ ืฉื’ื™ืื” ื•ื–ืžื ื™ ืชื’ื•ื‘ื”, ืืš ืจืฉืชื•ืช ืฉื™ืจื•ืช ืžื•ื“ืจื ื™ื•ืช ืžืจื—ื™ื‘ื•ืช ืขื•ื“ ื™ื•ืชืจ, ื•ืžืกืคืงื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืขืจื›ื•ืช ืื™ืกื•ืฃ ืžื“ื“ื™ื ื›ืžื• Prometheus, ืœืžืฉืœ.

ื”ื ืจืื•ืช ื—ืฉื•ื‘ื” ืœื ืจืง ืžื ืงื•ื“ืช ืžื‘ื˜ ืชืคืขื•ืœื™ืช (ื›ื“ื™ ืœืขื–ื•ืจ ื‘ืคืชืจื•ืŸ ื‘ืขื™ื•ืช), ืืœื ื’ื ื‘ืขืช ืฉื—ืจื•ืจ ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช. ื–ื” ื‘ืขืจืš ื‘ื˜ื•ื— ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ะธ ืคืจื™ืกืช ืงื ืจื™ืช.

ื™ืขื™ืœื•ืช ื ื™ืชื•ื‘ ื”ื•ื ื’ื ืžื•ื’ื‘ืœ. ื‘ืจืฉืช ื”ื ื™ืชื•ื‘ ืฉืœ dotCloud, ื›ืœ ื”ืชืขื‘ื•ืจื” ื”ื™ื™ืชื” ืฆืจื™ื›ื” ืœืขื‘ื•ืจ ื“ืจืš ืืฉื›ื•ืœ ืฉืœ ืฆืžืชื™ ื ื™ืชื•ื‘ ื™ื™ืขื•ื“ื™ื™ื. ืžืฉืžืขื•ืช ื”ื“ื‘ืจ ื”ื™ื™ืชื” ื—ืฆื™ื™ืช ื’ื‘ื•ืœื•ืช AZ ืžืจื•ื‘ื™ื (Availability Zone) ื•ื”ื’ื“ืœื” ืžืฉืžืขื•ืชื™ืช ืฉืœ ื–ืžืŸ ื”ืื—ื–ื•ืจ. ืื ื™ ื–ื•ื›ืจ ืฉืงื•ื“ ืื™ืชื•ืจ ื‘ืขื™ื•ืช ืขืฉื” ื™ื•ืชืจ ืžืžืื” ืฉืื™ืœืชื•ืช SQL ื‘ื›ืœ ืขืžื•ื“ ื•ืคืชื— ื—ื™ื‘ื•ืจ ื—ื“ืฉ ืœืฉืจืช SQL ืขื‘ื•ืจ ื›ืœ ืฉืื™ืœืชื”. ื‘ืขืช ื”ืคืขืœื” ืžืงื•ืžื™ืช, ื”ืขืžื•ื“ ื ื˜ืขืŸ ื‘ืื•ืคืŸ ืžื™ื™ื“ื™, ืืš ื‘-dotCloud ื–ื” ืœื•ืงื— ื›ืžื” ืฉื ื™ื•ืช ืœื˜ืขื•ืŸ ื›ื™ ื›ืœ ื—ื™ื‘ื•ืจ TCP (ื•ืฉืื™ืœืชืช SQL ืฉืœืื—ืจ ืžื›ืŸ) ืœื•ืงื— ืขืฉืจื•ืช ืืœืคื™ื•ืช ืฉื ื™ื•ืช. ื‘ืžืงืจื” ื”ืกืคืฆื™ืคื™ ื”ื–ื”, ื—ื™ื‘ื•ืจื™ื ืžืชืžืฉื›ื™ื ืคืชืจื• ืืช ื”ื‘ืขื™ื”.

ืจืฉืชื•ืช ืฉื™ืจื•ืช ืžื•ื“ืจื ื™ื•ืช ื˜ื•ื‘ื•ืช ื™ื•ืชืจ ื‘ื˜ื™ืคื•ืœ ื‘ื‘ืขื™ื•ืช ื›ืืœื”. ืงื•ื“ื ื›ืœ ื”ื ื‘ื•ื“ืงื™ื ืฉื”ื—ื™ื‘ื•ืจื™ื ืžื ื•ืชื‘ื™ื ื‘ืžืงื•ืจ. ื”ื–ืจื™ืžื” ื”ืœื•ื’ื™ืช ื–ื”ื”: ะบะปะธะตะฝั‚ โ†’ ะผะตัˆ โ†’ ัะตั€ะฒะธั, ืื‘ืœ ืขื›ืฉื™ื• ื”ืจืฉืช ืขื•ื‘ื“ืช ืžืงื•ืžื™ืช ื•ืœื ืขืœ ืฆืžืชื™ื ืžืจื•ื—ืงื™ื, ืื– ื”ื—ื™ื‘ื•ืจ ะบะปะธะตะฝั‚ โ†’ ะผะตัˆ ื”ื•ื ืžืงื•ืžื™ ื•ืžื”ื™ืจ ืžืื•ื“ (ืžื™ืงืจื•-ืฉื ื™ื•ืช ื‘ืžืงื•ื ืžื™ืœื™-ืฉื ื™ื•ืช).

ืจืฉืชื•ืช ืฉื™ืจื•ืช ืžื•ื“ืจื ื™ื•ืช ืžื™ื™ืฉืžื•ืช ื’ื ืืœื’ื•ืจื™ืชืžื™ื ื—ื›ืžื™ื ื™ื•ืชืจ ืœืื™ื–ื•ืŸ ืขื•ืžืกื™ื. ืขืœ ื™ื“ื™ ื ื™ื˜ื•ืจ ืชืงื™ื ื•ืชื ืฉืœ ื”ืงืฆื” ื”ืื—ื•ืจื™, ื”ื ื™ื›ื•ืœื™ื ืœืฉืœื•ื— ื™ื•ืชืจ ืชืขื‘ื•ืจื” ืœืงืฆื” ื”ืื—ื•ืจื™ ื”ืžื”ื™ืจ ื™ื•ืชืจ, ื•ื›ืชื•ืฆืื” ืžื›ืš ืฉื™ืคื•ืจ ื‘ื‘ื™ืฆื•ืขื™ื ื”ื›ื•ืœืœื™ื.

ืื‘ื˜ื—ื” ื’ื ื˜ื•ื‘ ื™ื•ืชืจ. ืจืฉืช ื”ื ื™ืชื•ื‘ ืฉืœ dotCloud ืจืฆื” ื›ื•ืœื” ืขืœ EC2 Classic ื•ืœื ื”ืฆืคื™ื ื” ืชืขื‘ื•ืจื” (ื‘ื”ืชื‘ืกืก ืขืœ ื”ื”ื ื—ื” ืฉืื ืžื™ืฉื”ื• ื”ืฆืœื™ื— ืœืฉื™ื ืกื ื™ืคืจ ืขืœ ืชืขื‘ื•ืจืช ืจืฉืช EC2, ื›ื‘ืจ ื”ื™ื™ืช ื‘ื‘ืขื™ื” ื’ื“ื•ืœื”). ืจืฉืชื•ืช ืฉื™ืจื•ืช ืžื•ื“ืจื ื™ื•ืช ืžื’ื ื•ืช ื‘ืฉืงื™ืคื•ืช ืขืœ ื›ืœ ื”ืชืขื‘ื•ืจื” ืฉืœื ื•, ืœืžืฉืœ, ืขื ืื™ืžื•ืช TLS ื”ื“ื“ื™ ื•ื”ืฆืคื ื” ืฉืœืื—ืจ ืžื›ืŸ.

ื ื™ืชื•ื‘ ืชืขื‘ื•ืจื” ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ ืคืœื˜ืคื•ืจืžื”

ืื•ืงื™ื™, ื“ื™ื‘ืจื ื• ืขืœ ืชืขื‘ื•ืจื” ื‘ื™ืŸ ืืคืœื™ืงืฆื™ื•ืช, ืื‘ืœ ืžื” ืœื’ื‘ื™ ืคืœื˜ืคื•ืจืžืช dotCloud ืขืฆืžื”?

ื”ืคืœื˜ืคื•ืจืžื” ืขืฆืžื” ื›ืœืœื” ื›ืžืื” ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ื”ืื—ืจืื™ื ืขืœ ืคื•ื ืงืฆื™ื•ืช ืฉื•ื ื•ืช. ื—ืœืงื ืงื™ื‘ืœื• ื‘ืงืฉื•ืช ืžืื—ืจื™ื, ื•ื—ืœืงื ื”ื™ื• ืขื•ื‘ื“ื™ ืจืงืข ืฉื”ืชื—ื‘ืจื• ืœืฉื™ืจื•ืชื™ื ืื—ืจื™ื ืืš ืœื ืงื™ื‘ืœื• ืงืฉืจื™ื ื‘ืขืฆืžื. ื‘ื›ืœ ืžืงืจื”, ื›ืœ ืฉื™ืจื•ืช ื—ื™ื™ื‘ ืœื“ืขืช ืืช ื ืงื•ื“ื•ืช ื”ืงืฆื” ืฉืœ ื”ื›ืชื•ื‘ื•ืช ืืœื™ื”ืŸ ื”ื•ื ืฆืจื™ืš ืœื”ืชื—ื‘ืจ.

ืฉื™ืจื•ืชื™ื ืจื‘ื™ื ื‘ืจืžื” ื’ื‘ื•ื”ื” ืขืฉื•ื™ื™ื ืœื”ืฉืชืžืฉ ื‘ืจืฉืช ื”ื ื™ืชื•ื‘ ืฉืชื•ืืจื” ืœืขื™ืœ. ืœืžืขืฉื”, ืจื‘ื™ื ืžื™ื•ืชืจ ืžืžืื” ืฉื™ืจื•ืชื™ ื”ืžื™ืงืจื• ืฉืœ dotCloud ื ืคืจืกื• ื›ื™ื™ืฉื•ืžื™ื ืจื’ื™ืœื™ื ื‘ืคืœื˜ืคื•ืจืžืช dotCloud ืขืฆืžื”. ืื‘ืœ ืžืกืคืจ ืงื˜ืŸ ืฉืœ ืฉื™ืจื•ืชื™ื ื‘ืจืžื” ื ืžื•ื›ื” (ื‘ืžื™ื•ื—ื“ ืืœื” ืฉืžื™ื™ืฉืžื™ื ืืช ืจืฉืช ื”ื ื™ืชื•ื‘ ื”ื–ื•) ื”ื™ื• ื–ืงื•ืงื™ื ืœืžืฉื”ื• ืคืฉื•ื˜ ื™ื•ืชืจ, ืขื ืคื—ื•ืช ืชืœื•ืช (ืžื›ื™ื•ื•ืŸ ืฉื”ื ืœื ื™ื›ืœื• ืœืกืžื•ืš ืขืœ ืขืฆืžื ื›ื“ื™ ืœืขื‘ื•ื“ - ื‘ืขื™ื™ืช ื”ืชืจื ื’ื•ืœืช ื•ื”ื‘ื™ืฆื” ื”ื™ืฉื ื” ื•ื”ื˜ื•ื‘ื”).

ืฉื™ืจื•ืชื™ื ืงืจื™ื˜ื™ื™ื ื‘ืจืžื” ื ืžื•ื›ื” ืืœื• ื ืคืจืกื• ืขืœ ื™ื“ื™ ื”ืคืขืœืช ืงื•ื ื˜ื™ื™ื ืจื™ื ื™ืฉื™ืจื•ืช ืขืœ ืžืกืคืจ ืฆืžืชื™ื ืžืจื›ื–ื™ื™ื. ื‘ืžืงืจื” ื–ื”, ืœื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฉื™ืจื•ืชื™ ืคืœื˜ืคื•ืจืžื” ืกื˜ื ื“ืจื˜ื™ื™ื: ืžืงืฉืจ, ืžืชื–ืžืŸ ื•ืจืฅ. ืื ืืชื” ืจื•ืฆื” ืœื”ืฉื•ื•ืช ืœืคืœื˜ืคื•ืจืžื•ืช ืžื›ื•ืœื•ืช ืžื•ื“ืจื ื™ื•ืช, ื–ื” ื›ืžื• ืœื”ืคืขื™ืœ ืžื˜ื•ืก ื‘ืงืจื” ืขื docker run ื™ืฉื™ืจื•ืช ืขืœ ื”ืฆืžืชื™ื, ื‘ืžืงื•ื ืœื”ืืฆื™ืœ ืืช ื”ืžืฉื™ืžื” ืœ- Kubernetes. ื–ื” ื“ื™ ื“ื•ืžื” ื‘ืงื•ื ืกืคื˜ ืžื•ื“ื•ืœื™ื ืกื˜ื˜ื™ื™ื (ืชืจืžื™ืœื™ื), ืฉื‘ื• ื”ื•ื ืžืฉืชืžืฉ kubeadm ืื• bootkube ื‘ืขืช ืืชื—ื•ืœ ืืฉื›ื•ืœ ืขืฆืžืื™.

ืฉื™ืจื•ืชื™ื ืืœื• ื ื—ืฉืคื• ื‘ืฆื•ืจื” ืคืฉื•ื˜ื” ื•ื’ืกื”: ื‘ืงื•ื‘ืฅ ื™ืžืœ ื ืจืฉื ืฉืžื•ืชื™ื”ื ื•ื›ืชื•ื‘ื•ืชื™ื”ื; ื•ื›ืœ ืœืงื•ื— ื”ื™ื” ืฆืจื™ืš ืœืงื—ืช ืขื•ืชืง ืฉืœ ืงื•ื‘ืฅ YAML ื–ื” ืœืคืจื™ืกื”.

ืžืฆื“ ืื—ื“, ื”ื•ื ืืžื™ืŸ ื‘ื™ื•ืชืจ ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืื™ื ื• ื“ื•ืจืฉ ืชืžื™ื›ื” ืฉืœ ื—ื ื•ืช ืžืคืชื—/ืขืจืš ื—ื™ืฆื•ื ื™ ื›ื’ื•ืŸ Zookeeper (ื–ื›ื•ืจ, ื•ื›ื•' ืื• ืงื•ื ืกื•ืœ ืœื ื”ื™ื• ืงื™ื™ืžื™ื ื‘ืื•ืชื” ืชืงื•ืคื”). ืžืฆื“ ืฉื ื™, ื–ื” ื”ืงืฉื” ืขืœ ื”ืขื‘ืจืช ืฉื™ืจื•ืชื™ื. ื‘ื›ืœ ืคืขื ืฉื ืขืฉื” ืžื”ืœืš, ื›ืœ ื”ืœืงื•ื—ื•ืช ื™ืงื‘ืœื• ืงื•ื‘ืฅ YAML ืžืขื•ื“ื›ืŸ (ื•ืืคืฉืจ ืœืืชื—ืœ ืžื—ื“ืฉ). ืœื ืžืื•ื“ ื ื•ื—!

ืœืื—ืจ ืžื›ืŸ, ื”ืชื—ืœื ื• ืœื™ื™ืฉื ืกื›ื™ืžื” ื—ื“ืฉื”, ืฉื‘ื” ื›ืœ ืœืงื•ื— ืžื—ื•ื‘ืจ ืœืฉืจืช proxy ืžืงื•ืžื™. ื‘ืžืงื•ื ื›ืชื•ื‘ืช ื•ื™ืฆื™ืื”, ื”ื•ื ืจืง ืฆืจื™ืš ืœื“ืขืช ืืช ืžืกืคืจ ื”ื™ืฆื™ืื” ืฉืœ ื”ืฉื™ืจื•ืช, ื•ืœื”ืชื—ื‘ืจ ื‘ืืžืฆืขื•ืช localhost. ื”-proxy ื”ืžืงื•ืžื™ ืžื˜ืคืœ ื‘ื—ื™ื‘ื•ืจ ื”ื–ื” ื•ืžืขื‘ื™ืจ ืื•ืชื• ืœืฉืจืช ื‘ืคื•ืขืœ. ื›ืขืช, ื‘ืขืช ื”ืขื‘ืจืช ื”ืงืฆื” ื”ืื—ื•ืจื™ ืœืžื—ืฉื‘ ืื—ืจ ืื• ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื”, ื‘ืžืงื•ื ืœืขื“ื›ืŸ ืืช ื›ืœ ื”ืœืงื•ื—ื•ืช, ืืชื” ืจืง ืฆืจื™ืš ืœืขื“ื›ืŸ ืืช ื›ืœ ื”ืคืจื•ืงืกื™ ื”ืžืงื•ืžื™ื™ื ื”ืœืœื•; ื•ืœื ื ื“ืจืฉ ืขื•ื“ ืืชื—ื•ืœ.

(ื›ืžื• ื›ืŸ ืชื•ื›ื ืŸ ืœื”ืงื™ืฃ ืืช ื”ืชืขื‘ื•ืจื” ื‘ื—ื™ื‘ื•ืจื™ TLS ื•ืœื”ืฆื™ื‘ ืฉืจืช ืคืจื•ืงืกื™ ื ื•ืกืฃ ื‘ืฆื“ ื”ืžืงื‘ืœ, ื•ื›ืŸ ืœืืžืช ืชืขื•ื“ื•ืช TLS ืœืœื ื”ืฉืชืชืคื•ืช ื”ืฉื™ืจื•ืช ื”ืžืงื‘ืœ, ืฉืžื•ื’ื“ืจ ืœืงื‘ืœ ื—ื™ื‘ื•ืจื™ื ืจืง ื‘- localhost. ืขื•ื“ ืขืœ ื›ืš ื‘ื”ืžืฉืš).

ื–ื” ืžืื•ื“ ื“ื•ืžื” ืœ SmartStack ืž-Airbnb, ืื‘ืœ ื”ื”ื‘ื“ืœ ื”ืžืฉืžืขื•ืชื™ ื”ื•ื ืฉ-SmartStack ืžื™ื•ืฉื ื•ื ืคืจืก ืœื™ื™ืฆื•ืจ, ื‘ืขื•ื“ ืฉืžืขืจื›ืช ื”ื ื™ืชื•ื‘ ื”ืคื ื™ืžื™ืช ืฉืœ dotCloud ื ื’ื ื–ื” ื›ืืฉืจ dotCloud ื”ืคื›ื” ืœ-Docker.

ืื ื™ ืื™ืฉื™ืช ืžื—ืฉื™ื‘ ืืช SmartStack ื›ืื—ื“ ื”ืงื•ื“ืžื™ื ืœืžืขืจื›ื•ืช ื›ืžื• Istio, Linkerd ื•-Consul Connect ืžื›ื™ื•ื•ืŸ ืฉื›ื•ืœืŸ ืขื•ืงื‘ื•ืช ืื—ืจ ืื•ืชื• ื“ืคื•ืก:

  • ื”ืคืขืœ ืคืจื•ืงืกื™ ื‘ื›ืœ ืฆื•ืžืช.
  • ืœืงื•ื—ื•ืช ืžืชื—ื‘ืจื™ื ืœ-proxy.
  • ืžื™ืฉื•ืจ ื”ื‘ืงืจื” ืžืขื“ื›ืŸ ืืช ืชืฆื•ืจืช ื”-proxy ื›ืืฉืจ ื”ืงืฆื” ื”ืื—ื•ืจื™ ืžืฉืชื ื™ื.
  • ... ืจื•ื•ื—!

ื™ื™ืฉื•ื ืžื•ื“ืจื ื™ ืฉืœ ืจืฉืช ืฉื™ืจื•ืช

ืื ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœื™ื™ืฉื ืจืฉืช ื“ื•ืžื” ื”ื™ื•ื, ื ื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืขืงืจื•ื ื•ืช ื“ื•ืžื™ื. ืœื“ื•ื’ืžื”, ื”ื’ื“ืจ ืื–ื•ืจ DNS ืคื ื™ืžื™ ืขืœ ื™ื“ื™ ืžื™ืคื•ื™ ืฉืžื•ืช ืฉื™ืจื•ืช ืœื›ืชื•ื‘ื•ืช ื‘ืžืจื—ื‘ 127.0.0.0/8. ืœืื—ืจ ืžื›ืŸ ื”ืคืขืœ ืืช HAProxy ื‘ื›ืœ ืฆื•ืžืช ื‘ืืฉื›ื•ืœ, ื•ืงื‘ืœ ื—ื™ื‘ื•ืจื™ื ื‘ื›ืœ ื›ืชื•ื‘ืช ืฉื™ืจื•ืช (ื‘ืชืช-ืจืฉืช ื–ื• 127.0.0.0/8) ื•ื”ืคื ื™ื™ืช/ืื™ื–ื•ืŸ ื”ืขื•ืžืก ืœื—ืœืงื™ื ื”ืื—ื•ืจื™ื™ื ื”ืžืชืื™ืžื™ื. ื ื™ืชืŸ ืœืฉืœื•ื˜ ื‘ืชืฆื•ืจืช HAProxy confd, ื”ืžืืคืฉืจ ืœืš ืœืื—ืกืŸ ืžื™ื“ืข ืขื•ืจืคื™ ื‘-etcd ืื• ื‘-Consul ื•ืœื“ื—ื•ืฃ ืื•ื˜ื•ืžื˜ื™ืช ืชืฆื•ืจื” ืžืขื•ื“ื›ื ืช ืœ-HAProxy ื‘ืขืช ื”ืฆื•ืจืš.

ื–ื” ืคื—ื•ืช ืื• ื™ื•ืชืจ ืื™ืš Istio ืขื•ื‘ื“! ืื‘ืœ ืขื ื›ืžื” ื”ื‘ื“ืœื™ื:

  • ืฉื™ืžื•ืฉื™ื ืคืจื•ืงืกื™ ืฉืœื™ื— ื‘ืžืงื•ื HAProxy.
  • ืžืื—ืกืŸ ืืช ืชืฆื•ืจืช ื”ืงืฆื” ื”ืื—ื•ืจื™ ื‘ืืžืฆืขื•ืช Kubernetes API ื‘ืžืงื•ื etcd ืื• Consul.
  • ืฉื™ืจื•ืชื™ื ืžื•ืงืฆื™ื ื›ืชื•ื‘ื•ืช ื‘ืจืฉืช ื”ืžืฉื ื” ื”ืคื ื™ืžื™ืช (ื›ืชื•ื‘ื•ืช Kubernetes ClusterIP) ื‘ืžืงื•ื 127.0.0.0/8.
  • ื‘ืขืœ ืจื›ื™ื‘ ื ื•ืกืฃ (Citadel) ืœื”ื•ืกืคืช ืื™ืžื•ืช TLS ื”ื“ื“ื™ ื‘ื™ืŸ ื”ืœืงื•ื— ืœืฉืจืชื™ื.
  • ืชื•ืžืš ื‘ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ื›ื’ื•ืŸ ืฉื‘ื™ืจืช ืžืขื’ืœ, ืžืขืงื‘ ืžื‘ื•ื–ืจ, ืคืจื™ืกืช ืงื ืจื™ืช ื•ื›ื•'.

ื‘ื•ืื• ื ืกืชื›ืœ ื‘ืžื”ื™ืจื•ืช ืขืœ ื›ืžื” ืžื”ื”ื‘ื“ืœื™ื.

ืคืจื•ืงืกื™ ืฉืœื™ื—

Envoy Proxy ื ื›ืชื‘ ืขืœ ื™ื“ื™ Lyft [ื”ืžืชื—ืจื” ืฉืœ ืื•ื‘ืจ ื‘ืฉื•ืง ื”ืžื•ื ื™ื•ืช - ื›. ื ืชื™ื‘]. ื–ื” ื“ื•ืžื” ื‘ืžื•ื‘ื ื™ื ืจื‘ื™ื ืœ-proxies ืื—ืจื™ื (ืœืžืฉืœ HAProxy, Nginx, Traefik...), ืื‘ืœ Lyft ื›ืชื‘ ืืช ืฉืœื”ื ื›ื™ ื”ื ื”ื™ื• ื–ืงื•ืงื™ื ืœืชื›ื•ื ื•ืช ืฉื—ืกืจื•ืช ืœ-proxies ืื—ืจื™ื, ื•ื ืจืื” ื”ื™ื” ื—ื›ื ื™ื•ืชืจ ืœื™ืฆื•ืจ ืื—ื“ ื—ื“ืฉ ื‘ืžืงื•ื ืœื”ืจื—ื™ื‘ ืืช ื”ืงื™ื™ื.

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-Envoy ื‘ืคื ื™ ืขืฆืžื•. ืื ื™ืฉ ืœื™ ืฉื™ืจื•ืช ืกืคืฆื™ืคื™ ืฉืฆืจื™ืš ืœื”ืชื—ื‘ืจ ืœืฉื™ืจื•ืชื™ื ืื—ืจื™ื, ืื ื™ ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืื•ืชื• ืœื”ืชื—ื‘ืจ ืœ-Envoy, ื•ืœืื—ืจ ืžื›ืŸ ืœื”ื’ื“ื™ืจ ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ื•ืœื”ื’ื“ื™ืจ ืžื—ื“ืฉ ืืช Envoy ืขื ื”ืžื™ืงื•ื ืฉืœ ืฉื™ืจื•ืชื™ื ืื—ืจื™ื, ืชื•ืš ืงื‘ืœืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื ื•ืกืคืช ื ื”ื“ืจืช, ื›ืžื• ื ืจืื•ืช. ื‘ืžืงื•ื ืกืคืจื™ื™ืช ืœืงื•ื— ืžื•ืชืืžืช ืื™ืฉื™ืช ืื• ื”ื–ืจืงืช ืžืขืงื‘ื™ ืฉื™ื—ื•ืช ืœืงื•ื“, ืื ื• ืฉื•ืœื—ื™ื ืชืขื‘ื•ืจื” ืœ-Envoy, ื•ื”ื™ื ืื•ืกืคืช ืขื‘ื•ืจื ื• ืžื“ื“ื™ื.

ืื‘ืœ Envoy ื’ื ืžืกื•ื’ืœ ืœืขื‘ื•ื“ ื‘ืชื•ืจ ืžื™ืฉื•ืจ ื ืชื•ื ื™ื (ืžื™ืฉื•ืจ ื ืชื•ื ื™ื) ืขื‘ื•ืจ ืจืฉืช ื”ืฉื™ืจื•ืช. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉ-Envoy ืžื•ื’ื“ืจ ื›ืขืช ืขื‘ื•ืจ ืจืฉืช ื”ืฉื™ืจื•ืช ื”ื–ื• ืžื˜ื•ืก ืฉืœื™ื˜ื” (ืžื˜ื•ืก ื‘ืงืจื”).

ืžื˜ื•ืก ื‘ืงืจื”

ืขื‘ื•ืจ ืžื™ืฉื•ืจ ื”ื‘ืงืจื”, Istio ืžืกืชืžืš ืขืœ ื”-API ืฉืœ Kubernetes. ื–ื” ืœื ืฉื•ื ื” ืžืื•ื“ ืžืฉื™ืžื•ืฉ ื‘-confd, ื”ืžืกืชืžืš ืขืœ etcd ืื• Consul ื›ื“ื™ ืœื”ืฆื™ื’ ืืช ืกื˜ ื”ืžืคืชื—ื•ืช ื‘ืžืื’ืจ ื”ื ืชื•ื ื™ื. Istio ืžืฉืชืžืฉ ื‘ืžืžืฉืง ื”-API ืฉืœ Kubernetes ื›ื“ื™ ืœื”ืฆื™ื’ ืงื‘ื•ืฆื” ืฉืœ ืžืฉืื‘ื™ Kubernetes.

ื‘ื™ืŸ ื–ื” ื•ืื–: ืื ื™ ืื™ืฉื™ืช ืžืฆืืชื™ ืืช ื–ื” ืฉื™ืžื•ืฉื™ ืชื™ืื•ืจ ืžืžืฉืง API ืฉืœ Kubernetesืฉื›ืชื•ื‘ ื‘ื•:

ืฉืจืช ื”-API ืฉืœ Kubernetes ื”ื•ื "ืฉืจืช ืžื˜ื•ืžื˜ื" ื”ืžืฆื™ืข ืื—ืกื•ืŸ, ื ื™ื”ื•ืœ ื’ืจืกืื•ืช, ืื™ืžื•ืช, ืขื“ื›ื•ืŸ ื•ืกืžื ื˜ื™ืงื” ืขื‘ื•ืจ ืžืฉืื‘ื™ API.

Istio ืชื•ื›ื ืŸ ืœืขื‘ื•ื“ ืขื Kubernetes; ื•ืื ืืชื” ืจื•ืฆื” ืœื”ืฉืชืžืฉ ื‘ื• ืžื—ื•ืฅ ืœ-Kubernetes, ืื– ืืชื” ืฆืจื™ืš ืœื”ืคืขื™ืœ ืžื•ืคืข ืฉืœ ืฉืจืช ื”-API ืฉืœ Kubernetes (ื•ืฉื™ืจื•ืช ื”ืขื–ืจ etcd).

ื›ืชื•ื‘ื•ืช ืฉื™ืจื•ืช

Istio ืžืกืชืžืš ืขืœ ื›ืชื•ื‘ื•ืช ClusterIP ืฉ-Kubernetes ืžืงืฆื”, ื›ืš ืฉืฉื™ืจื•ืชื™ Istio ืžืงื‘ืœื™ื ื›ืชื•ื‘ืช ืคื ื™ืžื™ืช (ืœื ื‘ื˜ื•ื•ื— 127.0.0.0/8).

ืชืขื‘ื•ืจื” ืœื›ืชื•ื‘ืช ClusterIP ืขื‘ื•ืจ ืฉื™ืจื•ืช ืกืคืฆื™ืคื™ ื‘ืืฉื›ื•ืœ Kubernetes ืœืœื Istio ืžื™ื™ืจื˜ืช ืขืœ ื™ื“ื™ kube-proxy ื•ื ืฉืœื—ืช ืœ-backend ืฉืœ ืื•ืชื• proxy. ืื ืืชื” ืžืขื•ื ื™ื™ืŸ ื‘ืคืจื˜ื™ื ื”ื˜ื›ื ื™ื™ื, kube-proxy ืžื’ื“ื™ืจ ื›ืœืœื™ iptables (ืื• ืžืื–ื ื™ ืขื•ืžืก IPVS, ืชืœื•ื™ ืื™ืš ื–ื” ืžื•ื’ื“ืจ) ื›ื“ื™ ืœืฉื›ืชื‘ ืืช ื›ืชื•ื‘ื•ืช ื”-IP ื”ื™ืขื“ ืฉืœ ื—ื™ื‘ื•ืจื™ื ื”ืขื•ื‘ืจื™ื ืœื›ืชื•ื‘ืช ClusterIP.

ื‘ืจื’ืข ืฉ-Istio ืžื•ืชืงืŸ ืขืœ ืืฉื›ื•ืœ Kubernetes, ืฉื•ื ื“ื‘ืจ ืœื ืžืฉืชื ื” ืขื“ ืฉื”ื•ื ืžื•ืคืขืœ ื‘ืžืคื•ืจืฉ ืขื‘ื•ืจ ืฆืจื›ืŸ ื ืชื•ืŸ, ืื• ืืคื™ืœื• ืžืจื—ื‘ ื”ืฉืžื•ืช ื›ื•ืœื•, ืขืœ ื™ื“ื™ ื”ืฆื’ืช ืžื™ื›ืœ sidecar ืœืชื•ืš ืชืจืžื™ืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช. ืžื™ื›ืœ ื–ื” ื™ืกื•ื‘ื‘ ืžื•ืคืข ืฉืœ Envoy ื•ื™ื’ื“ื™ืจ ืงื‘ื•ืฆื” ืฉืœ ื—ื•ืงื™ iptables ื›ื“ื™ ืœื™ื™ืจื˜ ืชืขื‘ื•ืจื” ืฉืขื•ื‘ืจืช ืœืฉื™ืจื•ืชื™ื ืื—ืจื™ื ื•ืœื”ืคื ื•ืช ืืช ื”ืชืขื‘ื•ืจื” ื”ื–ื• ืœ-Envoy.

ื‘ืฉื™ืœื•ื‘ ืขื Kubernetes DNS, ื–ื” ืื•ืžืจ ืฉื”ืงื•ื“ ืฉืœื ื• ื™ื›ื•ืœ ืœื”ืชื—ื‘ืจ ืœืคื™ ืฉื ื”ืฉื™ืจื•ืช ื•ื”ื›ืœ "ืคืฉื•ื˜ ืขื•ื‘ื“". ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ื”ืงื•ื“ ืฉืœื ื• ืžื ืคื™ืง ืฉืื™ืœืชื•ืช ื›ืžื• http://api/v1/users/4242ืื– api ืœืคืชื•ืจ ื‘ืงืฉื” ืขื‘ื•ืจ 10.97.105.48, ื—ื•ืงื™ iptables ื™ื™ืจื˜ื• ื—ื™ื‘ื•ืจื™ื ืžืชืืจื™ืš 10.97.105.48 ื•ื™ืขื‘ื™ืจื• ืื•ืชื ืœ-Proxy ื”ืžืงื•ืžื™ ืฉืœ Envoy, ื•ื”-Proxy ื”ืžืงื•ืžื™ ื”ื–ื” ื™ืขื‘ื™ืจ ืืช ื”ื‘ืงืฉื” ืœ-API ืžืžืฉื™. ืคื™ื•!

ืกืœืกื•ืœื™ื ื ื•ืกืคื™ื

Istio ืžืกืคืงืช ื’ื ื”ืฆืคื ื” ื•ืื™ืžื•ืช ืžืงืฆื” ืœืงืฆื” ื‘ืืžืฆืขื•ืช mTLS (TLS ื”ื“ื“ื™). ืจื›ื™ื‘ ืฉื ืงืจื ืžืฆื•ื“ื”.

ื™ืฉ ื’ื ืžืจื›ื™ื‘ ืžื™ืงืกืจ, ืืฉืจ ื”ืฉืœื™ื— ื™ื›ื•ืœ ืœื‘ืงืฉ ื›ืœ ื‘ืงืฉื” ืœืงื‘ืœ ื”ื—ืœื˜ื” ืžื™ื•ื—ื“ืช ืœื’ื‘ื™ ืื•ืชื” ื‘ืงืฉื” ื‘ื”ืชืื ืœื’ื•ืจืžื™ื ืฉื•ื ื™ื ื›ื’ื•ืŸ ื›ื•ืชืจื•ืช, ืขื•ืžืก ืื—ื•ืจื™ ื•ื›ื•'... (ืืœ ื“ืื’ื”: ื™ืฉื ืŸ ื“ืจื›ื™ื ืจื‘ื•ืช ืœืฉืžื•ืจ ืขืœ ื”ืžื™ืงืกืจ ืคื•ืขืœ, ื•ื’ื ืื ื”ื•ื ื™ืงืจื•ืก, Envoy ื™ืžืฉื™ืš ืœืขื‘ื•ื“ ื‘ืกื“ืจ ื›ืคืจื•ืงืกื™).

ื•ื›ืžื•ื‘ืŸ, ื”ื–ื›ืจื ื• ืืช ื”ื ืจืื•ืช: Envoy ืื•ืกืคืช ื›ืžื•ืช ืขืฆื•ืžื” ืฉืœ ืžื“ื“ื™ื ืชื•ืš ืžืชืŸ ืžืขืงื‘ ืžื‘ื•ื–ืจ. ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื, ืื ื‘ืงืฉืช API ื‘ื•ื“ื“ืช ื—ื™ื™ื‘ืช ืœืขื‘ื•ืจ ื“ืจืš ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื A, B, C ื•-D, ืื– ืขื ื”ื›ื ื™ืกื”, ืžืขืงื‘ ืžื‘ื•ื–ืจ ื™ื•ืกื™ืฃ ืžื–ื”ื” ื™ื™ื—ื•ื“ื™ ืœื‘ืงืฉื” ื•ื™ืื—ืกืŸ ืืช ื”ืžื–ื”ื” ื”ื–ื” ื‘ืืžืฆืขื•ืช ื‘ืงืฉื•ืช ืžืฉื ื” ืœื›ืœ ื”ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ื”ืœืœื•, ืžื” ืฉืžืืคืฉืจ ื›ืœ ื”ืฉื™ื—ื•ืช ื”ืงืฉื•ืจื•ืช ืœืœื›ื•ื“. ืขื™ื›ื•ื‘ื™ื ื•ื›ื•'.

ืœืคืชื— ืื• ืœืงื ื•ืช

ืœืื™ืกื˜ื™ื• ื™ืฉ ืžื•ื ื™ื˜ื™ืŸ ืฉืœ ืžื•ืจื›ื‘ื•ืช. ืœืขื•ืžืช ื–ืืช, ื‘ื ื™ื™ืช ืจืฉืช ื”ื ื™ืชื•ื‘ ืฉืชื™ืืจืชื™ ื‘ืชื—ื™ืœืช ื”ืคื•ืกื˜ ื”ื™ื ืคืฉื•ื˜ื” ื™ื—ืกื™ืช ื‘ืืžืฆืขื•ืช ื›ืœื™ื ืงื™ื™ืžื™ื. ืื– ื”ืื ื–ื” ื”ื’ื™ื•ื ื™ ืœื™ืฆื•ืจ ืจืฉืช ืฉื™ืจื•ืช ืžืฉืœืš ื‘ืžืงื•ื ื–ืืช?

ืื ื™ืฉ ืœื ื• ืฆืจื›ื™ื ืฆื ื•ืขื™ื (ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ื ืจืื•ืช, ืžืคืกืง ื•ืฉืืจ ื“ืงื•ื™ื•ืช), ืื– ืžื—ืฉื‘ื•ืช ืžื’ื™ืขื•ืช ืœืคื™ืชื•ื— ื›ืœื™ ืžืฉืœื ื•. ืื‘ืœ ืื ื ืฉืชืžืฉ ื‘-Kubernetes, ืื•ืœื™ ืืคื™ืœื• ืœื ื™ื”ื™ื” ืฆื•ืจืš ื‘ื›ืš ื›ื™ Kubernetes ื›ื‘ืจ ืžืกืคืงืช ื›ืœื™ื ื‘ืกื™ืกื™ื™ื ืœื’ื™ืœื•ื™ ืฉื™ืจื•ืช ื•ืื™ื–ื•ืŸ ืขื•ืžืกื™ื.

ืื‘ืœ ืื ื™ืฉ ืœื ื• ื“ืจื™ืฉื•ืช ืžืชืงื“ืžื•ืช, ื ืจืื” ืฉ"ืจื›ื™ืฉืช" ืจืฉืช ืฉื™ืจื•ืช ื”ื™ื ืื•ืคืฆื™ื” ื”ืจื‘ื” ื™ื•ืชืจ ื˜ื•ื‘ื”. (ื–ื” ืœื ืชืžื™ื“ "ืงื ื™ื™ื”" ืžื›ื™ื•ื•ืŸ ืฉ-Istio ื”ื•ื ืงื•ื“ ืคืชื•ื—, ืื‘ืœ ืื ื—ื ื• ืขื“ื™ื™ืŸ ืฆืจื™ื›ื™ื ืœื”ืฉืงื™ืข ื–ืžืŸ ื”ื ื“ืกื™ ื›ื“ื™ ืœื”ื‘ื™ืŸ, ืœืคืจื•ืก ื•ืœื ื”ืœ ืื•ืชื•.)

ื”ืื ืขืœื™ ืœื‘ื—ื•ืจ ื‘-Istio, Linkerd ืื• Consul Connect?

ืขื“ ื›ื” ื“ื™ื‘ืจื ื• ืจืง ืขืœ Istio, ืื‘ืœ ื–ื• ืœื ืจืฉืช ื”ืฉื™ืจื•ืช ื”ื™ื—ื™ื“ื”. ืืœื˜ืจื ื˜ื™ื‘ื” ืคื•ืคื•ืœืจื™ืช - ืœื™ื ืงืจื“, ื•ื™ืฉ ืขื•ื“ ืงื•ื ืกื•ืœ ืงื•ื ืงื˜.

ืžื” ืœื‘ื—ื•ืจ?

ื‘ื›ื ื•ืช, ืื ื™ ืœื ื™ื•ื“ืข. ื›ืจื’ืข ืื ื™ ืœื ืจื•ืื” ืืช ืขืฆืžื™ ืžืกืคื™ืง ืžื•ื›ืฉืจ ืœืขื ื•ืช ืขืœ ืฉืืœื” ื–ื•. ื™ืฉ ื›ืžื” ืžืขื ื™ื™ืŸ ืžืืžืจื™ื ืขื ื”ืฉื•ื•ืื” ืฉืœ ื”ื›ืœื™ื ื”ืœืœื• ื•ืืคื™ืœื• ืืžื•ืช ืžื™ื“ื”.

ื’ื™ืฉื” ืžื‘ื˜ื™ื—ื” ืื—ืช ื”ื™ื ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ ื›ืžื• SuperGloo. ื”ื•ื ืžื™ื™ืฉื ืฉื›ื‘ืช ื”ืคืฉื˜ื” ื›ื“ื™ ืœืคืฉื˜ ื•ืœืื—ื“ ืืช ืžืžืฉืงื™ ื”-API ืฉื ื—ืฉืคื™ื ืขืœ ื™ื“ื™ ืจืฉืชื•ืช ืฉื™ืจื•ืช. ื‘ืžืงื•ื ืœืœืžื•ื“ ืืช ืžืžืฉืงื™ ื”-API ื”ืกืคืฆื™ืคื™ื™ื (ื•ืœื“ืขืชื™, ื”ืžื•ืจื›ื‘ื™ื ื™ื—ืกื™ืช) ืฉืœ ืจืฉืชื•ืช ืฉื™ืจื•ืช ืฉื•ื ื•ืช, ื ื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืงื•ื ืกื˜ืจื•ืงืฆื™ื•ืช ื”ืคืฉื•ื˜ื•ืช ื™ื•ืชืจ ืฉืœ SuperGloo - ื•ืœืขื‘ื•ืจ ื‘ืงืœื•ืช ืžืื—ื“ ืœืฉื ื™, ื›ืื™ืœื• ื”ื™ื” ืœื ื• ืคื•ืจืžื˜ ืชืฆื•ืจื” ื‘ื™ื ื™ื™ื ื”ืžืชืืจ ืžืžืฉืงื™ HTTP ื•-backends ืžืกื•ื’ืœื™ื ืฉืœ ื™ืฆื™ืจืช ื”ืชืฆื•ืจื” ื‘ืคื•ืขืœ ืขื‘ื•ืจ Nginx, HAProxy, Traefik, Apache...

ื”ืชืขืกืงืชื™ ืงืฆืช ืขื Istio ื•-SuperGloo, ื•ื‘ืžืืžืจ ื”ื‘ื ืื ื™ ืจื•ืฆื” ืœื”ืจืื•ืช ืื™ืš ืžื•ืกื™ืคื™ื ืืช Istio ืื• Linkerd ืœืืฉื›ื•ืœ ืงื™ื™ื ื‘ืืžืฆืขื•ืช SuperGloo, ื•ืื™ืš ื”ืื—ืจื•ืŸ ืขื•ืฉื” ืืช ื”ืขื‘ื•ื“ื”, ื›ืœื•ืžืจ ืžืืคืฉืจ ืœืš ืœืขื‘ื•ืจ ืž ืจืฉืช ืฉื™ืจื•ืช ืื—ืช ืœืื—ืจืช ืœืœื ื”ื—ืœืคืช ืชืฆื•ืจื•ืช.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”