ForePaaSã¯ããã°ããã®éDevOpsã®å®éšãè¡ã£ãŠããŸãããæåã¯ããŒã ãšããŠããããŠä»ã§ã¯äŒç€Ÿå šäœã§å®éšãè¡ã£ãŠããŸããçç±ã¯åçŽã§ããçµç¹ã¯æé·ããŠããŸãã以åã¯ããã¹ãŠã®æ©äŒã«1ã€ã®ããŒã ãããããŸããã§ããã圌女ã¯è£œåã®ã¢ãŒããã¯ãã£ãèšèšãã»ãã¥ãªãã£ã«æºãããããããåé¡ã«è¿ éã«å¯Ÿå¿ããŸãããçŸåšãç§ãã¡ã¯å°éåéã«ãã£ãŠããã€ãã®ããŒã ã«åãããŠããŸãïŒããã³ããšã³ããããã¯ãšã³ããéçºãéçš...
以åã®æ¹æ³ã¯ããã»ã©å¹æçã§ã¯ãªããå質ãšæªãç ç²ã«ããããšãªãé床ãç¶æããªããäœããå€æŽããå¿ èŠãããããšã«æ°ä»ããŸããéããŸãåæ§ã§ãã
以åã¯ãããŒã devopsãšåŒãã§ããŸããããå®éã«ã¯Opsãå®è¡ããããã¯ãšã³ãã§ã®éçºãæ åœããŠããŸãããé±ã«1åãä»ã®éçºè ãDevOpsããŒã ã«ãæ¬çªç°å¢ã«ãããã€ããå¿ èŠã®ããæ°ãããµãŒãã¹ãäŒããŸãããããã¯æã åé¡ãåŒãèµ·ãããŸãããäžæ¹ã§ã¯ãDevOpsããŒã ã¯éçºè ã«äœãèµ·ãã£ãŠããã®ããå®éã«ã¯ç解ããŠããŸããã§ããããä»æ¹ã§ã¯ãéçºè ã¯ãµãŒãã¹ã«è²¬ä»»ãæããŠããŸããã§ããã
æè¿ãDevOpsã®ã¹ã¿ããã¯ããµãŒãã¹ã³ãŒãã®å¯çšæ§ãä¿¡é Œæ§ãå質ã«ã€ããŠãéçºè ã®ãã®è²¬ä»»ãç®èŠããããããšããŠããŸãããŸããè² è·ãããã£ãããšã«é©ããéçºè ãå®å¿ãããå¿ èŠããããŸãããæ°ããªåé¡ã蚺æããããã«ããå€ãã®æ å ±ãå¿ èŠã ã£ããããã·ã¹ãã ç£èŠãå®è£ ããããšã«ããŸããã
ãã®èšäºã§ã¯ãã¢ãã¿ãªã³ã°ãšã¯äœãããããäœã§é£ã¹ããããã«ã€ããŠè©±ãããããã4ã€ã®ãŽãŒã«ãã³ã·ã°ãã«ã«ã€ããŠåŠã³ãã¡ããªãã¯ãšããªã«ããŠã³ã䜿çšããŠçŸåšã®åé¡ã調æ»ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ãµãŒãã¹ãç£èŠããããã®4ã€ã®ãŽãŒã«ãã³ã·ã°ãã«ãåããGrafanaããã·ã¥ããŒãã®äŸã
ã¢ãã¿ãªã³ã°ãšã¯äœã§ããïŒ
ç£èŠãšã¯ãã·ã¹ãã ã®ç¶æ ã«é¢ããæŽå¯ãæäŸããã¡ããªãã¯ã®äœæãåéãéçŽãããã³äœ¿çšã§ãã
ã·ã¹ãã ãç£èŠããã«ã¯ããã®ãœãããŠã§ã¢ãšãââãŒããŠã§ã¢ã®ã³ã³ããŒãã³ãã«é¢ããæ å ±ãå¿ èŠã§ãããã®ãããªæ å ±ã¯ãç¹å¥ãªããã°ã©ã ãŸãã¯ã³ãŒãã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã䜿çšããŠåéãããã¡ããªãã¯ãéããŠååŸã§ããŸãã
Instrumentationã¯ãããã©ãŒãã³ã¹ã枬å®ã§ããããã«ã³ãŒããå€æŽããŠããŸãã補åèªäœã®æ©èœã«åœ±é¿ãäžãããåã«ã¡ããªãã¯ãèšç®ããŠæäŸããã³ãŒããè¿œå ããŠããŸãããªã¯ãšã¹ãã®ã¬ã€ãã³ã·ãŒã枬å®ããããšããŸãããããµãŒãã¹ãåä¿¡ãããªã¯ãšã¹ããåŠçããã®ã«ãããæéãèšç®ããã³ãŒããè¿œå ããŸãã
ãã®æ¹æ³ã§äœæãããã¡ããªãã¯ã¯ãåŒãç¶ãåéããŠä»ã®ã¡ããªãã¯ãšçµã¿åãããå¿ èŠããããŸããããã¯éåžžãããŠè¡ãã㊠Metricbeatåéãšã®ããã« Logstashã«ææšãå²ãåºã Elasticsearchã次ã«ããããã®ã¡ããªãã¯ãç¬èªã®ç®çã«äœ¿çšã§ããŸããéåžžããã®ã¹ã¿ãã¯ã¯ãElasticsearchã§ã€ã³ããã¯ã¹ä»ããããããŒã¿ãã¬ã³ããªã³ã°ããKibanaã«ãã£ãŠè£å®ãã ãŸãã
ãªãç£èŠããã®ã§ããïŒ
ããŸããŸãªçç±ã§ã·ã¹ãã ãç£èŠããå¿ èŠããããŸããããšãã°ãã¢ã©ãŒããçæããŠããã·ã¥ããŒãã«ããŒã¿ãå ¥åããããã«ãã·ã¹ãã ã®çŸåšã®ã¹ããŒã¿ã¹ãšãã®ããªãšãŒã·ã§ã³ãç£èŠããŸããã¢ã©ãŒããåä¿¡ãããšãããã·ã¥ããŒãã§å€±æã®çç±ãæ¢ããŸããç£èŠã¯ããµãŒãã¹ã®2ã€ã®ããŒãžã§ã³ãæ¯èŒããããé·æçãªåŸåãåæãããããããã«äœ¿çšãããå ŽåããããŸãã
äœãç£èŠããŸããïŒ
ãµã€ãä¿¡é Œæ§ãšã³ãžãã¢ãªã³ã°ã«ã¯ã åæ£ã·ã¹ãã ã®ç£èŠã«é¢ãã圹ç«ã€ç« ãããã4ã€ã®ãŽãŒã«ãã³ã·ã°ãã«ã远跡ããããã®Googleã®ã¢ãããŒãã«ã€ããŠèª¬æããŠããŸãã
BeyerãB.ãJones C.ãMurphyãNãïŒPetoffãJãïŒ2016ïŒãµã€ãä¿¡é Œæ§ãšã³ãžãã¢ãªã³ã°ãGoogleãæ¬çªã·ã¹ãã ãå®è¡ããæ¹æ³ããªã©ã€ãªãŒãç¡æã®ãªã³ã©ã€ã³ããŒãžã§ã³ïŒhttpsïŒ //landing.google.com/sre/sre-book/toc/index.html
- â . . â , .
- â . API . , .
- . (, 500- ) . â , .
- , , . ? . . , , .
?
ãã¯ãããžãŒã¹ã¿ãã¯ãäŸã«ãšã£ãŠã¿ãŸããããéåžžãã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³ã§ã¯ãªããäžè¬çãªæšæºããŒã«ãéžæããŸããå©çšå¯èœãªæ©èœãç§ãã¡ã«ãšã£ãŠååã§ãªãå Žåãé€ããŠãã»ãšãã©ã®ãµãŒãã¹ãKubernetesç°å¢ã«ãããã€ããã³ãŒããã€ã³ã¹ãã«ã¡ã³ãåããŠãåã«ã¹ã¿ã ãµãŒãã¹ã«é¢ããã¡ããªãã¯ãååŸããŸãããããã®ã¡ããªãã¯ãåéããŠPrometheusçšã«æºåããã«ã¯ãPrometheusã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªã®1ã€ã䜿çšã ãŸããã»ãšãã©ãã¹ãŠã®äžè¬çãªèšèªçšã®ã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªããããŸããããã¥ã¡ã³ãã§ã¯ãç¬èªã®ã©ã€ãã©ãªãäœæããããã«å¿ èŠãªãã¹ãŠãèŠã€ããããšãã§ããŸãã
ãµãŒãããŒãã£ã®ãªãŒãã³ãœãŒã¹ãµãŒãã¹ã®å Žåãéåžžãã³ãã¥ããã£ããææ¡ããããšã¯ã¹ããŒã¿ãŒãå©çšããŸãããšã¯ã¹ããŒã¿ãŒã¯ããµãŒãã¹ããã¡ããªãã¯ãåéããPrometheusçšã«ãã©ãŒãããããã³ãŒãã§ãããããã¯éåžžãPrometheusã¡ããªãã¯ãçæããªããµãŒãã¹ã§äœ¿çšãããŸãã
ã¡ããªãã¯ããã€ãã©ã€ã³ã«éä¿¡ããæç³»åãšããŠPrometheusã«ä¿åããŸããããã«ãKubernetesã®kube-state-metricsã䜿çšããŠã ã¡ããªãã¯ãåéããŠPrometheusã«éä¿¡ããŸãããã®åŸãPrometheusãªã¯ãšã¹ãã䜿çšããŠãGrafanaã§ããã·ã¥ããŒããšã¢ã©ãŒããäœæã§ã ãŸããããã§ã¯æè¡çãªè©³çŽ°ã«ã€ããŠã¯èª¬æããŸããããããã®ããŒã«ãèªåã§è©ŠããŠã¿ãŠãã ããã圌ãã¯è©³çŽ°ãªããã¥ã¡ã³ããæã£ãŠããŸããããªãã¯ãããç°¡åã«ç解ããããšãã§ããŸãã
ããšãã°ããã©ãã£ãã¯ãåä¿¡ããåä¿¡ãããªã¯ãšã¹ããä»ã®ãµãŒãã¹ã䜿çšããŠåŠçããåçŽãªAPIãèŠãŠã¿ãŸãããã
ãã£ã¬ã€
ã¬ã€ãã³ã·ãŒã¯ããªã¯ãšã¹ãã®åŠçã«ãããæéã§ãããªã¯ãšã¹ããæåããå Žåãšãšã©ãŒãçºçããå Žåã®ã¬ã€ãã³ã·ãå¥ã ã«æž¬å®ããŸãããããã®çµ±èšãæ··åãããªãããã«ããŸãã
éåžžãå šäœçãªé 延ãèæ ®ãããŸããããããåžžã«é©åãªéžæã§ãããšã¯éããŸãããã¬ã€ãã³ã·ãŒã®ååžã¯å¯çšæ§ã®èŠä»¶ã«æ²¿ã£ãŠããããã远跡ããæ¹ãé©åã§ããç¹å®ã®ãããå€ãããéãåŠçãããèŠæ±ã®å²åã¯ãäžè¬çãªãµãŒãã¹ã¬ãã«ã€ã³ãžã±ãŒã¿ãŒïŒSLIïŒã§ãããã®SLIã®ãµãŒãã¹ã¬ãã«ç®æšïŒSLOïŒã®äŸã次ã«ç€ºããŸãã
ã24æé以å ã«ããªã¯ãšã¹ãã®99ïŒ ã1ç§æªæºã§åŠçãããã¯ãã§ããã
ã¬ã€ãã³ã·ã¡ããªãã¯ãè¡šãæãèŠèŠçãªæ¹æ³ã¯ãæç³»åã°ã©ãã䜿çšããããšã§ããã¡ããªãã¯ããã±ããã«å ¥ãããšã¯ã¹ããŒã¿ãŒã¯æ¯åããããåéããŸãããã®ããã«ããŠããµãŒãã¹åŸ ã¡æéã®nåäœæ°ãèšç®ã§ããŸãã
0 <n <1ã§ãã°ã©ãã«qå€ãå«ãŸããŠããå Žåããã®ã°ã©ãã®nåäœæ°ã¯ãqå€ã®ãã¡n * qãè¶ ããªãå€ã«çãããªããŸããã€ãŸããxã¬ã³ãŒãã®ã°ã©ãã®äžå€®å€0.5åäœæ°ã¯ãxã¬ã³ãŒãã®ååãè¶ ããªãå€ã«çãããªããŸãã
APIã¬ã€ãã³ã·ã°ã©ãã°ã©ããã
ãããããã«ãã»ãšãã©ã®å ŽåãAPIã¯1ç§æªæºã§ãªã¯ãšã¹ãã®99ïŒ ãåŠçããŸãããã ããSLOã«å¯Ÿå¿ããªã2ç§ååŸã®ããŒã¯ããããŸãã
Prometheusã䜿çšããŠããããããã±ãããµã€ãºã®éžæã«ã¯çŽ°å¿ã®æ³šæãæãå¿ èŠããããŸããPrometheusã¯ãç·åœ¢ããã³ææ°é¢æ°çãªãã±ãããµã€ãºãå¯èœã«ããŸããæšå®èª€å·®ãèæ ®ãããŠããéããã©ã¡ããéžæããŠãããŸããŸãã ã
Prometheusã¯ãåäœæ°ã®æ£ç¢ºãªå€ãæäŸããŸãããåäœæ°ãã©ã®ãã±ããã«ããããå€å¥ããç·åœ¢è£éã䜿çšããŠæŠç®å€ãèšç®ããŸãã
ãã©ãã£ãã¯
APIã®ãã©ãã£ãã¯ã枬å®ããã«ã¯ãAPIãæ¯ç§åä¿¡ãããªã¯ãšã¹ãã®æ°ãæ°ããå¿ èŠããããŸããã¡ããªãã¯ã¯1åã«1ååéããããããç¹å®ã®1ç§éã®æ£ç¢ºãªå€ãååŸããããšã¯ã§ããŸããããã ããPrometheusã®rateé¢æ°ãširateé¢æ°ã䜿çšããŠã1ç§ãããã®å¹³åãªã¯ãšã¹ãæ°ãèšç®ã§ããŸã ã
ãã®æ å ±ã衚瀺ããã«ã¯ãGrafanaSingleStatããã«ã䜿çšããŸãã1ç§ãããã®çŸåšã®å¹³åãªã¯ãšã¹ãæ°ãšåŸåã衚瀺ãããŸãã
APIã1ç§ãããã«åä¿¡ãããªã¯ãšã¹ãæ°ã瀺ãGrafanaSingleStatããã«ã®äŸ1ç§
ãããã®ãªã¯ãšã¹ãæ°ãçªç¶å€åãããšãããã衚瀺ãããŸããæ°åã§ãã©ãã£ãã¯ãååã«ãªããšãåé¡ãããããšãããããŸãã
ãšã©ãŒ
æãããªãšã©ãŒã®å²åãèšç®ããã®ã¯ç°¡åã§ããHTTP500å¿çããªã¯ãšã¹ãã®ç·æ°ã§å²ããŸãããã©ãã£ãã¯ãšåæ§ã«ãããã§ã¯å¹³åã䜿çšããŸãã
ééã¯ãã©ãã£ãã¯ã®å Žåãšåãã§ããå¿ èŠããããŸããããã«ããã1ã€ã®ããã«ã§ãšã©ãŒã®ãããã©ãã£ãã¯ã远跡ãããããªããŸãã
éå»5åéã®ãšã©ãŒçã10ïŒ ã§ãAPIã1ç§ããã200ãªã¯ãšã¹ããåŠçããŠãããšããŸããå¹³åããŠã1ç§ããã20åã®ãšã©ãŒãçºçããããšã¯ç°¡åã«èšç®ã§ããŸãã
飜å
飜åç¶æ ãç£èŠããã«ã¯ããµãŒãã¹å¶éãå®çŸ©ããå¿ èŠããããŸããAPIã®å Žåãã©ã¡ãããã圱é¿ãããããããªãã£ããããããã»ããµãšã¡ã¢ãªã®äž¡æ¹ã®ãªãœãŒã¹ã枬å®ããããšããå§ããŸãããKubernetesãš kube-state-metricsã¯ãã³ã³ãããŒã«ãããã®ã¡ããªãã¯ãæäŸããŸãã
API
飜å床枬å®ã®CPU䜿çšçã®ã°ã©ãã䜿çšãããšãããŠã³ã¿ã€ã ãäºæž¬ããŠãªãœãŒã¹ãã¹ã±ãžã¥ãŒã«ã§ããŸããããšãã°ãããŒã¿ããŒã¹ã¹ãã¬ãŒãžã®å Žåããã£ã¹ã¯ã®ç©ºã容éãšãã®ç©ºã容éã枬å®ããŠããã€ã¢ã¯ã·ã§ã³ãå®è¡ããããç解ã§ããŸãã
åæ£ãµãŒãã¹ãç£èŠããããã®è©³çŽ°ãªããã·ã¥ããŒã
å¥ã®ãµãŒãã¹ãèŠãŠã¿ãŸããããããšãã°ãä»ã®ãµãŒãã¹ã®ãããã·ãšããŠæ©èœããåæ£APIããã®APIã«ã¯ãç°ãªããªãŒãžã§ã³ãšè€æ°ã®ãšã³ããã€ã³ãã«è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ããããŸãããããã®ããããã¯ãç¬èªã®ãµãŒãã¹ã®ã»ããã«äŸåããŠããŸããæ°åè¡ã®ã°ã©ããèªãã®ã¯ããã«éåžžã«é£ãããªããŸããã·ã¹ãã å šäœãç£èŠããå¿ èŠã«å¿ããŠåã ã®é害ãæ€åºããæ©èœãå¿ èŠã§ãã
APIã®12ã€ã³ã¹ã¿ã³ã¹ã®CPU䜿çšçã°ã©ã
ãã®ããã«ãããªã«ããŠã³ããã·ã¥ããŒãã䜿çšããŸãã 1ã€ã®ããã«ã®åç»é¢ã«ãã·ã¹ãã ã®ã°ããŒãã«ãã¥ãŒã衚瀺ãããåã ã®èŠçŽ ãã¯ãªãã¯ããŠè©³çŽ°ã確èªã§ããŸãã圩床ã«ã€ããŠã¯ãã°ã©ãã䜿çšãããããã»ããµãšã¡ã¢ãªãªãœãŒã¹ã®äœ¿çšã瀺ãè²ä»ãã®é·æ¹åœ¢ã䜿çšããŸãããªãœãŒã¹äœ¿çšéãæå®ããããããå€ãè¶ ãããšãé·æ¹åœ¢ããªã¬ã³ãžè²ã«å€ãããŸãã
API
ã€ã³ã¹ã¿ã³ã¹ã®CPUããã³ã¡ã¢ãªäœ¿çšéã€ã³ãžã±ãŒã¿ãŒé·æ¹åœ¢ãã¯ãªãã¯ããŠè©³çŽ°ã«ç§»åãããšãããŸããŸãªAPIã€ã³ã¹ã¿ã³ã¹ãè¡šãããã€ãã®è²ä»ãã®é·æ¹åœ¢ã衚瀺ãããŸãã
APIã€ã³ã¹ã¿ã³ã¹ã®CPU䜿çšçã€ã³ãžã±ãŒã¿ãŒ
1ã€ã®ã€ã³ã¹ã¿ã³ã¹ã ãã«åé¡ãããå Žåã¯ãé·æ¹åœ¢ãã¯ãªãã¯ããŠè©³çŽ°ã確èªã§ããŸããããã«ã¯ãã€ã³ã¹ã¿ã³ã¹ã®é åãåä¿¡ãããªã¯ãšã¹ããªã©ã衚瀺ãããŸãã
APIã€ã³ã¹ã¿ã³ã¹ã®ç¶æ ã®è©³çŽ°ãã¥ãŒãå·Šããå³ãäžããäžïŒãããã€ããŒãªãŒãžã§ã³ãã€ã³ã¹ã¿ã³ã¹ãã¹ãåãæçµåèµ·åæ¥ã1ç§ãããã®ãªã¯ãšã¹ãæ°ãCPU䜿çšçãã¡ã¢ãªäœ¿çšçããã¹ãããã®åèšãªã¯ãšã¹ãæ°ããã¹ãããã®åèšãšã©ãŒçã
ãšã©ãŒã®å²åã«ã€ããŠãåãããšãè¡ããŸããAPIèªäœãŸãã¯é¢é£ãããµãŒãã¹ã§ãåé¡ãã©ãã«ããããç解ããããã«ãAPIã®åãšã³ããã€ã³ããã¯ãªãã¯ããŠãšã©ãŒã®å²åã確èªããŸãã
ããã«ã¯åŸ®åŠãªéãããããŸãããæåãããªã¯ãšã¹ãã®é 延ãšãšã©ãŒã«ã€ããŠãåãããšãè¡ããŸãããäž»ãªç®æšã¯ããµãŒãã¹ãäžçèŠæš¡ã§åé¡ãªãããšã確èªããããšã§ããåé¡ã¯ãAPIã«å€ãã®ç°ãªããšã³ããã€ã³ããããããããããè€æ°ã®ãµãŒãã¹ã«äŸåããŠããããšã§ããåãšã³ããã€ã³ãã«ã¯ãç¬èªã®é 延ãšãã©ãã£ãã¯ããããŸãã
ãµãŒãã¹ãšã³ããã€ã³ãããšã«åå¥ã®SLOïŒããã³SLAïŒãèšå®ããã®ã¯é¢åã§ããäžéšã®ãšã³ããã€ã³ãã¯ãä»ã®ãšã³ããã€ã³ããããå ¬ç§°é 延ãé«ããªããŸãããã®å Žåããªãã¡ã¯ã¿ãªã³ã°ãå¿ èŠã«ãªãå ŽåããããŸããåå¥ã®SLOãå¿ èŠãªå Žåã¯ããµãŒãã¹å šäœãããå°ããªãµãŒãã¹ã«åå²ããå¿ èŠããããŸãããããããç§ãã¡ã®ãµãŒãã¹ã®ç¯å²ãåºãããããšãããããŸãã
å šäœçãªã¬ã€ãã³ã·ãŒãç£èŠããã®ãæåã§ãããšå€æããŸããã现åæ§ã«ãããåŸ ã¡æéã®åå·®ãéåžžã«å€§ãããŠæ³šæãåŒãå Žåã«ãåé¡ã調æ»ããããšãã§ããŸãã
çµè«
ãããã®æ¹æ³ã䜿çšããŠã·ã¹ãã ãç£èŠããŠããŸããããåé¡ã®æ€åºã«ãããæéãšå¹³å修埩æéïŒMTTRïŒãççž®ãããŠããããšã«æ°ä»ããŸããã詳现åã«ãããã°ããŒãã«ãªåé¡ã®å®éã®åå ãèŠã€ããããšãã§ããŸããç§ãã¡ã«ãšã£ãŠããã®èœåã¯å€§ããå€åããŸããã
ä»ã®éçºããŒã ããããã®æ¹æ³ã䜿ãå§ããŠããããããã®å©ç¹ã ãã確èªããŠããŸããçŸåšã圌ãã¯ãµãŒãã¹ã®éå¶ã«è²¬ä»»ãããã ãã§ã¯ãããŸãããããã«é²ãã§ãã³ãŒããžã®å€æŽããµãŒãã¹ã®åäœã«ã©ã®ããã«åœ±é¿ããããå€æã§ããŸãã
4ã€ã®ãŽãŒã«ãã³ã·ã°ãã«ã¯ããã¹ãŠã®åé¡ãå®å šã«è§£æ±ºããããã§ã¯ãããŸããããæãäžè¬çãªãã®ã§ã¯éåžžã«åœ¹ç«ã¡ãŸããã»ãšãã©åŽåããããã«ãç£èŠãå€§å¹ ã«æ¹åããMTTRãåæžããããšãã§ããŸããããããã®éã«4ã€ã®ãŽãŒã«ãã³ã·ã°ãã«ãããéããå¿ èŠãªæ°ã®ã¡ããªãã¯ãè¿œå ããŸãã