ä»ãDevOps ã®è©±é¡ãèªå€§åºåã«ãªã£ãŠããŸãã ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãšããªããªãŒãã€ãã©ã€ã³
ç§ã¯äŒæ¥ã®ITãµãŒãã¹ç®¡çéšéã§ãšã³ãžãã¢ãšããŠåããŠããŸãã
顧客ãšã®æ°å€ãã®äŒè©±ã®çµæã«åºã¥ããŠããªãªãŒã¹ã®å質管çãã¢ããªã±ãŒã·ã§ã³ã®ä¿¡é Œæ§ã®åé¡ãããã³ CI ã®ããŸããŸãªæ®µéã§ã®ãèªå·±ä¿®åŸ©ã (å®å®ããŒãžã§ã³ãžã®ããŒã«ããã¯ãªã©) ã®å¯èœæ§ãéèŠã§ãããšèšããŸãã /CD ãã€ãã©ã€ã³ã¯ãæãåºæ¿çã§é¢é£æ§ã®ãããããã¯ã® XNUMX ã€ã§ãã
æè¿ãç§èªèº«ã顧客åŽãã€ãŸããªã³ã©ã€ã³ ãã³ãã³ã° ã¢ããªã±ãŒã·ã§ã³ ãœãããŠã§ã¢ã®ãµããŒã ãµãŒãã¹ã§åããŠããŸããã ç§ãã¡ã®ã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã§ã¯ãå€æ°ã®èªå·±äœæãã€ã¯ããµãŒãã¹ã䜿çšããŸããã æãæ²ããããšã¯ããã¹ãŠã®éçºè
ããã€ããŒã¹ãªéçºã«å¯Ÿå¿ã§ããããã§ã¯ãªããäžéšã®ãã€ã¯ããµãŒãã¹ã®å質ãäœäžãããã€ã¯ããµãŒãã¹ãšãã®äœæè
ã«é¢çœããã åãä»ããããããšã§ãã ãããã®è£œåãã©ã®ãããªææã§äœãããŠãããã«ã€ããŠã®è©±ããããŸããã
ãåé¡ã®å®åŒåã
ãªãªãŒã¹ã®é »åºŠãé«ãããã€ã¯ããµãŒãã¹ã®æ°ãå€ãããããã¹ã段éã§ãéçšæ®µéã§ããã¢ããªã±ãŒã·ã§ã³å šäœã®åäœãç解ããããšãå°é£ã«ãªããŸãã å€åã¯çµ¶ããçºçãããããåªããç£èŠããŒã«ããªããã°å€åãå¶åŸ¡ããããšã¯éåžžã«å°é£ã§ãã ãã¹ã段éã§ã¯ãã¹ãŠã®ãã§ãã¯ãæåããŠããŠããéçºè ã¯å€ã®ãªãªãŒã¹åŸãæã«ãªããšç«è¬åº«ã®äžã«åº§ã£ãŠäœãå£ããªãã®ãåŸ ã€ããšããããããŸãã
ããXNUMXç¹ãããŸãã ãã¹ã段éã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®äž»ãªæ©èœãå®è£ ãããŠãããããšã©ãŒããªãããªã©ããœãããŠã§ã¢ã®æ©èœããã§ãã¯ãããŸãã å®æ§çãªããã©ãŒãã³ã¹è©äŸ¡ãæ¬ èœããŠããããã¢ããªã±ãŒã·ã§ã³ãšçµ±åå±€ã®ãã¹ãŠã®åŽé¢ãèæ ®ãããŠããŸããã äžéšã®ã¡ããªã¯ã¹ã¯ãŸã£ãããã§ãã¯ãããªãå ŽåããããŸãã ãã®çµæãå®çšŒåç°å¢ã§é害ãçºçããå Žåããã¯ãã«ã« ãµããŒãéšéã¯ãå®éã®ãŠãŒã¶ãŒãèŠæ ãç³ãç«ãŠå§ãããšãã«ã®ã¿ãã®ããšã«æ°ä»ããŸãã äœå質ã®ãœãããŠã§ã¢ããšã³ããŠãŒã¶ãŒã«äžãã圱é¿ãæå°éã«æããããšèããŠããŸãã
解決çã® XNUMX ã€ã¯ãCI/CD ãã€ãã©ã€ã³ã®ããŸããŸãªæ®µéã§ãœãããŠã§ã¢ã®å質ããã§ãã¯ããããã»ã¹ãå®è£ ããç·æ¥æã«ã·ã¹ãã ã埩å ããããã®ããŸããŸãªã·ããªãªãè¿œå ããããšã§ãã DevOps ãããããšãå¿ããŸããã äŒæ¥ã¯ãæ°è£œåãã§ããã ãæ©ãåãåãããšãæåŸ ããŠããŸãã ãããã£ãŠããã¹ãŠã®ãã§ãã¯ãšã¹ã¯ãªãããèªååããå¿ èŠããããŸãã
ãã®ã¿ã¹ã¯ã¯ XNUMX ã€ã®ã³ã³ããŒãã³ãã«åãããŠããŸãã
- ãã¹ã段éã§ã®ã¢ã»ã³ããªã®å質管ç (äœå質ã¢ã»ã³ããªãæ€åºããããã»ã¹ãèªååãããã)ã
- å®çšŒåç°å¢ã§ã®ãœãããŠã§ã¢å質管ç (åé¡ãèªåçã«æ€åºããã¡ã«ããºã ãšããã®èªå·±ä¿®åŸ©ã®ããã®èããããã·ããªãª)ã
ã¡ããªã¯ã¹ãç£èŠããã³åéããããã®ããŒã«
èšå®ãããç®æšãå®çŸããã«ã¯ãåé¡ãæ€åºããCI/CD ãã€ãã©ã€ã³ã®ããŸããŸãªæ®µéã§èªååã·ã¹ãã ã«åé¡ã転éã§ããç£èŠã·ã¹ãã ãå¿ èŠã§ãã ãŸãããã®ã·ã¹ãã ãéçºããã¹ããéçšãªã©ã®ããŸããŸãªããŒã ã«ãšã£ãŠæçšãªææšãæäŸã§ããã°ãããã¯ãã©ã¹ã«ãªããŸãã ãããããžãã¹ã«ã䜿ãããæé«ã§ãã
ã¡ããªã¯ã¹ãåéããã«ã¯ãäžé£ã®ããŸããŸãªã·ã¹ãã (PrometheusãELK StackãZabbix ãªã©) ã䜿çšã§ããŸãããç§ã®æèŠã§ã¯ãAPM ã¯ã©ã¹ã®ãœãªã¥ãŒã·ã§ã³ããããã®ã¿ã¹ã¯ã«æé©ã§ã (
ãµããŒã ãµãŒãã¹ã§ã®ä»äºã®äžç°ãšããŠãDynatrace ã® APM ã¯ã©ã¹ ãœãªã¥ãŒã·ã§ã³ã䜿çšããŠåæ§ã®ãããžã§ã¯ããéå§ããŸããã çŸåšãã€ã³ãã°ã¬ãŒã¿ãŒã§åããŠããç§ã¯ãç£èŠã·ã¹ãã åžå Žã«ã€ããŠããç¥ã£ãŠããŸãã ç§ã®äž»èŠ³çãªæèŠ: Dynatrace ã¯ãã®ãããªåé¡ã解決ããã®ã«æé©ã§ãã
Dynatrace ã¯ãã³ãŒãå®è¡ã¬ãã«ã«è³ããŸã§ã®è©³çŽ°ãªã¬ãã«ã§ããããããŠãŒã¶ãŒæäœãæ°Žå¹³æ¹åã«è¡šç€ºããŸãã Web ããã³ã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ã®ããã³ããšã³ã ã¬ãã«ãããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒãçµ±åãã¹ããããŒã¿ããŒã¹ãžã®ç¹å®ã®åŒã³åºãã«è³ããŸã§ãããŸããŸãªæ
å ±ãµãŒãã¹éã®å¯Ÿè©±ã®ãã§ãŒã³å
šäœã远跡ã§ããŸãã
ãŸããããŸããŸãªèªååããŒã«ãšçµ±åããå¿ èŠãããããšãèŠããŠããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã«ã¯ãããŸããŸãªã¡ããªã¯ã¹ãã€ãã³ããéåä¿¡ã§ãã䟿å©ãª API ãå«ãŸããŠããŸãã
次ã«ãDynatrace ã·ã¹ãã ã䜿çšããŠãããã®åé¡ã解決ããæ¹æ³ã詳ããèŠãŠã¿ãŸãããã
ã¿ã¹ã¯ 1. ãã¹ã段éã§ã®ã¢ã»ã³ããªã®å質管çã®èªåå
æåã®èª²é¡ã¯ãã¢ããªã±ãŒã·ã§ã³é ä¿¡ãã€ãã©ã€ã³ã§ã§ããã ãæ©ãåé¡ãçºèŠããããšã§ãã ãè¯å¥œãªãã³ãŒããã«ãã®ã¿ãå®çšŒåç°å¢ã«å°éããå¿ èŠããããŸãã ãããè¡ãã«ã¯ããã¹ã段éã®ãã€ãã©ã€ã³ã«ããµãŒãã¹ã®å質ããã§ãã¯ããããã®è¿œå ã®ã¢ãã¿ãŒãå«ããå¿ èŠããããŸãã
ãããå®è£ ãããã®ããã»ã¹ãèªååããæ¹æ³ã段éçã«èŠãŠã¿ãŸãããã
次ã®å³ã¯ãèªååããããœãããŠã§ã¢å質ãã¹ãæé ã®ãããŒã瀺ããŠããŸãã
- ç£èŠã·ã¹ãã ã®å°å ¥ïŒãšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ïŒã
- ãœãããŠã§ã¢ã®å質ãè©äŸ¡ããããã®ã€ãã³ã (ã¡ããªã¯ã¹ãšãããå€) ãç¹å®ããããããç£èŠã·ã¹ãã ã«è»¢éããŸãã
- è² è·ãã¹ããšããã©ãŒãã³ã¹ãã¹ãã®çæã
- ç£èŠã·ã¹ãã ã§ããã©ãŒãã³ã¹ãšå¯çšæ§ã®ããŒã¿ãåéããã
- ãœãããŠã§ã¢å質è©äŸ¡ã€ãã³ãã«åºã¥ããã¹ã ããŒã¿ãç£èŠã·ã¹ãã ãã CI/CD ã·ã¹ãã ã«è»¢éããŸãã ã¢ã»ã³ããªã®èªååæã
ã¹ããã 1. ç£èŠã·ã¹ãã ã®å°å ¥
ãŸãããã¹ãç°å¢ã«ãšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã åæã«ãDynatrace ãœãªã¥ãŒã·ã§ã³ã«ã¯åªããæ©èœããããŸããOS ã€ã³ã¹ã¿ã³ã¹ (WindowsãLinuxãAIX) ã«ã€ã³ã¹ããŒã«ããããŠãããŒãµã« ãšãŒãžã§ã³ã OneAgent ã䜿çšãããµãŒãã¹ãèªåçã«æ€åºãããããã®ç£èŠããŒã¿ã®åéãéå§ããŸãã ããã»ã¹ããšã«åå¥ã®ãšãŒãžã§ã³ããæ§æããå¿
èŠã¯ãããŸããã ã¯ã©ãŠã ãã©ãããã©ãŒã ãšã³ã³ãã ãã©ãããã©ãŒã ã§ãç¶æ³ã¯åæ§ã«ãªããŸãã åæã«ããšãŒãžã§ã³ãã®ã€ã³ã¹ããŒã«ããã»ã¹ãèªååããããšãã§ããŸãã Dynatrace ã¯ããã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãã®æŠå¿µã«å®å
šã«é©åããŸã (
ã¹ããã 2: ãœãããŠã§ã¢å質ã€ãã³ããå®çŸ©ãã
次ã«ããµãŒãã¹ãšæ¥åéå¶ã®ãªã¹ãã決å®ããå¿ èŠããããŸãã ãµãŒãã¹ã«ãšã£ãŠããžãã¹äžéèŠãªãŠãŒã¶ãŒæäœãæ£ç¢ºã«èæ ®ããããšãéèŠã§ãã ããã§ã¯ãããžãã¹ ã¢ããªã¹ããã·ã¹ãã ã¢ããªã¹ãã«çžè«ããããšããå§ãããŸãã
次ã«ãåã¬ãã«ã®ã¬ãã¥ãŒã«ã©ã®ææšãå«ãããã決å®ããå¿ èŠããããŸãã ããšãã°ãå®è¡æé (å¹³åãäžå€®å€ãããŒã»ã³ã¿ã€ã«ãªã©ã«åå²)ããšã©ãŒ (è«çããµãŒãã¹ãã€ã³ãã©ã¹ãã©ã¯ãã£ãªã©)ãããã³ããŸããŸãªã€ã³ãã©ã¹ãã©ã¯ã㣠ã¡ããªã¯ã¹ (ã¡ã¢ãª ããŒããã¬ããŒãž ã³ã¬ã¯ã¿ãŒãã¹ã¬ããæ°ãªã©) ãããã«è©²åœããŸãã
DevOps ããŒã ã«ããèªååãšäœ¿ãããããç®çãšããŠããMonitoring as CodeããšããæŠå¿µãç»å ŽããŸããã ãããæå³ããã®ã¯ãéçºè /ãã¹ã¿ãŒã¯ãœãããŠã§ã¢å質ä¿èšŒã¡ããªã¯ã¹ãå®çŸ©ããåçŽãª JSON ãã¡ã€ã«ãäœæã§ãããšããããšã§ãã
ãã®ãã㪠JSON ãã¡ã€ã«ã®äŸãèŠãŠã¿ãŸãããã Dynatrace API ã®ãªããžã§ã¯ãã¯ããŒãšå€ã®ãã¢ãšããŠäœ¿çšãããŸã (API ã®èª¬æã¯ããã«ãããŸã)
{
"timeseries": [
{
"timeseriesId": "service.ResponseTime",
"aggregation": "avg",
"tags": "Frontend",
"severe": 250000,
"warning": 1000000
},
{
"timeseriesId": "service.ResponseTime ",
"aggregation": "avg",
"tags": "Backend",
"severe": 4000000,
"warning": 8000000
},
{
"timeseriesId": "docker.Container.Cpu",
"aggregation": "avg",
"severe": 50,
"warning": 70
}
]
}
ãã¡ã€ã«ã¯æç³»åå®çŸ©ã®é åã§ãã
- timeseriesId â ãã§ãã¯ãããã¡ããªã㯠(å¿çæéããšã©ãŒæ°ã䜿çšã¡ã¢ãªãªã©)ã
- aggregation - ã¡ããªã¯ã¹éèšã®ã¬ãã«ããã®å Žå㯠avg ã§ãããå¿ èŠãªå€ (avgãminãmaxãsumãcountãpercentile) ã䜿çšã§ããŸãã
- ã¿ã° â ç£èŠã·ã¹ãã å ã®ãªããžã§ã¯ã ã¿ã°ããŸãã¯ç¹å®ã®ãªããžã§ã¯ãèå¥åãæå®ã§ããŸãã
- é倧ããã³èŠå â ãããã®ææšã¯ã¡ããªã¯ã¹ã®ãããå€ãèŠå¶ããŸãããã¹ãå€ãé倧ãªãããå€ãè¶ ãããšããã«ãã¯æåããªãã£ããšããŒã¯ãããŸãã
次ã®å³ã¯ããã®ãããªãããå€ã®äœ¿çšäŸã瀺ããŠããŸãã
ã¹ããã 3: è² è·ã®çæ
ãµãŒãã¹ã®å質ã¬ãã«ã決å®ãããããã¹ãè² è·ãçæããå¿ èŠããããŸãã JmeterãSeleniumãNeotysãGatling ãªã©ã䜿ãæ £ãããã¹ã ããŒã«ã䜿çšã§ããŸãã
Dynatrace ã®ç£èŠã·ã¹ãã ã䜿çšãããšããã¹ãããããŸããŸãªã¡ã¿ããŒã¿ãååŸããã©ã®ãã¹ããã©ã®ãªãªãŒã¹ ãµã€ã¯ã«ããã³ã©ã®ãµãŒãã¹ã«å±ããããèªèã§ããŸãã HTTP ãã¹ããªã¯ãšã¹ãã«è¿œå ã®ããããŒãè¿œå ããããšããå§ãããŸãã
次ã®å³ã¯ãè¿œå ããã㌠X-Dynatrace-Test ã䜿çšããŠããã®ãã¹ããã«ãŒãã«ååãè¿œå ããæäœã®ãã¹ãã«é¢é£ããŠããããšã瀺ãäŸã瀺ããŠããŸãã
åè² è·ãã¹ããå®è¡ãããšãã¯ãCI/CD ãµãŒããŒããã€ãã³ã API ã䜿çšããŠè¿œå ã®ã³ã³ããã¹ãæ å ±ã Dynatrace ã«éä¿¡ããŸãã ãã®ããã«ããŠãã·ã¹ãã ã¯ç°ãªããã¹ããåºå¥ã§ããŸãã
ã¹ããã4-5ã ããã©ãŒãã³ã¹ ããŒã¿ãåéããCI/CD ã·ã¹ãã ã«ããŒã¿ã転éããŸãã
çæããããã¹ããšãšãã«ããµãŒãã¹å質ææšã®ãã§ãã¯ã«é¢ããããŒã¿ãåéããå¿ èŠæ§ã«é¢ããã€ãã³ããç£èŠã·ã¹ãã ã«éä¿¡ãããŸãã ãŸããäž»èŠãªã¡ããªã¯ã¹ãå®çŸ©ãã JSON ãã¡ã€ã«ãæå®ããŸãã
ç£èŠã·ã¹ãã ã«éä¿¡ããããã«CI/CDãµãŒããŒäžã§çæããããœãããŠã§ã¢ã®å質ããã§ãã¯ããå¿ èŠãããããšã«é¢ããã€ãã³ã
ãã®äŸã§ã¯ãå質ãã§ã㯠ã€ãã³ãã¯æ¬¡ã®ããã«åŒã°ããŸãã perfSigDynatraceã¬ããŒã (ããã©ãŒãã³ã¹_眲å) - ããã§æºåå®äºã§ã
ãã«ãå質ãã§ãã¯ã®éå§ã«é¢ããç£èŠã·ã¹ãã å
ã®ã€ãã³ãã
ãã¹ããå®äºãããšããœãããŠã§ã¢å質ãè©äŸ¡ããããã®ãã¹ãŠã®ææšãç¶ç¶ççµ±åã·ã¹ãã (Jenkins ãªã©) ã«è»¢éãããçµæã«é¢ããã¬ããŒããçæãããŸãã
CI/CD ãµãŒããŒäžã®ã¢ã»ã³ããªã«é¢ããçµ±èšã®çµæã
åã ã®ãã«ãã«ã€ããŠããã¹ãå šäœãéããŠèšå®ããåã¡ããªã¯ã¹ã®çµ±èšã衚瀺ãããŸãã ãŸããç¹å®ã®ãããå€ (èŠåããã³é倧ãªãããå€) ã«éåããã£ããã©ããã確èªããŸãã éèšã¡ããªã¯ã¹ã«åºã¥ããŠããã«ãå šäœãå®å®ãäžå®å®ããŸãã¯å€±æãšããŠããŒã¯ãããŸãã ãŸãã䟿å®äžãçŸåšã®ãã«ããšä»¥åã®ãã«ããæ¯èŒããã€ã³ãžã±ãŒã¿ãŒãã¬ããŒãã«è¿œå ã§ããŸãã
CI/CD ãµãŒããŒäžã®ã¢ã»ã³ããªã«é¢ãã詳现ãªçµ±èšã衚瀺ããŸãã
XNUMX ã€ã®ã¢ã»ã³ããªã®è©³çŽ°ãªæ¯èŒ
å¿ èŠã«å¿ããŠãDynatrace ã€ã³ã¿ãŒãã§ã€ã¹ã«ç§»åãããšãåãã«ãã®çµ±èšããã詳现ã«è¡šç€ºããçžäºã«æ¯èŒã§ããŸãã
Dynatrace ã§ã®ãã«ãçµ±èšã®æ¯èŒã
æèŠ
ãã®çµæãç¶ç¶ççµ±åãã€ãã©ã€ã³ã§èªååãããããµãŒãã¹ãšããŠã®ç£èŠããµãŒãã¹ãåŸãããŸãã éçºè ãŸãã¯ãã¹ã¿ãŒã¯ãJSON ãã¡ã€ã«ã§ã¡ããªã¯ã¹ã®ãªã¹ããå®çŸ©ããã ãã§æžã¿ããã®ä»ã®äœæ¥ã¯ãã¹ãŠèªåçã«è¡ãããŸãã ç§ãã¡ã¯ãªãªãŒã¹ã®éææ§ã®ããå質管çãã€ãŸãããã©ãŒãã³ã¹ããªãœãŒã¹æ¶è²»ããŸãã¯ã¢ãŒããã¯ãã£ã®ãªã°ã¬ãã·ã§ã³ã«é¢ãããã¹ãŠã®éç¥ãåãåããŸãã
ã¿ã¹ã¯ 2. å®çšŒåç°å¢ã§ã®ãœãããŠã§ã¢å質管çã®èªåå
ããã§ãPipeline ã®ãã¹ã段éã§ã®ç£èŠããã»ã¹ãã©ã®ããã«èªååããããšããåé¡ã解決ãããŸããã ãã®ããã«ããŠãå®çšŒåç°å¢ã«å°éããäœå質ã¢ã»ã³ããªã®å²åãæå°éã«æããŸãã
ããããæªããœãããŠã§ã¢ã販売ãããŠããŸã£ãããäœããå£ããŠããŸã£ããã©ãããã°ããã§ããããã ãŠãŒããã¢ã®å Žåãåé¡ãèªåçã«æ€åºããã¡ã«ããºã ãšãå¯èœã§ããã°å°ãªããšãå€éã«ã·ã¹ãã èªäœã®æ©èœãå埩ããã¡ã«ããºã ãå¿ èŠã§ããã
ãããè¡ãã«ã¯ãåã®ã»ã¯ã·ã§ã³ãšåæ§ã«ãéçšç°å¢ã§ã®èªåãœãããŠã§ã¢å質ãã§ãã¯ãæäŸããã·ã¹ãã ã®èªå·±ä¿®åŸ©ã®ã·ããªãªã«åºã¥ããŠè¡ãå¿ èŠããããŸãã
ã³ãŒããšããŠã®èªåä¿®æ£
ã»ãšãã©ã®äŒæ¥ã¯ãããŸããŸãªçš®é¡ã®äžè¬çãªåé¡ã«é¢ããèç©ãããç¥èããŒã¹ãšãããããä¿®æ£ããããã®ã¢ã¯ã·ã§ã³ã®ãªã¹ã (ããã»ã¹ã®åèµ·åããªãœãŒã¹ã®ã¯ãªãŒã³ã¢ãããããŒãžã§ã³ã®ããŒã«ããã¯ãç¡å¹ãªæ§æå€æŽã®åŸ©å ãã³ã³ããŒãã³ãã®æ°ã®å¢æžãªã©) ããã§ã«æã£ãŠããŸããã¯ã©ã¹ã¿ãŒãéãŸãã¯ç·ã®ã¢ãŠãã©ã€ã³ã®åãæ¿ããªã©ã
ãããã®ãŠãŒã¹ã±ãŒã¹ã¯ãç§ã話ãèããŠããå€ãã®ããŒã ã§äœå¹Žãåããç¥ãããŠããŸããããèªååã«ã€ããŠèããããèªååã«æè³ããããã人ã¯ã»ãšãã©ããŸããã§ããã
èããŠã¿ããšãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãèªå·±ä¿®åŸ©ããããã®ããã»ã¹ãå®è£ ããã®ã«ããã»ã©è€éãªããšã¯ãããŸããã管çè ã®æ¢ç¥ã®äœæ¥ã·ããªãªãã³ãŒã ã¹ã¯ãªããã®åœ¢åŒã§æ瀺ããå¿ èŠããããŸã (ãã³ãŒããšããŠèªåä¿®æ£ãã®æŠå¿µ)ã ãå ·äœçãªã±ãŒã¹ããšã«äºåã«æžãããã®ã§ãã èªå修埩ã¹ã¯ãªããã¯ãåé¡ã®æ ¹æ¬åå ãæé€ããããšãç®çãšããŠããå¿ èŠããããŸãã ã€ã³ã·ãã³ãã«å¯Ÿå¿ããããã®æ£ããè¡åã¯ããªãèªèº«ã決å®ããŸãã
ç£èŠã·ã¹ãã ããã®ã¡ããªã¯ã¹ã¯ãã¹ã¯ãªãããèµ·åããããªã¬ãŒãšããŠæ©èœããŸããéèŠãªã®ã¯ãçç£çãªç°å¢ã§ã¯èª€æ€ç¥ãçºçããããšãæãŸãªãããããããã®ã¡ããªã¯ã¹ããã¹ãŠãäžè¯ã§ããããšãæ£ç¢ºã«å€æããããšã§ãã
PrometheusãELK StackãZabbix ãªã©ãä»»æã®ã·ã¹ãã ãŸãã¯ã·ã¹ãã ã®ã»ããã䜿çšã§ããŸãã ãã ããAPM ãœãªã¥ãŒã·ã§ã³ã«åºã¥ããŠããã€ãã®äŸã瀺ããŸã (Dynatrace ãåã³äŸã«ãªããŸã)ãããã¯ãäœæ¥ã容æã«ããã®ã«ã圹ç«ã¡ãŸãã
ãŸããã¢ããªã±ãŒã·ã§ã³ã®æäœã«é¢ããŠã¯ãããã©ãŒãã³ã¹ã«é¢é£ãããã¹ãŠã®ããšãæããããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ãããªã¬ãŒãšããŠäœ¿çšã§ããããŸããŸãªã¬ãã«ã®æ°çŸã®ã¡ããªã¯ã¹ãæäŸããŸãã
- ãŠãŒã¶ãŒã¬ãã«ïŒãã©ãŠã¶ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãIoTããã€ã¹ããŠãŒã¶ãŒã®è¡åãã³ã³ããŒãžã§ã³ãªã©ïŒã
- ãµãŒãã¹ãšæäœã®ã¬ãã« (ããã©ãŒãã³ã¹ãå¯çšæ§ããšã©ãŒãªã©)ã
- ã¢ããªã±ãŒã·ã§ã³ ã€ã³ãã©ã¹ãã©ã¯ã㣠ã¬ãã« (ãã¹ã OS ã¡ããªã¯ã¹ãJMXãMQãWeb ãµãŒããŒãªã©)ã
- ãã©ãããã©ãŒã ã¬ãã« (ä»®æ³åãã¯ã©ãŠããã³ã³ãããªã©)ã
Dynatrace ã®ã¬ãã«ã®ç£èŠã
次ã«ãå ã»ã©ãè¿°ã¹ãããã«ãDynatrace ã«ã¯ãªãŒãã³ API ããããããŸããŸãªãµãŒãããŒã㣠ã·ã¹ãã ãšã®çµ±åãéåžžã«ç°¡åã§ãã ããšãã°ãå¶åŸ¡ãã©ã¡ãŒã¿ãè¶ ãããšãã«ãªãŒãã¡ãŒã·ã§ã³ ã·ã¹ãã ã«éç¥ãéä¿¡ããŸãã
以äžã¯ãAnsible ãšå¯Ÿè©±ããäŸã§ãã
以äžã«ãã©ã®ãããªèªååãå¯èœãªã®ããããã€ãã®äŸã瀺ããŸãã ããã¯ã±ãŒã¹ã®äžéšã«ãããŸãããç°å¢å ã®ãããã®ãªã¹ãã¯ãæ³ååãšç£èŠããŒã«ã®æ©èœã«ãã£ãŠã®ã¿å¶éã§ããŸãã
1. äžæ£ãªããã〠- ããŒãžã§ã³ã®ããŒã«ããã¯
ãã¹ãç°å¢ã§ãã¹ãŠãéåžžã«ããŸããã¹ããããšããŠããæ°ãããªãªãŒã¹ã«ãã£ãŠéçšç°å¢ã§ã¢ããªã±ãŒã·ã§ã³ã匷å¶çµäºãããå¯èœæ§ã¯äŸç¶ãšããŠãããŸãã åã人çèŠå ã¯ãã£ã³ã»ã«ãããŠããŸããã
次ã®å³ã§ã¯ããµãŒãã¹äžã®æäœã®å®è¡æéãæ¥æ¿ã«å¢å ããŠããããšãããããŸãã ãã®ãžã£ã³ãã®éå§ã¯ãã¢ããªã±ãŒã·ã§ã³ãžã®ãããã€ã¡ã³ãã®æéãšäžèŽããŸãã ããããã¹ãŠã®æ å ±ãã€ãã³ããšããŠèªååã·ã¹ãã ã«éä¿¡ããŸãã èšå®ããæéãçµéããŠããµãŒãã¹ã®ããã©ãŒãã³ã¹ãéåžžã«æ»ããªãå Žåã¯ãããŒãžã§ã³ãå€ãããŒãžã§ã³ã«ããŒã«ããã¯ããã¹ã¯ãªãããèªåçã«åŒã³åºãããŸãã
å°å
¥åŸã®éçšããã©ãŒãã³ã¹ã®äœäžã
2. ãªãœãŒã¹è² è· 100% - ã«ãŒãã£ã³ã°ã«ããŒããè¿œå ããŸã
次ã®äŸã§ã¯ãç£èŠã·ã¹ãã ã¯ãã³ã³ããŒãã³ãã® 100 ã€ã§ XNUMX% ã® CPU è² è·ãçºçããŠãããšå€æããŸãã
CPUè² è·100%
ãã®ã€ãã³ãã«ã¯ããã€ãã®ç°ãªãã·ããªãªãèããããŸãã ããšãã°ãç£èŠã·ã¹ãã ã¯ããªãœãŒã¹ã®äžè¶³ããµãŒãã¹ã®è² è·ã®å¢å ã«é¢é£ããŠãããã©ãããããã«ãã§ãã¯ããŸãã ååšããå Žåã¯ãã«ãŒãã£ã³ã°ã«ããŒããèªåçã«è¿œå ããã¹ã¯ãªãããå®è¡ãããããã«ãã£ãŠã·ã¹ãã å
šäœã®æ©èœã埩å
ãããŸãã
ã€ã³ã·ãã³ãåŸã®ã¹ã±ãŒãªã³ã°
3. ããŒããã©ã€ãã®ç©ºã容éäžè¶³ - ãã£ã¹ã¯ã®ã¯ãªãŒãã³ã°
ãã§ã«ãããã®ããã»ã¹ãèªååããŠãã人ãå€ããšæããŸãã APM ã䜿çšãããšããã£ã¹ã¯ ãµãã·ã¹ãã ã®ç©ºãé åãç£èŠããããšãã§ããŸãã ã¹ããŒã¹ããªãå ŽåããŸãã¯ãã£ã¹ã¯ã®åäœãé ãå Žåã¯ãã¹ã¯ãªãããåŒã³åºããŠãã£ã¹ã¯ãã¯ãªãŒã³ã¢ããããããã¹ããŒã¹ãè¿œå ããŸãã
ãã£ã¹ã¯è² è·100%
4. ãŠãŒã¶ãŒã¢ã¯ãã£ããã£ãäœãããŸãã¯ã³ã³ããŒãžã§ã³ãäœã - éãšç·ã®ãã©ã³ãéã®åãæ¿ã
å®çšŒåç°å¢ã§ã¢ããªã±ãŒã·ã§ã³ã« XNUMX ã€ã®ã«ãŒã (Blue-Green ãããã€) ã䜿çšããŠããã客æ§ãããèŠãããŸãã ããã«ãããæ°ãããªãªãŒã¹ãé ä¿¡ãããšãã«ãã©ã³ãéããã°ããåãæ¿ããããšãã§ããŸãã å€ãã®å Žåãå±éåŸã«ãããã«ã¯æ°ä»ããªããããªåçãªå€åãçºçããããšããããŸãã ãã®å Žåãããã©ãŒãã³ã¹ãšå¯çšæ§ã®äœäžã¯èŠ³å¯ãããªãå¯èœæ§ããããŸãã ãã®ãããªå€åã«è¿ éã«å¯Ÿå¿ããã«ã¯ããŠãŒã¶ãŒã®è¡åïŒã»ãã·ã§ã³æ°ãšãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãã³ã³ããŒãžã§ã³ãçŽåž°çïŒãåæ ããããŸããŸãªææšã䜿çšããæ¹ãããã§ãããã 次ã®å³ã¯ãå€æçãäœäžãããšãã«ãœãããŠã§ã¢ ãã©ã³ãã®åãæ¿ããçºçããäŸã瀺ããŠããŸãã
ãœãããŠã§ã¢ ãã©ã³ãéãåãæ¿ãããšãã³ã³ããŒãžã§ã³çãäœäžããŸãã
åé¡ãèªåæ€åºããã¡ã«ããºã
æåŸã«ãç§ã Dynatrace ãæã奜ããªçç±ããã XNUMX ã€æããŠãããŸãã
ãã¹ãç°å¢ã§ã®ã¢ã»ã³ããªã®å質ãã§ãã¯ã®èªååã«é¢ããç§ã®è©±ã®äžéšã§ã¯ããã¹ãŠã®ãããå€ãæåã§æ±ºå®ããŸããã ããã¯ãã¹ãç°å¢ã§ã¯æ£åžžã§ãããè² è·ã«å¿ããŠåãã¹ãã®åã«ãã¹ã¿ãŒèªèº«ãææšã決å®ããŸãã å®çšŒåç°å¢ã§ã¯ãããŸããŸãªããŒã¹ã©ã€ã³ã¡ã«ããºã ãèæ ®ããŠãåé¡ãèªåçã«æ€åºãããããšãæãŸããã§ãã
Dynatrace ã«ã¯èå³æ·±ãçµã¿èŸŒã¿ã®äººå·¥ç¥èœããŒã«ããããç°åžžãªã¡ããªã¯ã¹ (ããŒã¹ã©ã€ã³å) ãç¹å®ãããã¹ãŠã®ã³ã³ããŒãã³ãéã®çžäºäœçšã®ããããæ§ç¯ããã€ãã³ããçžäºã«æ¯èŒããã³çžé¢ãããããã®ã¡ã«ããºã ã«åºã¥ããŠããµãŒãã¹ã®åäœã®ç°åžžãå€æãã詳现ãªæ å ±ãæäŸããŸããããããã®åé¡ãšæ ¹æ¬åå ã«é¢ããæ å ±ã
Dynatrace ã¯ãã³ã³ããŒãã³ãéã®äŸåé¢ä¿ãèªåçã«åæããããšã§ãåé¡ã®ãããµãŒãã¹ãæ ¹æ¬åå ã§ãããã©ããã ãã§ãªããä»ã®ãµãŒãã¹ãžã®äŸåé¢ä¿ãå€æããŸãã 以äžã®äŸã§ã¯ãDynatrace ã¯ãã©ã³ã¶ã¯ã·ã§ã³å®è¡äžã®åãµãŒãã¹ã®å¥å šæ§ãèªåçã«ç£èŠããã³è©äŸ¡ããæ ¹æ¬åå ãšã㊠Golang ãµãŒãã¹ãç¹å®ããŸãã
é害ã®æ ¹æ¬åå ãç¹å®ããäŸã
次ã®å³ã¯ãã€ã³ã·ãã³ãã®éå§ããã¢ããªã±ãŒã·ã§ã³ã®åé¡ãç£èŠããããã»ã¹ã瀺ããŠããŸãã
ãã¹ãŠã®ã³ã³ããŒãã³ããšã³ã³ããŒãã³ãäžã®ã€ãã³ãã衚瀺ãããæ°ããªåé¡ã®èŠèŠå
ç£èŠã·ã¹ãã ã¯ãçºçããåé¡ã«é¢é£ããåºæ¥äºã®å®å šãªå¹Žè¡šãåéããŸããã ã¿ã€ã ã©ã€ã³ã®äžã®ãŠã£ã³ããŠã«ãåã³ã³ããŒãã³ãã®ãã¹ãŠã®äž»èŠãªã€ãã³ãã衚瀺ãããŸãã ãããã®ã€ãã³ãã«åºã¥ããŠãã³ãŒãã¹ã¯ãªããã®åœ¢åŒã§èªåä¿®æ£ã®æé ãèšå®ã§ããŸãã
ããã«ãç£èŠã·ã¹ãã ããµãŒãã¹ãã¹ã¯ãŸãã¯ãã°ãã©ãã«ãŒãšçµ±åããããšããå§ãããŸãã åé¡ãçºçãããšãéçºè ã¯ããã«å®å šãªæ å ±ãåãåããæ¬çªç°å¢ã®ã³ãŒã ã¬ãã«ã§åæã§ããŸãã
ãŸãšã
ãã®çµæãPipeline ã«èªåãœãããŠã§ã¢å質ãã§ãã¯ãçµã¿èŸŒãŸãã CI/CD ãã€ãã©ã€ã³ãå®æããŸããã ç§ãã¡ã¯ãäœå質ã®ã¢ã»ã³ããªã®æ°ãæå°éã«æããã·ã¹ãã å šäœã®ä¿¡é Œæ§ãé«ããããã§ãã·ã¹ãã ã«é害ãçºçããå Žåã¯ãããã埩å ããããã®ã¡ã«ããºã ãèµ·åããŸãã
ãœãããŠã§ã¢å質ç£èŠã®èªååã«åªåãæè³ãã䟡å€ã¯ééããªããããå¿
ãããè¿
éãªããã»ã¹ã§ã¯ãããŸããããæéã®çµéãšãšãã«ææãåŸãããŸãã å®çšŒåç°å¢ã§æ°ããã€ã³ã·ãã³ãã解決ããããæªããã«ããå®çšŒåç°å¢ã«å
¥ãã®ãé¿ããããã«ããã¹ãç°å¢ã§ã®ãã§ãã¯ã®ããã«ã©ã®ã¢ãã¿ãŒãè¿œå ããããããã«æ€èšãããããã®åé¡ãèªåçã«ä¿®æ£ããã¹ã¯ãªãããäœæããããšããå§ãããŸãã
ç§ã®äŸãããªãã®åãçµã¿ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã èªå·±ä¿®åŸ©ã·ã¹ãã ã®å®è£ ã«äœ¿çšãããã¡ããªã¯ã¹ã®äŸãèŠãŠã¿ãããšæããŸãã