ãã€ãã®ããã«ããã®èšäºã®èæ¡ãèªãã§è²Žéãªã¢ããã€ã¹ãæäŸããŠãããFred HebertãšSargun Dhillonã«æè¬ããŸãã
Boxã®Tamar Berkovichiã¯ãé床ã«é¢ããè¬æŒã§ ãèªåããŒã¿ããŒã¹ãã§ãŒã«ãªãŒããŒã®ããã©ãŒãã³ã¹ãã§ãã¯ã®éèŠæ§ã匷調ããŸããã ç¹ã«ãããŒã¿ããŒã¹ã®å¥å
šæ§ãå€æããæ¹æ³ãšããŠããšã³ãããŒãšã³ãã¯ãšãªã®å®è¡æéãç£èŠããæ¹ããåçŽãªpingïŒpingïŒãããåªããŠããããšã«æ³šç®ããŸããã
...å¥ã®ããŒãïŒã¬ããªã«ïŒã«ãã©ãã£ãã¯ã転éããäžæŽ»åãæé€ããããã«ãããŠã³ã¹ããã®ä»ã®å¢çç¶æ³ããã®ä¿è·æ段ãæ§ç¯ããå¿
èŠããããŸãã é£ãããããŸããã å¹æçãªäœæ¥ãæŽçããéã®çŠç¹ã¯ããã€ããŒã¿ããŒã¹ãæåã®äœçœ®ã«çœ®ãããç¥ãããšã§ãã ããŒã¿ããŒã¹ã®æ£åžžæ§ãæ£ããè©äŸ¡ã§ããå¿
èŠããããŸãã çŸåšã泚æãæãã®ã«äœ¿çšãããŠããå€ãã®ãã©ã¡ãŒã¿ãŒïŒããšãã°ãããã»ããµãŒã®è² è·ãã¬ã€ãã³ã·ãŒããšã©ãŒçïŒã¯äºæ¬¡çãªä¿¡å·ã§ãã ãããã®ãã©ã¡ãŒã¿ãŒã¯ãããããããŒã¿ããŒã¹ãã¯ã©ã€ã¢ã³ããã©ãã£ãã¯ãåŠçããèœåãå®éã«èªã£ãŠããŸããã ãããã£ãŠããããã䜿çšããŠåãæ¿ãã«é¢ãã決å®ãäžããšãåœéœæ§ãšåœé°æ§ã®äž¡æ¹ã®çµæãåŸãããšãã§ããŸãã ãã«ã¹ãã§ãã«ãŒã¯å®éã«ããŒã¿ããŒã¹ããŒãã«å¯ŸããŠç°¡åãªã¯ãšãªãå®è¡ããå®äºããã¯ãšãªãšå€±æããã¯ãšãªã®ããŒã¿ã䜿çšããŠãããŒã¿ããŒã¹ã®ç¶æ
ãããæ£ç¢ºã«è©äŸ¡ããŸãã
ããã«ã€ããŠå人ãšè©±ãåã£ããšããããã«ã¹ãã§ãã¯ã¯éåžžã«ç°¡åã§ãããå®éã®ãã©ãã£ãã¯ãããã»ã¹ã®å¥åº·ç¶æ
ãè©äŸ¡ããããã®æè¯ã®åºæºã§ããããšãææ¡ãããŸããã
å€ãã®å Žåããã«ã¹ãã§ãã¯ã®å®è£
ã«é¢é£ããè°è«ã¯ãåçŽãªéä¿¡/ä¿¡å·ãã¹ããŸãã¯è€éãªãšã³ãããŒãšã³ããã¹ãã®2ã€ã®å察ã®ãªãã·ã§ã³ãäžå¿ã«å±éããŸãã ãã®èšäºã§ã¯ãç¹å®ã®çš®é¡ã®è² è·åæ£ãœãªã¥ãŒã·ã§ã³ã«åè¿°ã®åœ¢åŒã®ãã«ã¹ãã§ãã¯ã䜿çšããåé¡ãšãããã»ã¹ã®ãã«ã¹ãè©äŸ¡ããããã®ãã詳现ãªã¢ãããŒãã®å¿
èŠæ§ã匷調ããŸãã
2çš®é¡ã®ãã«ã¹ãã§ãã¯
ãã«ã¹ãã§ãã¯ã¯ãå€ãã®ææ°ã®ã·ã¹ãã ã§ãã£ãŠããååãšããŠãããŒãã¬ãã«ãšãµãŒãã¹ã¬ãã«ã®2ã€ã®ã«ããŽãªã«åé¡ãããŸãã
ããšãã°ãKubernetesã¯ã ã¬ãã£ãã¹ãšãµãã€ãããªãã£ãåæããããšã§æ€èšŒãå®è£
ããŠããŸãã å¯çšæ§ãã§ãã¯ã¯ãå²çè£ããã©ãã£ãã¯ãåŠçããèœåãå€æããããã«äœ¿çšãããŸãã æºåãã§ãã¯ãå®è¡ãããªãå Žåã ãµãŒãã¹ãæ§æãããšã³ããã€ã³ãããåé€ãããŸãããã®ãããçå
ã§ã¯ããã§ãã¯ãå®äºãããŸã§ãã©ãã£ãã¯ã¯ã«ãŒãã£ã³ã°ãããŸããã äžæ¹ãåç¶å¯èœæ§ãã§ãã¯ã¯ããã³ã°ãŸãã¯ããã¯ã«å¯ŸãããµãŒãã¹ã®å¿çãå€å¥ããããã«äœ¿çšãããŸãã 倱æãããšã kubeletã®åã
ã®ã³ã³ãããåèµ·åãããŸãã åæ§ã«ã Consulã¯ããã€ãã®åœ¢åŒã®checks
èš±å¯ãchecks
ïŒ script
ããŒã¹ãç¹å®ã®URLã«åããããHTTPããŒã¹ã®æ€èšŒãTTLããŒã¹ã®æ€èšŒããŸãã¯ãšã€ãªã¢ã¹ã
ãµãŒãã¹ã¬ãã«ã§ãã«ã¹ãã§ãã¯ãå®è£
ããæãäžè¬çãªæ¹æ³ã¯ããã«ã¹ãã§ãã¯ã®ãšã³ããã€ã³ãã決å®ããããšã§ãã ããšãã°ãgRPCã§ã¯ããã«ã¹ãã§ãã¯èªäœãRPCã³ãŒã«ã«ãªããŸãã gRPCã§ã¯ããµãŒãã¹ã¬ãã«ã®ãã«ã¹ãã§ãã¯ãšäžè¬çãªgRPCãµãŒããŒã®ãã«ã¹ãã§ãã¯ãå¯èœã§ãã
以åã¯ããã¹ãã¬ãã«ã®ãã«ã¹ãã§ãã¯ãã¢ã©ãŒããããªã¬ãŒããã·ã°ãã«ãšããŠäœ¿çšãããŠããŸããã ããšãã°ãå¹³åçãªããã»ããµè² è·ã䌎ãã¢ã©ãŒãïŒçŸåšã¯ã¢ã³ããã¶ã€ã³ãã¿ãŒã³ãšèŠãªãããŠããŸãïŒã ãã«ã¹ãã§ãã¯ãéç¥ã«çŽæ¥äœ¿çšãããªãå Žåã§ããããšãã°è² è·åæ£ãïŒå Žåã«ãã£ãŠã¯ïŒæç·ã«é¢ãããªã©ãä»ã®å€ãã®èªåã€ã³ãã©ã¹ãã©ã¯ãã£æ±ºå®ã®åºç€ãšããŠæ©èœããŸãã Envoyãªã©ã®ãµãŒãã¹ã°ãªããããŒã¿ã¹ããŒã ã§ã¯ã ãã«ã¹ãã§ãã¯ããŒã¿ã¯ãã€ã³ã¹ã¿ã³ã¹ãžã®ãã©ãã£ãã¯ã®ã«ãŒãã£ã³ã°ã決å®ããéã«ããµãŒãã¹ãã£ã¹ã«ããªããŒã¿ã«é¢ããŠå
ã«é²ã¿ãŸãã
å¹çã¯ã¹ãã¯ãã«ã§ããããã€ããªåé¡ã§ã¯ãããŸãã
ãšã³ãŒèŠæ±ãã€ãŸãpingã¯ããµãŒãã¹ãæ©èœããŠãããã©ããã®ã¿ã確èªã§ããŸããããšã³ãããŒãšã³ããã¹ãã¯ãã·ã¹ãã ãç¹å®ã®äœæ¥åäœãå®è¡ã§ãããã©ããã確èªããããã®ãããã·ã§ããäœæ¥åäœã¯ããŒã¿ããŒã¹ã¯ãšãªãŸãã¯ç¹å®ã®èšç®ã«ãªããŸãã ãã«ã¹ãã§ãã¯ã®åœ¢åŒã«é¢ä¿ãªãããã®çµæã¯çŽç²ã«ãã€ããªã§ãããšèŠãªãããŸãïŒãåæ ŒããŸãã¯ã倱æãã
çŸä»£ã®åçã§ãã°ãã°ãèªåã¹ã±ãŒã©ãã«ããªã€ã³ãã©ã¹ãã©ã¯ãã£ãªãã·ã§ã³ã§ã¯ãç¹å®ã®äœæ¥åäœãå®è¡ã§ããªãå Žåã§ããåã«ãæ©èœããã1ã€ã®ããã»ã¹ã¯éèŠã§ã¯ãããŸããã ãšã³ãŒãã¹ããªã©ã®ç°¡æãã§ãã¯ã¯ã»ãšãã©åœ¹ã«ç«ããªãããšãããããŸãã
ãµãŒãã¹ãå®å
šã«åæããããšããå€æããã®ã¯ç°¡åã§ãããå®è¡äžã®ãµãŒãã¹ã®æäœæ§ã®çšåºŠã確ç«ããããšã¯ã¯ããã«å°é£ã§ãã ããã»ã¹ãå®è¡ãããŠããïŒã€ãŸãããã«ã¹ãã§ãã¯ã«åæ ŒããŠããïŒããã©ãã£ãã¯ãã«ãŒãã£ã³ã°ãããŠããå¯èœæ§ã¯ååã«ãããŸãããããšãã°p99ãµãŒãã¹ã®é
延æéäžã«ç¹å®ã®äœæ¥åäœãå®è¡ããã«ã¯ãããã§ã¯äžååã§ãã
å€ãã®å Žåãããã»ã¹ãéè² è·ã®ããäœæ¥ãå®äºã§ããŸããã éåžžã«ç«¶äºã®æ¿ãããµãŒãã¹ã§ã¯ãã茻茳ãã¯é床ã®ãã¥ãŒã€ã³ã°ã䌎ã1ã€ã®ããã»ã¹ã®ã¿ã§åŠçãããåæãªã¯ãšã¹ãã®æ°ãšé©åã«çžé¢ããRPCã³ãŒã«ã®é
延ã®å¢å ã«ã€ãªããå¯èœæ§ããããŸãïŒå€ãã®å Žåãäžäœã¬ãã«ã®ãµãŒãã¹ã¯åã«ãªã¯ãšã¹ããä¿çããåè©Šè¡ããŸãã¿ã€ã ã¢ãŠãïŒã ããã¯ããã«ã¹ãã§ãã¯ãšã³ããã€ã³ããHTTP 200ã¹ããŒã¿ã¹ã³ãŒãã«èªåçã«æ»ãããã«æ§æãããŠããå Žåã«ç¹ã«åœãŠã¯ãŸããŸããããµãŒãã¹ã«ãã£ãŠå®è¡ãããå®éã®æäœã«ã¯ãããã¯ãŒã¯I / OãŸãã¯èšç®ãå«ãŸããŸãã
ããã»ã¹ã®ããã©ãŒãã³ã¹ã¯ã¹ãã¯ãã«ã§ãã ãŸãã ãµãŒãã¹ã®å質ãããšãã°ãç¹å®ã®äœæ¥åäœã®çµæã埩å
ããããã»ã¹ã«å¿
èŠãªæéãçµæã®ç²ŸåºŠã«é¢å¿ããããŸã ã
ããã»ã¹ã¯ãèçšå¹Žæ°äžã®ããŸããŸãªçšåºŠã®äœæ¥èœåã®éã§å€åããå¯èœæ§ããããŸãïŒå®å
šãªäœæ¥èœå ïŒããšãã°ãäºæ³ããã䞊åã¬ãã«ã§æ©èœããèœåïŒããåäœäžèœã®ãã€ã³ãïŒãã¥ãŒããã£ã±ãã«ãªãå§ãããšãïŒãšããã»ã¹ãå®å
šã«åäœäžèœãŸãŒã³ã«å
¥ããã€ã³ãïŒãã§ã«ãïŒãµãŒãã¹å質ã®äœäžïŒã äžéšã®æ©èœãåäœããä»ã®æ©èœããªãã«ãªãããäžéšã®èŠæ±ãå®è¡ãããã ãã§ãªããäžéšãå®è¡ãããªããããšãæå³ããæéã«éšåçãªé害ã®çšåºŠããªããšããåæã§ãæãäºçŽ°ãªãµãŒãã¹ã®ã¿ãæ§ç¯ã§ããŸãã ãµãŒãã¹ã¢ãŒããã¯ãã£ãéšåçãªé害ãæ£ããä¿®æ£ããªãå Žåããšã©ãŒãä¿®æ£ããã¿ã¹ã¯ã¯èªåçã«ã¯ã©ã€ã¢ã³ãã«å§ããããŸã ã
ãã®ãããªå€åã¯å®å
šã«æ£åžžã§ãããšããç解ã®äžã§ãé©å¿æ§ã®ããèªå·±ä¿®åŸ©ã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããå¿
èŠããããŸãã ãŸãããã®éãã¯è² è·åæ£ã«é¢ããŠã®ã¿éèŠã§ããããšã«æ³šæããããšãéèŠã§ããããšãã°ããªãŒã±ã¹ãã¬ãŒã¿ãŒã«ãšã£ãŠã¯ãããã»ã¹ãéè² è·ç¶æ
ã«ãããšããçç±ã ãã§ããã»ã¹ãåèµ·åããŠãæå³ããããŸããã
èšãæãããšããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®ã¬ãã«ã§ã¯ãããã»ã¹ã®æäœæ§ããã€ããªç¶æ
ãšèŠãªããé害ãŸãã¯ããªãŒãºã®åŸã«ã®ã¿ããã»ã¹ãåèµ·åããããšãéåžžã«åççã§ãã ãã ãã è² è·åæ£ã¬ã€ã€ãŒïŒEnvoyãªã©ã®å€éšãããã·ããŸãã¯ã¯ã©ã€ã¢ã³ãåŽã®å
éšã©ã€ãã©ãªïŒã§ã¯ãããã»ã¹ã®æäœæ§ã«é¢ãããã詳现ãªæ
å ±ã«åºã¥ããŠåäœããããšãéåžžã«éèŠã§ã-åç·ã®åæãšè² è·ã®ãã³ãã«é¢ããé©åãªæ±ºå®ãè¡ãå Žå ãµãŒãã¹ã®ããã©ãŒãã³ã¹ã¬ãã«ããã€ã§ãæ£ç¢ºã«å€æã§ããªãå ŽåããµãŒãã¹ãåŸã
ã«äœäžãããããšã¯ã§ããŸããã
çµéšããæããŠãã ãããç¡å¶éã®åæå®è¡ã¯ãå€ãã®å ŽåããµãŒãã¹ã®äœäžãçç£æ§ã®æ°žç¶çãªäœäžãåŒãèµ·ããäž»ãªèŠå ã§ãã è² è·åæ£ïŒããã³ãã®çµæãšããŠã®è² è·å¶éïŒã¯ãå€ãã®å Žåãå¹ççã«äžŠè¡æ§ã管çããããã¯ãã¬ãã·ã£ãé©çšããããšã«ãããã·ã¹ãã ã®éè² è·ãé²ããŸãã
ããã¯ãã¬ãã·ã£ãŒãé©çšãããšãã®ãã£ãŒãããã¯ã®å¿
èŠæ§
Matt Ranneyã¯ãç¡å¶éã®äžŠè¡æ§ãšNode.jsã®ããã¯ãã¬ãã·ã£ãŒã®å¿
èŠæ§ã«é¢ããé©ç°çãªèšäºãæžããŸããã èšäºå
šäœã¯äžæè°ã§ãããäž»ãªçµè«ã¯ïŒå°ãªããšãç§ã«ãšã£ãŠã¯ïŒããã»ã¹ãšãã®åºåãŠãããã®éã®ãã£ãŒãããã¯ã®å¿
èŠæ§ã§ããïŒéåžžãããã¯ããŒããã©ã³ãµãŒã§ãããæã«ã¯å¥ã®ãµãŒãã¹ã§ãïŒã
ç§trickã¯ããªãœãŒã¹ã䜿ãæãããããšããã©ããã«äœããäžããªããã°ãªããªããšããããšã§ãã éèŠã¯å¢å€§ããŠãããçç£æ§ãéæ³ã®ããã«é«ããããšã¯ã§ããŸããã çä¿¡ã¿ã¹ã¯ãå¶éããã«ã¯ãæåã«ããµã€ãã¬ãã«ã§ãIPã¢ãã¬ã¹ããŠãŒã¶ãŒãã»ãã·ã§ã³ããŸãã¯ããããã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠãªèŠçŽ ããšã«ç¹å®ã®é床å¶éãèšå®ããŸãã å€ãã®ããŒããã©ã³ãµãŒã¯ãçä¿¡Node.jsãµãŒããŒãå¶éãããããè€éãªæ¹æ³ã§é床ãå¶éã§ããŸãããéåžžãããã»ã¹ãå°é£ãªç¶æ³ã«ãªããŸã§åé¡ã«æ°ä»ããŸããã
éçãªãããå€ãšå¶éã«åºã¥ãé床å¶éãšéåè·¯ã¯ãæ£ç¢ºããšã¹ã±ãŒã©ããªãã£ã®äž¡æ¹ã®ç¹ã§ä¿¡é Œæ§ãäœããäžå®å®ã«ãªãå¯èœæ§ããããŸãã äžéšã®ããŒããã©ã³ãµïŒç¹ã«HAProxyïŒã¯ã åãµãŒããŒããã³ãµãŒããŒããŒãã®å
éšãã¥ãŒã®é·ãã«é¢ããå€ãã®çµ±èšãæäŸããŸã ã ããã«ãHAProxyã¯agent-check
ïŒéåžžã®ãã«ã¹ãã§ãã¯ãšã¯ç¬ç«ããè£å©ãã§ãã¯ïŒãå¯èœã«ããŸããããã«ãããããã»ã¹ã¯ããæ£ç¢ºã§åçãªãã«ã¹ãã£ãŒãããã¯ããããã·ãµãŒããŒã«æäŸã§ããŸãã ããã¥ã¡ã³ããžã®ãªã³ã¯ ïŒ
ãšãŒãžã§ã³ãã®ãã«ã¹ãã§ãã¯ã¯ãæå®ãããagent-port
ãã©ã¡ãŒã¿ãŒã«åºã¥ããŠããŒããžã®TCPæ¥ç¶ã«ãã£ãŠå®è¡ãããASCIIæååãèªã¿åããŸãã è¡ã¯ãã¹ããŒã¹ãã¿ãããŸãã¯ã³ã³ãã§åºåãããäžé£ã®åèªã§æ§æããããªãã·ã§ã³ã§/r
ããã³/ãŸãã¯/n
çµããã次ã®èŠçŽ ãå«ãŸããŸãã
75%
ãªã©ãASCIIã®æ£ã®æŽæ°ããŒã»ã³ãå€ã®è¡šç€ºã ãã®åœ¢åŒã®å€ã¯ãåæå€ã«æ¯äŸããŠééã決å®ããŸã
HAProxyã®èµ·åæã«èšå®ãããéã¿ä»ããµãŒããŒå€ã ãµãŒããŒãžã®åæ§ã®åœ±é¿ã®ç¬éãããçµ±èšããŒãžã«ãŒãã®éã¿å€ãDRAIN
ãšããŠç€ºãããããšã«æ³šæããŠãã ããïŒLBãã¡ãŒã ããåé€ãããŸãïŒã
-æååãã©ã¡ãŒã¿ãŒmaxconn
ïŒæŽæ°ïŒã¹ããŒã¹ãªãïŒãç¶ããŸãã ã®å€
ãã®åœ¢åŒã¯ã maxconn
ãµãŒããŒmaxconn
å®çŸ©ãmaxconn
ã æ倧æ°
ãµãŒããŒã確ç«ã§ããæ¥ç¶ã®åèšæ°ãååŸããã«ã¯ããã®ãã«ã¹ãã§ãã¯ã䜿çšããŠã宣èšãããæ¥ç¶ã«ããŒããã©ã³ãµãŒãšããŸããŸãªãµãŒããŒããŒãã®æ°ãæããå¿
èŠããããŸãã äŸïŒ maxconn:30
- ready
ãšããèšèã ããã«ããããµãŒããŒã®ç®¡çç¶æ
ã
READY
ã¢ãŒãã DRAIN
ãŸãã¯MAINT
ãã£ã³ã»ã«ã
-åèªdrain
ã ããã«ããããµãŒããŒã®ç®¡çç¶æ
ã
DRAIN
ã¢ãŒãïŒããã¬ã€ã³ãïŒããã®åŸããµãŒããŒã¯ãããŒã¿ããŒã¹ãä»ããŠåãå
¥ããããæ¥ç¶ãé€ããæ°ããæ¥ç¶ãåãå
¥ããŸããã
-åèªmaint
ã ããã«ããããµãŒããŒã®ç®¡çç¶æ
ã
MAINT
ã¢ãŒãïŒãã¡ã³ããã³ã¹ãïŒããã®åŸããµãŒããŒã¯æ°ããæ¥ç¶ãåãå
¥ããããã«ã¹ãã§ãã¯ã¯åæ¢ããŸãã
down
ã failed
ãŸãã¯stopped
ã®åèªãã·ã£ãŒãèšå·ïŒïŒïŒã®åŸã«èª¬æè¡ãç¶ãå ŽåããããŸãã ãããã¯ãã¹ãŠDOWN
ãµãŒããŒã®åäœã¹ããŒã¿ã¹ïŒããªããïŒã瀺ããŸãããåèªèªäœãçµ±èšããŒãžã«è¡šç€ºãããããã管çè
ã¯ãã®éãã«ããç¶æ³ãäºæ³ããããã©ãããå€æã§ããŸãããµãŒãã¹ãæå³çã«åæ¢ããã確èªãã¹ãã衚瀺ãããŠãåæ Œããªãå ŽåããããŸãããŸãã¯ãç¡å¹ãšã¿ãªãããŸãïŒããã»ã¹ãªããããŒãããã®å¿çãªãïŒã
-ãã«ã¹ãã§ãã¯ããµãŒãã¹ã®å¯çšæ§ã確èªããå Žåãupãšããèªã¯UP
ãµãŒããŒã®åäœã¹ããŒã¿ã¹ïŒããªã³ãïŒã瀺ããŸãã
ãšãŒãžã§ã³ããèŠæ±ããŠããªããã©ã¡ãŒã¿ãŒã¯å€æŽãããŸããã ããšãã°ããšãŒãžã§ã³ãã¯ãããã»ããµã®äœ¿çšç¶æ³ãç£èŠããåäœç¶æ
ãšå¯Ÿè©±ããã«çžå¯Ÿçãªéã¿å€ã®ã¿ãå ±åããããã«èšèšã§ããŸãã åæ§ã«ããšãŒãžã§ã³ãããã°ã©ã ã¯ã管çè
ã管çç¶æ
ã®ã¿ãå€æŽã§ãã3ã€ã®ã¹ã€ãããåãããšã³ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãšããŠèšèšã§ããŸãã
ãã ãããšãŒãžã§ã³ãã®ã¿ãèªèº«ã®ã¢ã¯ã·ã§ã³ããã£ã³ã»ã«ã§ããããããšãŒãžã§ã³ãã䜿çšããŠãµãŒããŒãDRAINã¢ãŒããŸãã¯DOWNã«èšå®ããå ŽåããšãŒãžã§ã³ãã¯ä»ã®åçã®ã¢ã¯ã·ã§ã³ãå®è¡ããŠãµãŒãã¹ãåèµ·åããå¿
èŠãããããšã«æ³šæããŠãã ããã
ãšãŒãžã§ã³ããžã®æ¥ç¶ã®å€±æã¯ãšã©ãŒãšã¯èŠãªãããŸãããããã¯ãcheckãã©ã¡ãŒã¿ãŒã䜿çšããŠéå§ããããã«ã¹ãã§ãã¯ãå®æçã«å®è¡ããããšã§æ¥ç¶æ©èœããã¹ããããããã§ãã ãã ããã·ã£ããããŠã³ã¡ãã»ãŒãžãå°çããå ŽåããšãŒãžã§ã³ããåæ¢ããã«ã¯ãã·ã£ããããŠã³ãå ±åãããšãŒãžã§ã³ãã®ã¿ããµãŒããŒãå床æå¹ã«ã§ãããããèŠåã¯ãå§ãã§ããŸããã
ãµãŒãã¹ãšåºåãŠãããã®åçéä¿¡ã®ãã®ã¹ããŒã ã¯ãèªå·±é©å¿åã€ã³ãã©ã¹ãã©ã¯ãã£ãäœæããããã«éåžžã«éèŠã§ãã äŸã¯ãç§ãåã®ä»äºã§åããã¢ãŒããã¯ãã£ã§ãã
ç§ã¯ããªã¢ã«ã¿ã€ã ç»ååŠçã®ã¹ã¿ãŒãã¢ããäŒæ¥ã§ããimgixã§åããŠããŸããã ã·ã³ãã«ãªAPI URLã䜿çšããŠãç»åããªã¢ã«ã¿ã€ã ã§ååŸããã³å€æãããCDNãä»ããŠäžçäžã®ã©ãã§ã䜿çšãããŸãã äžèšã®ããã« ãã¹ã¿ãã¯ã¯éåžžã«è€éã§ããããèŠããã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ã«ã¯ããœãŒã¹ããã®ããŒã¿ã®åä¿¡ã¬ãã«ãšäžŠè¡ããŠãäžå®ã¬ãã«ã®ãã©ã³ã·ã³ã°ãšããŒããã©ã³ã·ã³ã°ããœãŒã¹ãã£ãã·ã³ã°ã®ã¬ãã«ãç»ååŠçã®ã¬ãã«ãã³ã³ãã³ãé
ä¿¡ã®ã¬ãã«ãå«ãŸããŠããŸããã
è² è·åæ£ã¬ãã«ã¯ããªããŒã¹ãããã·ããã³ãªã¯ãšã¹ããããŒã«ãŒãšããŠæ©èœããSpillwayãµãŒãã¹ã«åºã¥ããŠããŸããã ããã¯çŽç²ã«å
éšçãªãµãŒãã¹ã§ããã ç¬æžéã§ãnginxãšHAProxyãšSpillwayãéå§ããã®ã§ãTLSãå®æããããéåžžã¯å¢çãããã·ã®èœåã«ããç¡æ°ã®ã»ããããä»ã®æ©èœãå®è¡ããããã«ã¯èšèšãããŠããŸããã
Spillwayã¯ãã¯ã©ã€ã¢ã³ãéšåïŒSpillway FEïŒãšãããŒã«ãŒã®2ã€ã®ã³ã³ããŒãã³ãã§æ§æãããŠããŸããã æåã¯äž¡æ¹ã®ã³ã³ããŒãã³ããåããã€ããªãã¡ã€ã«ã«ãããŸããããããæç¹ã§ãåããã¹ãã«åæã«å±éãããå¥ã
ã®ãã€ããªãã¡ã€ã«ã«åããããšã«ããŸããã äž»ã«ããããã®2ã€ã®ã³ã³ããŒãã³ãã®ããã©ãŒãã³ã¹ãããã¡ã€ã«ãç°ãªããã¯ã©ã€ã¢ã³ãéšåãã»ãŒå®å
šã«ããã»ããµã«æ¥ç¶ãããŠããããã§ãã ã¯ã©ã€ã¢ã³ãåŽã®ã¿ã¹ã¯ã¯ããœãŒã¹ãã£ãã·ã³ã°ã¬ãã«ã§ã®äºåæ€èšŒãå«ãåãªã¯ãšã¹ãã®äºååŠçãå®è¡ãããšã°ãŒãã¥ãŒã¿ãŒã«ã€ã¡ãŒãžå€æã®ãªã¯ãšã¹ããéä¿¡ããåã«ãã€ã¡ãŒãžãããŒã¿ã»ã³ã¿ãŒã«ãã£ãã·ã¥ãããããšã確èªããããšã§ããã
åžžã«ãåãã¹ãã«ãŠã§ã€ãããŒã«ãŒã«æ¥ç¶ã§ããã¢ãŒãã£ã¹ãã®åºå®ããŒã«ïŒã¡ã¢ãªãããã°12åçšåºŠïŒããããŸããã ã¢ãŒãã£ã¹ãã¯ãç»åã®å®éã®å€æïŒããªãã³ã°ããµã€ãºå€æŽãPDFåŠçãGIFã¬ã³ããªã³ã°ãªã©ïŒãæ
åœããŸããã æ°çŸããŒãžã®PDFãæ°çŸãã¬ãŒã ã®GIFããåçŽãªç»åãã¡ã€ã«ãŸã§ããã¹ãŠãåŠçããŸããã è«è² æ¥è
ã®ãã1ã€ã®æ©èœã¯ããã¹ãŠã®ãããã¯ãŒã¯ãå®å
šã«éåæã§ããã«ãããããããGPUèªäœã«å®éã®å€æããªãã£ãããšã§ãã ãªã¢ã«ã¿ã€ã ã§äœæ¥ããŠãããããç¹å®ã®æç¹ã§ãã©ãã£ãã¯ãã©ã®ããã«ãªãããäºæž¬ããããšã¯äžå¯èœã§ããã ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãããŸããŸãªåœ¢æ
ã®çä¿¡ãã©ãã£ãã¯ã«é©å¿ããå¿
èŠããããŸãã-ãªãã¬ãŒã¿ã®æåä»å
¥ãªãã
ããåºäŒãç°çš®ããã³ç°çš®ã®ãã©ãã£ãã¯ãã¿ãŒã³ãèãããšãæ¥ç¶ãåãå
¥ãããšããã©ãŒããŒãéè² è·ã«ãªãæããããå Žåãããã©ãŒããŒã¯çä¿¡ãªã¯ãšã¹ãã®åãå
¥ããæåŠããããšãå¿
èŠã«ãªããŸããïŒå®å
šã«åäœããŠããå Žåã§ãïŒã å®è¡è
ãžã®åèŠæ±ã«ã¯ãèŠæ±ã®æ§è³ªã«é¢ããã¡ã¿ããŒã¿ã®ç¹å®ã®ã»ãããå«ãŸããŠãããããå®è¡è
ã¯ãã®èŠæ±ãåŠçã§ãããã©ãããå€æã§ããŸããã åãšã°ãŒãã¥ãŒã¿ã«ã¯ãçŸåšäœæ¥äžã®ãªã¯ãšã¹ãã«é¢ããç¬èªã®çµ±èšããŒã¿ã®ã»ããããããŸããã åŸæ¥å¡ã¯ããããã®çµ±èšããªã¯ãšã¹ãã¡ã¿ããŒã¿ããã³ãœã±ãããããã¡ãµã€ãºããŒã¿ãªã©ã®ä»ã®ãã¥ãŒãªã¹ãã£ãã¯ããŒã¿ãšçµã¿åãããŠäœ¿çšââããçä¿¡ãªã¯ãšã¹ããæ£ããåä¿¡ãããã©ãããå€æããŸããã åŸæ¥å¡ã¯ããªã¯ãšã¹ããåãå
¥ããããšãã§ããªããšå€æããå Žåããã®ããã©ãŒãã³ã¹ã«ã€ããŠåºåãããã¯ïŒã¹ãã«ãŠã§ã€ïŒã«éç¥ããHAProxyãšãŒãžã§ã³ããã§ãã¯ãšå€ãããªãå¿çãäœæããŸããã
Spillwayã¯ããã¹ãŠã®ããŒã«ããã©ãŒããŒã®ããã©ãŒãã³ã¹ãç£èŠããŸããã æåã«ããªã¯ãšã¹ãã3åé£ç¶ã§ç°ãªããšã°ãŒãã¥ãŒã¿ãŒã«éä¿¡ããããšããŸããïŒããŒã«ã«ããŒã¿ããŒã¹ã«å
ã®ã€ã¡ãŒãžããããéè² è·ã«ãªã£ãŠããªããŠãŒã¶ãŒã«åªå
æš©ãäžããããŸããïŒã ãããŒã«ãŒã¯ãLIFOãã¥ãŒãFIFOãã¥ãŒãåªå
床ãã¥ãŒã®3ã€ã®åœ¢åŒã®ãã¥ãŒããµããŒãããŠããŸããã 3ã€ã®ãã¥ãŒãã¹ãŠããã£ã±ãã«ãªã£ãå ŽåããããŒã«ãŒã¯åã«èŠæ±ãæåŠããã¯ã©ã€ã¢ã³ãïŒHAProxyïŒãé
延æéåŸã«åè©Šè¡ã§ããããã«ããŸããã èŠæ±ã3ã€ã®ãã¥ãŒã®ããããã«é
眮ããããšãä»»æã®ç¡æã®ãšã°ãŒãã¥ãŒã¿ãŒãããããåé€ããŠåŠçã§ããŸãã ãªã¯ãšã¹ãã«åªå
床ãå²ãåœãŠã3ã€ã®ãã¥ãŒïŒLIFOãFIFOãåªå
床ããŒã¹ã®ãã¥ãŒïŒã®ã©ããé
眮ãããã決å®ããããšã«é¢é£ããç¹å®ã®å°é£ããããŸãããããã¯å¥ã®èšäºã®ãããã¯ã§ãã
ãµãŒãã¹ãå¹æçã«éçšããããã«ããã®åœ¢åŒã®åçãã£ãŒãããã¯ã«ã€ããŠè°è«ããå¿
èŠã¯ãããŸããã§ããã ãããŒã«ãŒã®ãã¥ãŒïŒ3ã€ãã¹ãŠã®ãã¥ãŒïŒã®ãµã€ãºã泚ææ·±ãç£èŠãããã¥ãŒã®ãµã€ãºãç¹å®ã®ãããå€ïŒéåžžã«ãŸãïŒãè¶
ãããšãã«ãPrometheusã¯éèŠãªèŠåã®1ã€ãçºè¡ããŸããã
2016幎11æã®Google NYCã§ã®ããã¡ããŠã¹ç£èŠã·ã¹ãã ã«é¢ããç§ã®ãã¬ãŒã³ããŒã·ã§ã³ã®ç»å
ãã®èŠåã¯ã2017幎5æã®OSCONäŒè°ã§ã®ããã¡ããŠã¹ç£èŠã·ã¹ãã ã«é¢ããç§ã®ãã¬ãŒã³ããŒã·ã§ã³ããååŸãããŸããã
ä»å¹Žã®åãã«ãUberã¯èå³æ·±ãèšäºãå
¬éããŸããããã®èšäºã§ã¯ããµãŒãã¹å質ã«åºã¥ããŠè² è·å¶éã¬ãã«ãå®è£
ããã¢ãããŒããæããã«ããŸããã
éå»6ãæéã®é害ãåæãããšããã ã¹ã ãŒãºãªå£åã«ãã£ãŠ28ïŒ
ã®é害ã軜æžãŸãã¯é²æ¢ã§ããããšãããããŸããã
æãäžè¬çãª3çš®é¡ã®é害ã¯ã次ã®èŠå ã«é¢é£ããŠããŸããã
-茻茳ãäžè¯ãªãã¬ãŒã¿ããŒããªã©ãçä¿¡ãªã¯ãšã¹ãã®ã¹ããŒãã®å€æŽã
-ããã»ããµãã¡ã¢ãªãå
¥åºååè·¯ããããã¯ãŒã¯ãªãœãŒã¹ãªã©ã®ãªãœãŒã¹ã®æ¯æžã
-ã€ã³ãã©ã¹ãã©ã¯ãã£ãããŒã¿ãŠã§ã¢ããŠã¹ãããŠã³ã¹ããªãŒã ãµãŒãã¹ãªã©ã®äŸåé¢ä¿ã®é害ã
CoDelã¢ã«ãŽãªãºã ã«åºã¥ãéè² è·æ€åºåšãå®è£
ããŸããã æå¹ãªãšã³ããã€ã³ãããšã«ã軜éã®èŠæ±ãããã¡ãŒïŒgourutinãšchannelsã«åºã¥ããŠå®è£
ãããŸã ïŒãè¿œå ãããåŒã³åºãå
ããèŠæ±ãåä¿¡ããŠââãããã³ãã©ãŒã§èŠæ±ã®åŠçãéå§ãããŸã§ã®é
延ã远跡ããŸãã , , .
, , , - . 2013 Google «The Tail at Scale» , ( ), ( ) .
, . , .
( )
, , :
- , , QCon London 2018.
- : - , , LISA 2017.
- â , , Strangeloop 2017.
- : , , , Strangeloop 2017.
- « » .
ãããã«
, TCP/IP ( ), IP ECN ( IP ) Ethernet, , .
ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ã¹ãã ã§ã¯å€§èŠæš¡ãªããã©ãŒãã³ã¹ãã§ãã¯ã§ååãªå ŽåããããŸãããåæ£ã·ã¹ãã ã§ãµãŒãã¹ã®å質ã確ä¿ããé£éçãªé害ãé²ãããšã¯ã§ããŸãããããŒããã©ã³ãµãŒã¯ã顧客ã«å¯Ÿããããã¯ãã¬ãã·ã£ãŒã®é©åãã€æ£ç¢ºãªé©çšã®ããã«ãã¢ããªã±ãŒã·ã§ã³ã®ã¬ãã«ã確èªããå¿
èŠããããŸãããµãŒãã¹ã®ããã©ãŒãã³ã¹ã®ã¬ãã«ããã€ã§ãæ£ç¢ºã«å€æããããšãäžå¯èœãªå ŽåããµãŒãã¹ã®æ®µéçãªäœäžã¯äžå¯èœã§ããã¿ã€ã ãªãŒãã€ååãªããã¯ãã¬ãã·ã£ãŒããªãå ŽåããµãŒãã¹ã¯ããã«é害ã®å±±ã«é¥ãããšããããŸãã