ããã«ã¡ã¯ïŒ ã³ãŒã¹éå§åå€ã«
ãµãŒãã¹ ã¡ãã·ã¥ã¯ãã¢ããªã±ãŒã·ã§ã³ ããã°ã©ãã³ã° ã€ã³ã¿ãŒãã§ã€ã¹ (API) éã®å€§éã®ãããã¯ãŒã¯ããŒã¹ã®ããã»ã¹ééä¿¡ãåŠçããããã«å¿
èŠãªãæ§æå¯èœãªäœé
延ã€ã³ãã©ã¹ãã©ã¯ãã£å±€ã§ãã Service Mesh ã¯ãã³ã³ããåããããå€ãã®å Žåäžæçãªã¢ããªã±ãŒã·ã§ã³ ã€ã³ãã©ã¹ãã©ã¯ã㣠ãµãŒãã¹éã®é«éã§ä¿¡é Œæ§ã®é«ãå®å
šãªéä¿¡ãå¯èœã«ããŸãã Service Mesh ã¯ããµãŒãã¹æ€åºãè² è·åæ£ãæå·åãééæ§ããã¬ãŒãµããªãã£ãèªèšŒãšèªå¯ãèªåã·ã£ããããŠã³ ãã¿ãŒã³ã®ãµããŒããªã©ã®æ©èœãæäŸããŸã (é®æåš).
ãµãŒãã¹ ã¡ãã·ã¥ã¯éåžžãåãµãŒãã¹ ã€ã³ã¹ã¿ã³ã¹ã«ãããã· ã€ã³ã¹ã¿ã³ã¹ãæäŸããããšã«ãã£ãŠå®è£
ãããŸãã ãµã€ãã«ãŒã ãµã€ãã«ãŒ ãµãŒãã¹éã®éä¿¡ãåŠçããã»ãã¥ãªãã£åé¡ãç£èŠããã³è§£æ±ºããŸããã€ãŸããåã
ã®ãµãŒãã¹ããæœè±¡åã§ãããã¹ãŠã®ãã®ã§ãã ãã®ããã«ããŠãéçºè
ã¯ãµãŒãã¹ã§ã¢ããªã±ãŒã·ã§ã³ ã³ãŒããäœæãä¿å®ãæäŸã§ããã·ã¹ãã 管çè
ã¯ãµãŒãã¹ ã¡ãã·ã¥ãæäœããŠã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããŸãã
GoogleãIBMãLyft ã® Istio ã¯ãçŸåšæãæåãªãµãŒãã¹ ã¡ãã·ã¥ ã¢ãŒããã¯ãã£ã§ãã ãŸããããšããš Google ã§éçºããã Kubernetes ã¯ãçŸåš Istio ã§ãµããŒããããŠããå¯äžã®ã³ã³ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ãã¬ãŒã ã¯ãŒã¯ã§ãã ãã³ããŒã¯ãåçšãµããŒãããã Istio ããŒãžã§ã³ãäœæããããšããŠããŸãã 圌ãããªãŒãã³ãœãŒã¹ ãããžã§ã¯ãã«ã©ã®ãããªæ°ãããã®ãããããããšãã§ããããèŠãã®ã¯èå³æ·±ãã§ãããã
ãã ããä»ã®ãµãŒãã¹ ã¡ãã·ã¥å®è£
ãéçºãããŠãããããIstio ãå¯äžã®éžæè¢ã§ã¯ãããŸããã ãã¿ãŒã³ sidecar proxy
BuoyantãHashiCorpãSolo.io ãªã©ã®ãããžã§ã¯ãããå€æã§ããããã«ãæã人æ°ã®ããå®è£
ã§ãã 代æ¿ã¢ãŒããã¯ãã£ããããŸããNetflix ãã¯ãããžãŒ ããŒã«ãããã¯ãRibbonãHysterixãEurekaãArchaius ã©ã€ãã©ãªãããã³ Azure Service Fabric ãªã©ã®ãã©ãããã©ãŒã ãéã㊠Service Mesh æ©èœãå®è£
ããã¢ãããŒãã® XNUMX ã€ã§ãã
Service Mesh ã«ã¯ããµãŒãã¹ ã³ã³ããŒãã³ããšæ©èœã«é¢ããç¬èªã®çšèªããããŸãã
- ã³ã³ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ãã¬ãŒã ã¯ãŒã¯ã ã¢ããªã±ãŒã·ã§ã³ ã€ã³ãã©ã¹ãã©ã¯ãã£ã«è¿œå ãããã³ã³ãããå¢ããã«ã€ããŠãã³ã³ãããç£èŠããã³ç®¡çããããã®å¥ã®ããŒã«ãã€ãŸãã³ã³ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ãã¬ãŒã ã¯ãŒã¯ãå¿ èŠã«ãªããŸãã Kubernetes ã¯ãã®ãããåžå Žããã£ãããšå æããŠãããäž»ãªç«¶åä»ç€Ÿã§ãã Docker Swarm ã Mesosphere DC/OS ã§ãã代æ¿æ段ãšã㊠Kubernetes ãšã®çµ±åãæäŸããŠããŸãã
- ãµãŒãã¹ãšã€ã³ã¹ã¿ã³ã¹ (Kubernetes ããã)ã ã€ã³ã¹ã¿ã³ã¹ã¯ããã€ã¯ããµãŒãã¹ã®åäžã®å®è¡ã³ããŒã§ãã XNUMX ã€ã®ã€ã³ã¹ã¿ã³ã¹ã XNUMX ã€ã®ã³ã³ããã§ããå ŽåããããŸãã Kubernetes ã§ã¯ãã€ã³ã¹ã¿ã³ã¹ã¯ããããšåŒã°ããç¬ç«ããã³ã³ããã®å°ããªã°ã«ãŒãã§æ§æãããŸãã ã¯ã©ã€ã¢ã³ããã€ã³ã¹ã¿ã³ã¹ããããã«çŽæ¥ã¢ã¯ã»ã¹ããããšã¯ã»ãšãã©ãªããããå€ãã®å Žåãåäžã§ã¹ã±ãŒã©ãã«ã§ãã©ãŒã«ããã¬ã©ã³ããªã€ã³ã¹ã¿ã³ã¹ãããã (ã¬ããªã«) ã®ã»ããã§ãããµãŒãã¹ã«ã¢ã¯ã»ã¹ããŸãã
- ãµã€ãã«ãŒãããã·ã ãµã€ãã«ãŒ ãããã·ã¯ãåäžã®ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãããã§åäœããŸãã ãµã€ãã«ãŒ ãããã·ã®ãã€ã³ãã¯ãé£æºããã³ã³ããããã®ãã©ãã£ãã¯ãšæ»ãã®ãã©ãã£ãã¯ãã«ãŒãã£ã³ã°ãŸãã¯ãããã·ããããšã§ãã Sidecar ã¯ä»ã® Sidecar Proxies ãšå¯Ÿè©±ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ ãã¬ãŒã ã¯ãŒã¯ã«ãã£ãŠç®¡çãããŸãã å€ãã®ãµãŒãã¹ ã¡ãã·ã¥å®è£ ã§ã¯ããµã€ãã«ãŒ ãããã·ã䜿çšããŠãã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãããã«åºå ¥ããããã¹ãŠã®ãã©ãã£ãã¯ãã€ã³ã¿ãŒã»ããããŠç®¡çããŸãã
- ãµãŒãã¹ãã£ã¹ã«ããªã ã€ã³ã¹ã¿ã³ã¹ãå¥ã®ãµãŒãã¹ãšéä¿¡ããå¿ èŠãããå Žåãä»ã®ãµãŒãã¹ã®æ£åžžã§å©çšå¯èœãªã€ã³ã¹ã¿ã³ã¹ãèŠã€ãã (æ€åºãã) å¿ èŠããããŸãã éåžžãã€ã³ã¹ã¿ã³ã¹ã¯ DNS ã«ãã¯ã¢ãããå®è¡ããŸãã ã³ã³ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ãã¬ãŒã ã¯ãŒã¯ã¯ããªã¯ãšã¹ããåä¿¡ããæºåãã§ããŠããã€ã³ã¹ã¿ã³ã¹ã®ãªã¹ããç¶æããDNS ã¯ãšãªçšã®ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã
- è² è·åæ£ã ã»ãšãã©ã®ã³ã³ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ãã¬ãŒã ã¯ãŒã¯ã¯ãã¬ã€ã€ãŒ 4 (ãã©ã³ã¹ããŒã) ã§è² è·åæ£ãæäŸããŸãã ãµãŒãã¹ ã¡ãã·ã¥ã¯ãã¬ã€ã€ãŒ 7 (ã¢ããªã±ãŒã·ã§ã³ ã¬ãã«) ã§ããè€éãªè² è·åæ£ãå®è£ ããã¢ã«ãŽãªãºã ãè±å¯ã§ããã©ãã£ãã¯ã®ç®¡çãããå¹æçã§ãã API ã䜿çšããŠè² è·åæ£èšå®ãå€æŽã§ãããããBlue-Green ãŸã㯠Canary ãããã€ã¡ã³ãã調æŽã§ããŸãã
- КОÑÑПваМОеã Service Mesh ã¯ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ãæå·åããã³åŸ©å·åã§ããããããµãŒãã¹ãããã®è² æ ãåãé€ãããšãã§ããŸãã Service Mesh ã¯ãæ¢åã®æ°žç¶æ¥ç¶ã«åªå é äœãä»ãããåå©çšãããããããšã§ããã©ãŒãã³ã¹ãåäžãããæ°ããæ¥ç¶ãäœæããããã®é«äŸ¡ãªèšç®ã®å¿ èŠæ§ã軜æžããããšãã§ããŸãã ãã©ãã£ãã¯æå·åã®æãäžè¬çãªå®è£ ã¯æ¬¡ã®ãšããã§ãã çžäºTLS (mTLS)ãå ¬éããŒåºç€ (PKI) ãããµã€ãã«ãŒ ãããã·ã§äœ¿çšãã蚌ææžãšããŒãçæããã³é åžããŸãã
- èªèšŒãšèªå¯ã ãµãŒãã¹ ã¡ãã·ã¥ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å€éšãŸãã¯å éšããè¡ããããªã¯ãšã¹ããæ¿èªããã³èªèšŒããæ€èšŒããããªã¯ãšã¹ãã®ã¿ãã€ã³ã¹ã¿ã³ã¹ã«éä¿¡ããŸãã
- èªåã·ã£ããããŠã³ãã¿ãŒã³ã®ãµããŒãã ãµãŒãã¹ã¡ãã·ã¥ã®ãµããŒã
èªåã·ã£ããããŠã³ãã¿ãŒã³ ããã«ãããç°åžžãªã€ã³ã¹ã¿ã³ã¹ãéé¢ãããå¿ èŠã«å¿ããŠãããã®ã€ã³ã¹ã¿ã³ã¹ãåŸã ã«æ£åžžãªã€ã³ã¹ã¿ã³ã¹ã®ããŒã«ã«æ»ãããŸãã
ã€ã³ã¹ã¿ã³ã¹éã®ãããã¯ãŒã¯ ãã©ãã£ãã¯ã管çãã Service Mesh ã¢ããªã±ãŒã·ã§ã³ã®éšåã¯ã ããŒã¿ãã¬ãŒã³ã åäœãå¶åŸ¡ããæ§æãäœæããŠå±éãã ããŒã¿ãã¬ãŒã³ãå¥ã®ã¡ãœããã䜿çšããŠå®è¡ãããŸãã ã³ã³ãããŒã«ãã¬ãŒã³. ã³ã³ãããŒã«ãã¬ãŒã³ éåžžãã¢ããªã±ãŒã·ã§ã³ãå¶åŸ¡ããããã® APIãCLIããŸã㯠GUI ãå«ãŸããŠãããããããã«æ¥ç¶ããããã«èšèšãããŠããŸãã
ãµãŒãã¹ ã¡ãã·ã¥ã®ã³ã³ãããŒã« ãã¬ãŒã³ã¯ããµã€ãã«ãŒ ãããã·ãšããŒã¿ ãã¬ãŒã³ã®éã§æ§æãåæ£ããŸãã
ãµãŒãã¹ ã¡ãã·ã¥ ã¢ãŒããã¯ãã£ã¯ãã³ã³ãããŒãšãã€ã¯ããµãŒãã¹ã䜿çšããŠè€éãªéçšäžã®åé¡ã解決ããããã«ãã䜿çšãããŸãã ãã®åéã®ãã€ãªãã¢
Service Mesh ã¢ãŒããã¯ãã£ããã¢ããªã±ãŒã·ã§ã³ã®éçšãšé
ä¿¡ã«é¢ãããã¹ãŠã®åé¡ã解決ã§ãããšã¯èããããŸããã 建ç¯å®¶ãéçºè
ã¯èšå€§ãªããŒã«ãæã£ãŠããŸããããã®äžã§ãã³ããŒã¯ XNUMX ã€ã ãã§ããå€ãã®ã¿ã¹ã¯ã®äžã§è§£æ±ºããªããã°ãªããªãã®ã¯ãéãæã€ãšãã XNUMX ã€ã ãã§ãã
ã¢ãŒããã¯ã㣠ã¢ãããŒããšããŠã® NGINXãã³ã³ãããKubernetesããã€ã¯ããµãŒãã¹ãªã©ããµãŒãã¹ ã¡ãã·ã¥ ã¢ãŒããã¯ãã£ã«çµ±åãããèŠçŽ ã¯ããµãŒãã¹ ã¡ãã·ã¥ä»¥å€ã®å®è£ ã§ãåæ§ã«çç£æ§ãé«ããããšãã§ããŸãã ããšãã°ãIstio ã¯å®å šãªãµãŒãã¹ ã¡ãã·ã¥ ã¢ãŒããã¯ãã£ãšããŠèšèšãããŠããŸããããã®ã¢ãžã¥ãŒã«æ§ã«ãããéçºè ã¯å¿ èŠãªãã¯ãããž ã³ã³ããŒãã³ãã®ã¿ãéžæããŠå®è£ ã§ããŸãã ããã念é ã«çœ®ããšãã¢ããªã±ãŒã·ã§ã³ã«ãµãŒãã¹ ã¡ãã·ã¥ã®æŠå¿µãå®å šã«å®è£ ã§ãããã©ããããããªãå Žåã§ãããµãŒãã¹ ã¡ãã·ã¥ã®æŠå¿µãæ確ã«ç解ããããšãéèŠã§ãã
åºæïŒ habr.com