ããŒãã 翻蚳ã: ãµãŒãã¹ ã¡ãã·ã¥ã¯ããã·ã¢èªãžã®å®å®ãã翻蚳ããŸã 確ç«ãããŠããªãçŸè±¡ã§ã (2 幎以äžåãç§ãã¡ã¯ããµãŒãã¹çšã¡ãã·ã¥ããšãããªãã·ã§ã³ãææ¡ããŸããããå°ãåŸã«äžéšã®ååãããµãŒãã¹ãµããããšããçµã¿åãããç©æ¥µçã«æšé²ãå§ããŸãã)ã ãã®ãã¯ãããžãŒã«é¢ãã絶ãéãªã話é¡ã«ãããããŒã±ãã£ã³ã°ãšæè¡çãªèŠçŽ ãå¯æ¥ã«çµ¡ã¿åããããç¶æ³ãçããŠããŸãã å ã®çšèªã®äœæè ã® XNUMX 人ãäœæãããã®çŽ æŽãããè³æã¯ããšã³ãžãã¢ããã®ä»ã®äººã ã«æ確ããæäŸããããšãç®çãšããŠããŸãã
ã³ããã¯ãã
å°å ¥
ããªããããã¯ãšã³ã ã·ã¹ãã åéã§åããŠãããœãããŠã§ã¢ ãšã³ãžãã¢ã§ããã°ãããããããæ°å¹Žã§ããµãŒãã¹ ã¡ãã·ã¥ããšããçšèªããã§ã«å¿ã«ãã£ãããšæ ¹ä»ããŠããã§ãããã å¥åŠãªå¶ç¶ã®ãããã§ããã®ãã¬ãŒãºã¯ãŸããŸãæ¥çãåžå·»ããŠãããããã«é¢é£ããèªå€§å®£äŒãããã¢ãŒã·ã§ã³ã®ãªãã¡ãŒã¯åãäžãéªçã®ããã«æé·ããŠãããå¢ããè¡°ããæ°é ã¯ãããŸããã
ãµãŒãã¹ ã¡ãã·ã¥ã¯ãã¯ã©ãŠã ãã€ãã£ã ãšã³ã·ã¹ãã ã®ææ§ã§åã£ãé åã§çãŸããŸããã æ®å¿µãªããããã®ããšã¯ããã®åé¡ããããè«äºã®å€ããããäœã«ããªãŒã®è©±ããããå°éçšèªã䜿ããšãŸã£ããã®ãã³ã»ã³ã¹ã«ãŸã§åã¶ããšãæå³ããŸãã ãããããã¹ãŠã®ãã€ãºãæé€ãããšããµãŒãã¹ ã¡ãã·ã¥ã«ã¯éåžžã«çŸå®çã§å®çŸ©ãããéèŠãªæ©èœãããããšãããããŸãã
ãã®æçš¿ã§ã¯ããµãŒãã¹ ã¡ãã·ã¥ã«å¯Ÿããæ£çŽã§è©³çŽ°ãªããšã³ãžãã¢ã«çŠç¹ãåœãŠãã¬ã€ããæäŸããããšãç®æããŸãã ç§ã¯åã«è³ªåã«çããã ãã§ã¯ãããŸããã ãããã¯äœã§ããïŒãã - ã ãã§ãªã "äœã®ããã«ïŒ"ãš "ãªãä»ãªã®ãïŒ"ã æåŸã«ããªããã®ç¹å®ã®ãã¯ãããžãŒã (ç§ã®æèŠã§ã¯) ããã»ã©çã£ãéšåãåŒãèµ·ãããã®ããæŠèª¬ããããšæããŸãããããèªäœãèå³æ·±ã話ã§ãã
ã©ãã§ããïŒ
ããã«ã¡ã¯ãã¿ããªïŒ ç§ã®ååã¯
ãããããç§ããã®åé¡ã«é¢ããŠéåžžã«åã£ã䞻芳çãªæèŠãæã£ãŠããããšã¯ãæ³åããã ãããšæããŸãã ãã ããåèŠãæå°éã«æããããã«åªããŸã (XNUMX ã€ã®ã»ã¯ã·ã§ã³ãé€ããŠ: ããªããµãŒãã¹ ã¡ãã·ã¥ã«ã€ããŠããã»ã©è©±é¡ã«ãªã£ãŠããã®ã§ãããã?ãã-ãã®äžã§ç§ã¯ãŸã ç§ã®å å ¥èŠ³ãå ±æããŸãïŒã ãŸãããã®ã¬ã€ããã§ããã ã客芳çãªãã®ã«ããããã«æåãå°œãããŸãã å ·äœçãªäŸã«ã€ããŠã¯ã䞻㫠Linkerd ã®çµéšã«äŸåããä»ã®ãµãŒãã¹ ã¡ãã·ã¥ ã¿ã€ãã®å®è£ ã§ç§ãç¥ã£ãŠããçžéç¹ (ååšããå Žå) ãææããŸãã
ããŠãã°ããºã®è©±ã«ç§»ããŸãããã
ãµãŒãã¹ã¡ãã·ã¥ãšã¯äœã§ãã?
èªå€§å®£äŒã«ããããããããµãŒãã¹ ã¡ãã·ã¥ã®æ§é ã¯éåžžã«åçŽã§ãã ããã¯ããµãŒãã¹ã®ãé£ãã«é 眮ããããŠãŒã¶ãŒç©ºéãããã·ã®æ (ã次ããšã¯äœãã«ã€ããŠã¯åŸã§å°ã説æããŸã) ã«ãäžé£ã®å¶åŸ¡ããã»ã¹ãå ãããã®ã§ãã ãããã·ã¯ç·ç§°ããŠåŒã°ããŸã ããŒã¿ãã¬ãŒã³ãå¶åŸ¡ããã»ã¹ãåŒã³åºãããŸãã ã³ã³ãããŒã«ãã¬ãŒã³ã ããŒã¿ ãã¬ãŒã³ã¯ãµãŒãã¹éã®åŒã³åºããã€ã³ã¿ãŒã»ãããããµãŒãã¹ã«å¯ŸããŠãããããçš®é¡ã®ããŸããŸãªããšããå®è¡ããŸãã ãããã£ãŠãã³ã³ãããŒã« ãã¬ãŒã³ã¯ãããã·ã®åäœã調æŽããã¢ã¯ã»ã¹ãæäŸããŸãã ãªãã¬ãŒã¿ã API ã«æ¥ç¶ãããããã¯ãŒã¯å šäœãæäœããã³æž¬å®ã§ããããã«ããŸãã
ããã¯ã©ã®ãããªãããã·ã§ãã? ããã¯ã¬ã€ã€ãŒ 7 察å¿ã® TCP ãããã·ã§ã (ã€ãŸããOSI ã¢ãã«ã®ã¬ã€ã€ãŒ 7 ããèæ
®ã«å
¥ããã) HAProxy ã NGINX ãªã©ã 奜ã¿ã«å¿ããŠãããã·ãéžæã§ããŸãã Linkerd ã¯ãåã«ååãä»ãããã Rust ãããã·ã䜿çšããŸãã
ãããã®ãããã· ãµãŒããŒã¯äœãããã®ã§ãããã? æããã«ããµãŒãã¹ãšã®éã®åŒã³åºãããããã·ããŸã (å³å¯ã«èšãã°ããããã·ããã³ãªããŒã¹ ãããã·ãšããŠæ©èœããåä¿¡åŒã³åºããšéä¿¡åŒã³åºãã®äž¡æ¹ãåŠçããŸã)ã ãããŠãé話ã«çŠç¹ãåœãŠãæ©èœã»ãããå®è£
ããŠããŸãã ÐŒÐµÐ¶ÐŽÑ ãµãŒãã¹ã ãµãŒãã¹éã®ãã©ãã£ãã¯ã«éç¹ã眮ããŠããç¹ãããµãŒãã¹ ã¡ãã·ã¥ ãããã·ãšãããšãã° API ã²ãŒããŠã§ã€ãã€ã³ã°ã¬ã¹ ãããã· (åŸè
ã¯å€éšããã¯ã©ã¹ã¿ãŒã«å
¥ãåŒã³åºãã«éç¹ã眮ããŠããŸã) ãšã®éãã§ãã (ããŒãã 翻蚳ã: Kubernetes çšã®æ¢åã® Ingress ã³ã³ãããŒã©ãŒã®æ¯èŒã«ã€ããŠã¯ããã®å€ãããã§ã«è¿°ã¹ã Envoy ã䜿çšããŠãããåç
§ããŠãã ããã
ããã§ãããŒã¿ãã¬ãŒã³ãæŽçããŸããã ã³ã³ãããŒã« ãã¬ãŒã³ã¯ããåçŽã§ããããã¯ããµãŒãã¹ ãã£ã¹ã«ããªãTLS 蚌ææžã®çºè¡ãã¡ããªã¯ã¹ã®éçŽãªã©ãããŒã¿ ãã¬ãŒã³ã調æŽãããæ¹æ³ã§åäœããããã«å¿ èŠãªãã¹ãŠã®ä»çµã¿ãæäŸããäžé£ã®ã³ã³ããŒãã³ãã§ããããŒã¿ ãã¬ãŒã³ã¯ã³ã³ãããŒã« ãã¬ãŒã³ã«æ¬¡ã®æ å ±ãéç¥ããŸãããã®åäœã ããã«ãã³ã³ãããŒã« ãã¬ãŒã³ã¯ãããŒã¿ ãã¬ãŒã³å šäœã®åäœãå€æŽããã³ç£èŠã§ãã API ãæäŸããŸãã
以äžã¯ãLinkerd ã®ã³ã³ãããŒã« ãã¬ãŒã³ãšããŒã¿ ãã¬ãŒã³ã®å³ã§ãã ã芧ã®ãšãããã³ã³ãããŒã« ãã¬ãŒã³ã«ã¯ããããã· ãµãŒããŒããã¡ããªã¯ã¹ãåéãã Prometheus ã€ã³ã¹ã¿ã³ã¹ãã次ã®ãããªä»ã®ã³ã³ããŒãã³ããå«ããããã€ãã®ç°ãªãã³ã³ããŒãã³ããå«ãŸããŠããŸãã destination
(ãµãŒãã¹ãã£ã¹ã«ããª)ã identity
(èªèšŒå±ãCA) ããã³ public-api
(Web ããã³ CLI ã®ãšã³ããã€ã³ã)ã 察ç
§çã«ãããŒã¿ ãã¬ãŒã³ã¯ãã¢ããªã±ãŒã·ã§ã³ ã€ã³ã¹ã¿ã³ã¹ã®é£ã«ããåçŽãªãªã³ã«ãŒã ãããã·ã§ãã ããã¯åãªãè«çå³ã§ãã å®éã®å±éã§ã¯ãåã³ã³ãããŒã« ãã¬ãŒã³ ã³ã³ããŒãã³ãã® XNUMX ã€ã®ã¬ããªã«ãšãããŒã¿ ãã¬ãŒã³å
ã«æ°çŸãŸãã¯æ°åã®ãããã·ãååšããå ŽåããããŸãã
(ãã®å³ã®éãåè§åœ¢ã¯ãKubernetes ãããã®å¢çãè¡šããŠããŸããlinkerd-proxy ãåããã³ã³ãããŒãã¢ããªã±ãŒã·ã§ã³ ã³ã³ãããŒãšåããããå ã«ããããšãããããŸãããã®ã¹ããŒã ã¯æ¬¡ã®ããã«åŒã°ããŸãã ãµã€ãã«ãŒã³ã³ãã.)
ãµãŒãã¹ ã¡ãã·ã¥ ã¢ãŒããã¯ãã£ã«ã¯ãããã€ãã®éèŠãªæå³ããããŸãã ãŸãããããã·ã®ã¿ã¹ã¯ã¯ãµãŒãã¹éã®åŒã³åºããã€ã³ã¿ãŒã»ããããããšã§ããããããµãŒãã¹ ã¡ãã·ã¥ã¯ãã¢ããªã±ãŒã·ã§ã³ãç¹å®ã®ãµãŒãã¹ ã»ããçšã«äœæãããå Žåã«ã®ã¿æå³ãæã¡ãŸãã ã¡ãã·ã¥ 1ããšãã§ããŸã ã¢ããªã¹ã§äœ¿çšã§ããŸãããããã¯åäžã®ãããã·ã®ããã«æããã«åé·ã§ããããã®æ©èœã¯éèŠãããããã«ãããŸããã
ãã XNUMX ã€ã®éèŠãªçµæã¯ããµãŒãã¹ ã¡ãã·ã¥ã次ã®ããšãå¿ èŠãšããããšã§ãã 巚倧㪠ãããã·ã®æ°ã å®éãLinkerd ã¯ããã¹ãŠã®ãµãŒãã¹ã®ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã« linkerd-proxy ãæ¥ç¶ããŸã (ä»ã®å®è£ ã§ã¯ããã¹ãŠã®ããŒã/ãã¹ã/ä»®æ³ãã·ã³ã«ãããã·ãè¿œå ããŸãããšã«ããããã¯å€§éã§ã)ã ãã®ããã«ãããã·ãç©æ¥µçã«äœ¿çšãããšãããèªäœã§ããã«å€ãã®è€éãªåé¡ãçºçããŸãã
- ããŒã¿ ãã¬ãŒã³å ã®ãããã·ã¯æ¬¡ã®ãšããã§ããå¿ èŠããããŸãã éãããã¯ãåŒã³åºãããšã«ãããã·ãžã®åŒã³åºãã XNUMX ã€ãããŸããXNUMX ã€ã¯ã¯ã©ã€ã¢ã³ãåŽã§ããã XNUMX ã€ã¯ãµãŒããŒåŽã§ãã
- ãããã·ã次ã®ããã«ããå¿ èŠããããŸã å°ã㪠О 軜éã ãããããã¡ã¢ãªãš CPU ãªãœãŒã¹ãæ¶è²»ãããã®æ¶è²»éã¯ã¢ããªã±ãŒã·ã§ã³ã«å¿ããŠçŽç·çã«å¢å ããŸãã
- å€æ°ã®ãããã·ãå±éããã³æŽæ°ããã¡ã«ããºã ãå¿ èŠã«ãªããŸãã æåã§è¡ãããšã¯ã§ããŸããã
äžè¬ã«ããµãŒãã¹ ã¡ãã·ã¥ã¯ (å°ãªããšã俯ç°çã«ã¯) 次ã®ããã«ãªããŸããå éšã®ãµãŒãã¹éãã©ãã£ãã¯ã§ãäœããè¡ããäžé£ã®ãŠãŒã¶ãŒç©ºéãããã·ããããã€ããã³ã³ãããŒã« ãã¬ãŒã³ã䜿çšããŠããããç£èŠããã³ç®¡çããŸãã
ä»åºŠã¯ããªã?ããšãã質åãããŠã¿ãŸãããã
ãµãŒãã¹ ã¡ãã·ã¥ãšã¯äœã§ãã?
ãµãŒãã¹ ã¡ãã·ã¥ã®ã¢ã€ãã¢ã«åããŠåºäŒã£ã人ã¯ãå°ãäžå®ãæããã®ãç¡çã¯ãããŸããã ãµãŒãã¹ ã¡ãã·ã¥èšèšã¯ãã¢ããªã±ãŒã·ã§ã³ã®é 延ãå¢å ãããã ãã§ãªãã æ¶è²»ãã ãªãœãŒã¹ãš è¿œå ããŸã ã€ã³ãã©ã¹ãã©ã¯ãã£å ã®å€æ°ã®æ°ããã¡ã«ããºã ã ãŸããµãŒãã¹ ã¡ãã·ã¥ãã»ããã¢ãããããšãçªç¶ãæ°çŸ (æ°åã§ã¯ãªãã«ããŠã) ã®ãããã·ã«ãµãŒãã¹ãæäŸããå¿ èŠãããããšã«æ°ã¥ããŸãã åé¡ã¯ã誰ãèªçºçã«ãããè¡ãã®ããšããããšã§ãã
ãã®è³ªåã«å¯Ÿããçã㯠XNUMX ã€ã®éšåã«åãããŠããŸãã ãŸãããšã³ã·ã¹ãã å ã§èµ·ãã£ãŠããããã€ãã®å€åã®ãããã§ããããã®ãããã·ã®å°å ¥ã«é¢é£ãããã©ã³ã¶ã¯ã·ã§ã³ ã³ã¹ããå€§å¹ ã«åæžã§ããŸã (ããã«ã€ããŠã¯åŸã§è©³ãã説æããŸã)ã
第äºã«ããã®ãããªããã€ã¹ã¯ãã·ã¹ãã ã«è¿œå ã®ããžãã¯ãå°å ¥ããããã®åªããæ¹æ³ã§ãã ãµãŒãã¹ ã¡ãã·ã¥ã§ã¯å€ãã®æ°ããæ©èœãè¿œå ã§ããã ãã§ãªãããšã³ã·ã¹ãã ã«å¹²æžããããšãªãè¿œå ã§ããããã§ããããŸãã å®éããµãŒãã¹ ã¡ãã·ã¥ ã¢ãã«å šäœã¯æ¬¡ã®åæã«åºã¥ããŠããŸãããã«ããµãŒãã¹ ã·ã¹ãã ã§ã¯ãäœããã£ãŠã äœã åå¥ã®ãµãŒãã¹ããã©ãã£ã㯠ãããã®é æ©èœãè¿œå ããã®ã«æé©ãªãã€ã³ãã§ãã
ããšãã°ãLinkerd (ã»ãšãã©ã®ã¡ãã·ã¥ãšåæ§) ã§ã¯ãæ©èœã¯äž»ã« HTTP/2 ã gRPC* ãªã©ã® HTTP åŒã³åºãã«çŠç¹ãåœãŠãŠããŸãã ãã®æ©èœã¯éåžžã«è±å¯ã§ã次㮠XNUMX ã€ã®ã¯ã©ã¹ã«åé¡ã§ããŸãã
- ã«é¢é£ããæ©èœ ä¿¡é Œæ§ã ç¹°ãè¿ããããªã¯ãšã¹ããã¿ã€ã ã¢ãŠããã«ããªã¢ ã¢ãããŒã (ãã©ãã£ãã¯åå²/ãªãã€ã¬ã¯ã) ãªã©ã
- ã«é¢é£ããæ©èœ ã¢ãã¿ãªã³ã°ã åãµãŒãã¹ãŸãã¯åå¥ã®æ瀺ã®æåçãé 延ããªã¯ãšã¹ãéã®éèšã ãµãŒãã¹ã®ããããžãŒãããã®æ§ç¯ãªã©
- ã«é¢é£ããæ©èœ å®å šã çžäºTLSãã¢ã¯ã»ã¹å¶åŸ¡ãªã©
* Linkerd ã®èŠ³ç¹ããèŠããšãgRPC 㯠HTTP/2 ãšå®è³ªçã«å€ãããŸããããã€ããŒã㧠protobuf ã䜿çšããã ãã§ãã éçºè ã®èŠ³ç¹ããèŠããšãåœç¶ãªããããã® XNUMX ã€ã¯ç°ãªããŸãã
ãããã®ã¡ã«ããºã ã®å€ãã¯ãªã¯ãšã¹ã ã¬ãã«ã§åäœããŸã (ãããã£ãŠããL7 ãããã·ããšãªããŸã)ã ããšãã°ãFoo ãµãŒãã¹ã Bar ãµãŒãã¹ã«å¯Ÿã㊠HTTP åŒã³åºããè¡ãå ŽåãFoo åŽã®ãªã³ã«ãŒã ãããã·ã¯ã€ã³ããªãžã§ã³ããªè² è·åæ£ãå®è¡ãã芳枬ãããã¬ã€ãã³ã·ã«åºã¥ããŠåŒã³åºãã Foo ãã Bar ã€ã³ã¹ã¿ã³ã¹ã«ã«ãŒãã£ã³ã°ã§ããŸãã å¿ èŠã«å¿ã㊠(ãããŠåªçã§ããå Žåã«ã¯) ãªã¯ãšã¹ããç¹°ãè¿ãããšãã§ããŸãã å¿çã³ãŒããã¿ã€ã ã¢ãŠããªã©ãèšé²ã§ããŸãã åæ§ã«ãBar åŽã® linkerd-proxy ã¯ããªã¯ãšã¹ããèš±å¯ãããŠããªãå ŽåããŸãã¯ãªã¯ãšã¹ãã®å¶éãè¶ ããŠããå Žåã«ãªã¯ãšã¹ããæåŠã§ããŸãã ãã®åŽã§é 延ãèšé²ãããå Žåãªã©ããããŸãã
ãããã·ã¯æ¥ç¶ã¬ãã«ã§ããäœããè¡ããããšãã§ããŸãã ããšãã°ãFoo åŽã® linkerd-proxy 㯠TLS æ¥ç¶ãéå§ããBar åŽã® linkerd-proxy ã¯ãããçµäºã§ããåæ¹ãäºãã® TLS 蚌ææž* ãæ€èšŒã§ããŸãã ããã«ããããµãŒãã¹éã®æå·åã ãã§ãªãããµãŒãã¹ãèå¥ããããã®æå·çã«å®å šãªæ¹æ³ãæäŸãããŸããFoo ãš Bar ã¯ãèªåãã¡ã誰ã§ããããã蚌æãã§ããŸãã
â»ãå人ã®çžäºããšã¯ãã¯ã©ã€ã¢ã³ã蚌ææžãæ€èšŒãããŠããïŒçžäºTLSïŒããšãæå³ããŸãã ãã¯ã©ã·ãã¯ãTLS ã§ã¯ãããšãã°ãã©ãŠã¶ãšãµãŒããŒã®éã§ã¯ãéåžžãçåŽ (ãµãŒããŒ) ã®èšŒææžã®ã¿ãæ€èšŒãããŸãã
ãªã¯ãšã¹ã ã¬ãã«ã§åäœãããæ¥ç¶ã¬ãã«ã§åäœãããã«é¢ä¿ãªãããã¹ãŠã®ãµãŒãã¹ ã¡ãã·ã¥æ©èœãæ©èœããããšã匷調ããããšãéèŠã§ãã éçšå¯èœ ãã£ã©ã¯ã¿ãŒã Linkerd ã¯ãJSON ãã©ã°ã¡ã³ãã«ãã£ãŒã«ããè¿œå ããããprotobuf ãå€æŽããããããªã©ããã€ããŒãã®ã»ãã³ãã£ã¯ã¹ãå€æã§ããŸããã ãã®éèŠãªæ©èœã«ã€ããŠã¯ãåŸã§ ESB ãšããã«ãŠã§ã¢ã«ã€ããŠèª¬æãããšãã«èª¬æããŸãã
ããã¯ããµãŒãã¹ ã¡ãã·ã¥ãæäŸããäžé£ã®æ©èœã§ãã ãªãããããã¢ããªã±ãŒã·ã§ã³ã«çŽæ¥å®è£ ããªãã®ã?ãšããçåãçããŸãã ããããããªããããããããã·ã䜿çšããã®ã§ãããã?
ãµãŒãã¹ ã¡ãã·ã¥ãè¯ãã¢ã€ãã¢ã§ããçç±
ãµãŒãã¹ ã¡ãã·ã¥ã®æ©èœã¯é åçã§ããããã®äžæ žãšãªã䟡å€ã¯å®éã«ã¯ãã®æ©èœã«ãããŸããã çµå±ã®ãšããç§ãã¡ã¯ ã§ãã ããããã¢ããªã±ãŒã·ã§ã³ã«çŽæ¥å®è£ ããŸã (ããããµãŒãã¹ ã¡ãã·ã¥ã®èµ·æºã§ããããšãåŸã§ããããŸã)ã äžèšã§ãŸãšãããšããµãŒãã¹ ã¡ãã·ã¥ã®å€ã¯æ¬¡ã®ããã«ãªããŸãã ææ°ã®ãµãŒã㌠ãœãããŠã§ã¢ãå®è¡ããããã«éèŠãªæ©èœãã¹ã¿ãã¯å šäœã«ããã£ãŠäžè²«ããæ¹æ³ã§ãã¢ããªã±ãŒã·ã§ã³ ã³ãŒãããç¬ç«ããŠæäŸããŸãã.
ãã®ææ¡ãåæããŠã¿ãŸãããã
«ææ°ã®ãµãŒã㌠ãœãããŠã§ã¢ãå®è¡ããããã«éèŠãªæ©èœã ãããªã㯠ã€ã³ã¿ãŒãããã«æ¥ç¶ãããå€éšããã®ãªã¯ãšã¹ããåãå ¥ããŠçæéå ã«å¿çãããã©ã³ã¶ã¯ã·ã§ã³ ãµãŒã㌠ã¢ããªã±ãŒã·ã§ã³ (Web ã¢ããªã±ãŒã·ã§ã³ãAPI ãµãŒããŒããã®ä»ã®ææ°ã¢ããªã±ãŒã·ã§ã³ã®å€§éšåãªã©) ãäœæããŠããå Žå- ãããŠããããçžäºã«åæããŠå¯Ÿè©±ããäžé£ã®ãµãŒãã¹ãšããŠå®è£ ããå Žåãããã³ãã®ãœãããŠã§ã¢ãåžžã«ã¢ããã°ã¬ãŒãããŠæ°æ©èœãè¿œå ããå Žåãããã³å€æŽããã»ã¹äžã«ãã®ã·ã¹ãã ãæ£åžžã«åäœããç¶æ ã«ç¶æããå¿ èŠãããå Žåã«ã¯ããã®äžã§ããã§ãšãããããŸããææ°ã®ãµãŒã㌠ãœãããŠã§ã¢ãäœæãããŠããŸãã ãããŠãäžã«æãããããã®åªããæ©èœã¯ãã¹ãŠãå®éã«ããªãã«ãšã£ãŠéèŠã§ããããšãããããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ä¿¡é Œæ§ããããå®å šã§ããå¿ èŠããããã¢ããªã±ãŒã·ã§ã³ãäœãè¡ã£ãŠãããã芳å¯ã§ããªããã°ãªããŸããã ãããã¯ãŸãã«ãµãŒãã¹ ã¡ãã·ã¥ã解決ããåé¡ã§ãã
(OKãåã®æ®µèœã«ã¯ããã®ã¢ãããŒãããµãŒã㌠ãœãããŠã§ã¢ãäœæããææ°ã®æ¹æ³ã§ãããšããç§ã®ä¿¡å¿µããŸã å«ãŸããŠããŸããã¢ããªã¹ãããªã¢ã¯ãã£ã ãã€ã¯ããµãŒãã¹ããããã³äžèšã®å®çŸ©ã«åœãŠã¯ãŸããªããã®ä»ã®ãã®ã®éçºã奜ã人ãããŸãããããã®äººã ã¯ãããããç§ã¯åœŒãã®æèŠããééã£ãŠããããšèããŠããŸããããããã«ããŠããµãŒãã¹ ã¡ãã·ã¥ã¯åœŒãã«ãšã£ãŠããŸã圹ã«ç«ã¡ãŸãã)ã
«ã¹ã¿ãã¯å šäœã§åäžã ãµãŒãã¹ ã¡ãã·ã¥ã«ãã£ãŠæäŸãããæ©èœã¯ãããã·ã§ã³ã¯ãªãã£ã«ã«ãªã ãã§ã¯ãããŸããã ãããã¯ããµãŒãã¹ãã©ã®èšèªã§æžãããŠããããã©ã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšãããŠãããã誰ãäœæããããã©ã®ããã«ãããã€ããããããã®ä»ã®éçºãšäœ¿çšã®åŸ®åŠãªç¹ã«é¢ä¿ãªããã¢ããªã±ãŒã·ã§ã³å ã®ãã¹ãŠã®ãµãŒãã¹ã«é©çšãããŸãã
«ã¢ããªã±ãŒã·ã§ã³ã³ãŒãããç¬ç«ããã æåŸã«ããµãŒãã¹ ã¡ãã·ã¥ã¯ãã¹ã¿ãã¯å šäœã«ããã£ãŠäžè²«ããæ©èœãæäŸããã ãã§ãªããã¢ããªã±ãŒã·ã§ã³ã®ç·šéãå¿ èŠãšããªãæ¹æ³ã§ãããæäŸããŸãã æ§æãæŽæ°ãéçšãã¡ã³ããã³ã¹ãªã©ã®ã¿ã¹ã¯ãå«ããµãŒãã¹ ã¡ãã·ã¥æ©èœã®åºæ¬çãªåºç€ã¯ãå®å šã«ãã©ãããã©ãŒã ã¬ãã«ã«ååšããã¢ããªã±ãŒã·ã§ã³ããã¯ç¬ç«ããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ããµãŒãã¹ ã¡ãã·ã¥ã«åœ±é¿ãäžããããšãªãå€æŽã§ããŸãã ããã«ããµãŒãã¹ ã¡ãã·ã¥ã¯ã¢ããªã±ãŒã·ã§ã³ã®é¢äžãªãã«å€æŽã§ããŸãã
ã€ãŸãããµãŒãã¹ ã¡ãã·ã¥ã¯éèŠãªæ©èœãæäŸããã ãã§ãªããã°ããŒãã«ã§çµ±äžããããã¢ããªã±ãŒã·ã§ã³ã«äŸåããªãæ¹æ³ã§æäŸããŸãã ãã®ããããµãŒãã¹ ã¡ãã·ã¥æ©èœã¯ãµãŒãã¹ ã³ãŒã㧠(ããšãã°ãåãµãŒãã¹ã«å«ãŸããã©ã€ãã©ãªãšããŠ) å®è£ ã§ããŸããããã®ã¢ãããŒãã§ã¯ããµãŒãã¹ ã¡ãã·ã¥ã®å Žåã«éåžžã«äŸ¡å€ã®ããåäžæ§ãšç¬ç«æ§ãæäŸãããŸããã
å¿ èŠãªã®ã¯ãå€æ°ã®ãããã·ãè¿œå ããããšã ãã§ãã ãããã®ãããã·ã®è¿œå ã«é¢é£ããéçšã³ã¹ãã«ã€ããŠã¯ãè¿ããã¡ã«æ€èšããããšããçŽæããŸãã ãããããŸãç«ã¡æ¢ãŸã£ãŠããã®ç¬ç«æ§ãšããèãæ¹ãããŸããŸãªèŠç¹ããèŠãŠã¿ãŸãããã 人ã .
ãµãŒãã¹ ã¡ãã·ã¥ã¯èª°ãå©ããŸãã?
ããšãäžäŸ¿ã§ãã£ãŠãããã¯ãããžãŒããšã³ã·ã¹ãã ã®éèŠãªéšåã«ãªãããã«ã¯ã人ã ã«åãå ¥ããããªããã°ãªããŸããã ã§ã¯ããµãŒãã¹ ã¡ãã·ã¥ã«èå³ããã人ã¯èª°ã§ãããã? ããã䜿çšããããšã§èª°ãå©çãåŸãŸãã?
ææ°ã®ãµãŒã㌠ãœãããŠã§ã¢ãéçºããŠããå ŽåãããŒã ãã°ã«ãŒããšããŠå€§ãŸãã«èããããšãã§ããŸãã ãµãŒãã¹ææè ããžãã¹ ããžãã¯ãå ±åã§éçºããã³å®è£ ããã¡ã³ããŒãããã³ ãã©ãããã©ãŒã ææè ããããã®ãµãŒãã¹ãåäœããå éšãã©ãããã©ãŒã ãéçºããŸãã å°èŠæš¡ãªçµç¹ã§ã¯ããããã¯åãã¡ã³ããŒã§ããå¯èœæ§ããããŸãããäŒç€Ÿãæé·ããã«ã€ããŠããããã®åœ¹å²ã¯ããé¡èã«ãªãåŸåããããããã«ã¯ãµã圹å²ã«åå²ãããããšãããããŸã... (DevOps ã®æ§è³ªã®å€åã«ã€ããŠã¯ããã§å€ãã®ããšãè¿°ã¹ãããŠããŸãããã€ã¯ããµãŒãã¹ã®çµç¹ãžã®åœ±é¿ãªã©) n. ããããä»ã®ãšããããããã®èª¬æãäžãããããã®ãšããŠåãå ¥ããŸããã)ã
ãã®èŠ³ç¹ããèŠããšããµãŒãã¹ ã¡ãã·ã¥ã®æãããªåçè ã¯ãã©ãããã©ãŒã ã®ææè ã§ãã çµå±ã®ãšããããã©ãããã©ãŒã ããŒã ã®æçµçãªç®æšã¯ããµãŒãã¹ææè ãããžãã¹ ããžãã¯ãå®è£ ã§ããå éšãã©ãããã©ãŒã ãäœæããéçšã®ææ§ãªè©³çŽ°ããå¯èœãªéãç¬ç«ããæ¹æ³ã§å®è£ ããããšã§ãã ãµãŒãã¹ ã¡ãã·ã¥ã¯ããã®ç®æšãéæããããã«éèŠãªæ©èœãæäŸããã ãã§ãªãããµãŒãã¹ææè ã«äŸåé¢ä¿ã課ããªãæ¹æ³ã§æäŸããŸãã
ããéæ¥çãªåœ¢ã§ã¯ãããŸããããµãŒãã¹ææè ãæ©æµãåããŸãã ãµãŒãã¹ææè ã®ç®æšã¯ãããžãã¹ ããã»ã¹ã®ããžãã¯ã®å®è£ ã«ãããŠå¯èœãªéãçç£æ§ãé«ããããšã§ãããéçšäžã®åé¡ã«ã€ããŠå¿é ããå¿ èŠãå°ãªããã°å°ãªãã»ã©è¯ãã®ã§ãã ããšãã°ãåè©Šè¡ããªã·ãŒã TLS ã®å®è£ ã«å¯ŸåŠãã代ããã«ãããžãã¹ç®æšã®ã¿ã«éäžããæ®ãã¯ãã©ãããã©ãŒã ã«ä»»ããããšãã§ããŸãã ããã¯åœŒãã«ãšã£ãŠå€§ããªå©ç¹ã§ãã
ãã©ãããã©ãŒã ãšãµãŒãã¹ã®ææè éã®ãã®ãããªéšéã®çµç¹ç䟡å€ã¯ãé倧è©äŸ¡ããããšã¯ã§ããŸããã 圌女ã¯è²¢ç®ããŠãããšæã ПÑМПвМПй ãµãŒãã¹ã¡ãã·ã¥ã®äŸ¡å€ãžã®è²¢ç®ã
åæã® Linkerd ãã¡ã³ããµãŒãã¹ ã¡ãã·ã¥ãéžæããçç±ãèªã£ããšããç§ãã¡ã¯ãã®æèšãåŠã³ãŸãããããã¯ãããããã¹ããæå°éã«æãããããšãã§ããããã§ãã 詳现ã¯æ¬¡ã®ãšããã§ãããã倧äŒæ¥ã®ç€Ÿå¡ã¯ãèªç€Ÿã®ãã©ãããã©ãŒã ã Kubernetes ã«ç§»è¡ããŸããã ã¢ããªã±ãŒã·ã§ã³ã¯æ©å¯æ å ±ãæ±ããããã¯ã©ã¹ã¿ãŒéã®ãã¹ãŠã®éä¿¡ãæå·åããå¿ èŠããããŸããã ããããæ°çŸã®ãµãŒãã¹ãšæ°çŸã®éçºããŒã ã®ååšã«ãããç¶æ³ã¯è€éã«ãªããŸããã å šå¡ã«é£çµ¡ãåããèšç»ã« TLS ãµããŒããå«ãããã説åŸãããšããèŠéãã¯ã圌ãããŸã£ããæºè¶³ãããŸããã§ããã Linkerd ãã€ã³ã¹ããŒã«ããåŸã転éãããŸãã 責任 éçºè (ããã¯äžå¿ èŠãªãã©ãã«ã§ãããšãã芳ç¹ãã) ããããããæåªå äºé ã§ãããã©ãããã©ãŒããŒãŸã§ã§ãã èšãæããã°ãLinkerd ã¯æè¡çãªåé¡ã§ã¯ãªããçµç¹çãªåé¡ã解決ãããšããããšã§ãã
ã€ãŸãããµãŒãã¹ ã¡ãã·ã¥ã¯æè¡çãªãã®ã§ã¯ãªããããããœãªã¥ãŒã·ã§ã³ã§ãã 瀟äŒæè¡ç åé¡ã ïŒããããšã
ãµãŒãã¹ ã¡ãã·ã¥ã¯ãã¹ãŠã®åé¡ã解決ããŸãã?
ã¯ãã ã€ãŸãããããïŒ
äžã§æŠèª¬ãã XNUMX ã€ã®ã¯ã©ã¹ã®æ©èœ (ä¿¡é Œæ§ãã»ãã¥ãªãã£ãå¯èŠ³æž¬æ§) ãèŠããšããµãŒãã¹ ã¡ãã·ã¥ããããã®åé¡ã®ãããã«å¯ŸããŠãå®å šãªè§£æ±ºçã§ã¯ãªãããšãæããã§ãã Linkerd ã¯ãªã¯ãšã¹ããåçºè¡ã§ããŸãã (åªçã§ããããšãããã£ãŠããå Žå)ããµãŒãã¹ãæ°žç¶çã«å€±æããå Žåã«ãŠãŒã¶ãŒã«äœãè¿ããã決å®ããããšã¯ã§ããŸããããããã®æ±ºå®ã¯ã¢ããªã±ãŒã·ã§ã³ãè¡ãå¿ èŠããããŸãã Linkerd ã¯æåãããªã¯ãšã¹ãã®çµ±èšãä¿æã§ããŸããããµãŒãã¹ã調ã¹ãŠå éšã¡ããªã¯ã¹ãæäŸããããšã¯ã§ããŸãããã¢ããªã±ãŒã·ã§ã³ã«ã¯ãã®ãããªããŒã«ãå¿ èŠã§ãã Linkerd 㯠mTLS ãæ§æã§ããŸãããæ¬æ Œçãªã»ãã¥ãªã㣠ãœãªã¥ãŒã·ã§ã³ã«ã¯ããã«å€ãã®ãã®ãå¿ èŠã§ãã
ãµãŒãã¹ ã¡ãã·ã¥ã«ãã£ãŠæäŸããããããã®é åã®æ©èœã®ãµãã»ããã¯ã以äžã«é¢é£ããŸãã ãã©ãããã©ãŒã ã®æ©èœã ããã¯æ¬¡ã®ãããªé¢æ°ãæå³ããŸãã
- ããžãã¹ããžãã¯ããç¬ç«ããã Foo ãš Bar ã®éã®åŒã³åºããã¹ãã°ã©ã ãæ§ç¯ãããæ¹æ³ã¯ã çç± ããŒã¯ããŒã«é»è©±ããŸãã
- æ£ããå®è£ ããã®ãé£ããã Linkerd ã§ã¯ãåè©Šè¡ã¯åè©Šè¡ããžã§ãããªã©ã®ããããçš®é¡ã®æŽŸæãªãã®ã§ãã©ã¡ãŒã¿åãããŸãã (åè©Šè¡äºç®)ãªããªãããã®ãããªããšãå®è£ ããããã®æŽç·ŽãããŠããªãçæ£é¢ããã®ã¢ãããŒãã¯ããããããèŠæ±ã®éªåŽ©ãã®åºçŸã«ç¢ºå®ã«ã€ãªããããã§ãã (ãªãã©ã€ã®åµ) åæ£ã·ã¹ãã ã«ç¹æã®ãã®ä»ã®åé¡ã
- åäžã«å¡åžãããšæãå¹æçã§ãã TLS ã¡ã«ããºã ã¯ãããããå Žæã«é©çšãããŠåããŠæå³ãæã¡ãŸãã
ãããã®æ©èœã¯ (ã¢ããªã±ãŒã·ã§ã³ ã¬ãã«ã§ã¯ãªã) ãããã· ã¬ãã«ã§å®è£ ãããããããµãŒãã¹ ã¡ãã·ã¥ã¯ãããã®æ©èœã ãã©ãããã©ãŒã ãã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŸããã ãããã£ãŠããµãŒãã¹ãã©ã®èšèªã§æžãããŠããããã©ã®ãããªãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãããã誰ãã©ã®ãããªçç±ã§ãµãŒãã¹ãæžãããã¯é¢ä¿ãããŸããã ãããã·ã¯ããããã¹ãŠã®è©³çŽ°ã®å€éšã§åäœããæ§æãæŽæ°ãéçšãã¡ã³ããã³ã¹ãªã©ã®ã¿ã¹ã¯ãå«ããã®æ©èœã®åºæ¬çãªåºç€ã¯ãã£ã±ããã©ãããã©ãŒã ã¬ãã«ã«ãããŸãã
ãµãŒãã¹ã¡ãã·ã¥æ©èœã®äŸ
èŠçŽãããšããµãŒãã¹ ã¡ãã·ã¥ã¯ãä¿¡é Œæ§ãå¯èŠ³æž¬æ§ãã»ãã¥ãªãã£ã®å®å šãªãœãªã¥ãŒã·ã§ã³ã§ã¯ãããŸããã ãããã®é åã®ç¯å²ã«ã¯ããµãŒãã¹ææè ãéçš/SRE ããŒã ãããã³ãã®ä»ã®äŒæ¥ãšã³ãã£ãã£ã®åå ãå¿ èŠã§ãã ãµãŒãã¹ ã¡ãã·ã¥ã¯ããããã®åé åã«å¯ŸããŠãã©ãããã©ãŒã ã¬ãã«ã®ãã¹ã©ã€ã¹ãã®ã¿ãæäŸããŸãã
ãªãä»ãµãŒãã¹ ã¡ãã·ã¥ã人æ°ã«ãªã£ãŠããã®ã§ãããã?
ãããŸã§ã§ãããªãã¯ãããã次ã®ããã«çåã«æã£ãŠããã§ãããããµãŒãã¹ ã¡ãã·ã¥ãããã»ã©åªããŠããã®ã§ããã°ããªã XNUMX 幎åã«äœçŸäžãã®ãããã·ãã¹ã¿ãã¯ã«ãããã€ãå§ããªãã£ãã®ã§ããã?
ãã®è³ªåã«å¯ŸããããããããªçãããããŸããXNUMX 幎åã¯èª°ããã¢ããªã¹ãæ§ç¯ããŠããããµãŒãã¹ ã¡ãã·ã¥ãå¿ èŠãšãã人ã¯èª°ãããŸããã§ããã ããã¯çå®ã§ãããç§ã®æèŠã§ã¯ããã®çãã¯èŠç¹ãå€ããŠããŸãã XNUMX 幎åã§ããã倧èŠæš¡ã·ã¹ãã ãæ§ç¯ããããã®ææãªæ¹æ³ãšããŠã®ãã€ã¯ããµãŒãã¹ã®æŠå¿µã¯åºãè°è«ãããTwitterãFacebookãGoogleãNetflix ãªã©ã®äŒæ¥ã§é©çšãããŠããŸããã å°ãªããšãç§ãæ¥ããæ¥çã§ã¯ãããšããããéåžžã«å°é£ã ã£ããšããŠãããã€ã¯ããµãŒãã¹ã¯å€§èŠæš¡ã·ã¹ãã ãæ§ç¯ãããæ£ããæ¹æ³ãã§ãããšããã®ãäžè¬çãªèŠæ¹ã§ããã
ãã¡ãããXNUMX 幎åã«ããã€ã¯ããµãŒãã¹ãéçšããŠããäŒæ¥ã¯ãããŸãããããµãŒãã¹ ã¡ãã·ã¥ã圢æããããã«ããããå Žæã«ãããã·ãé 眮ããŠããããã§ã¯ãããŸããã ããããããèŠããšã圌ããåæ§ã®ããšãè¡ã£ãŠããŸããããããã®äŒæ¥ã®å€ãã¯ããããã¯ãŒã¯éä¿¡ã«ç¹å¥ãªå éšã©ã€ãã©ãª (ã·ã㯠ã¯ã©ã€ã¢ã³ã ã©ã€ãã©ãªãšåŒã°ããããšããããŸã) ã®äœ¿çšãå¿ èŠãšããŠããŸããã ãã¡ããã¯ã©ã€ã¢ã³ãã©ã€ãã©ãª).
Netflix ã«ã¯ Hysterix ããããGoogle ã«ã¯ Stubby ããããTwitter ã«ã¯ Finagle ã©ã€ãã©ãªããããŸããã ããšãã°ãFinagle 㯠Twitter äžã®ãã¹ãŠã®æ°ãããµãŒãã¹ã«å¿ é ã§ããã ã¯ã©ã€ã¢ã³ãåŽãšãµãŒããŒåŽã®äž¡æ¹ã®æ¥ç¶ãåŠçããç¹°ãè¿ãã®ãªã¯ãšã¹ããèš±å¯ãããªã¯ãšã¹ãã®ã«ãŒãã£ã³ã°ãè² è·åæ£ã枬å®ããµããŒãããŸããã ããã«ããããµãŒãã¹ãäœãããŠãããã«é¢ä¿ãªããTwitter ã¹ã¿ãã¯å šäœã«ããã£ãŠäžè²«ããä¿¡é Œæ§ãšå¯èŠ³æž¬æ§ã®å±€ãæäŸãããŸããã ãã¡ããããã㯠JVM èšèªã§ã®ã¿æ©èœããã¢ããªã±ãŒã·ã§ã³å šäœã§äœ¿çšããå¿ èŠãããããã°ã©ãã³ã° ã¢ãã«ã«åºã¥ããŠããŸããã ãã ãããã®æ©èœã¯ãµãŒãã¹ ã¡ãã·ã¥ãšã»ãŒåãã§ããã (å®éãLinkerd ã®æåã®ããŒãžã§ã³ã¯ãåã« Finagle ããããã·åœ¢åŒã§ã©ãããããã®ã§ããã)
ãããã£ãŠãXNUMX 幎åã«ã¯ããã€ã¯ããµãŒãã¹ã ãã§ãªããä»æ¥ãµãŒãã¹ ã¡ãã·ã¥ã解決ããŠããã®ãšåãåé¡ã解決ããç¹å¥ãªããã ãµãŒãã¹ ã¡ãã·ã¥ ã©ã€ãã©ãªããããŸããã ãã ããåœæã¯ãµãŒãã¹ ã¡ãã·ã¥èªäœãååšããŠããŸããã§ããã 圌女ãçŸãããŸã§ã«ã¯ããã XNUMX åã·ããããå¿ èŠããããŸããã
ãããŠãããã«ãéå» 10 幎éã«èµ·ãã£ãå¥ã®å€åã«é ããããããæ·±ãçãããããŸããããã¯ããã€ã¯ããµãŒãã¹ã®å°å ¥ã³ã¹ããåçã«äžãã£ãããšã§ãã XNUMX 幎åã«ãã€ã¯ããµãŒãã¹ã䜿çšããŠããäžèšã®äŒæ¥ (TwitterãNetflixãFacebookãGoogle) ã¯ã巚倧ãªèŠæš¡ãšèšå€§ãªãªãœãŒã¹ãæã£ãäŒæ¥ã§ããã 圌ãã¯ã倧èŠæš¡ãªãã€ã¯ããµãŒãã¹ããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãå±éãéçšããå¿ èŠãããã ãã§ãªãããã®èœåãæã£ãŠããŸããã Twitter ãšã³ãžãã¢ãã¢ããªã·ãã¯ãããã€ã¯ããµãŒãã¹ãžã®ã¢ãããŒãã«ç§»è¡ããããã«æ³šãã ãšãã«ã®ãŒãšåªåã¯é©ãã¹ããã®ã§ãã (å ¬å¹³ãæãããã«ããããæåãããšããäºå®ãåæ§ã§ãã) ãã®ãããªçš®é¡ã®ã€ã³ãã©ã¹ãã©ã¯ãã£æŠç¥ã¯ãåœæã®äžå°äŒæ¥ã«ã¯äžå¯èœã§ããã
çŸåšã«æ©éãããŠãã ããã çŸåšããã€ã¯ããµãŒãã¹ãšéçºè
ã®æ¯çã 5:1 (ãããã¯ããããã) ã®ã¹ã¿ãŒãã¢ããäŒæ¥ããããŸãã
Monzo ã«ã¯ 1500 ã®ãã€ã¯ããµãŒãã¹ã åè¡ã¯ããã©ãã£ãã¯ãèš±å¯ããèŠå®ã®ãããã¯ãŒã¯ ã«ãŒã«ã§ãã
ãã€ã¯ããµãŒãã¹ã®éçšã³ã¹ãã®åçãªåæžã¯ã次㮠XNUMX ã€ã®ããã»ã¹ã®çµæã§ãã ã³ã³ããã®äººæ°ãé«ãŸã О ãªãŒã±ã¹ãã¬ãŒã¿ãŒã ããã¯ãŸãã«ããµãŒãã¹ ã¡ãã·ã¥ã®åºçŸã«äœãå¯äžããã®ããšãã質åã«å¯Ÿããæ·±ãçãã§ãã Kubernetes ãš Docker ãšããåããã¯ãããžãŒã«ããããµãŒãã¹ ã¡ãã·ã¥ãšãã€ã¯ããµãŒãã¹ã®äž¡æ¹ãé åçã«ãªããŸããã
ãªãïŒ ããŠãDocker 㯠XNUMX ã€ã®å€§ããªåé¡ãã€ãŸãããã±ãŒãžåã®åé¡ã解決ããŸãã Docker ã¯ãã¢ããªã±ãŒã·ã§ã³ãšãã® (ãããã¯ãŒã¯ä»¥å€ã®) ã©ã³ã¿ã€ã äŸåé¢ä¿ãã³ã³ãããŒã«ããã±ãŒãžåããããšã§ãã¢ããªã±ãŒã·ã§ã³ãã©ãã§ããã¹ãããŠå®è¡ã§ãã亀æå¯èœãªãŠãããã«å€ããŸãã åæã«æäœãå€§å¹ ã«ç°¡çŽ åãããŸã å€èšèª ã¹ã¿ãã¯: ã³ã³ãããŒã¯ãããã€ã¡ã³ããšéçšã®ç®çã«ãããŠå®è¡ã®ã¢ãããã¯ãªåäœã§ãããããJVMãNodeãGoãPythonãRuby ã¢ããªã±ãŒã·ã§ã³ãªã©ããã®äžã«äœããããã¯é¢ä¿ãããŸããã èµ·åããã ãã§å®äºã§ãã
Kubernetes ã¯ãã¹ãŠã次ã®ã¬ãã«ã«åŒãäžããŸãã çŸåšããå®è¡ãããã®ããšããããå®è¡ãããã·ã³ã倧éã«ãããããããããçžäºã«é¢é£ä»ããããšãã§ããããŒã«ãå¿ èŠã§ãã åºãæå³ã§ã¯ãKubernetes ã«å€æ°ã®ã³ã³ãããšå€æ°ã®ãã·ã³ãäžããããããçžäºã«ãããã³ã°ããŸã (ãã¡ãããããã¯åçã§åžžã«å€åããããã»ã¹ã§ããæ°ããã³ã³ãããã·ã¹ãã å ã移åãããã·ã³ãèµ·åããã³åæ¢ããŸã)ãªã©ããã ããKubernetes ã¯ããããã¹ãŠãèæ ®ããŸã)ã
Kubernetes ãæ§æããããã100 ã€ã®ãµãŒãã¹ããããã€ããŠéçšããã®ã«ãããæéã³ã¹ãã¯ãXNUMX åã®ãµãŒãã¹ããããã€ããŠéçšããã®ã«ãããã³ã¹ããšã»ãšãã©å€ãããŸãã (å®éãXNUMX åã®ãµãŒãã¹ã§ãã»ãŒåãã§ã)ã å€èšèªå®è£ ãä¿é²ããããã±ãŒãžã³ã° ã¡ã«ããºã ãšããŠãã®ã³ã³ãããŒã«è¿œå ãããšãããŸããŸãªèšèªã§æžããããã€ã¯ããµãŒãã¹ã®åœ¢åŒã§å®è£ ãããæ°ããã¢ããªã±ãŒã·ã§ã³ã®ãã¹ããåŸãããŸããããã¯ããŸãã«ãµãŒãã¹ ã¡ãã·ã¥ãéåžžã«é©ããçš®é¡ã®ç°å¢ã§ãã
ããã§ããªããµãŒãã¹ ã¡ãã·ã¥ãšããèãæ¹ãä»æ®åããŠããã®ããšããçåã«å¯Ÿããçãã«ãã©ãçããŸããKubernetes ããµãŒãã¹ã«æäŸããåäžæ§ã¯ããµãŒãã¹ ã¡ãã·ã¥ãçŽé¢ããéçšäžã®èª²é¡ã«çŽæ¥åœãŠã¯ãŸããŸãã ãããã·ãã³ã³ããã«ããã±ãŒãžåããå¯èœãªéãã©ãã«ã§ããããã·ã貌ãä»ããã¿ã¹ã¯ã Kubernetes ã«äžããã°ãåºæ¥äžããã§ãã ãã®çµæããµãŒãã¹ ã¡ãã·ã¥ãåŸããããã®ãããã€ã¡ã³ãã®ä»çµã¿ã¯ãã¹ãŠ Kubernetes ã«ãã£ãŠç®¡çãããŸãã (å°ãªããšã俯ç°çã«èŠããšããã¡ããããã®ããã»ã¹ã«ã¯å€ãã®åŸ®åŠãªéãããããŸãã)
èŠçŽãããšããµãŒãã¹ ã¡ãã·ã¥ã XNUMX 幎åã§ã¯ãªãçŸåšæ®åããŠããçç±ã¯ãKubernetes ãš Docker ãå€§å¹ ã«å¢å ããã ãã§ãªãã å¿ èŠ ããã«ãããã¢ããªã±ãŒã·ã§ã³ã®å®è£ ãå€èšèªãã€ã¯ããµãŒãã¹ã®ã»ãããšããŠç°¡çŽ åãããŸããããå€§å¹ ã«åæžãããŸããã è²»çš ãã®éçšã®ããã«ããµã€ãã«ãŒ ãããã· ããªãŒããå±éããã³ãµããŒãããããã®ã¡ã«ããºã ãæäŸããŸãã
ãµãŒãã¹ ã¡ãã·ã¥ã«ã€ããŠããã»ã©è©±é¡ã«ãªã£ãŠããã®ã¯ãªãã§ãã?
èŠå: ãã®ã»ã¯ã·ã§ã³ã§ã¯ãããããçš®é¡ã®ä»®å®ãæšæž¬ãæé ãå éšæ å ±ãå©çšããŸãã
ããµãŒãã¹ ã¡ãã·ã¥ãã§æ€çŽ¢ãããšã倧éã®ãªãµã€ã¯ã«ãããäœã«ããªãŒ ã³ã³ãã³ããå¥åŠãªãããžã§ã¯ãããããŠãšã³ãŒ ãã§ã³ããŒã«ãµããããæªã¿ã®äžè¯é¡ãèŠã€ãããŸãã åªããæ°ãããã¯ãããžã§ããã°ãããå®çŸã§ããŸããããµãŒãã¹ ã¡ãã·ã¥ã®å Žåãåé¡ã¯ç¹ã«æ·±å»ã§ãã ãªãïŒ
ãŸããããã®äžéšã¯ç§ã®ããã§ãã ç§ã¯ãæ°ãåããªãã»ã©ã®ããã°æçš¿ããã®ãããªèšäºãç®ã«ããæ©äŒããããã³ã«ãLinkerd ãšãµãŒãã¹ ã¡ãã·ã¥ã宣äŒããããã«æžåœã«åãçµãã§ããŸããã ã§ããç§ã¯ãããªã«åããããŸããã ãã®è³ªåã«æ¬åœã«çããã«ã¯ãå
šäœçãªç¶æ³ã«ã€ããŠå°ã話ãå¿
èŠããããŸãã ãããŠãXNUMX ã€ã®ãããžã§ã¯ãã«è§Šããã«ãããèªãããšã¯ã§ããŸããã
(XNUMX 瀟ã®åœ¹å²ã¯å€§ããç°ãªããŸããLyft ã®é¢äžã¯åã°ããã®ããã§ãã圌ã㯠Envoy ã®äœæè ã§ãããIstio ã®éçºã«äœ¿çšãŸãã¯åå ããŠããŸãããIBM 㯠Istio ã®éçºã«é¢äžãã䜿çšããŠããŸããGoogle 㯠Istio ã®éçºã«ç©æ¥µçã«é¢äžããŠããŸã)éçºäžã§ãããç§ã®ç¥ãéãå®éã«ã¯äœ¿çšããŠããŸããã)
Istio ãããžã§ã¯ã㯠XNUMX ã€ã®ç¹ã§æ³šç®ã«å€ããŸãã ãŸããç¹ã« Google ããã®ããã¢ãŒã·ã§ã³ã«æ³šåããŠããå€å€§ãªããŒã±ãã£ã³ã°åªåããããŸãã ä»æ¥ãµãŒãã¹ ã¡ãã·ã¥ã®æŠå¿µãç¥ã£ãŠããã»ãšãã©ã®äººã¯ãæåã« Istio ãéããŠãããç¥ã£ããšæšæž¬ããŸãã XNUMX ã€ç®ã¯ãIstio ã®è©å€ãæªãã£ãããšã§ãã ãã®ä»¶ã«é¢ããŠãç§ã¯æããã«å©å®³é¢ä¿è
ã§ãããå¯èœãªéã客芳çã§ããç¶ããããšåªããŠããŸãããäŸç¶ãšããŠååããããšã¯ã§ããŸããã
(å®éã«ã¯ãIstio ã«ã¯è€éããš UX ã ãã§ãªããããã©ãŒãã³ã¹ã«ãåé¡ãããããã§ããããšãã°ã
ãªããããèµ·ãã£ãã®ãã«ã€ããŠã®ç§ã®çè«ã¯ããŠããããµãŒãã¹ã¡ãã·ã¥ã«é¢ããå§åçãªè奮ã¯Googleã®åå ã«ãã£ãŠèª¬æããããšç§ã¯ä¿¡ããŠããŸãã ã€ãŸãã次㮠XNUMX ã€ã®èŠçŽ ã®çµã¿åããã§ãã
- Google ã«ãã Istio ã®æŒãä»ãããŸããããã¢ãŒã·ã§ã³ã
- ãããžã§ã¯ãã«å¯Ÿããããã«å¯Ÿå¿ããäžæ¿èªçã§æ¹å€çãªæ 床ã
- æè¿ãKubernetes ã®äººæ°ãæ¥éã«é«ãŸãããã®èšæ¶ã¯ãŸã æ°ããã§ãã
ãããã®èŠå ãçµã¿åããã£ãŠãçæ§çãªå€æèœåã匱ãŸããå¥åŠãªå€æ§æ§ã ããæ®ããåæ°ãªãé
žçŽ ã®ãªãç°å¢ãçã¿åºãããŸãã
ãªã³ã«ãŒãã®èŠ³ç¹ãããããšãããã¯...ç§ãèšããšããã®ãæ··åã®ç¥çŠãã§ãã ã€ãŸãããµãŒãã¹ ã¡ãã·ã¥ããLinkerd ãæåã«éå§ããã 2016 幎ã«ã¯ãªãã£ã圢ã§äž»æµã«ãªã£ãããšã¯çŽ æŽãããããšã§ããããã®ãããžã§ã¯ãã«äººã ã®æ³šç®ãéããã®ã¯éåžžã«å°é£ã§ããã ä»ã§ã¯ãã®ãããªåé¡ã¯ãããŸããïŒ ããããæªããã¥ãŒã¹ã¯ãä»æ¥ã®ãµãŒãã¹ ã¡ãã·ã¥ã®ç¶æ³ãéåžžã«æ··ä¹±ããŠãããã©ã®ãããžã§ã¯ããå®éã«ãµãŒãã¹ ã¡ãã·ã¥ ã«ããŽãªã«å±ããââããç解ããããšãã»ãŒäžå¯èœã§ãããšããããšã§ã (ç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«ã©ã®ãããžã§ã¯ããæé©ã§ããããç解ããããšã¯ããã)ã ããã¯ééããªã誰ã«ãšã£ãŠãåé¡ã§ã (ãããŠãLinkerd ã¯ãŸã æ®éçãªãœãªã¥ãŒã·ã§ã³ã§ã¯ãªããããIstio ãŸãã¯å¥ã®ãããžã§ã¯ãã®æ¹ã Linkerd ãããé©ããŠããã±ãŒã¹ã確ãã«ãããŸã)ã
Linkerd åŽã®æŠç¥ã¯ããã€ãºãç¡èŠããå®éã®ã³ãã¥ããã£ã®åé¡ã®è§£æ±ºã«éäžãç¶ããåºæ¬çã«èªå€§å®£äŒãéãŸãã®ãåŸ ã€ããšã§ããã æçµçã«ã¯ãèªå€§å®£äŒã¯éãŸããèœã¡çããŠä»äºãç¶ããããšãã§ããŸãã
ãããŸã§ã®éãç§ãã¡ã¯çãå°ãèŸæ±ããªããã°ãªããŸããã
ãµãŒãã¹ ã¡ãã·ã¥ã¯ããããªããœãããŠã§ã¢ ãšã³ãžãã¢ã§ããç§ã«ãšã£ãŠåœ¹ç«ã€ã§ãããã?
次ã®ã¢ã³ã±ãŒãã¯ããã®è³ªåã«çããã®ã«åœ¹ç«ã¡ãŸãã
ããžãã¹ ããžãã¯ã®å®è£ ã®ã¿ã«æºãã£ãŠããŸãã? ãã®å ŽåããµãŒãã¹ ã¡ãã·ã¥ã¯åœ¹ã«ç«ã¡ãŸããã ãã¡ãããèå³ããããããããŸããããçæ³çã«ã¯ããµãŒãã¹ ã¡ãã·ã¥ã¯ç°å¢å ã®äœã«ãçŽæ¥åœ±é¿ãäžããã¹ãã§ã¯ãããŸããã ãéãããã£ãŠä»äºããç¶ããŠãã ããã
Kubernetes ã䜿çšããŠããäŒæ¥ã§ãã©ãããã©ãŒã ããµããŒãããŠããŸãã? ã¯ãããã®å Žåã¯ãµãŒãã¹ ã¡ãã·ã¥ãå¿ èŠã§ã (ãã¡ãããã¢ããªã¹ãŸãã¯ãããåŠçãå®è¡ããããã ãã« K8 ã䜿çšããŠããå Žåã¯å¥ã§ããããªã K8 ãå¿ èŠãªã®ããå°ããããšæããŸã)ã æçµçã«ã¯ãããŸããŸãªäººã«ãã£ãŠäœæãããå€æ°ã®ãã€ã¯ããµãŒãã¹ãäœæãããå¯èœæ§ããããŸãã ãããã¯ãã¹ãŠçžäºã«åœ±é¿ãåããã©ã³ã¿ã€ã ã®äŸåé¢ä¿ãè€éã«çµ¡ã¿åã£ãŠãããããããããã¹ãŠã«å¯ŸåŠããæ¹æ³ãèŠã€ããå¿ èŠããããŸãã Kubernetes ã䜿çšãããšããèªåçšãã®ãµãŒãã¹ ã¡ãã·ã¥ãéžæã§ããŸãã ãããè¡ãã«ã¯ããã®æ©èœãšç¹åŸŽãç解ããå©çšå¯èœãªãããžã§ã¯ããèªåã«é©ããŠãããã©ãããšãã質åã«çããŠãã ãã (Linkerd ãã調æ»ãå§ããããšããå§ãããŸã)ã
Kubernetesã䜿ãããã€ã¯ããµãŒãã¹ã䜿ã£ãŠããäŒç€Ÿã®ãã©ãããã©ãŒã äŒæ¥ã§ããïŒ ãã®å ŽåããµãŒãã¹ ã¡ãã·ã¥ã¯åœ¹ã«ç«ã¡ãŸããããã®äœ¿çšã¯ç°¡åã§ã¯ãããŸããã ãã¡ããã§ããŸã æš¡å£ãã ãµãŒãã¹ ã¡ãã·ã¥ã¯å€æ°ã®ãããã·ãé 眮ããããšã§æ©èœããŸãããKubernetes ã®éèŠãªå©ç¹ã¯ãããã€ã¡ã³ã ã¢ãã«ã«ãããŸãããããã®ãããã·ãæåã§ç¶æããã«ã¯ãããå€ãã®æéãåŽåãè²»çšãå¿ èŠã«ãªããŸãã
ããªãã¯ã¢ããªã¹ãæ±ãäŒæ¥ã§ãã©ãããã©ãŒã ã®è²¬ä»»è ã§ãã? ãã®å ŽåããããããµãŒãã¹ ã¡ãã·ã¥ã¯å¿ èŠãããŸããã æ確ã«å®çŸ©ãããã»ãšãã©å€åããªã察話ãã¿ãŒã³ãæã€ã¢ããªã¹ (ãŸãã¯ã¢ããªã¹ã®ã³ã¬ã¯ã·ã§ã³) ãæäœããŠããå ŽåããµãŒãã¹ ã¡ãã·ã¥ãæäŸã§ãããã®ã¯ã»ãšãã©ãããŸããã ã ããããã ç¡èŠããŠãæªã倢ã®ããã«æ¶ãå»ãããšãæãããšãã§ããŸã...
ãŸãšã
ããããããµãŒãã¹ ã¡ãã·ã¥ã¯ãŸã ãäžçã§æãèªå€§å®£äŒãããŠãããã¯ãããžãŒããšåŒã°ããã¹ãã§ã¯ãããŸããããã®çãããåèªã¯ãããããããã³ã€ã³ãŸã㯠AI ã«å±ããŸãã 圌女ã¯ãããããããXNUMXã«å ¥ãã§ãããã ãããããã€ãºã®å±€ãåãæãããšããµãŒãã¹ ã¡ãã·ã¥ã Kubernetes äžã§ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãã人ã ã«çã®ã¡ãªãããããããããšãæããã«ãªããŸãã
Linkerd ã Kubernetes ã¯ã©ã¹ã¿ãŒ (ãŸãã¯ã©ãããããäžã® Minikube) ã«ã€ã³ã¹ããŒã«ããŠè©ŠããŠã¿ãŠãã ããã
ãããã質å
â ãµãŒãã¹ ã¡ãã·ã¥ãç¡èŠãããšããµãŒãã¹ ã¡ãã·ã¥ã¯æ¶ããŠããŸããŸãã?
â æ®å¿µã§ããããµãŒãã¹ ã¡ãã·ã¥ã¯é·ãéç§ãã¡ã«æäŸãããŠããŸããã
- ã§ããµãŒãã¹ ã¡ãã·ã¥ã¯äœ¿ããããªã!
- ããã§ããããã®å¿
èŠã¯ãããŸããïŒ äžèšã®ç§ã®ã¢ã³ã±ãŒããèªãã§ãå°ãªããšããã®åºæ¬ãç解ããŠããã¹ããã©ãããç解ããŠãã ããã
â ããã¯å€ãè¯ãESB/ããã«ãŠã§ã¢ã«æ°ãããœãŒã¹ãå ãããã®ã§ã¯ãªãã§ããããïŒ
â ãµãŒãã¹ ã¡ãã·ã¥ã¯ãã»ãã³ãã£ã㯠ããžãã¯ã§ã¯ãªããæäœããžãã¯ãæ±ããŸãã
â ãµãŒãã¹ ã¡ãã·ã¥ã¯ API ã²ãŒããŠã§ã€ãšã©ãéãã®ã§ãã?
â ãã®ãããã¯ã«é¢ããèšäºã¯ XNUMX äžä»¶ãããŸãã Googleã§èª¿ã¹ãŠã¿ãŠãã ããã
â Envoy ã¯ãµãŒãã¹ ã¡ãã·ã¥ã§ãã?
- ããããEnvoy ã¯ãµãŒãã¹ ã¡ãã·ã¥ã§ã¯ãªãããããã· ãµãŒããŒã§ãã ããã¯ããµãŒãã¹ ã¡ãã·ã¥ãæŽçããããã«äœ¿çšã§ããŸã (æ±çšãããã·ã§ããããšãªã©)ã ããããããèªäœã¯ãµãŒãã¹ ã¡ãã·ã¥ã§ã¯ãããŸããã
â Network Service Mesh ã¯ãµãŒãã¹ ã¡ãã·ã¥ã§ãã?
- ãããã ååã«ãããããããããã¯ãµãŒãã¹ ã¡ãã·ã¥ã§ã¯ãããŸãã (ããŒã±ãã£ã³ã°ã®å¥è·¡ã奜ãã§ãã?)ã
â ãµãŒãã¹ ã¡ãã·ã¥ã¯ãã¡ãã»ãŒãž ãã¥ãŒ ããŒã¹ã®ãªã¢ã¯ãã£ãéåæã·ã¹ãã ã«åœ¹ç«ã¡ãŸãã?
- ãããããµãŒãã¹ ã¡ãã·ã¥ã¯åœ¹ã«ç«ã¡ãŸããã
â ã©ã®ãµãŒãã¹ ã¡ãã·ã¥ã䜿çšããã°ããã§ãã?
-
- èšäºã¯ææªã§ãïŒ / äœè
æ§å€§æè¿ïŒ
â åéå
šå¡ãèŠãããããã«ããªã³ã¯ãå
±æããŠãã ããã
æè¬
ã¿ã€ãã«ããæšæž¬ã§ãããããããŸãããããã®èšäºã¯ãžã§ã€ã»ã¯ã¬ãã¹ã®çŽ æŽãããè«æã
ç§ã¯èªåã®ããšããLinkerd éçºè
ããšåŒã³ããã®ã§ãããå®éã«ã¯ãããžã§ã¯ãã® README.md ãã¡ã€ã«ã®ç®¡çè
ã«è¿ãã§ãã Linkerd ã¯ä»æ¥äœæ¥äžã§ã
æåŸã«ãLinkerd ã®äœæè
ã«ç¹å¥ãªæè¬ãç³ãäžããŸãã
翻蚳è ããã®è¿œäŒž
ç§ãã¡ã®ããã°ããèªã¿ãã ãã:
- «
ãµãŒãã¹ ã¡ãã·ã¥ãšã¯äœã§ãã? [ãã€ã¯ããµãŒãã¹ãåããã¯ã©ãŠã ã¢ããªã±ãŒã·ã§ã³ã«] ãµãŒãã¹ ã¡ãã·ã¥ãå¿ èŠãªçç±ã¯äœã§ãã? "; - «
Traefik 2.0: TCP ãµããŒããšæ°ãã Web ã€ã³ã¿ãŒãã§ã€ã¹ãåãããµãŒãã¹ ã¡ãã·ã¥ã®ã¢ããããŒã "; - «
Maesh - Traefik ã®äœè ã«ãã Kubernetes çšã®æ°ããã·ã³ãã«ãªãµãŒãã¹ ã¡ãã·ã¥ "; - «
Istio ã䜿çšãããã€ã¯ããµãŒãã¹ã«æ»ããŸãã ããŒã1 "; - «
Conduit - Kubernetes çšã®è»œéãµãŒãã¹ ã¡ãã·ã¥ 'ã
åºæïŒ habr.com