åžžææ¥ç¶ã®ããžã¿ã«ãšã³ã·ã¹ãã ã§ã¯ãã¢ããã¿ã€ã ã¯å¿ é ã§ããã¢ããªã±ãŒã·ã§ã³ã¯ãåžžã«å©çšå¯èœãªç¶æ ãç¶æããªãããè£ã§é²åãç¶ããããšãæ±ããããŸãããªã³ã©ã€ã³ãã³ãã³ã°ãå»çèšé²ããããã¯éèŠãªç©æµã¯ãŒã¯ãããŒãªã©ãã·ã¹ãã ã®çš®é¡ãåããããŠãŒã¶ãŒã¯ç®ã«èŠããäžæã®ãªãã·ãŒã ã¬ã¹ãªã¢ããã°ã¬ãŒããæåŸ ããŠããŸãããã®ãããããŠã³ã¿ã€ã ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ã¯ãåãªããšã³ãžãã¢ãªã³ã°ã®ç®æšã§ã¯ãªããçŸå®çãªå¿ é äºé ãšãªã£ãŠããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã¯ãã³ãŒãã®åæ§ç¯ãæ©èœã®ã¢ãžã¥ãŒã«åãã¢ãŒããã¯ãã£ã®é²åã«ãã£ãŠãœãããŠã§ã¢ã®å質ãåäžãããŸãããããããããã®å€æŽã皌åäžã®ã·ã¹ãã ã«é©çšãããšãªã¹ã¯ãçããŸãã倿Žã¯ãæ éã«åŠçããªããšãé å»¶ãããŒã¿ã®ç ŽæãäºæããªãåäœãåŒãèµ·ããå¯èœæ§ããããŸããéèŠãªèª²é¡ã¯ãã·ã¹ãã ãç¶ç¶çã«çšŒåãããŠãŒã¶ãŒã«ç¢ºå®ã«ãµãŒãã¹ãæäŸããªãã倿Žãå®è£ ããããšã§ãã
ããŠã³ã¿ã€ã ãªãã§è¿ä»£åãå®çŸ
ãšã³ã¿ãŒãã©ã€ãº ã°ã¬ãŒãã®å¶åŸ¡ãšç²ŸåºŠã§ãæ¬çªç°å¢ã§ã¢ããªã±ãŒã·ã§ã³ããªãã¡ã¯ã¿ãªã³ã°ããŸãã
詳ããèŠã SMART TS XLãã®èª²é¡ã«å¯ŸåŠããã«ã¯ãå ç¢ãªå°å ¥ææ³ã段éçãªããªããªãŒææ³ãæ éãªããŒã¿åŠçããããŠå埩åã®ããããŒã«ããã¯èšç»ãèåãããå¿ èŠããããŸãããã©ãã£ãã¯ã·ããææ³ããããŒã¿ããŒã¹ç§»è¡æŠç¥ã«è³ããŸã§ãéçºè ã¯å€æŽã粟å¯ã«èª¿æŽããå¿ èŠããããŸããç®æšã¯ãããŠã³ã¿ã€ã ããµãŒãã¹äœäžããããã¯æ¥åäžæãåŒãèµ·ããããšãªãã皌åäžã®ã·ã¹ãã ãå€é©ããããšã§ãã
æ¬çš¿ã§ã¯ãããŠã³ã¿ã€ã ãªãã§æ¬çªç°å¢ã§ãªãã¡ã¯ã¿ãªã³ã°ãè¡ãããã®ããšã³ãããŒãšã³ãã®ããŒãããããã玹ä»ããŸããææ°ã®åæ£ã·ã¹ãã ãšã¬ã¬ã·ãŒã€ã³ãã©ã¹ãã©ã¯ãã£ã®äž¡æ¹ã«ãããŠãç¶ç¶çãªå€æŽãå®å šãã€å埩çã«å®çŸããããã®ææ³ãšãã¿ãŒã³ã解説ããŸãã
ãŒãããŠã³ã¿ã€ã ãªãã¡ã¯ã¿ãªã³ã°ã®åºç€
ãŒãããŠã³ã¿ã€ã ã»ãªãã¡ã¯ã¿ãªã³ã°ãšã¯ãæ¬çªã·ã¹ãã ããªã³ã©ã€ã³ç¶æ ã«ä¿ã¡ãäžæãªãé²åãããææ³ã§ããã·ãŒã ã¬ã¹ãªãããã€ãå®å šãªããŒã«ããã¯ããããŠã©ã€ãæ€èšŒãå¯èœã«ããèšç»ãããŒã«ããããŠã¢ãŒããã¯ãã£äžã®æ±ºå®ãæ±ããããŸãããã®ææ³ã®äžæ žãšãªãã®ã¯ãã³ã³ããŒãã³ããæ®µéçã«ãã¹ãããç§»è¡ããŠããèœåã§ãããå€ãã®å Žåãå®çšŒåãã©ãã£ãã¯ãšäžŠè¡ããŠé²ããŠããå¿ èŠããããŸãã
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ããã¿ãŒã³
ãã«ãŒã°ãªãŒã³ã»ãããã€ã¡ã³ãã¯ãã·ãŒã ã¬ã¹ãªã¢ããªã±ãŒã·ã§ã³ã¢ããããŒããå®çŸããããã®æŠç¥çãªææ³ã§ãããã®ææ³ã§ã¯ãåäžã®æ¬çªç°å¢ã2ã€çšæããŸãã1ã€ã¯ãŠãŒã¶ãŒãã©ãã£ãã¯ãã¢ã¯ãã£ãã«åŠçãããã1ã€ã¯æ°ããã³ãŒããèšå®å€æŽã®ã¹ããŒãžã³ã°ã«äœ¿çšããŸããã¹ã¿ã³ãã€ç°å¢ã®æ°ããŒãžã§ã³ãå®å šã«ãã¹ãã»æ€èšŒããããšãæ¬çªç°å¢ãã©ãã£ãã¯ã¯ã¹ã¿ã³ãã€ç°å¢ã«ã¯ã³ã¹ãããã§ãªãã€ã¬ã¯ããããŸãã
ãã®èšå®ã«ãããããŠã³ã¿ã€ã ã¯ã»ãŒãŒãã«ãŸã§ççž®ãããŸããæ¢åã®æ¬çªç°å¢ã¯ãã¢ããããŒãã®ãããã€ãã¹ã¢ãŒã¯ãã¹ãããããŠéé¢ãããç£èŠã®éãåŒãç¶ãæ©èœããŸããåãæ¿ãåŸã«ãšã©ãŒãçºçããå Žåã§ããå ã®ç°å¢ã¯ãã®ãŸãŸç¶æãããããã以åã®ããŒãžã§ã³ãžã®åŸ©å ã¯ç°¡åã§ãã
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®æåã¯ãèªååãã€ã³ãã©ã¹ãã©ã¯ãã£ã®è€è£œããããŠå¹æçãªãã©ãã£ãã¯ç®¡çã«ããã£ãŠããŸããã³ã³ãããªãŒã±ã¹ãã¬ãŒã¿ãŒãããŒããã©ã³ãµãŒãInfrastructure as Codeãã©ãããã©ãŒã ãšãã£ãææ°ããŒã«ã¯ãç°å¢éã®ããããžã§ãã³ã°ãšåãæ¿ãã確å®ã«è¡ãäžã§éèŠãªåœ¹å²ãæãããŸãããã®ææ³ã¯ããªãªãŒã¹å質ãžã®é«ãä¿¡é Œæ§ãæäŸããå€§èŠæš¡ãªå€æŽæã®ã»ãŒããã£ããããšããŠæ©èœããŸãã
2ã€ã®åäžã®æ¬çªç°å¢ãç¶æãã
2ã€ã®æ¬çªç°å¢éã®æŽåæ§ãç¶æããããšã¯ãæè¡çã«ãéçšçã«ã課é¡ãšãªããŸããåç°å¢ã¯ãæ§æãäŸåé¢ä¿ããããã¯ãŒã¯ãããŒã¿ã¢ã¯ã»ã¹ãã»ãã¥ãªãã£ããªã·ãŒã«ãããŠãäºãã«å®å šã«äžèŽããŠããå¿ èŠããããŸããããããªäžäžèŽã§ãåäœã«äžè²«æ§ããªããªãããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®ç®çãæãªãããå¯èœæ§ããããŸãã
ãã®äžè²«æ§ãç¶æããã«ã¯ãèªååãäžå¯æ¬ ã§ããTerraformãAWS CloudFormationãªã©ã®Infrastructure as CodeããŒã«ã¯ã宣èšçãªå®çŸ©ããåäžã®ç°å¢ãããããžã§ãã³ã°ã§ããŸããAnsibleãPuppetãªã©ã®æ§æç®¡çã·ã¹ãã ã¯ããœãããŠã§ã¢èšå®ãšã©ã³ã¿ã€ã ãã©ã¡ãŒã¿ããããã€ã¡ã³ãéã§åæãããç¶æ ãç¶æã§ããããã«ããŸãã
ç£èŠãšå¯èŠ³æž¬æ§ãéèŠãªåœ¹å²ãæãããŸããããã©ãŒãã³ã¹ãæ€èšŒããç°åžžãæ€åºããããã«ãäž¡ç°å¢ã«åäžã®ãã¬ã¡ããªææšããã°ããã¬ãŒã¹æ©èœãåããå¿ èŠããããŸããæ¬çªç°å¢ãžã®å€æŽå°å ¥åã«ãäž¡ããŒãžã§ã³ã§ãã«ã¹ãã§ãã¯ãäžè²«ããŠå®è¡ããæºåç¶æ³ã確èªããå¿ èŠããããŸãã
ã€ã³ãã©ã¹ãã©ã¯ãã£ãšæ§æãããŒãžã§ã³ç®¡çãããã¢ãŒãã£ãã¡ã¯ããšããŠæ±ãããšã§ãããŒã ã¯ããªãããåé¿ããæ°ããç°å¢ãæ¬çªç°å¢ãå¿ å®ã«åæ ããŠããããšãä¿èšŒã§ããŸãããã®èŠåŸã«ãããå¶åŸ¡ãããã«ãããªãŒããŒãå¯èœã«ãªãããããããããã€ã¡ã³ããµã€ã¯ã«ã«ä¿¡é Œæ§ãããããããŸãã
峿ããŒã«ããã¯ã®ããã®ãã©ãã£ãã¯ã¹ã€ããã³ã°æŠç¥
ãã«ãŒã°ãªãŒã³ãé¡äŒŒã®ãããã€ã¡ã³ãã¢ãã«ã®äž»ãªã¡ãªããã®äžã€ã¯ãé害çºçæã«ãã©ãã£ãã¯ãå³åº§ã«ãªãã€ã¬ã¯ãã§ããããšã§ãããã®ããã«ã¯ãæå°éã®ã¬ã€ãã³ã·ã§æåä»å ¥ãªãã«ãã©ã€ããŠãŒã¶ãŒãªã¯ãšã¹ããç°ãªãç°å¢ã«ã«ãŒãã£ã³ã°ã§ããå ç¢ãªãã©ãã£ãã¯ã¹ã€ããã³ã°ã¡ã«ããºã ãå¿ èŠã§ãã
ææ°ã®å®è£ ã§ã¯ããœãããŠã§ã¢å®çŸ©ã®ããŒããã©ã³ãµãçãTTLïŒTime-to-LiveïŒèšå®ã«ããDNSã«ãŒãã£ã³ã°ããããã¯IstioãLinkerdãšãã£ããµãŒãã¹ã¡ãã·ã¥ãäžè¬çã«å©çšãããŠããŸãããããã®ã·ã¹ãã ã«ãããããŒã ã¯ã¢ããªã±ãŒã·ã§ã³å±€ãŸãã¯ãããã¯ãŒã¯ã¬ãã«ã§ãã©ãã£ãã¯ãè¿ éãã€å®å šã«åã«ãŒãã£ã³ã°ã§ããŸãã
ããŒã«ããã¯æŠç¥ã¯ãã¢ããªã±ãŒã·ã§ã³ãšããŒã¿ããŒã¹ã®äž¡æ¹ã®ç¶æ ãããŒãžã§ã³éã§äºææ§ãããå Žåã«ã®ã¿æå¹ã§ãããããã£ãŠãããŒã«ããã¯äžã®ããŒã¿ç Žæãåé¿ããããã«ãåŸæ¹äºææ§ãç¶æããå¿ èŠããããŸããããã«ãããŒã«ããã¯èšç»ã¯ã¹ããŒãžã³ã°ç°å¢ãŸãã¯ãã¹ãç°å¢ã§å®æçã«ãªããŒãµã«ãè¡ããè² è·ã®é«ãç¶æ³äžã§ãæé ã確å®ã«æ©èœããããšã確èªããå¿ èŠããããŸãã
èªåããŒã«ããã¯ã¡ã«ããºã ã¯ããªã¹ã¯ã軜æžããã ãã§ãªãããããã€ã®é床ãåäžãããŸããå ã«æ»ãäœæ¥ãè€éãªãªã«ããªã§ã¯ãªããèšå®ã®åé¡ã§ãããšåããã°ãããŒã ã¯å€æŽãããç©æ¥µçã«ããã·ã¥ããããã«ãªããŸãã
ç§»è¡äžã®ããŒã¿ããŒã¹åæ
ããŒã¿ããŒã¹ã¯æ¬è³ªçã«ã¹ããŒããã«ã§ãããã¢ããªã±ãŒã·ã§ã³ã®æ£ç¢ºæ§ã«ãšã£ãŠäžå¿çãªåœ¹å²ãæããããããŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ãããŠæãæ±ããè€éãªã³ã³ããŒãã³ãã®äžã€ãšãªã£ãŠããŸããã¹ããŒãã®å€æŽã䌎ãå Žåãã¢ããªã±ãŒã·ã§ã³ã®æ§ããŒãžã§ã³ãšæ°ããŒãžã§ã³éã®åæã極ããŠéèŠã«ãªããŸãã
æãåºãæ¡çšãããŠãããã¿ãŒã³ã¯ãæ¡åŒµã»çž®å°æŠç¥ã§ããããã¯ãæ°ããã¹ããŒãèŠçŽ ãæ®µéçã«å°å ¥ãïŒæ¡åŒµïŒãæ°æ§äž¡æ¹ã®ã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ãåæã«æ©èœã§ããããã«ãããšãããã®ã§ããæ°ããŒãžã§ã³ãå®å šã«æ¡çšããæ€èšŒãããããéæšå¥šã®ã¹ããŒãã³ã³ããŒãã³ããåé€ããŸãïŒçž®å°ïŒããã®2段éã®ã¢ãããŒãã«ãããåŸæ¹äºææ§ãæãªãå¯èœæ§ã®ããç Žå£çãªã¹ããŒã倿Žãåé¿ã§ããŸãã
åæããŒã¿ããŒã¹ã¬ããªã±ãŒã·ã§ã³ã倿ŽããŒã¿ãã£ããã£ïŒCDCïŒããŒã«ããç°å¢éã®äžè²«æ§ç¶æã«åœ¹ç«ã¡ãŸãããããã®ããŒã«ã¯ãããŒã¿ã®å€æŽããªã¢ã«ã¿ã€ã ã§ãã£ããã£ããããŒã¿ããŒã¹éãŸãã¯ããŒãžã§ã³éã§äŒæããããšã§ãæ€èšŒãšããŒã«ããã¯ãå¯èœã«ããŸãã
ããã«ãLiquibaseãFlywayãªã©ã®ã¹ããŒãç§»è¡ããŒã«ã¯ãããŒãžã§ã³ç®¡çãããç§»è¡ãããŒã«ããã¯ã¹ã¯ãªããããããã€ã¡ã³ãããã¯ããµããŒãããŠããŸããããããèªåãããã€ã¡ã³ããã€ãã©ã€ã³ãšçµã¿åãããããšã§ãããŒã¿ããŒã¹ã®å€æŽãšã¢ããªã±ãŒã·ã§ã³ã®ã¢ããããŒããå®å šã«ããŒã«ã¢ãŠãã§ããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ãå®çŸããæ©èœãã°ã«
ãã£ãŒãã£ãŒãã°ã«ã¯ãæ¬çªç°å¢ã§å®å šãã€æ®µéçãªãªãã¡ã¯ã¿ãªã³ã°ãå®çŸããããã®ãæãæè»ã§å¹æçãªããŒã«ã®äžã€ã§ããã³ãŒãã®ãããã€ã¡ã³ããšæ©èœã®å ¬éãåé¢ããããšã§ãæ°æ©èœããã¹ãŠã®ãŠãŒã¶ãŒã«æå¹åããããšãªãã³ãŒãå ã«ååšãããããšãã§ããŸãããã®åé¢ã«ãããããŒã ã¯ãªã¹ã¯ãæå°éã«æããå¿ èŠã«å¿ããŠè¿ éãªããŒã«ããã¯ããµããŒãããªãããæ§é çãªå€æŽã段éçã«å®è¡ã§ããŸãã
ãã°ã«ã¯ãæ¢åã®ã¯ãŒã¯ãããŒãäžæããããšãªããæ°æ§ã®ããžãã¯ãã¹ãåãæ¿ããããæ°ããæ§æãå°å ¥ãããããµãŒãã¹ãç§»è¡ãããããããã«ãã䜿çšãããŸãããã®æè»æ§ã¯ãA/Bãã¹ãã瀟å ãã¬ãã¥ãŒãæ©æãŠãŒã¶ãŒãã£ãŒãããã¯ã«ãŒãã«ã圹ç«ã¡ãŸãã
ãã°ã«ã广çã«æ©èœãããã«ã¯ãé©åã«æ§é åããã管çã容æã§ããå¿ èŠããããŸããããŒã ã¯ãã°ã«ã®æææš©ã远跡ãããã°ã«ã®ç®çãææžåããããžãã¯ã®å€ããé²ãããã®æå¹æéæŠç¥ãå®è£ ããå¿ èŠããããŸããLaunchDarklyãUnleashããŸãã¯ç€Ÿå æ©èœãã©ã°ã·ã¹ãã ãªã©ã®ãã°ã«ç®¡çãã©ãããã©ãŒã ã¯ãéäžç®¡çãç£æ»ããããŠåãããã€ãªãã§ã®ãªã¢ã«ã¿ã€ã ã®ãã°ã«å€æŽãå¯èœã«ããŸãã
æ©èœãã°ã«ã䜿çšãããšãéçºè ã¯å€æŽãå³åº§ã«å¢æžã§ãããããèªä¿¡ãæã£ãŠéçšç°å¢ã§å®éšããªãã¡ã¯ã¿ãªã³ã°ãè¡ãããšãã§ããŸãã
æ°ããã³ãŒããšå€ãã³ãŒããžã®ãªã¯ãšã¹ãã®åçã«ãŒãã£ã³ã°
ãã£ãŒãã£ãŒãã°ã«ã«ãã£ãŠæå¹åãããåçã«ãŒãã£ã³ã°ã«ãããã·ã¹ãã ã¯æ°æ§äž¡æ¹ã®ã³ãŒããã¹ã䞊è¡ããŠå®è¡ããæ¡ä»¶ã«å¿ããŠãŠãŒã¶ãŒãã©ãã£ãã¯ãèªå°ã§ããŸããããã¯ãå€§èŠæš¡ãªããžãã¯å€æŽããµãŒãã¹ã¢ãŒããã¯ãã£ã®åæ§ç¯ãè¡ããªãã¡ã¯ã¿ãªã³ã°æã«ç¹ã«åœ¹ç«ã¡ãŸãããã¹ãŠã®ãŠãŒã¶ãŒã«äºææ§ãç Žã倿Žããããã€ãã代ããã«ããŠãŒã¶ãŒããŒã«ãã»ãã·ã§ã³IDãããŒã«ã¢ãŠãçããŸãã¯å°åã«åºã¥ããã°ã«æ¡ä»¶ã«ãã£ãŠããªã¯ãšã¹ããåŠçããããŒãžã§ã³ã決å®ã§ããŸãã
ãã®ã¢ãããŒãã«ããããŠãŒã¶ãŒãžã®åœ±é¿ãæå°éã«æããå®ç°å¢äžã§ã®ç®¡çããããã¹ããå¯èœã«ãªããŸããéçºè ã¯ããŠãŒã¶ãŒããŒã¹å šäœã«åœ±é¿ãäžããããšãªããæ°ããã³ãŒãã®ããã©ãŒãã³ã¹ããšã©ãŒçããŠãŒã¶ãŒè¡åãç£èŠã§ããŸããç°åžžãæ€åºãããå Žåã¯ãã«ãŒãã£ã³ã°ãå³åº§ã«èª¿æŽãããã©ãã£ãã¯ãå®å®ãããã¹ã«ãªãã€ã¬ã¯ãã§ããŸãã
ãããå®è£ ããã«ã¯ãç¶¿å¯ãªæœè±¡åã¬ã€ã€ãŒãå¿ èŠã§ãããã°ã«ç¶æ ã«åºã¥ããŠãã©ãã£ãã¯ãååããã³ã«ãŒãã£ã³ã°ããããã«ããµãŒãã¹ã«ãŒã¿ãŒãããã«ãŠã§ã¢ã³ã³ããŒãã³ãããŸãã¯APIã²ãŒããŠã§ã€ãå¿ èŠã«ãªãå ŽåããããŸãããªã°ã¬ãã·ã§ã³ãæ©æã«æ€åºããããã«ãäž¡æ¹ã®ããŒãžã§ã³ã«ããã£ãŠã¡ããªã¯ã¹ãåéããå¿ èŠããããŸãããã®èšå®ã«ãããè€éãªç§»è¡ã段éçã«ããã€å¯èŠæ§ãä¿ã¡ãªããé²ããããšãã§ããéçšãªã¹ã¯ãå€§å¹ ã«äœæžã§ããŸãã
段éçãªæ©èœæ€èšŒã®ããã®ã«ããªã¢ãªãªãŒã¹
ã«ããªã¢ãªãªãŒã¹ã¯ããã£ãŒãã£ãŒãã°ã«ã掻çšããæ°æ©èœãå°æ°ã®ãŠãŒã¶ãŒã«æ®µéçã«å ¬éãã匷åãªãªãªãŒã¹ãã¿ãŒã³ã§ãããªãã¡ã¯ã¿ãªã³ã°ãããã³ã³ããŒãã³ããå šãŠãŒã¶ãŒã«äžåºŠã«ãªãªãŒã¹ããã®ã§ã¯ãªããã«ããªã¢ã¢ãããŒãã§ã¯ããŸãéå®ãããã»ã°ã¡ã³ãã«å€æŽããããã€ããŸããããã«ãããããŒã ã¯ããåºç¯ãªããŒã«ã¢ãŠãã«é²ãåã«ãå®éã®åäœãšã·ã¹ãã ãžã®åœ±é¿ã芳å¯ã§ããŸãã
ãã®ææ³ã¯ã課éã·ã¹ãã ãæ¿èªã¯ãŒã¯ãããŒãããŒã¿åæã³ã³ããŒãã³ããªã©ãããžãã¹ã¯ãªãã£ã«ã«ãªããžãã¯ã«ãªãã¡ã¯ã¿ãªã³ã°ã圱é¿ããå Žåã«ç¹ã«å¹æçã§ãããšã©ãŒçãã¬ã€ãã³ã·ãã³ã³ããŒãžã§ã³çãªã©ã®ã«ããªã¢ãã¹ãçµæãåæããããšã§ãããŒã ã¯å®éã®è² è·äžã«ãããå®å®æ§ãããã©ãŒãã³ã¹ãæ©èœã®æ£ç¢ºæ§ãè©äŸ¡ã§ããŸãã
ã«ããªã¢ãã°ã«ã¯ããŒã«ããã¯ããµããŒãããå¿ èŠããããŸããããã«ãããæ°ããã³ãŒãã«é害ã®å åãèŠãããå Žåãå³åº§ã«å ¬éç¶æ ãå ã«æ»ãããšãã§ããŸããããã§ã¯ãç°åžžãããã¢ã¯ãã£ãã«æ€åºã§ããå¯èŠ³æž¬æ§ããŒã«ãšå¥å šæ§ææšãäžå¯æ¬ ã§ããã¢ã©ãŒãæ©èœãšèªåãããã€ã²ãŒããšçµã¿åãããããšã§ãã«ããªã¢ãªãªãŒã¹ã¯ãªãã¡ã¯ã¿ãªã³ã°äœæ¥äžã«å ç¢ãªãã£ãŒãããã¯ã«ãŒããæäŸããŸãã
ç·æ¥ããŒã«ããã¯çšã®ãã«ã¹ã€ãã
ãã«ã¹ã€ããã¯ããã£ãŒãã£ãŒãã°ã«ã·ã¹ãã ã«çµã¿èŸŒãŸããé²åŸ¡ã¡ã«ããºã ã§ãããã€ã³ã·ãã³ãçºçæã«å³åº§ã«æ©èœãç¡å¹åããŸãããªãã¡ã¯ã¿ãªã³ã°ãããã³ãŒããæ¬çªç°å¢ã§äºæãã¬åäœãããå Žåããã«ã¹ã€ããã䜿çšããããšã§ãããŒã ã¯åãããã€ãããããã£ãã¯ã¹ãåŸ ã€ããšãªãããã®ã³ãŒããã¹ããã€ãã¹ã§ããŸãããã®æ©èœã¯ãäžç§ãããšãäžæãèš±ãããªããŒãããŠã³ã¿ã€ã ç°å¢ã§ã¯éåžžã«è²Žéã§ãã
é©åã«å®è£ ããããã«ã¹ã€ããã¯ã軜éã§é«éããã€å€éšããèšå®å¯èœã§ããå¿ èŠããããŸããèšå®å€æŽããã°ã«ç®¡çUIããŸãã¯APIåŒã³åºãã«ãã峿ç¡å¹åããµããŒãããå¿ èŠããããŸããçæ³çã«ã¯ããã«ã¹ã€ããã¯ç£èŠãã©ãããã©ãŒã ãã€ã³ã·ãã³ã察å¿ãã©ãããã©ãŒã ãšçµ±åããããã«ã¹ã¬ãã«ã®äœäžããšã©ãŒã®æ¥å¢ããŸãã¯ç°åžžæ€åºã«åºã¥ããŠèªåçã«ããªã¬ãŒãããããã«ãªããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã«ãããŠããã«ã¹ã€ããã¯ä¿¡é Œæ§ãé«ããŸãããšã³ãžãã¢ã¯ãåé¡ã®ãããã¹ãå³åº§ã«åé¢ã§ããããšã確信ããŠãå€§èŠæš¡ãªæ§é 倿ŽããªãªãŒã¹ã§ããŸããããã«ããããªã¹ã¯ãæå°éã«æãããŠãŒã¶ãŒãä¿è·ããæ ¹æ¬åå åæã®ããã®è²Žéãªæéã皌ãããšãã§ããŸãããã°ã«å¶åŸ¡ã«ããéèŠãªå€æŽã«ã¯ãã¹ãŠãã«ã¹ã€ãããå«ããããšã¯ãå埩åã®ãããœãããŠã§ã¢èšèšã«ããããã¹ããã©ã¯ãã£ã¹ã§ãã
ããã¯ãªãã®ããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°
ããŒã¿ããŒã¹ã®å€æŽã¯ããŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ãããŠæãå°é£ãªéšåãšãªãããšããããããŸããã¹ããŒãã¬ã¹ãªãµãŒãã¹ãã¢ãžã¥ãŒã«åã®ã¢ããªã±ãŒã·ã§ã³ã³ã³ããŒãã³ããšã¯ç°ãªããããŒã¿ããŒã¹ã¯éèŠãªç¶æ ã管çããå€ãã®å Žåãå ±éã®çå®ã®æ ç¹ãšããŠæ©èœããŸãã皌åäžã®ç°å¢ã§ã¹ããŒã倿ŽãããŒã¿å€æãå°å ¥ããã«ã¯ãæ éãªã·ãŒã±ã³ã¹åŠçã匷åãªäºææ§å¯ŸçããããŠããŒãã«ããã¯ãæžã蟌ã¿ç«¶åãäžæŽåãªèªã¿åããåé¿ããæŠç¥ãå¿ èŠã§ãã
å®å šãªããŒã¿ããŒã¹ãªãã¡ã¯ã¿ãªã³ã°ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å€ãããŒãžã§ã³ãšæ°ããããŒãžã§ã³ã®äž¡æ¹ãåæã«ããŒã¿ããŒã¹ãšããåãã§ããããšãä¿èšŒããå¿ èŠããããŸããããã¯ã段éçã«ãããã€ããå Žåãããã«ãŒã°ãªãŒã³ãããã€ããã£ãŒãã£ãŒãã°ã«ãªã©ã®ææ³ã䜿çšããå Žåã«ç¹ã«éèŠã§ãããããå®çŸããã«ã¯ãã¹ããŒãç§»è¡ããŒã«ãéåæå€æããããŠåŸæ¹äºææ§ã®ããããŒã¿ã¢ã¯ã»ã¹ãã¿ãŒã³ãäžå¯æ¬ ã§ãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãéçºè ãã·ã¹ãã ããªãã©ã€ã³ã«ããããšãªãããŒã¿ããŒã¹ãæŽæ°ããã³åæ§ç¯ã§ããããã«ããææ³ã«ã€ããŠèª¬æããŸããããã«ã¯ãæ¡åŒµã³ã³ãã©ã¯ããã¿ãŒã³ãã·ã£ããŠããŒãã«ã®äœ¿çšãéåæããã¯ãã£ã«ãç§»è¡äžã«å€ãããŒã¿æ§é ãšæ°ããããŒã¿æ§é ã®åæãç¶æããæ¹æ³ãªã©ãå«ãŸããŸãã
å®å šãªã¹ããŒã倿Žã®ããã®æ¡åŒµã³ã³ãã©ã¯ããã¿ãŒã³
æ¡åŒµã³ã³ãã©ã¯ããã¿ãŒã³ã¯ã皌åäžã®ã·ã¹ãã ãäžæããããšãªãã¹ããŒãç§»è¡ãå®è¡ãããä¿¡é Œæ§ãé«ãå®å šãªæ¹æ³ã§ãããã®ã¢ãããŒãã¯ãæ°ããã¹ããŒãèŠçŽ ã®å°å ¥ãšå€ãã¹ããŒãèŠçŽ ã®åé€ãåé¢ããããšãåºæ¬ãšããŠããŸãããŸããæ¡åŒµãã§ãŒãºã§ã¯ãæ°ãããã£ãŒã«ããã€ã³ããã¯ã¹ããŸãã¯ããŒãã«ã远å ãããŸãããã®ãã§ãŒãºã§ã¯ãæ¢åã®æ§é ãšæ°ããæ§é ãå ±åããã¢ããªã±ãŒã·ã§ã³ã¯äž¡æ¹ã«æžã蟌ãããã«æŽæ°ãããŸãã
ãã®åŸãã·ã¹ãã ã¯ç§»è¡æéã«å ¥ããäž¡æ¹ã®ã¹ããŒãããŒãžã§ã³ããµããŒããããŸããæ°ããã³ãŒãã¯ãåŸæ¥ã®æ§é ãšã®äºææ§ãç¶æããªãããæ°ããã¹ããŒãã³ã³ããŒãã³ãããã®èªã¿åããéå§ããŸããããã«ãããã·ã¹ãã ã®å®å®æ§ã«åœ±é¿ãäžããããšãªããå®éã®ãã©ãã£ãã¯ã§ã®æ€èšŒãå¯èœã«ãªããŸãã
æåŸã«ãå¥çŽãã§ãŒãºã§ã¯ãæ°ããããžãã¯ãå®å šã«æ¡çšãããã¹ããããåŸã廿¢ãããèŠçŽ ãåé€ãããŸãããã®æ®µéçãªã¢ãããŒãã«ãããäŸåé¢ä¿ã®ç Žå£ãããŒã¿æå€±ã®ãªã¹ã¯ãæå°éã«æããããšãã§ããŸãã倿Žãåæ¹äºææ§ã®ããæ¹æ³ã§èšèšããç Žå£çãªæäœãé ãããããšã§ãããŒã ã¯ç¶ç¶æ§ãç¶æããããŒãã«ã®ããã¯ããã©ãã£ãã¯ã®ãããã¯ãåé¿ã§ããŸãã
䞊åããŒã¿æ€èšŒã®ããã®ã·ã£ããŠããŒãã«
ã·ã£ããŠããŒãã«ã¯ãã¿ãŒã²ããããŒãã«ã®æ§é ããã©ãŒãªã³ã°ããè£å©çãªããŒã¿ããŒã¹ããŒãã«ã§ããããã«ãããæ¢åã®ã·ã¹ãã ãäžæããããšãªããæ°ããããŒã¿ã¢ãã«ãã¹ããŒãã¬ã€ã¢ãŠããæ¬çªç°å¢ã§ãã¹ãã§ããŸãããªãã¡ã¯ã¿ãªã³ã°äžã¯ãããŒã¿ã¯ã¡ã€ã³ããŒãã«ãšã·ã£ããŠããŒãã«ã®äž¡æ¹ã«æžã蟌ãŸããŸãããã¢ããªã±ãŒã·ã§ã³ã¯åŒãç¶ãã¡ã€ã³ããŒãã«ãããŠãŒã¶ãŒã«ãµãŒãã¹ãæäŸããŸãããã®äºéæžãèŸŒã¿æŠç¥ã«ãããããŒã ã¯æ°ããæ§é ãå®éã®ããŒã¿ã§ã©ã®ããã«åäœãããããªã¢ã«ã¿ã€ã ã§èгå¯ã§ããŸãã
ã·ã£ããŒããŒãã«ã¯ãæ°ããã€ã³ããã¯ã¹ãæ£èŠåæŠç¥ãããŒã¿ããŒãã£ã·ã§ãã³ã°ææ³ã®ãã¹ãã«äœ¿çšã§ããŸããæ¬çªç°å¢ã®ãã©ãã£ãã¯ãçŽæ¥åŠçããªããããå®çšŒåç°å¢ã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããããšãªããåæããã³ãããŒã¯ãããã«ã¯ããã¯ãã£ã«ãè¡ãããšãã§ããŸãããã®ãããè€éãªå€æŽã®æ€èšŒããããŒã¿ã¢ãã«å šäœã®ç§»è¡æºåã«æé©ã§ãã
ã·ã£ããŠããŒãã«ãææ°ã®ç¶æ ã«ä¿ã€ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯æ¿å ¥ãŸãã¯æŽæ°æäœã®ãã³ã«ãå ã®æ§é ãšã·ã£ããŠæ§é ã®äž¡æ¹ã«æžã蟌ãå¿ èŠããããŸããããªã¬ãŒãã€ãã³ãããŒã¹ã®ããŒã¿ãã€ãã©ã€ã³ãæåã®äºéæžã蟌ã¿ããžãã¯ãªã©ã®ããŒã«ã䜿çšããããšã§ããããå®çŸã§ããŸããæ€èšŒãå®äºããããã¢ããªã±ãŒã·ã§ã³ãã·ã£ããŠããŒãã«ããã®èªã¿åãã«ç§»è¡ããç§»è¡ãå®äºã§ããŸãã
éåæçã«ããŒã¿ãããã¯ãã£ã«ãã
éåæããã¯ãã£ã«ãšã¯ããã©ã€ããªã¢ããªã±ãŒã·ã§ã³ã®ã¯ãŒã¯ããŒãã«åœ±é¿ãäžããããšãªããæ°ããããŒã¿ããŒã¹ãã£ãŒã«ããŸãã¯ããŒãã«ã«å±¥æŽããŒã¿ãå ¥åããããã»ã¹ã§ãããã®ææ³ã¯ãæ¡åŒµã»çž®å°ã¢ãã«ãæ¡çšããå Žåãã·ã£ããŠããŒãã«ãæºåããå Žåã«äžå¯æ¬ ã§ããããã¯ã°ã©ãŠã³ãã§å®è¡ããããããæžã蟌ã¿ããã¯ãåé¿ãããŠãŒã¶ãŒåŽã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããŸããã
ãã®ããã»ã¹ã§ã¯éåžžãæ¢åã®ã¬ã³ãŒããèªã¿åãã倿åŸã®ããŒãžã§ã³ãæ°ããã¹ããŒãã«æžã蟌ãå°çšã®ãžã§ããŸãã¯ããã¯ã°ã©ãŠã³ãã¯ãŒã«ãŒãå®è¡ãããŸããããã¯ãã£ã«ã¯ãããåŠçã§å®è¡ã§ãããªãœãŒã¹æ¯æžãé²ãããã®ã¹ããããªã³ã°ã¡ã«ããºã ãåãã£ãŠãããããããŒã¿ã»ããã®ãµã€ãºã«åãããŠããã»ã¹ãã¹ã±ãŒã«ããã·ã¹ãã è² è·ã«å¿ããŠäžæåæ¢ãŸãã¯åéããããšãã§ããŸãã
ãã®éãäºéæžã蟌ã¿ããžãã¯ã«ãããã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠäœæãããæ°ããã¬ã³ãŒãã¯ãæ°æ§äž¡æ¹ã®æ§é ã«å³åº§ã«ä¿åãããŸããããã¯ãã£ã«ãå®äºããæŽåæ§ãã§ãã¯ã«ãã£ãŠæŽåæ§ã確èªããããšãã¢ããªã±ãŒã·ã§ã³ã¯æ°ãããã£ãŒã«ããŸãã¯ããŒãã«ã䜿çšããããã«ç§»è¡ã§ããŸãã
å®å šãªããã¯ãã£ã«ã«ã¯ãç¶¿å¯ãªèšç»ãç£èŠããããŠãã°èšé²ãäžå¯æ¬ ã§ãããšã©ãŒãææããå詊è¡ãé©åã«åŠçããããã©ãŒãã³ã¹ã远跡ããå¿ èŠããããŸããéåæããã¯ãã£ã«ã¯ãé©åã«å®è¡ãããã°ãæå€§èŠæš¡ã®ããŒã¿ã¹ãã¢ã§ãã£ãŠãããŠã³ã¿ã€ã ãªãã§é²åãããããšãã§ããŸãã
ã©ã€ãããŒã¿å€æ
ã©ã€ãããŒã¿å€æãšã¯ãã¢ããªã±ãŒã·ã§ã³ãã¢ã¯ãã£ãã«å®è¡ãããŠããéã«ãããŒã¿ã®æ§é ãã»ãã³ãã£ã¯ã¹ããŸãã¯æ§æãé²åãããææ³ã§ããã¡ã³ããã³ã¹ãŠã£ã³ããŠãå¿ èŠãšããåŸæ¥ã®ãããç§»è¡ãšã¯ç°ãªããã©ã€ã倿æŠç¥ã§ã¯ãã·ã¹ãã ãå®å šã«çšŒåãããªãããããã¯ã°ã©ãŠã³ãã§ããŒã¿ã®å€æŽã段éçã«é©çšã§ããŸããããã¯ãããŠã³ã¿ã€ã ã蚱容ãããªãé«å¯çšæ§ç°å¢ã§ã¯ç¹ã«éèŠã§ãã
ãã®å€æã§ã¯ãæ°ããæžã蟌ãŸããããŒã¿ãšæ¢åã®ã¬ã³ãŒãã®äž¡æ¹ãèæ ®ããå¿ èŠããããŸããäºéæžã蟌ã¿ãã¿ãŒã³ããªã¢ã«ã¿ã€ã åæããŒã«ãããŒãžã§ã³ç®¡çãããAPIã¯ããã®è€éãã管çããã®ã«åœ¹ç«ã¡ãŸããã¢ããªã±ãŒã·ã§ã³ã¯ãå€ã圢åŒãšæ°ãã圢åŒã®äž¡æ¹ã§ããŒã¿ãçè§£ã»åŠçããèœåãå¿ èŠã§ãããå€ãã®å Žåãäžæçãªå€æããžãã¯ãã¢ããã¿ãå¿ èŠã«ãªããŸããäžè²«æ§ãšåªçæ§ãã倿Žã«ãã£ãŠç«¶åãããŒã¿ç Žæãçºçããªãããã«ããäžã§éèŠãªåœ¹å²ãæãããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã©ã€ãã·ã¹ãã ã®ããŒã¿æ§é ãå®å šã«é²åãããããã®äž»èŠãªææ³ã«ã€ããŠèå¯ããŸããããã«ã¯ãè€æ°ã®è¡šçŸãžã®æžã蟌ã¿ã倿ŽããŒã¿ãã£ããã£ãçšããããŒãžã§ã³éã®ããŒã¿ã®ãã©ãŒãªã³ã°ããããŠåºç€ãšãªãã¹ãã¬ãŒãžã®éããæœè±¡åããããŒãžã§ã³ç®¡çãããAPIã®å ¬éãªã©ãå«ãŸããŸãã
å€ãããŒã¿æ§é ãšæ°ããããŒã¿æ§é ãžã®äºéæžã蟌ã¿
ãã¥ã¢ã«ã©ã€ãã£ã³ã°ã¯ãã¢ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³ã®åäœãäžæããããšãªãããŒã¿ã¢ãã«ãé²åãããéã«äœ¿çšãããåºæ¬çãªææ³ã§ãããã®ãã¿ãŒã³ã§ã¯ãããŒã¿ã倿Žãããã¹ãŠã®æäœããæ¢åã®ã¹ããŒããšæ°ããã¹ããŒãã®äž¡æ¹ã«åæã«é©çšãããŸããããã«ãããäž¡æ¹ã®è¡šçŸãåæãããç§»è¡äžã«ããŒã¿ã倱ããããå€ç«ãããããããšããªããªããŸãã
äºéæžã蟌ã¿ããžãã¯ã®å®è£ ã«ã¯ãæ éãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãå¿ èŠã§ããã¢ããªã±ãŒã·ã§ã³ã¯äž¡æ¹ã®ããŒã¿æ§é ãèªèãããããã®éã®äžè²«æ§ãç¶æããå¿ èŠããããŸããããã«ã¯ãå€ãã®å Žåãæžã蟌ã¿ããžãã¯ãã·ã¹ãã ã®ä»ã®éšåããæœè±¡åããå ±ææžã蟌ã¿å±€ãŸãã¯ãµãŒãã¹ã®å°å ¥ãå«ãŸããŸããæžãèŸŒã¿æäœã¯ã¹ãçæ§ãæã€å¿ èŠããããŸããã€ãŸããé害çºçæã«æå³ããªãçµæãæãããšãªãå®å šã«å詊è¡ã§ããå¿ èŠããããŸãã
ç£èŠãšãã°èšé²ãäžå¯æ¬ ã§ããäžæ¹ã®æžãèŸŒã¿æäœã倱æããããäžæ¹ã®æžãèŸŒã¿æäœãæåããå Žåãã¢ã©ãŒããšè£æ£ã¡ã«ããºã ãèµ·åããŠäžæŽåãä¿®æ£ããå¿ èŠããããŸããäºéæžã蟌ã¿ãå®å®ããŠããããšã確èªã§ããããã¢ããªã±ãŒã·ã§ã³ã¯æ°ããæ§é ããã®èªã¿åããéå§ã§ããŸãããã®æç¹ã§ãå€ãã¹ããŒãã¯å»æ¢ãããåŸç¶ã®ã¯ãªãŒã³ã¢ãããã§ãŒãºã§æçµçã«åé€ã§ããŸãã
ãªã¢ã«ã¿ã€ã åæã®ããã®å€æŽããŒã¿ãã£ããã£ïŒCDCïŒ
倿ŽããŒã¿ãã£ããã£ïŒCDCïŒã¯ãããŒã¿ãœãŒã¹ããã®å€æŽããªã¢ã«ã¿ã€ã ã§ãã£ããã£ããã¹ããªãŒãã³ã°ããææ³ã§ããã¢ããªã±ãŒã·ã§ã³ã¯ãæ¿å ¥ãæŽæ°ãåé€ãªã©ã®å€æŽããªã¢ã«ã¿ã€ã ã§ç£èŠããæ°ããåºåå ãŸãã¯å€æããã衚çŸã«é©çšããããšãã§ããŸãããã®ãããCDCã¯ãã¡ã€ã³ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãŒã¯ãããŒãäžæããããšãªããã·ã¹ãã ãã¹ããŒãéã§ã©ã€ãããŒã¿å€æãåæããããã®çæ³çãªãœãªã¥ãŒã·ã§ã³ã§ãã
CDCã¯éåžžãããŒã¿ããŒã¹ãã°ãŸãã¯ããªã¬ãŒãçšããŠå®è£ ãããŸãããããã®ããªã¬ãŒã¯å€æŽãæ€åºããã¡ãã»ãŒãžãã¥ãŒãŸãã¯åŠçãã€ãã©ã€ã³ã«ãããªãã·ã¥ããŸãããããã®å€æŽã¯ãå€ã圢åŒãæ°ããã¹ããŒãã«ãããã³ã°ããã¿ãŒã²ããæ§é ã«æžã蟌ã倿ãµãŒãã¹ã«ãã£ãŠäœ¿çšãããŸããDebeziumãApache KafkaãããŒã¿ããŒã¹ãã€ãã£ãã®ã¬ããªã±ãŒã·ã§ã³æ©èœãªã©ã®ãã¯ãããžãŒã¯ãå€ãã®å Žåãã®ã¢ãã«ããµããŒãããŠããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã®èгç¹ã§ã¯ãCDC ã¯éçºããŒã ãæ°ããããŒã¿ã¢ãã«ã段éçã«å°å ¥ããããšãå¯èœã«ããŸããCDC ã¯äžŠåèªã¿åãããªã¢ã«ã¿ã€ã æ€èšŒãããŒã«ããã¯æŠç¥ããµããŒãããŸãããã§ãã¯ãµã æ€èšŒãšã¹ããŒãç£èŠãšçµã¿åãããããšã§ãCDC ã¯äž¡ã·ã¹ãã éã§ããŒã¿ã®äžè²«æ§ã匷åã«ä¿èšŒããŸãã
ããŒã¿ã¢ã¯ã»ã¹çšã®ããŒãžã§ã³ç®¡çããã API ãšã³ããã€ã³ã
ããŒãžã§ã³ç®¡çãããAPIã¯ãå®å®ããã€ã³ã¿ãŒãã§ãŒã¹ã®èåŸã«æ§é çãªããŒã¿å€æŽãæœè±¡åããæç¢ºãªæ¹æ³ãæäŸããŸããããŒã¿ããŒã¹ã®å€æŽããã¹ãŠã®å©çšè ã«çŽæ¥å ¬éããã®ã§ã¯ãªããAPIã¯ç¬ç«ããŠé²åã§ãã鿥çãªã¬ã€ã€ãŒãæäŸããŸããè€æ°ã®APIããŒãžã§ã³ãç¶æããããšã§ãã·ã¹ãã ã¯åãããŒã¿ã®ç°ãªã衚çŸãç°ãªãã¯ã©ã€ã¢ã³ãã«æäŸã§ããç§»è¡æéäžã®åŸæ¹äºææ§ã確ä¿ããŸãã
ããšãã°ããªãã¡ã¯ã¿ãªã³ã°ã«ãã£ãŠæ°ããããŒã¿æ§é ãåºå圢åŒãå°å
¥ãããå Žåãæ°ããAPIããŒãžã§ã³ïŒ /v2/ordersïŒã¯ãã®å€åãæããã«ããããšãã§ãã /v1/orders åŸæ¥éãã®åäœãç¶ç¶ããŸããã¯ã©ã€ã¢ã³ãã¯ããã°ã«ãã«ãŒãã£ã³ã°ããžãã¯ããŸãã¯å調çãªãããã€ã¡ã³ããéããŠã段éçã«æ°ããŒãžã§ã³ã«ç§»è¡ãããŸãããã®æ¹æ³ã«ãããå
éšã®å€æŽãšå€éšäŸåé¢ä¿ãåé¢ãããããŒã¿ã®é²åãšã¯ã©ã€ã¢ã³ãçµ±åã®å¯çµåã鲿¢ãããŸãã
ããŒãžã§ã³ç®¡çãããAPIã®ç®¡çã«ã¯èŠåŸãå¿ èŠã§ããåããŒãžã§ã³ã¯ç¬ç«ããŠä¿å®ããã³ãã¹ããããªããã°ãªããŸããã廿¢ããªã·ãŒã¯æç¢ºã«äŒéãããã©ã®ã¯ã©ã€ã¢ã³ããã©ã®ããŒãžã§ã³ã䜿çšããŠãããã¯ç£èŠã«ãã£ãŠè¿œè·¡ãããå¿ èŠããããŸããé©åã«äœ¿çšããã°ãããŒãžã§ã³ç®¡çãããAPIã¯ãäžæã®ãªããµãŒãã¹ãç¶æããªãããæè»ãªããŒã¿ã¢ãã«ã®é²åãå¯èœã«ããŸãã
ãµãŒãã¹æåã®ãªãã¡ã¯ã¿ãªã³ã°æŠè¡
ã·ã¹ãã ã®è€éããå¢ãã«ã€ããã¢ããªã·ãã¯ã¢ãŒããã¯ãã£ãããµãŒãã¹æåãŸãã¯ãã€ã¯ããµãŒãã¹ããŒã¹ã®ã¢ãŒããã¯ãã£ãžã®ç§»è¡ãæŠç¥çãªãªãã¡ã¯ã¿ãªã³ã°ç®æšãšãªããŸãããã®ç§»è¡ã«ãããã¢ãžã¥ãŒã«æ§ããããã€ã¡ã³ãã®æè»æ§ããããŠã¹ã±ãŒã©ããªãã£ãåäžããŸããããããç¹ã«ã·ã¹ãã ã®çšŒåäžã«å€æŽãçºçããå Žåããªã¹ã¯ãçããŸãããµãŒãã¹æåãªãã¡ã¯ã¿ãªã³ã°ã«ãããããŒã ã¯æ¬çªç°å¢ã忢ããããšãªããæ©èœãåé¢ããäŸåé¢ä¿ãåæžããã·ã¹ãã ãæ®µéçã«é²åãããããšãã§ããŸãã
ãµãŒãã¹æåãªãã¡ã¯ã¿ãªã³ã°ãæåãããã«ã¯ãæ°æ§ã®ã³ãŒããã¹ã䞊è¡ããŠå®è¡ããã¢ããªã¹ããæ°ãããµãŒãã¹ãžã𿮵éçã«è²¬ä»»ãç§»è¡ããããšãéèŠã§ããã¹ãã©ã³ã°ã©ãŒã»ãã£ã°ã»ãã¿ãŒã³ããããã·ããŒã¹ã»ã«ãŒãã£ã³ã°ãšãã£ãã³ã¢æè¡ã¯ãç§»è¡ã段éçã«ããã€å¯éçã«è¡ãããšãä¿èšŒããŸãã䞊åå®è¡ãããŒã¯ããŒã³ããçµ±èšçæ¯èŒãšãã£ãæ€èšŒã¡ã«ããºã ã¯ãç§»è¡äžã®ç²ŸåºŠç¶æã«åœ¹ç«ã¡ãŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ããªã¹ã¯ãæå°éã«æããã¢ããªã±ãŒã·ã§ã³ã®å¯çšæ§ãç¶æããªãããå¶åŸ¡ãããç£èŠå¯èœãªæ¹æ³ã§åæ£ã·ã¹ãã ãžãšé²åããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ã¢ããªã¹ã®çµã殺ãã®å³ãã¿ãŒã³
çµã殺ãã®ãã£ã°ãã¿ãŒã³ã¯ãã¢ããªã·ãã¯ãªã¢ããªã±ãŒã·ã§ã³ã³ã³ããŒãã³ãããç¬ç«ããŠãããã€å¯èœãªãµãŒãã¹ã«æ®µéçã«çœ®ãæããããšãå¯èœã«ããã¢ãŒããã¯ãã£æŠç¥ã§ãããã¹ããšãªãæšã«çµ¡ã¿ã€ãçµã殺ãã®èã«çæ³ãåŸããã®ã¢ãããŒãã¯ãæ¢åã®ã³ãŒããšäžŠè¡ããŠæ°ããæ©èœã段éçã«æ§ç¯ããæçµçã«ã¯å€ãã·ã¹ãã ã廿¢ããããšãå¯èœã«ããŸãã
ã¹ãã©ã³ã°ã©ãŒã»ãã£ã°ã»ãã¿ãŒã³ãçšãããªãã¡ã¯ã¿ãªã³ã°ã¯ãã¢ããªã¹å ã§åé¢å¯èœãªåå¥ã®æ©èœãç¹å®ããããšããå§ãŸããŸãããããã®æ©èœã¯ã¹ã¿ã³ãã¢ãã³ãµãŒãã¹ãšããŠåå®è£ ããã䞊åã«ãããã€ããããªããŒã¹ãããã·ãã¢ããªã±ãŒã·ã§ã³ã²ãŒããŠã§ã€ãªã©ã®ã«ãŒãã£ã³ã°ããžãã¯ãä»ããŠåŒã³åºãããŸããå ã®ã·ã¹ãã ã¯åŒãç¶ã皌åããŸãããç§»è¡ãããæ©èœãžã®åä¿¡ãã©ãã£ãã¯ã¯æ°ãããµãŒãã¹ã«ãªãã€ã¬ã¯ããããŸãã
ãã®ææ³ã«ãããããŒã ã¯ãã©ãŒã«ããã¯ãã¹ãç¶æããªãããæ¬çªç°å¢ã§å®éã®ãã©ãã£ãã¯ãçšããŠãµãŒãã¹ããã¹ãã§ããŸããåãµãŒãã¹ã¯ç¬ç«ããŠæ€èšŒãããã¢ããªã¹ã¯ãã®ãŸãŸç¶æããããããããŒã«ããã¯ã¯å®¹æã§ããæéã®çµéãšãšãã«ãããå€ãã®æ©èœãç§»è¡ãããã«ã€ããŠã¢ããªã·ãã¯ã·ã¹ãã ã¯ãçµã殺ããããããã¯ãªãŒã³ã§ã¢ãžã¥ãŒã«åãããã¢ãŒããã¯ãã£ãžãšå€åããŸãã
ãã€ã¯ããµãŒãã¹ã®å¢åæœåº
å¢åæœåºãšã¯ãã¢ããªã·ãã¯ãªã³ãŒãããŒã¹ã段éçã«åãåããç¬ç«ããŠãããã€å¯èœãªå°ããªãµãŒãã¹ãžãšãªãã¡ã¯ã¿ãªã³ã°ããããã»ã¹ã§ããå®å šãªæžãæããšã¯ç°ãªãããã®ææ³ã§ã¯ãã¢ããªã±ãŒã·ã§ã³å šäœãäžæããããšãªããã·ã¹ãã ã®äžéšãã¢ããã€ãºã§ããŸããè€éãªãã¡ã€ã³ããžãã¯ã峿 Œãªå¯çšæ§èŠä»¶ãæã€çµç¹ã«æé©ã§ãã
æåã®ã¹ãããã§ã¯ãå¢çä»ããããã³ã³ããã¹ããç¹å®ããŸããããã¯éåžžãããžãã¹æ©èœãšé£æºããŸãããã®ãã¡ã€ã³ãäžå¿ã«ãµãŒãã¹ãäœæãããç¬ç«ããŠãããã€ãããŸããã¢ããªã¹ãšæ°ãããµãŒãã¹éã®éä¿¡ã¯ãRESTãgRPCããŸãã¯éåæã¡ãã»ãŒãžã³ã°ã䜿çšããŠç¢ºç«ãããŸããåææ®µéã§ã¯ãã¢ããªã¹ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãåŒãç¶ãåŠçããå®è¡ãæ°ãããµãŒãã¹ã«å§è²ããå ŽåããããŸãã
å®å šãªç§»è¡ã確å®ã«ããããã«ãã¢ããªã¹ãšãã€ã¯ããµãŒãã¹ã®åºåãæ¯èŒããããã«ãäºéæžã蟌ã¿ããã©ãŒãªã³ã°ãããèªã¿åãããã䜿çšãããŸããæ°ãããµãŒãã¹ã以åã®ãµãŒãã¹ãå®å šã«çœ®ãæãããŸã§ãåŸã ã«è²¬ä»»ç¯å²ãæ¡å€§ããŠãããŸãããã®ã¢ãããŒãã¯ãäžæãæå°éã«æããã¢ãžã¥ãŒã«èšèšãä¿é²ããåç§»è¡ãã§ãŒãºã«ãããå¯èŠ³æž¬æ§ããµããŒãããŸãã
ã·ãŒã ã¬ã¹ãªãªã¯ãšã¹ãã«ãŒãã£ã³ã°ã®ããã®ãããã·å±€
ãããã·ã¬ã€ã€ãŒãå°å ¥ããããšã§ãã¯ã©ã€ã¢ã³ãåŽã®ã³ãŒãã倿Žããããšãªããã¢ããªã±ãŒã·ã§ã³ãªã¯ãšã¹ããæ°æ§ã®ãµãŒãã¹å®è£ éã§åã«ãŒãã£ã³ã°ã§ããŸãããã®ã¬ãã«ã®æœè±¡åã¯ããµãŒãã¹æåã®ãªãã¡ã¯ã¿ãªã³ã°ã«ãããŠéèŠãªåœ¹å²ãæãããŸããããã«ããããã©ãã£ãã¯ã®è¿åãA/Bãã¹ãã®å®è¡ãé害çºçæã®è¿ éãªããŒã«ããã¯ãšãã£ãæè»æ§ã確ä¿ããããŠãŒã¶ãŒãšã·ã¹ãã ãžã®çµ±äžãããã€ã³ã¿ãŒãã§ãŒã¹ãæäŸãããŸãã
ãããã·ã¯ãNGINXãEnvoyãHAProxyããããã¯Istioã®ãããªãµãŒãã¹ã¡ãã·ã¥ãšãã£ããã¯ãããžãŒãçšããŠå®è£ ã§ããŸãããããã®ãã©ãããã©ãŒã ã¯ããªã¯ãšã¹ã屿§ããŠãŒã¶ãŒIDãããããŒãããŒãžã§ã³ã¿ã°ã«åºã¥ãé«åºŠãªã«ãŒãã£ã³ã°ã«ãŒã«ããµããŒãããŠããŸããéçºè ã¯ãã®æ©èœãå©çšããŠãã¢ããªã¹ãããã€ã¯ããµãŒãã¹ãžã®ãã©ãã£ãã¯ã段éçã«ç§»è¡ããå®å šãªç§»è¡ãè¡ãåã«ã¬ã¹ãã³ã¹ãæ€èšŒããããã©ãŒãã³ã¹ã枬å®ããããšãã§ããŸãã
ããã«ããããã·å±€ã¯å¯èŠ³æž¬æ§ãå®çŸããŸãããªã¯ãšã¹ãã¯ãªã¢ã«ã¿ã€ã ã§ãã°ã«èšé²ã远跡ãåæã§ããŸããã¬ã€ãã³ã·ããšã©ãŒçãã¬ã¹ãã³ã¹ã®äžäžèŽã¯æ€èšŒãã€ãã©ã€ã³ã®äžéšãšãªããŸããå ç¢ãªãããã·æŠç¥ã«ããããµãŒãã¹é·ç§»ã¯å¯éçãã€ç£æ»å¯èœã§ãäœãªã¹ã¯ãšãªããŸãã
ãµãŒãã¹éã®äŸåé¢ä¿ã®ç£èŠ
ã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®ãµãŒãã¹ã«ãªãã¡ã¯ã¿ãªã³ã°ãããã«ã€ããŠããµãŒãã¹éã®çžäºäŸåé¢ä¿ã¯ããè€éãã€è匱ã«ãªããŸãããããã®é¢ä¿ãç£èŠããããšã¯ã1ã€ã®ã³ã³ããŒãã³ãã®é害ãã·ã¹ãã å šäœã®åæ¢ã«é£éããªãããã«ããããã«äžå¯æ¬ ã§ããäŸåé¢ä¿ã®ç£èŠã«ã¯ããµãŒãã¹éã®åŒã³åºãã®è¿œè·¡ãããã©ãŒãã³ã¹ã®ããã«ããã¯ã®æž¬å®ã忣ã·ã¹ãã å šäœã®é害ãã€ã³ãã®ç¹å®ãå«ãŸããŸãã
PrometheusãDatadogãNew Relicãšãã£ãææ°ã®å¯èŠ³æž¬æ§ãã©ãããã©ãŒã ã¯ããµãŒãã¹ã®äŸåé¢ä¿ããããã³ã°ããã³ãŒã«ã°ã©ããèŠèŠåã§ããŸããããã«ãããããŒã ã¯ãªãã¡ã¯ã¿ãªã³ã°äžããã³ãªãã¡ã¯ã¿ãªã³ã°åŸã®ãµãŒãã¹éã®çžäºäœçšãææ¡ãããããªããŸãããªã¯ãšã¹ãã¬ãŒããã¬ã€ãã³ã·ããšã©ãŒçãšãã£ãææšã¯ãæ°ããªåé¡ãæ©æã«æ€ç¥ããäžã§åœ¹ç«ã¡ãŸãã
ããäžã€ã®éèŠãªåŽé¢ã¯ãäŸåé¢ä¿ã®ãã«ã¹ãã§ãã¯ã§ãããµãŒãã¹ã¯ãäžæµã³ã³ããŒãã³ããé©åã«å¯Ÿå¿ã§ãããããæºåç¶æ ã皌åç¶æ ãããã³ãã°ã¬ãŒãç¶æ ãå ±åããªããã°ãªããŸããããµãŒããããã¬ãŒã«ãŒããªãã©ã€ãã¿ã€ã ã¢ãŠãã¯ãäŸåé¢ä¿ã®é害ãªã¹ã¯ã軜æžããã¡ã«ããºã ã§ãã
ãµãŒãã¹éã®é¢ä¿æ§ãç©æ¥µçã«ç£èŠããããšã§ãããŒã ã¯ãªãã¡ã¯ã¿ãªã³ã°ãæ©èœçã«å¥å šã§ãå埩åã«åªããŠãããšãã確信ãåŸãããšãã§ããŸãããã®ã¬ãã«ã®æŽå¯ã¯ããµãŒãã¹æåã¢ãŒããã¯ãã£ãå®å šã«æ¡åŒµããããã®éµãšãªããŸãã
䞊åå®è¡æ€èšŒ
䞊åå®è¡æ€èšŒã¯ãçµç¹ãå®éã®éçšç°å¢ã§æ°æ§ã·ã¹ãã ãæ¯èŒã§ãã匷åãªå質ä¿èšŒæŠç¥ã§ãããªãã¡ã¯ã¿ãªã³ã°äžã¯ãã³ã³ããŒãã³ããŸãã¯ãµãŒãã¹ã®æ§ããŒãžã§ã³ãšæ°ããŒãžã§ã³ã®äž¡æ¹ãåæã«å®è¡ãããŸãããã ããä¿¡é Œã§ããããŒãžã§ã³ã®ã¿ãå®éã®ãŠãŒã¶ãŒãã©ãã£ãã¯ãåŠçããæ°ããŒãžã§ã³ã¯ã·ã£ããŠã¢ãŒãã§åäœããåãå ¥åãåŠçããŸãããçµæã«ã¯åœ±é¿ãäžããŸããã
ãã®ææ³ã¯ããŠãŒã¶ãŒãžã®é²åºãªãã«ãçŸå®äžçã§ã®æ€èšŒãå¯èœã«ããŸããç¹ã«ã財åèšç®ãèªèšŒããžãã¯ãããŒã¿å€æã«ãŒãã³ãå«ãéèŠãªãªãã¡ã¯ã¿ãªã³ã°ã«å¹æçã§ããæ°ããå®è£ ãå®éã®è² è·äžã§ã©ã®ããã«åäœãããã芳å¯ãããã®åºåãæ¢åã®ããŒã¹ã©ã€ã³ãšæ¯èŒããããšã§ãããŒã ã¯æ£ç¢ºæ§ãæ€èšŒããååž°ãæ€åºããå¶åŸ¡ããããã¹ãç°å¢ã§ã¯é¡åšåããªãå¯èœæ§ã®ãããšããžã±ãŒã¹ãçºèŠããããšãã§ããŸãã
䞊è¡å®è¡ã¯ã段éçãªç§»è¡ãžã®ä¿¡é Œæ§ãé«ããããšã«ãã€ãªãããŸããçµæãäžè²«ããŠäžèŽããããã©ãŒãã³ã¹ã蚱容ç¯å²å ã§ããã°ããã©ãã£ãã¯ã段éçã«æ°ããå®è£ ã«èªå°ããå®å šãªéææ§ããã£ãŠç§»è¡ãå®äºã§ããŸãã
ããŒã¯ãæ°ãµãŒãã¹ãéå§
ããŒã¯ããŒã³ããšã¯ãæ°ãããµãŒãã¹ãæ©èœããŠãŒã¶ãŒã«å ¬éããããšãªãæ¬çªç°å¢ã«ãããã€ããææ³ã§ãããã®ææ³ã«ãããéçºããŒã ã¯æ©èœãªã¹ã¯ãè² ãããšãªããæ¬çªç°å¢ã§ããã©ãŒãã³ã¹ãã¹ããå®å®æ§ã®æ€èšŒãã€ã³ãã©ã®æ€èšŒãè¡ãããšãã§ããŸãããµãŒãã¹ã¯ãã°ã«ãã¿ã³ã®èåŸã«é ãããããUIã«è¡šç€ºãããªãã£ããããããããŠãŒã¶ãŒã¯ãã®ååšãå šãæèããŸããã
ããŒã¯ããŒã³ãäžã¯ãåä¿¡ãªã¯ãšã¹ããå éšçã«è€è£œãããŸããæ¢åã®å®è£ ãå®éã®ã¬ã¹ãã³ã¹ãåŠçããæ°ããããžãã¯ãããã¯ã°ã©ãŠã³ãã§åãå ¥åãåŠçããŸããããã«ãããéçºè ã¯æ°ãããµãŒãã¹ã®ãã°ããšã©ãŒçãåŠçæéãåå¥ã«æ€æ»ã§ããŸãã
ããŒã¯ããŒã³ãã¯ãè€éãé«ãªã¹ã¯ããŸãã¯ãªãã©ã€ã³ã§ã®å®å šãªãã¹ããå°é£ãªããžãã¯ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ç¹ã«å¹æçã§ãããããªãã¯ããŒã«ã¢ãŠãåã«ã段éçãªæ¹è¯ãšããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ã®ããã®å®å šãªã©ã³ãŠã§ã€ãæäŸããŸããããã«ãã¹ã±ãŒãªã³ã°åäœãç£èŠçµ±åããªã³ã³ãŒã«ã¢ã©ãŒãæ€èšŒãšãã£ãéçšæºåç¶æ³ã®ãã§ãã¯ããµããŒãããŸãã
ãã®æŠç¥ã¯ãå éšæ€èšŒãšå®å šãªæ¬çªç°å¢ãžã®å ¬éãšã®éã®ã®ã£ãããåãããªã¹ã¯ç®¡çããããªãã¡ã¯ã¿ãªã³ã°ã«æé©ã§ãã
å®éã®éçšãã©ãã£ãã¯ãšã®æ¯èŒãã¹ã
æ¯èŒãã¹ãïŒå·®åãã¹ããšãåŒã°ããïŒã¯ãã¬ã¬ã·ãŒã·ã¹ãã ãšãªãã¡ã¯ã¿ãªã³ã°åŸã®ã·ã¹ãã ã®äž¡æ¹ã«åãå ¥åãå®è¡ããåºåãæ¯èŒããææ³ã§ãããã®ææ³ã¯ãæ°ããå®è£ ã以åã®ã·ã¹ãã ãšå šãåãåäœãããããšã確èªããéã«äžå¯æ¬ ã§ããéèã·ã¹ãã ãåæãã€ãã©ã€ã³ãã»ãã¥ãªãã£ãéèŠãªããžãã¯ãªã©ãããããªåäœã®éãã§ããé倧ãªåé¡ã«ã€ãªããå¯èœæ§ãããåéã§ãã䜿çšãããŸãã
æ¬çªç°å¢ã§ã¯ããã©ãŒãªã³ã°ããããã©ãã£ãã¯ã䜿çšããŠæ¯èŒãã¹ãã宿œã§ããŸããåãŠãŒã¶ãŒãªã¯ãšã¹ãã¯ãã©ã€ããªã·ã¹ãã ã«ã«ãŒãã£ã³ã°ãããã ãã§ãªããã³ããŒãããŠæ°ããããžãã¯ãå®è¡ããã·ã£ããŠã·ã¹ãã ã«ãéä¿¡ãããŸããã¬ã¬ã·ãŒã·ã¹ãã ããã®ã¬ã¹ãã³ã¹ã¯ãŠãŒã¶ãŒã«è¿ãããæ°ããã·ã¹ãã ããã®åºåã¯åæã®ããã«ãã°ã«èšé²ãããŸãã
ããã容æã«ããããã«ãçµæéã®å·®åãèªåçã«ååŸããããŒã«ãšãã¹ãããŒãã¹ãæ§ç¯ãããŠããŸããå·®ç°ãããã°ãã©ã°ãä»ããããã¬ãã¥ãŒãããŸããéçºè ã¯ãåŠçæéããªãœãŒã¹äœ¿çšéãªã©ã®ã¡ã¿ããŒã¿ãåéããŠãããã©ãŒãã³ã¹ç¹æ§ãæ¯èŒããããšãã§ããŸãã
ã¢ã¯ãã£ããŒã·ã§ã³åã«åºåã®åäžæ§ãä¿èšŒããããšã«ãããæ¯èŒãã¹ãã¯æšæž¬ãæé€ããèµ·ååŸã®ååž°ã®å¯èœæ§ãå€§å¹ ã«äœæžããŸãã
çµ±èšçççŸæ€åº
çŽæ¥çãªåºåæ¯èŒã¯æ±ºå®è«çãªã·ã¹ãã ã§ã¯æå¹ã§ããããªãã¡ã¯ã¿ãªã³ã°ãããã³ã³ããŒãã³ãã«ãã£ãŠã¯ãéæ±ºå®è«çãŸãã¯ç¢ºççãªåºåãçæãããå ŽåããããŸãããã®ãããªå Žåãçµ±èšçäžäžèŽæ€åºãçšããŠãã¬ã¬ã·ãŒã·ã¹ãã ãšæ°ããã·ã¹ãã éã®èŠ³æž¬ãããå·®ç°ã蚱容ç¯å²å ã«ãããã©ãããè©äŸ¡ããŸãã
ãã®ææ³ã§ã¯ãåºåååžãçµæçã«åéããå¹³åå€ãäžå€®å€ãæšæºåå·®ãããŒã»ã³ã¿ã€ã«ãªã©ã®äž»èŠãªææšãæ¯èŒããŸããçµ±èšã¢ãã«ãç°åžžæ€åºã¢ã«ãŽãªãºã ãçšããŠãéåžžã®éçšäžã®å€åãè¶ ããåå·®ããã©ã°ä»ãããããšãã§ããŸããäŸãã°ãã¬ã³ã¡ã³ããŒã·ã§ã³ãšã³ãžã³ãã¹ã³ã¢ãªã³ã°ã¢ã«ãŽãªãºã ããªãã¡ã¯ã¿ãªã³ã°ããå Žåãå®å šäžèŽãããçµ±èšçé¡äŒŒæ§ãçšããæ€èšŒã®æ¹ãçŸå®çãªæ¹æ³ãšãªãå ŽåããããŸãã
ããŒã ã¯ãã®ææ³ãããã©ãŒãã³ã¹ããŒã¿ã«ãé©çšã§ããŸããåçã®å ¥åã»ããã«ãããã¬ã€ãã³ã·ãããã¡ã€ã«ãã¹ã«ãŒãããçãã¡ã¢ãªäœ¿çšéãæ¯èŒããããšã§ãæ°ããå®è£ ãèŠæ±ãããå¹çæ§ãšã¹ã±ãŒã©ããªãã£ãåããŠãããã©ãããæŽå¯ã§ããŸãã
çµ±èšçãªççŸæ€åºã«ãããç¹ã«åäœãè€éãªã·ã¹ãã ã«ãããŠããªãã¡ã¯ã¿ãªã³ã°ã®ããŒã«ã¢ãŠãäžã«ããŒã¿ã«åºã¥ãæææ±ºå®ããµããŒãããæ€èšŒã¬ã€ã€ãŒã远å ãããŸãã
ã¹ããŒããã«ã·ã¹ãã ã®ãªãã¡ã¯ã¿ãªã³ã°
ã¹ããŒããã«ã·ã¹ãã ã®ãªãã¡ã¯ã¿ãªã³ã°ã¯ãåŸæ¥ã®ã¹ããŒãã¬ã¹ãã€ã¯ããµãŒãã¹ãè¶ ããè€éãããããããŸããã»ãã·ã§ã³ãç¶æãããã©ã³ã¶ã¯ã·ã§ã³ã®ç¶æ ã远跡ããã¯ãŒã¯ãããŒã®é²è¡ç¶æ³ãã¢ãã«åããã·ã¹ãã ã¯ãå éšæ§é ãå€åããŠãç¶ç¶æ§ãç¶æããå¿ èŠããããŸãããããã®ã·ã¹ãã ã¯ãŠãŒã¶ãŒãä»ã®ãµãŒãã¹ãšå¯æ¥ã«é£æºãããããç¶æ åŠçã®äžæã¯ãåäœã®äžè²«æ§ã®ãªããããŒã¿ã®æå€±ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®æªåã«ã€ãªããå¯èœæ§ããããŸãã
ã¹ããŒããã«ã·ã¹ãã ã®ãŒãããŠã³ã¿ã€ã ã»ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯ãããŒã¿ã ãã§ãªããåäœäžã®éçšç¶æ ã管çããæŠç¥ãå¿ èŠã§ããã»ãã·ã§ã³ããã£ãã·ã¥ããŠãŒã¶ãŒåºæã®ã³ã³ããã¹ãããããŠå éšã¹ããŒããã·ã³ã¯ãã·ãŒã ã¬ã¹ã«ç¶æã»ç§»è¡ãããªããã°ãªããŸãããããŒã ã¯ãããŒã«ã¢ãŠããŸãã¯ããŒã«ããã¯äžã«ã·ã¹ãã ãç¡å¹ãªç¶æ ã«ãªã£ããããã©ã³ã¶ã¯ã·ã§ã³ãç Žæãããããªãããã«ããå¿ èŠããããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ããªãã¡ã¯ã¿ãªã³ã°äžã®ç¶æ 管çã«é¢ããå®è·µçãªã¢ãããŒããæŠèª¬ããŸããã»ãã·ã§ã³ç§»è¡ãåæ£ç¶æ åŠçãã¯ã©ã€ã¢ã³ã調æŽãããŒãžã§ã³ç®¡çãããã¹ããŒããã·ã³ãªã©ãæ§ã ãªãããã¯ãåãäžããŸããåææ³ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŒãžã§ã³éã§ããŒã¿ã®å¿ 宿§ãšæ©èœã®æ£ç¢ºæ§ãç¶æããªãããæ··ä¹±ãæå°éã«æããããã«èšèšãããŠããŸãã
ã¹ãã£ãããŒã»ãã·ã§ã³ vs. ã¹ããŒãã¬ã¹ãªåèšèš
ã¹ãã£ãããŒã»ãã·ã§ã³ïŒã»ãã·ã§ã³ã¢ãã£ããã£ãšãåŒã°ããïŒã¯ãã»ãã·ã§ã³æéäžããŠãŒã¶ãŒã®ãªã¯ãšã¹ããç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã€ã³ã¹ã¿ã³ã¹ã«ãã€ã³ãããŸãããã®ã¢ãã«ã§ã¯ãã»ãã·ã§ã³ããŒã¿ãå²ãåœãŠããããµãŒããŒã®ã¡ã¢ãªã«ä¿åããããããç¶æ åŠçãç°¡çŽ åãããŸããããããç¹ã«åŒŸåæ§ãšè² è·åæ£ãäžå¯æ¬ ãªã¯ã©ãŠããã€ãã£ãç°å¢ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãªãã¡ã¯ã¿ãªã³ã°ãã¹ã±ãŒãªã³ã°ã«ãããŠå€§ããªèª²é¡ãçããŸãã
ã¹ãã£ãããŒã»ãã·ã§ã³ã¢ãŒããã¯ãã£ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯ãå€ãã®å Žåãã¹ããŒãã¬ã¹èšèšãžã®ç§»è¡ãå«ãŸããŸããã¹ããŒãã¬ã¹ã¢ãã«ã§ã¯ãã»ãã·ã§ã³ããŒã¿ã¯RedisãMemcachedããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãªã©ã®éäžåã¹ãã¢ã«ä¿åãããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ã®ä»»æã®ã€ã³ã¹ã¿ã³ã¹ãç¹å®ã®ãµãŒããŒã«äŸåããããšãªããããããªã¯ãšã¹ããåŠçã§ããããã«ãªããçã®æ°Žå¹³ã¹ã±ãŒãªã³ã°ãšã·ãŒã ã¬ã¹ãªãã§ã€ã«ãªãŒããŒãå¯èœã«ãªããŸãã
ãªãã¡ã¯ã¿ãªã³ã°äžã¯ãäž¡æ¹ã®ã¢ãã«ãäžæçã«å ±åãããå¿ èŠãããå ŽåããããŸãããã®ãã€ããªããã¢ãããŒãã«ãããæ¢åã®ãŠãŒã¶ãŒã¯ã¹ãã£ãããŒã»ãã·ã§ã³ãåŒãç¶ã䜿çšããªãããæ°ããã»ãã·ã§ã³ãéäžã·ã¹ãã ã«ä¿åã§ããŸãããã£ãŒãã£ãŒãã°ã«ãã«ãŒãã£ã³ã°ã«ãŒã«ã¯ããã®åäœãå¶åŸ¡ããã®ã«åœ¹ç«ã¡ãŸããã»ãã·ã§ã³ã¹ã³ãŒããæ éã«ç®¡çããããŒã¿ã®äžè²«æ§ã確ä¿ããããšã§ãããŒã ã¯ãŠãŒã¶ãŒã®ç¶ç¶æ§ã«åœ±é¿ãäžããããšãªããã»ãã·ã§ã³åŠçããªãã¡ã¯ã¿ãªã³ã°ã§ããŸãã
忣ã»ãã·ã§ã³ã¹ãã¬ãŒãžã®ç§»è¡
ã»ãã·ã§ã³ã¹ãã¬ãŒãžãããŒã«ã«ãŸãã¯ã¬ã¬ã·ãŒãœãªã¥ãŒã·ã§ã³ãã忣ã·ã¹ãã ã«ç§»è¡ããããšã¯ãã¹ããŒããã«ã¢ããªã±ãŒã·ã§ã³ã®ã¢ããã€ãŒãŒã·ã§ã³ã«ãããŠéèŠãªã¹ãããã§ãããã®ç§»è¡ã«ããããããã€ã¡ã³ãç°å¢å šäœã«ãããã¹ã±ãŒã©ããªãã£ãã¬ãžãªãšã³ã¹ãæè»æ§ãåäžããŸãããã ããã»ãã·ã§ã³ã®æå€±ãããŒã¿ã®å€ããèªèšŒãããŒã®äžæãåé¿ããããã«ãæ éã«å®è¡ããå¿ èŠããããŸãã
ç§»è¡ã¯ãRedisãCassandraãAmazon ElastiCacheãªã©ã®ã¯ã©ãŠããã€ãã£ããµãŒãã¹ãšãã£ã忣ã»ãã·ã§ã³ã¹ãã¢ã®å°å ¥ããå§ãŸããŸãããã®åŸãã¢ããªã±ãŒã·ã§ã³ã¯ãã¡ã¢ãªå ã»ãã·ã§ã³å€æ°ããã£ã¹ã¯ããŒã¹ã®æ°žç¶æ§ã«äŸåããããã®ã¹ãã¢ãžã®èªã¿æžããè¡ãããã«å€æŽãããŸãã
段éçãªããŒã«ã¢ãŠãããµããŒããããããã¢ããªã±ãŒã·ã§ã³ã¯äžæçã«ã¬ã¬ã·ãŒã»ãã·ã§ã³ã¹ãã¢ãšæ°ããã»ãã·ã§ã³ã¹ãã¢ã®äž¡æ¹ããµããŒãããå ŽåããããŸãããã®ãã¥ã¢ã«ãªãŒãæŠç¥ã§ã¯ãäž¡æ¹ã®ãœãŒã¹ããã§ãã¯ããæŽæ°ãæ°ããã·ã¹ãã ã«ã®ã¿æžã蟌ã¿ãŸããæéã®çµéãšãšãã«ãã¢ã¯ãã£ããªã»ãã·ã§ã³ã¯åæ£ã¹ãã¢ã«ææ©çã«ç§»è¡ããŸããæ€èšŒãå®äºãããšãã¬ã¬ã·ãŒãã¹ã¯ç¡å¹åãããŸãã
ãã®ããã»ã¹ã§ã¯ãã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ãæåªå äºé ã§ããã»ãã·ã§ã³ã®æå¹æéãæå·åãã¢ã¯ã»ã¹å¶åŸ¡ã¯ãåžžã«ç¶æãããå¿ èŠããããŸããç£èŠæ©èœã§ã¯ãã»ãã·ã§ã³ç§»è¡ã®é²è¡ç¶æ³ããšã©ãŒçãã¡ã¢ãªäœ¿çšéã远跡ããæ°ããã·ã¹ãã ãæ¬çªç°å¢ã®è² è·äžã§ãæåŸ ã©ããã«åäœããããšã確èªããå¿ èŠããããŸãã
ã¯ã©ã€ã¢ã³ãåŽã®ç¶æ 調æŽ
ã¯ã©ã€ã¢ã³ããµã€ãã®ç¶æ 調æŽãšã¯ãã¢ããªã±ãŒã·ã§ã³ããªã¯ãšã¹ãããããã€ã¡ã³ãå šäœã«ããã£ãŠç¹å®ã®ç¶æ èŠçŽ ã®ä¿åãšç®¡çãã¯ã©ã€ã¢ã³ãã«å§ããææ³ã§ããããã¯éåžžãããŒã¯ã³ãæå·åãããCookieããŸãã¯èªèšŒè³æ Œæ å ±ãèšå®ããã©ã³ã¶ã¯ã·ã§ã³ãã§ãã¯ãã€ã³ããªã©ã®ã³ã³ããã¹ãæ å ±ãä¿æãããã©ãŠã¶ããŒã¹ã®ã¹ãã¬ãŒãžã¡ã«ããºã ã䜿çšããŠå®è£ ãããŸãã
ã¹ããŒããã«ãµãŒãã¹ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ãããŠãã¯ã©ã€ã¢ã³ãåŽã¹ãã¬ãŒãžã¯ãã©ãŒã«ããã¯ãããã¡ãšããŠæ©èœããŸããããã«ãããã·ã¹ãã ã¯ã¯ã©ã€ã¢ã³ãããæäŸãããããŒã¿ãè§£æããããšã§ãã»ãã·ã§ã³ã³ã³ããã¹ããåæ§ç¯ãŸãã¯åéã§ããŸããããã¯ãããã¯ãšã³ãã·ã¹ãã ã®çœ®ãæãããããŒãéã§ãµãŒãã¹ã®åé åãè¡ãéã®ç§»è¡æã«ç¹ã«åœ¹ç«ã¡ãŸãã
ãããããã®ææ³ã«ã¯æ éãªèšèšãå¿ èŠã§ããã¯ã©ã€ã¢ã³ãåŽã«ä¿åãããç¶æ ã¯ãå®å šã§ãæ¹ãã鲿¢æ©èœãåããããŒãžã§ã³ç®¡çãããŠããå¿ èŠããããŸããã¯ã©ã€ã¢ã³ãåŽã®ããŒã¿ã®åœ¢åŒãšè§£éã¯æéã®çµéãšãšãã«å€åããå¯èœæ§ããããããã¹ããŒãã®é²åã¯èª²é¡ãšãªããŸããã¢ããªã±ãŒã·ã§ã³ã¯åŸæ¹äºææ§ãåããå€ããã€ããŒããææ°ã®åœ¢åŒã«å€æã§ããå¿ èŠããããŸãã
ã¯ã©ã€ã¢ã³ããµã€ãã®ãªã³ã³ã·ãªãšãŒã·ã§ã³ã¯ãæŽåæ§ã確ä¿ããäžæ£ãªæäœã鲿¢ããããã«ããµãŒããŒãµã€ãã®æ€èšŒãšçµã¿åãããå¿ èŠããããŸããé©åã«å®è£ ãããŠããã°ãããã¯ãšã³ãã®ãªãã¡ã¯ã¿ãªã³ã°äžã«ãŠãŒã¶ãŒã»ãã·ã§ã³ã®ã·ãŒã ã¬ã¹ãªç§»è¡ãšç¶ç¶æ§ãå®çŸã§ããŸãã
ã¹ããŒããã·ã³ã®ãªãã¡ã¯ã¿ãªã³ã°
å€ãã®ãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã§ã¯ãå®è¡ãããŒã®å¶åŸ¡ããã©ã³ã¶ã¯ã·ã§ã³ã©ã€ããµã€ã¯ã«ã®ç®¡çãããžãã¹ã«ãŒã«ã®é©çšãªã©ã«å éšã¹ããŒããã·ã³ã䜿çšãããŠããŸãããããã®ã¹ããŒããã·ã³ã¯ãã³ãŒãå ã§æç€ºçã«èšè¿°ãããŠããå Žåãããã°ããµãŒãã¹éã®ããåãã«ãããŠæé»çã«èšè¿°ãããŠããå ŽåããããŸããã·ã¹ãã ã®æ£ç¢ºæ§ã¯ç¶æ é·ç§»ãšå¯æ¥ã«çµã³ã€ããŠãããããå®éã®ãŠãŒã¶ãŒã¢ã¯ãã£ããã£ãç¶æããªãããã®ãããªã·ã¹ãã ããªãã¡ã¯ã¿ãªã³ã°ããããšã¯ãæ·±å»ãªèª²é¡ãšãªããŸãã倿Žäžã«ãããã®ç¶æ é·ç§»ãäžæãããããæŽåæ§ã倱ãããããããšããã©ã³ã¶ã¯ã·ã§ã³ã®æå€±ãç¡å¹ãªã¯ãŒã¯ãããŒããããã¯ããŒã¿ç Žæã«ã€ãªããå¯èœæ§ããããŸãã
ã¹ããŒããã·ã³ã®ãŒãããŠã³ã¿ã€ã ã»ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯ãç¶æ é·ç§»ã®ã©ã€ããµã€ã¯ã«å šäœãç¶æãããèŠåŸããæŠç¥ãå¿ èŠã§ããå ·äœçãªææ³ãšããŠã¯ããã¥ã¢ã«ã¹ããŒãããžãã¯ã®ç¶æãç¶æ ã¹ããŒãã®ããŒãžã§ã³ç®¡çã忣ã·ã¹ãã ã«ãŸãããç¶æ ã«ãããã³ã³ã»ã³ãµã¹ã¡ã«ããºã ã®å°å ¥ãªã©ãæããããŸããç®æšã¯ãé·ç§»ãå®äºãæ€èšŒããããŸã§ãåŸæ¥ã®ç¶æ ãã³ãã©ãŒãšãªãã¡ã¯ã¿ãªã³ã°åŸã®ç¶æ ãã³ãã©ãŒã®äž¡æ¹ã䞊è¡ããŠåäœã§ããããã«ããããšã§ãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãäžæŽåãçºçãããéèŠãªæäœãäžæããããããããšãªããã¹ããŒã ãã·ã³é§ååã·ã¹ãã ã倿Žãã¢ããã°ã¬ãŒããé²åãããæ¹æ³ã«çŠç¹ãåœãŠãŸãã
ããŒãžã§ã³ç®¡çãããç¶æ é·ç§»
ç¶æ é·ç§»ã®ããŒãžã§ã³ç®¡çã¯ãç¶æ ã®ããã·ã¹ãã å ã§ç°ãªãããžãã¯ãã¹ãããŒã¿ã¢ãã«ãå ±åãããææ³ã§ããéçºè ã¯ããã¹ãŠã®æäœãåäžã®ç¶æ å³ã«åŸãããã®ã§ã¯ãªããé·ç§»ã«ããŒãžã§ã³ãå²ãåœãŠãŸããããã«ãããå€ãç¶æ ããžãã¯ã§éå§ãããããã»ã¹ãŸãã¯ãŠãŒã¶ãŒãããŒã®ã€ã³ã¹ã¿ã³ã¹ã¯äžæããããšãªãç¶ç¶ãããæ°ããã€ã³ã¹ã¿ã³ã¹ã¯ã¢ããã°ã¬ãŒããããé·ç§»ã«ãŒã«ââã«åŸããŸãã
ããã¯éåžžãåç¶æ ãŸãã¯ã¯ãŒã¯ãããŒã€ã³ã¹ã¿ã³ã¹ã«ããŒãžã§ã³èå¥åãã¿ã°ä»ãããããšã§å®è£ ãããŸããé·ç§»ãåŠçããéãã·ã¹ãã ã¯ããŒãžã§ã³ã¿ã°ã䜿çšããŠé©çšããã«ãŒã«ã決å®ããŸããããã«ãããé²è¡äžã®ãããŒã«åœ±é¿ãäžããããšãªããæ°ããããžãã¯ãæ¬çªç°å¢ã«ãããã€ããããšãå¯èœã«ãªããŸããå€ãã€ã³ã¹ã¿ã³ã¹ãå®äºãããšãã¬ã¬ã·ãŒããŒãžã§ã³ã¯å»æ¢ãããæçµçã«ã¯å»æ¢ãããå¯èœæ§ããããŸãã
ããŒãžã§ã³ç®¡çã«ããé·ç§»ã¯ãé·æéã®ã»ãã·ã§ã³ãè€éãªè€æ°ã¹ãããã®ããã»ã¹ãæã€ã·ã¹ãã ã§ç¹ã«æå¹ã§ããããã«ãããç¶æ ããžãã¯ã®å®å šãã€æ®µéçãªããŒã«ã¢ãŠããšããŒã«ããã¯ãå¯èœã«ãªããŸããé©åãªãã¬ã¡ããªãçšããŠãæ°ããããŒãžã§ã³ã®æ¡çšçã远跡ããããŒãžã§ã³éã®é·ç§»çµæã®å·®ç°ãç£èŠããå¿ èŠããããŸãã
é·ç§»äžã®äºéç¶æ åŠç
ãã¥ã¢ã«ã¹ããŒãåŠçãšã¯ããªãã¡ã¯ã¿ãªã³ã°ãã§ãŒãºã«ãããŠãåäžã¢ããªã±ãŒã·ã§ã³å ã§æ°æ§äž¡æ¹ã®ã¹ããŒããã·ã³ãäžæçã«å ±åãããããšãæããŸããåãªã¯ãšã¹ããŸãã¯æäœã¯ãäž¡æ¹ã®ã¹ããŒããã·ã³ã«ãã£ãŠäžŠè¡ããŠè©äŸ¡ãããŸããã¬ã¬ã·ãŒããŒãžã§ã³ã¯ç¶ç¶çãªæ£ç¢ºæ§ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã確ä¿ããæ°ããŒãžã§ã³ã¯çµæã«åœ±é¿ãäžããªãã·ã£ããŠé·ç§»ãå®è¡ããŸãããæ€èšŒã®ããã«èšé²ãããŸãã
ãã®ã¢ãããŒãã«ãããéçºããŒã ã¯æ°ããç¶æ ããžãã¯ã®åäœãšçµæãå®éã®æ¡ä»¶äžã§ãã¹ãã§ããŸãããŸããç¶æ ã®å€åãé·ç§»ã®ã¿ã€ãã³ã°ããšã©ãŒåŠçã䞊ã¹ãŠæ¯èŒããããšã§ãè©³çŽ°ãªæ€èšŒãå¯èœã«ãªããŸããã¬ã¬ã·ãŒãã·ã³ãšãªãã¡ã¯ã¿ãªã³ã°ããããã·ã³éã®äžäžèŽã¯ã¬ãã¥ãŒå¯Ÿè±¡ãšããŠãã©ã°ä»ãã§ãããããããžãã¯ã®ã®ã£ããããšããžã±ãŒã¹ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
å¯äœçšãåé¿ããããã«ããã¥ã¢ã«ã¹ããŒãåŠçã¯åé¢ããå¿ èŠããããŸããäŸãã°ãæ°ããããžãã¯ã¯ãå®éã«äœ¿çšããããŸã§å€éšã·ã¹ãã ãããŒã¿ããŒã¹ã倿ŽããŠã¯ãªããŸãããæ°ããããžãã¯ãå®å®ããŠããããšã蚌æãããããã¬ã¬ã·ãŒãã¹ã廿¢ããããšã§ãããŠã³ã¿ã€ã ãæŽåæ§ã®æå€±ãªãç§»è¡ãå®äºã§ããŸãã
ç¶æ æ€èšŒã®ããã®ã³ã³ã»ã³ãµã¹ãããã³ã«
忣ã·ã¹ãã ã§ã¯ãè€æ°ã®ãµãŒãã¹ãããŒãã«ãŸãããç¶æ å€åã®èª¿æŽãå¿ èŠã«ãªãããšããããããŸãããã®ãããªã·ã¹ãã ãç¹ã«è€è£œãããç¶æ ãå ±æãã©ã³ã¶ã¯ã·ã§ã³ã䜿çšããŠããã·ã¹ãã ããªãã¡ã¯ã¿ãªã³ã°ããå Žåãæ£ç¢ºæ§ã確ä¿ããã«ã¯ã³ã³ã»ã³ãµã¹ãå¿ èŠã§ããPaxosãRaftã2çžã³ããããªã©ã®ã³ã³ã»ã³ãµã¹ãããã³ã«ã¯ãç¶æ å€åãé©çšãããåã«ãé¢ä¿ãããã¹ãŠã®ããŒããåæããããšãä¿èšŒããŸãããããã®ãããã³ã«ã¯ãæ°ããç¶æ ã¢ãã«ãå°å ¥ããããé·ç§»èª¿æŽã®ããžãã¯ã倿Žãããããéã«ç¹ã«éèŠã«ãªããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ã®éã«ã¯ãã³ã³ã»ã³ãµã¹ãããã³ã«ãçšããŠãæ°ã·ã¹ãã ã«ãã£ãŠé©çšãããé·ç§»ãã¬ã¬ã·ãŒã·ã¹ãã ãŸãã¯èª¿æŽãã¢ã®æåŸ å€ãšäžèŽãããã©ãããæ€èšŒã§ããŸããäŸãã°ããã©ã³ã¶ã¯ã·ã§ã³ãµãŒãã¹ã®æ°ããŒãžã§ã³ã§ã¯ãã³ãããåã«ä»ã®ã¬ããªã«ã«ãã£ãŠæ¿èªãããå¿ èŠãããç¶æ æŽæ°ãææ¡ããå ŽåããããŸãããã®æ€èšŒã«ãããããžãã¯ã®å€æŽã«ãã£ãŠåå²ãããŒã¿ç Žæãçºçããªãããšãä¿èšŒãããŸãã
ã³ã³ã»ã³ãµã¹ããŒã¹ã®æ€èšŒã¯ããŒã«ããã¯ããµããŒãããŸããæ°ããããŒãžã§ã³ãã³ã³ã»ã³ãµã¹ã«éããªãã£ãå ŽåããŸãã¯ç°åžžãçºçããå Žåãå ±æç¶æ ã«åœ±é¿ãäžããããšãªãããã®æäœãç Žæ£ã§ããŸããã¹ããŒããã«ã¯ãŒã¯ãããŒã«ã³ã³ã»ã³ãµã¹ã¡ã«ããºã ãçµ±åããããšã§ãã©ã€ãé·ç§»ã®å ç¢æ§ãåäžãããªãã¡ã¯ã¿ãªã³ã°ãããã·ã¹ãã ã®ä¿¡é Œæ§ã匷åãããŸãã
äŸåé¢ä¿ãšã€ã³ã¿ãŒãã§ãŒã¹ç®¡ç
å€§èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãã€ã³ã¿ãŒãã§ãŒã¹ãšå€éšäŸåé¢ä¿ãã·ã¹ãã ã®çžäºéçšæ§ãšé²åã®èœåãæ±ºå®ã¥ããŸããã·ã¹ãã ãæé·ããã«ã€ããŠãäŸåé¢ä¿ã®ç®¡çã¯å®å®æ§ãç¶æããå€åã«å¯Ÿå¿ããããã®éèŠãªèŠçŽ ãšãªããŸããã·ã¹ãã ããªã³ã©ã€ã³ç¶æ ã«ç¶æããªããã³ãŒãããµãŒãã¹ããªãã¡ã¯ã¿ãªã³ã°ããå Žåãã€ã³ã¿ãŒãã§ãŒã¹å¥çŽã®ä¿¡é Œæ§ãšåŸæ¹äºææ§ãç¶æããäŸåé¢ä¿ãåé¢ã»åé¢ããŠé£éçãªé害ãé²ãå¿ èŠããããŸãã
ãŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯ãAPIã®ããŒãžã§ã³ç®¡çãæ®µéçãªå»æ¢ãäºææ§ã«ãŒã«ã®å³æ Œãªé©çšãå«ãŸããããšããããããŸãã瀟å ã©ã€ãã©ãªãå ±æãã¬ãŒã ã¯ãŒã¯ã®å Žåãç¹ã«ã¬ã¬ã·ãŒç°å¢ã«ãããŠã¯ãäŸåã³ã³ããŒãã³ããå£ãããšãªãã¢ããã°ã¬ãŒãããããšã課é¡ãšãªããŸããã€ã³ã¿ãŒãã§ãŒã¹ã®ããŒãžã§ã³ç®¡çãã»ãã³ãã£ãã¯ãªå€æŽè¿œè·¡ããã¥ã¢ã«ããŒãæŠç¥ãšãã£ãææ³ã¯ãã©ã€ãç§»è¡æã®ãªã¹ã¯ã軜æžããã®ã«åœ¹ç«ã¡ãŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã©ã€ããããã€äžã«APIãšãã¬ãŒã ã¯ãŒã¯ãå®å šã«é²åãããæ¹æ³ã«ã€ããŠèª¬æããŸããç®æšã¯ãçµå床ãäœæžããéçšã®æŽåæ§ãç¶æãããªãã¡ã¯ã¿ãªã³ã°ãããã³ã³ããŒãã³ããšã¬ã¬ã·ãŒã³ã³ããŒãã³ãéã®ãã¹ããšæ€èšŒã®ããã®æç¢ºãªå¢çãèšããããšã§ãã
ããŒãžã§ã³ç®¡çãããAPIå¥çŽ
ãŒãããŠã³ã¿ã€ã ç°å¢ã§ãµãŒãã¹ã€ã³ã¿ãŒãã§ãŒã¹ãé²åãããã«ã¯ãããŒãžã§ã³ç®¡çãããAPIå¥çŽãäžå¯æ¬ ã§ããããŒãžã§ã³ãæç¢ºã«åºå¥ããããšã§ãéçºããŒã ã¯æ¢åã®å©çšè ã«åœ±é¿ãäžããããšãªããæ°æ©èœã®å°å ¥ãæ§é äžã®åé¡ã®ä¿®æ£ãã»ãã³ãã£ã¯ã¹ã®æ¹åãè¡ãããšãã§ããŸãããŸããããŒãžã§ã³ç®¡çæŠç¥ã¯ãå€ãã€ã³ã¿ãŒãã§ãŒã¹ãå®å šã«å»æ¢ããåã«ã段éçãªç§»è¡ãäºææ§ãã¹ãããã£ãŒãããã¯åéãè¡ãããã®ãããã¡ãŒãšããŠãæ©èœããŸãã
äžè¬çãªããŒãžã§ã³ç®¡çã¢ãã«ã«ã¯ãURIããŒã¹ã®ããŒãžã§ã³ç®¡çãšããããŒããŒã¹ã®ããŒãžã§ã³ç®¡çã®2ã€ããããŸããURIããŒã¹ã®ããŒãžã§ã³ç®¡çã§ã¯ã次ã®ãããªããŒãžã§ã³èå¥åã䜿çšããŠAPIãã¹ãå
¬éããŸãã /v1/invoice and /v2/invoiceããã«ããã«ãŒãã£ã³ã°ãæç¢ºã«ãªããåããŒãžã§ã³ã®ç¬ç«ããéçºãå¯èœã«ãªããŸããäžæ¹ãããããŒããŒã¹ã®ããŒãžã§ã³ç®¡çã§ã¯ããšã³ããã€ã³ãã¯éçã®ãŸãŸãã«ã¹ã¿ã ããããŒã䜿çšããŠããŒãžã§ã³ã決å®ãããããäžéšã®ç°å¢ã§ã¯ããæè»ãªéçšãå¯èœã«ãªããŸãã
APIå¥çŽã¯æ£åŒãªä»æ§ãšããŠæ±ãã¹ãã§ããOpenAPIïŒSwaggerïŒãgRPCã®protobufå®çŸ©ãªã©ã®ããŒã«ã¯ããããã®å¥çŽã®çæãšæ€èšŒã«äœ¿çšã§ããŸããPactãPostmanãªã©ã®å¥çŽãã¹ãããŒã«ããåäœã®å€æŽãæå³ããå°å ¥ãããŠããªãããšãæ€èšŒããã®ã«åœ¹ç«ã¡ãŸãã
ããŒãžã§ã³ãæç€ºçã«ç®¡çããããšã§ããªãã¡ã¯ã¿ãªã³ã°ããã API ãæ¢åã® API ãšäžŠè¡ããŠå°å ¥ããããšãã§ããã¹ã ãŒãºãªç§»è¡ãã¹ãæäŸãããã·ã¹ãã ã®å®å®æ§ãç¶æãããŸãã
åŸæ¹äºææ§ã®ããã®ã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°
ã»ãã³ãã£ãã¯ã»ããŒãžã§ãã³ã°ã¯ã倿Žå 容ãããŒãžã§ã³çªå·ã«çŽæ¥ãšã³ã³ãŒãããããšã§ãã³ãŒããšAPIã®é²åãçµ±å¶ãããã¢ãããŒãã§ç®¡çããŸãããŒãããŠã³ã¿ã€ã ã»ãªãã¡ã¯ã¿ãªã³ã°ã®æèã«ãããŠãã»ãã³ãã£ãã¯ã»ããŒãžã§ãã³ã°ã¯ãç¹ã«è€æ°ã®ã³ã³ããŒãã³ããå ±æã©ã€ãã©ãªããµãŒãã¹ã³ã³ãã©ã¯ãã«äŸåããŠããå ŽåãããŒã éã®ã³ãã¥ãã±ãŒã·ã§ã³ãšæŽæ°ã®èª¿æŽããã广çã«è¡ãã®ã«åœ¹ç«ã¡ãŸãã
ããŒãžã§ã³åœ¢åŒã¯éåžžãæ¬¡ã®ãã¿ãŒã³ã«åŸããŸãã MAJOR.MINOR.PATCHã¡ãžã£ãŒããŒãžã§ã³ã®å€æŽã¯ãæ¶è²»è
ã®å¯Ÿå¿ãå¿
èŠãšããé倧ãªå€æŽã瀺ããŸãããã€ããŒããŒãžã§ã³ã¯ãåŸæ¹äºææ§ã®ããæ°æ©èœãå°å
¥ãããããããŒãžã§ã³ã¯ãæ¢åã®åäœã«åœ±é¿ãäžããªããã°ä¿®æ£ãšæ¹åãå«ã¿ãŸãããããã®èŠåã«åŸãããšã§ãäžæµã®æ¶è²»è
ã¯ã¢ããã°ã¬ãŒãã®æ¯éãšã¿ã€ãã³ã°ã倿ã§ããŸãã
ãµãŒãã¹ãAPIããªãã¡ã¯ã¿ãªã³ã°ããéã«ã¯ãå®è¡æé害ãåé¿ããããã«ãåŸæ¹äºææ§ãæåªå ã«èæ ®ããå¿ èŠããããŸããããã«ã¯ããã£ãŒã«ãåãã¬ã¹ãã³ã¹æ§é ããªãã·ã§ã³ãã©ã¡ãŒã¿ã®ç¶æãå«ãŸããŸããæ°ããããŒãžã§ã³ãæ¢åã®èŠçŽã«éåããªãããšã確èªããããã«ãäºææ§ãã¹ããèªååããå¿ èŠããããŸãã
ã»ãã³ãã£ã㯠ããŒãžã§ãã³ã°ã¯ãäŸåé¢ä¿ç®¡çããŒã«ããã³ãã¹ãèªååãšçµã¿åãããããšã§ãäžæããããšãªãã·ã¹ãã ã€ã³ã¿ãŒãã§ãŒã¹ãé²åãããããã®æ§é åãããééçãªããã»ã¹ãæäŸããŸãã
廿¢äºå®ã®ã¿ã€ã ã©ã€ã³ãšæ¶è²»è ãžã®éç¥
ã·ã¹ãã ã®é²åã«ãããŠãéæšå¥šåã¯é¿ããããªããã®ã§ããããµãŒãã¹ã®ç¶ç¶æ§ãç¶æããããã«ã¯ããããæ éã«ç®¡çããããšãäžå¯æ¬ ã§ããã³ã³ããŒãã³ããAPIããªãã¡ã¯ã¿ãªã³ã°ããéã«ã¯ãæç¢ºãªéæšå¥šåã®ã¿ã€ã ã©ã€ã³ãšãä»åŸã®å€æŽã«ã€ããŠãŠãŒã¶ãŒã«éç¥ããããã®ã³ãã¥ãã±ãŒã·ã§ã³ãã©ã³ã確ç«ããå¿ èŠããããŸãããã®éææ§ã«ããã瀟å å€ã®é¢ä¿è ã¯ç©æ¥µçã«ã¢ããã°ã¬ãŒããèšç»ããããšãã§ããçµ±åãæ©èœããªããªããªã¹ã¯ã軜æžã§ããŸãã
äœç³»çãªå»æ¢ããã»ã¹ã¯éåžžãå€ãã³ã³ããŒãã³ããŸãã¯ãšã³ããã€ã³ããããã¥ã¡ã³ããšããŒã«ã§å»æ¢å¯Ÿè±¡ãšããŠããŒã¯ããããšããå§ãŸããŸãããããããå®å šãªåé€ã®90æ¥åã180æ¥åãªã©ãå®ãããããµããŒãæéãéç¥ãããŸãããã®æéäžã¯ãæ§ããŒãžã§ã³ãšæ°ããŒãžã§ã³ã®äž¡æ¹ãåæã«ãµããŒããããŸãã
æ¶è²»è ãžã®éç¥ã¯ç©æ¥µçãã€æç¶çã«è¡ãå¿ èŠããããŸããããã«ã¯ãããã¥ã¡ã³ãã®æŽæ°ãéçºè ããŒã¿ã«ã®ã¢ã©ãŒããã¡ãŒã«éç¥ãããã«ã¯ã¬ã¹ãã³ã¹ããããŒå ã®ã©ã³ã¿ã€ã èŠåãªã©ãå«ãŸããŸãã瀟å ã·ã¹ãã ã®å Žåã¯ã倿Žè«®åå§å¡äŒããšã³ãžãã¢ãªã³ã°ãã¥ãŒã¹ã¬ã¿ãŒãéããŠãæèåäžãå³ãããšãã§ããŸãã
éæšå¥šã®é©çšã¯ã䜿çšç¶æ³ã®ç£èŠã«ãã£ãŠãµããŒããããå¿ èŠããããŸããã©ã®ã³ã³ã·ã¥ãŒããŒãéæšå¥šã®ã€ã³ã¿ãŒãã§ãŒã¹ããŸã åŒã³åºããŠãããã远跡ããããšã§ãé ããåã£ãŠãããŠãŒã¶ãŒãç¹å®ããã¢ãŠããªãŒãã®åªå é äœä»ãã«åœ¹ç«ã¡ãŸããäºæž¬å¯èœãªã¿ã€ã ã©ã€ã³ã«åŸããç§»è¡å šäœãéããŠã³ã³ã·ã¥ãŒããŒããµããŒãããããšã§ãããŒã ã¯ãªãã¡ã¯ã¿ãªã³ã°äœæ¥ã«ãã£ãŠäºæãã¬ãµãŒãã¹åæ¢ãçºçããªãããã«ããããšãã§ããŸãã
èªåå¥çŽãã¹ã
èªåã³ã³ãã©ã¯ããã¹ãã¯ã忣ã·ã¹ãã ã®æ§ã ãªã³ã³ããŒãã³ãããªãã¡ã¯ã¿ãªã³ã°äžã«åæãããã€ã³ã¿ãŒãã§ãŒã¹ã«æºæ ããŠããããšã確èªããããã®åŒ·åãªæ€èšŒææ³ã§ãããããã®ãã¹ãã¯ãäºåå®çŸ©ãããã³ã³ãã©ã¯ãã䜿çšããŠã³ã³ã·ã¥ãŒããŒãšãããã€ããŒéã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãã·ãã¥ã¬ãŒãããããã³ã³ããŒãã³ãã®å€æŽãä»ã®ã³ã³ããŒãã³ãã«éäºææ§ãååž°ãåŒãèµ·ãããªãããšãæ€èšŒããŸãã
å®éã«ã¯ãPactãSpring Cloud ContractãPostmanãªã©ã®å¥çŽãã¹ããã¬ãŒã ã¯ãŒã¯ã䜿çšããããšã§ãéçºè ã¯æåŸ ããããªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã®åäœãå®çŸ©ã§ããŸãããããã®å¥çŽã¯ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³äžã«ãã§ãã¯ããããããã¥ãŒãµãŒãšã³ã³ã·ã¥ãŒããŒã®äž¡æ¹ã®å®è£ ãåæãããŠããããšã確èªããŸããããã¯ãå®å®ããAPIãé²åããå ±æã©ã€ãã©ãªã®èåŸã«ãããµãŒãã¹ããªãã¡ã¯ã¿ãªã³ã°ããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã
ã©ã€ãã·ã¹ãã ã®ãªãã¡ã¯ã¿ãªã³ã°äžãã³ã³ãã©ã¯ããã¹ãã¯ã»ãŒããã£ããããšããŠæ©èœããŸãããªãã¡ã¯ã¿ãªã³ã°ãããã³ãŒããã€ã³ã¿ãŒãã§ãŒã¹ã®æåŸ å€ã«æºæ ããŠããããšããããŠã¬ã¬ã·ãŒå®è£ ãšäžŠè¡ããŠåäœãç¶ããããšãã§ããããšãæ€èšŒããŸããããã«ãããæ¬çªç°å¢ã«ããããšã©ãŒã®ãªã¹ã¯ãæå°éã«æããããããŒã ã¯ããè¿ éãã€èªä¿¡ãæã£ãŠå€æŽããªãªãŒã¹ã§ããããã«ãªããŸãã
å¥çŽãã¹ãã¯äžŠè¡éçºããµããŒãããŸããããŒã ãçžäºã«äŸåããã³ã³ããŒãã³ãã«åãçµãå Žåãå ±æå¥çŽã«ãã£ãŠé£æºãç¶æãããèª€è§£ãæžå°ããŸãããã®ããã«ãèªååã«ãã£ãŠã³ã©ãã¬ãŒã·ã§ã³ã匷åãããè€éãªç§»è¡äœæ¥ã«ãããŠãä¿¡é Œæ§ã確ä¿ãããŸãã
äŸåé¢ä¿ãšã€ã³ã¿ãŒãã§ãŒã¹ç®¡ç
å€§èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãã€ã³ã¿ãŒãã§ãŒã¹ãšå€éšäŸåé¢ä¿ãã·ã¹ãã ã®çžäºéçšæ§ãšé²åã®èœåãæ±ºå®ã¥ããŸããã·ã¹ãã ãæé·ããã«ã€ããŠãäŸåé¢ä¿ã®ç®¡çã¯å®å®æ§ãç¶æããå€åã«å¯Ÿå¿ããããã®éèŠãªèŠçŽ ãšãªããŸããã·ã¹ãã ããªã³ã©ã€ã³ç¶æ ã«ç¶æããªããã³ãŒãããµãŒãã¹ããªãã¡ã¯ã¿ãªã³ã°ããå Žåãã€ã³ã¿ãŒãã§ãŒã¹å¥çŽã®ä¿¡é Œæ§ãšåŸæ¹äºææ§ãç¶æããäŸåé¢ä¿ãåé¢ã»åé¢ããŠé£éçãªé害ãé²ãå¿ èŠããããŸãã
ãŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯ãAPIã®ããŒãžã§ã³ç®¡çãæ®µéçãªå»æ¢ãäºææ§ã«ãŒã«ã®å³æ Œãªé©çšãå«ãŸããããšããããããŸãã瀟å ã©ã€ãã©ãªãå ±æãã¬ãŒã ã¯ãŒã¯ã®å Žåãç¹ã«ã¬ã¬ã·ãŒç°å¢ã«ãããŠã¯ãäŸåã³ã³ããŒãã³ããå£ãããšãªãã¢ããã°ã¬ãŒãããããšã課é¡ãšãªããŸããã€ã³ã¿ãŒãã§ãŒã¹ã®ããŒãžã§ã³ç®¡çãã»ãã³ãã£ãã¯ãªå€æŽè¿œè·¡ããã¥ã¢ã«ããŒãæŠç¥ãšãã£ãææ³ã¯ãã©ã€ãç§»è¡æã®ãªã¹ã¯ã軜æžããã®ã«åœ¹ç«ã¡ãŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã©ã€ããããã€äžã«APIãšãã¬ãŒã ã¯ãŒã¯ãå®å šã«é²åãããæ¹æ³ã«ã€ããŠèª¬æããŸããç®æšã¯ãçµå床ãäœæžããéçšã®æŽåæ§ãç¶æãããªãã¡ã¯ã¿ãªã³ã°ãããã³ã³ããŒãã³ããšã¬ã¬ã·ãŒã³ã³ããŒãã³ãéã®ãã¹ããšæ€èšŒã®ããã®æç¢ºãªå¢çãèšããããšã§ãã
ããŒãžã§ã³ç®¡çãããAPIå¥çŽ
ãŒãããŠã³ã¿ã€ã ç°å¢ã§ãµãŒãã¹ã€ã³ã¿ãŒãã§ãŒã¹ãé²åãããã«ã¯ãããŒãžã§ã³ç®¡çãããAPIå¥çŽãäžå¯æ¬ ã§ããããŒãžã§ã³ãæç¢ºã«åºå¥ããããšã§ãéçºããŒã ã¯æ¢åã®å©çšè ã«åœ±é¿ãäžããããšãªããæ°æ©èœã®å°å ¥ãæ§é äžã®åé¡ã®ä¿®æ£ãã»ãã³ãã£ã¯ã¹ã®æ¹åãè¡ãããšãã§ããŸãããŸããããŒãžã§ã³ç®¡çæŠç¥ã¯ãå€ãã€ã³ã¿ãŒãã§ãŒã¹ãå®å šã«å»æ¢ããåã«ã段éçãªç§»è¡ãäºææ§ãã¹ãããã£ãŒãããã¯åéãè¡ãããã®ãããã¡ãŒãšããŠãæ©èœããŸãã
äžè¬çãªããŒãžã§ã³ç®¡çã¢ãã«ã«ã¯ãURIããŒã¹ã®ããŒãžã§ã³ç®¡çãšããããŒããŒã¹ã®ããŒãžã§ã³ç®¡çã®2ã€ããããŸããURIããŒã¹ã®ããŒãžã§ã³ç®¡çã§ã¯ã次ã®ãããªããŒãžã§ã³èå¥åã䜿çšããŠAPIãã¹ãå
¬éããŸãã /v1/invoice and /v2/invoiceããã«ããã«ãŒãã£ã³ã°ãæç¢ºã«ãªããåããŒãžã§ã³ã®ç¬ç«ããéçºãå¯èœã«ãªããŸããäžæ¹ãããããŒããŒã¹ã®ããŒãžã§ã³ç®¡çã§ã¯ããšã³ããã€ã³ãã¯éçã®ãŸãŸãã«ã¹ã¿ã ããããŒã䜿çšããŠããŒãžã§ã³ã決å®ãããããäžéšã®ç°å¢ã§ã¯ããæè»ãªéçšãå¯èœã«ãªããŸãã
APIå¥çŽã¯æ£åŒãªä»æ§ãšããŠæ±ãã¹ãã§ããOpenAPIïŒSwaggerïŒãgRPCã®protobufå®çŸ©ãªã©ã®ããŒã«ã¯ããããã®å¥çŽã®çæãšæ€èšŒã«äœ¿çšã§ããŸããPactãPostmanãªã©ã®å¥çŽãã¹ãããŒã«ããåäœã®å€æŽãæå³ããå°å ¥ãããŠããªãããšãæ€èšŒããã®ã«åœ¹ç«ã¡ãŸãã
ããŒãžã§ã³ãæç€ºçã«ç®¡çããããšã§ããªãã¡ã¯ã¿ãªã³ã°ããã API ãæ¢åã® API ãšäžŠè¡ããŠå°å ¥ããããšãã§ããã¹ã ãŒãºãªç§»è¡ãã¹ãæäŸãããã·ã¹ãã ã®å®å®æ§ãç¶æãããŸãã
åŸæ¹äºææ§ã®ããã®ã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°
ã»ãã³ãã£ãã¯ã»ããŒãžã§ãã³ã°ã¯ã倿Žå 容ãããŒãžã§ã³çªå·ã«çŽæ¥ãšã³ã³ãŒãããããšã§ãã³ãŒããšAPIã®é²åãçµ±å¶ãããã¢ãããŒãã§ç®¡çããŸãããŒãããŠã³ã¿ã€ã ã»ãªãã¡ã¯ã¿ãªã³ã°ã®æèã«ãããŠãã»ãã³ãã£ãã¯ã»ããŒãžã§ãã³ã°ã¯ãç¹ã«è€æ°ã®ã³ã³ããŒãã³ããå ±æã©ã€ãã©ãªããµãŒãã¹ã³ã³ãã©ã¯ãã«äŸåããŠããå ŽåãããŒã éã®ã³ãã¥ãã±ãŒã·ã§ã³ãšæŽæ°ã®èª¿æŽããã广çã«è¡ãã®ã«åœ¹ç«ã¡ãŸãã
ããŒãžã§ã³åœ¢åŒã¯éåžžãæ¬¡ã®ãã¿ãŒã³ã«åŸããŸãã MAJOR.MINOR.PATCHã¡ãžã£ãŒããŒãžã§ã³ã®å€æŽã¯ãæ¶è²»è
ã®å¯Ÿå¿ãå¿
èŠãšããé倧ãªå€æŽã瀺ããŸãããã€ããŒããŒãžã§ã³ã¯ãåŸæ¹äºææ§ã®ããæ°æ©èœãå°å
¥ãããããããŒãžã§ã³ã¯ãæ¢åã®åäœã«åœ±é¿ãäžããªããã°ä¿®æ£ãšæ¹åãå«ã¿ãŸãããããã®èŠåã«åŸãããšã§ãäžæµã®æ¶è²»è
ã¯ã¢ããã°ã¬ãŒãã®æ¯éãšã¿ã€ãã³ã°ã倿ã§ããŸãã
ãµãŒãã¹ãAPIããªãã¡ã¯ã¿ãªã³ã°ããéã«ã¯ãå®è¡æé害ãåé¿ããããã«ãåŸæ¹äºææ§ãæåªå ã«èæ ®ããå¿ èŠããããŸããããã«ã¯ããã£ãŒã«ãåãã¬ã¹ãã³ã¹æ§é ããªãã·ã§ã³ãã©ã¡ãŒã¿ã®ç¶æãå«ãŸããŸããæ°ããããŒãžã§ã³ãæ¢åã®èŠçŽã«éåããªãããšã確èªããããã«ãäºææ§ãã¹ããèªååããå¿ èŠããããŸãã
ã»ãã³ãã£ã㯠ããŒãžã§ãã³ã°ã¯ãäŸåé¢ä¿ç®¡çããŒã«ããã³ãã¹ãèªååãšçµã¿åãããããšã§ãäžæããããšãªãã·ã¹ãã ã€ã³ã¿ãŒãã§ãŒã¹ãé²åãããããã®æ§é åãããééçãªããã»ã¹ãæäŸããŸãã
廿¢äºå®ã®ã¿ã€ã ã©ã€ã³ãšæ¶è²»è ãžã®éç¥
ã·ã¹ãã ã®é²åã«ãããŠãéæšå¥šåã¯é¿ããããªããã®ã§ããããµãŒãã¹ã®ç¶ç¶æ§ãç¶æããããã«ã¯ããããæ éã«ç®¡çããããšãäžå¯æ¬ ã§ããã³ã³ããŒãã³ããAPIããªãã¡ã¯ã¿ãªã³ã°ããéã«ã¯ãæç¢ºãªéæšå¥šåã®ã¿ã€ã ã©ã€ã³ãšãä»åŸã®å€æŽã«ã€ããŠãŠãŒã¶ãŒã«éç¥ããããã®ã³ãã¥ãã±ãŒã·ã§ã³ãã©ã³ã確ç«ããå¿ èŠããããŸãããã®éææ§ã«ããã瀟å å€ã®é¢ä¿è ã¯ç©æ¥µçã«ã¢ããã°ã¬ãŒããèšç»ããããšãã§ããçµ±åãæ©èœããªããªããªã¹ã¯ã軜æžã§ããŸãã
äœç³»çãªå»æ¢ããã»ã¹ã¯éåžžãå€ãã³ã³ããŒãã³ããŸãã¯ãšã³ããã€ã³ããããã¥ã¡ã³ããšããŒã«ã§å»æ¢å¯Ÿè±¡ãšããŠããŒã¯ããããšããå§ãŸããŸãããããããå®å šãªåé€ã®90æ¥åã180æ¥åãªã©ãå®ãããããµããŒãæéãéç¥ãããŸãããã®æéäžã¯ãæ§ããŒãžã§ã³ãšæ°ããŒãžã§ã³ã®äž¡æ¹ãåæã«ãµããŒããããŸãã
æ¶è²»è ãžã®éç¥ã¯ç©æ¥µçãã€æç¶çã«è¡ãå¿ èŠããããŸããããã«ã¯ãããã¥ã¡ã³ãã®æŽæ°ãéçºè ããŒã¿ã«ã®ã¢ã©ãŒããã¡ãŒã«éç¥ãããã«ã¯ã¬ã¹ãã³ã¹ããããŒå ã®ã©ã³ã¿ã€ã èŠåãªã©ãå«ãŸããŸãã瀟å ã·ã¹ãã ã®å Žåã¯ã倿Žè«®åå§å¡äŒããšã³ãžãã¢ãªã³ã°ãã¥ãŒã¹ã¬ã¿ãŒãéããŠãæèåäžãå³ãããšãã§ããŸãã
éæšå¥šã®é©çšã¯ã䜿çšç¶æ³ã®ç£èŠã«ãã£ãŠãµããŒããããå¿ èŠããããŸããã©ã®ã³ã³ã·ã¥ãŒããŒãéæšå¥šã®ã€ã³ã¿ãŒãã§ãŒã¹ããŸã åŒã³åºããŠãããã远跡ããããšã§ãé ããåã£ãŠãããŠãŒã¶ãŒãç¹å®ããã¢ãŠããªãŒãã®åªå é äœä»ãã«åœ¹ç«ã¡ãŸããäºæž¬å¯èœãªã¿ã€ã ã©ã€ã³ã«åŸããç§»è¡å šäœãéããŠã³ã³ã·ã¥ãŒããŒããµããŒãããããšã§ãããŒã ã¯ãªãã¡ã¯ã¿ãªã³ã°äœæ¥ã«ãã£ãŠäºæãã¬ãµãŒãã¹åæ¢ãçºçããªãããã«ããããšãã§ããŸãã
èªåå¥çŽãã¹ã
èªåã³ã³ãã©ã¯ããã¹ãã¯ã忣ã·ã¹ãã ã®æ§ã ãªã³ã³ããŒãã³ãããªãã¡ã¯ã¿ãªã³ã°äžã«åæãããã€ã³ã¿ãŒãã§ãŒã¹ã«æºæ ããŠããããšã確èªããããã®åŒ·åãªæ€èšŒææ³ã§ãããããã®ãã¹ãã¯ãäºåå®çŸ©ãããã³ã³ãã©ã¯ãã䜿çšããŠã³ã³ã·ã¥ãŒããŒãšãããã€ããŒéã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãã·ãã¥ã¬ãŒãããããã³ã³ããŒãã³ãã®å€æŽãä»ã®ã³ã³ããŒãã³ãã«éäºææ§ãååž°ãåŒãèµ·ãããªãããšãæ€èšŒããŸãã
å®éã«ã¯ãPactãSpring Cloud ContractãPostmanãªã©ã®å¥çŽãã¹ããã¬ãŒã ã¯ãŒã¯ã䜿çšããããšã§ãéçºè ã¯æåŸ ããããªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã®åäœãå®çŸ©ã§ããŸãããããã®å¥çŽã¯ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³äžã«ãã§ãã¯ããããããã¥ãŒãµãŒãšã³ã³ã·ã¥ãŒããŒã®äž¡æ¹ã®å®è£ ãåæãããŠããããšã確èªããŸããããã¯ãå®å®ããAPIãé²åããå ±æã©ã€ãã©ãªã®èåŸã«ãããµãŒãã¹ããªãã¡ã¯ã¿ãªã³ã°ããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã
ã©ã€ãã·ã¹ãã ã®ãªãã¡ã¯ã¿ãªã³ã°äžãã³ã³ãã©ã¯ããã¹ãã¯ã»ãŒããã£ããããšããŠæ©èœããŸãããªãã¡ã¯ã¿ãªã³ã°ãããã³ãŒããã€ã³ã¿ãŒãã§ãŒã¹ã®æåŸ å€ã«æºæ ããŠããããšããããŠã¬ã¬ã·ãŒå®è£ ãšäžŠè¡ããŠåäœãç¶ããããšãã§ããããšãæ€èšŒããŸããããã«ãããæ¬çªç°å¢ã«ããããšã©ãŒã®ãªã¹ã¯ãæå°éã«æããããããŒã ã¯ããè¿ éãã€èªä¿¡ãæã£ãŠå€æŽããªãªãŒã¹ã§ããããã«ãªããŸãã
å¥çŽãã¹ãã¯äžŠè¡éçºããµããŒãããŸããããŒã ãçžäºã«äŸåããã³ã³ããŒãã³ãã«åãçµãå Žåãå ±æå¥çŽã«ãã£ãŠé£æºãç¶æãããèª€è§£ãæžå°ããŸãããã®ããã«ãèªååã«ãã£ãŠã³ã©ãã¬ãŒã·ã§ã³ã匷åãããè€éãªç§»è¡äœæ¥ã«ãããŠãä¿¡é Œæ§ã確ä¿ãããŸãã
ã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ã®ã¢ããã°ã¬ãŒã
ã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ã®ã¢ããã°ã¬ãŒãã¯ãé·æçãªã¢ããªã±ãŒã·ã§ã³ã®ã¡ã³ããã³ã¹ãšãªãã¡ã¯ã¿ãªã³ã°ã«äžå¯æ¬ ãªèŠçŽ ã§ãããããã®ã¢ããããŒãã«ãããããã©ãŒãã³ã¹ã®åäžãã»ãã¥ãªãã£ä¿®æ£ãææ°æ©èœãå°å ¥ãããã³ãŒãããŒã¹ãç°¡çŽ åãããéçºè ãšã¯ã¹ããªãšã³ã¹ãåäžããããšããããããŸããããããç¶ç¶çãªãã©ãã£ãã¯ãçºçããæ¬çªç°å¢ã·ã¹ãã ã§ã¯ããµãŒãã¹åæ¢ãã©ã³ã¿ã€ã ãšã©ãŒãçºçãããã«å ±æã³ã³ããŒãã³ããã¢ããã°ã¬ãŒãããããšã¯ãéåžžã«å°é£ãªäœæ¥ã§ãã
ãŒãããŠã³ã¿ã€ã ã®ã¢ããã°ã¬ãŒãã«ã¯ã倿Žãåé¢ããè€æ°ããŒãžã§ã³ã®å ±åããµããŒãããæç¢ºãªããŒã«ããã¯ãã¹ãæäŸããæŠç¥ãå¿ èŠã§ããã©ã€ãã©ãªãŸãã¯ã©ã³ã¿ã€ã ã®å€æŽãè€æ°ã®ã¢ãžã¥ãŒã«ã«åœ±é¿ãäžããå Žåãæ®µéçã«ããŒã«ã¢ãŠããè¡ããåã¹ãããã§äºææ§ãæ€èšŒããããšãäžå¯æ¬ ã«ãªããŸããå®å šãªãã©ã¯ãã£ã¹ãšããŠã¯ãäŸåæ§æ³šå ¥ã©ãããŒãããŒãžã§ã³åºæã®ã¯ã©ã¹ããŒãã£ã³ã°ãã³ã³ããåããããããã€ã¡ã³ããªã©ãæããããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãJavaä»®æ³ãã·ã³ããã€ãã£ããã€ããªããŒããŒãããªã°ãããããŒã·ã¹ãã³ã¹ãå©çšããã·ã¹ãã ãªã©ãæ§ã ãªå®è¡ç°å¢ãã©ã€ãã¢ããã°ã¬ãŒããã©ã®ããã«ãµããŒãããŠãããã解説ããŸããããããã®ã¢ãããŒãã«ãããããŒã ã¯çšŒåæéãšæ©èœã®äžè²«æ§ãç¶æããªããããœãããŠã§ã¢ã¹ã¿ãã¯ã段éçã«æ¹åããããšãã§ããŸãã
ã¯ã©ã¹ããŒããŒåé¢ãã¯ãã㯠(JVM)
JavaããŒã¹ã®ç°å¢ã§ã¯ãã¯ã©ã¹ããŒããŒã¢ãŒããã¯ãã£ã«ãããã©ã€ãã©ãªã®è€æ°ã®ããŒãžã§ã³ãã¡ã¢ãªå ã«å ±åã§ããŸãããã®ãããJavaä»®æ³ãã·ã³ã¯ãç¹ã«ãµãŒãã¹ãåå¥ã«ãããã€ãŸãã¯åèµ·åã§ããã¢ãžã¥ãŒã«åã¢ããªã±ãŒã·ã§ã³ã«ãããŠãããŠã³ã¿ã€ã ãŒãã®ã©ã€ãã©ãªã¢ããã°ã¬ãŒãã«æé©ã§ãã
åé¢ãããã¯ã©ã¹ããŒããŒã䜿çšããããšã§ãåã¢ããªã±ãŒã·ã§ã³ã¢ãžã¥ãŒã«ã¯ä»ã®ã¢ãžã¥ãŒã«ã«åœ±é¿ãäžããããšãªããäŸåé¢ä¿ã®ç¬èªã®ããŒãžã§ã³ãããŒãã§ããŸããããã¯ãOSGiãªã©ã®ãã¬ãŒã ã¯ãŒã¯ããåã ã®ã¢ãžã¥ãŒã«ããµã³ãããã¯ã¹åããã«ã¹ã¿ã ã©ã³ã¿ã€ã ã³ã³ããã䜿çšããŠå®è£ ãããããšããããããŸããæ°ããããŒãžã§ã³ã®ã©ã€ãã©ãªãå°å ¥ããããšãå¥ã®ã¯ã©ã¹ããŒããŒã³ã³ããã¹ãã«ããŒãã§ãããããã¬ã¬ã·ãŒã€ã³ã¹ã¿ã³ã¹ã«è§Šããããšãªããå®ç°å¢ã§ã®æ€èšŒãå¯èœã«ãªããŸãã
ãµãŒãã¬ããã³ã³ãããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãå©çšããã¢ããªã±ãŒã·ã§ã³ããããããããã€ã¡ã³ãã®ã¡ã«ããºã ãæŽ»çšã§ããŸããã¢ãžã¥ãŒã«æ§ãèæ ®ããŠèšèšãããŠããå ŽåãWebã¢ããªã±ãŒã·ã§ã³ã¯ãäŸåé¢ä¿ãæŽæ°ããæ°ããWARãã¡ã€ã«ãŸãã¯JARãã¡ã€ã«ããããã€ãããµãŒããŒå šäœã§ã¯ãªã圱é¿ãåããã¢ãžã¥ãŒã«ã®ã¿ããªããŒãããããšã§æŽæ°ã§ããŸãã
ã¯ã©ã¹ã®ç«¶åãã¡ã¢ãªãªãŒã¯ãå€ãåç §ãªã©ã«é¢é£ããåé¡ãæ€åºããã«ã¯ãç£èŠãšãã°èšé²ãäžå¯æ¬ ã§ããæ°ããããŒãžã§ã³ãæ€èšŒããããšãå€ãã¯ã©ã¹ããŒããŒã€ã³ã¹ã¿ã³ã¹ã¯å®å šã«ã¢ã³ããŒããããå®éã®ãã©ãã£ãã¯ã«åœ±é¿ãäžããããšãªãã¢ããã°ã¬ãŒããå®äºã§ããŸãã
ãµã€ããã€ãµã€ã DLL èªã¿èŸŒã¿ (ãã€ãã£ã ã³ãŒã)
WindowsãLinuxäžã®CãŸãã¯C++ã¢ããªã±ãŒã·ã§ã³ãªã©ããã€ãã£ãã³ãŒãã«äŸåããç°å¢ã§ã¯ãå ±æã©ã€ãã©ãªã®ãªãã¡ã¯ã¿ãªã³ã°ãã¢ããã°ã¬ãŒãã«ã¯ç°ãªãæŠç¥ãå¿ èŠã§ãã广çãªæ¹æ³ã®äžã€ã¯ãDLLãŸãã¯å ±æãªããžã§ã¯ãã®ãµã€ããã€ãµã€ãããŒãã§ããããã¯ããã€ãã£ãã©ã€ãã©ãªã®è€æ°ã®ããŒãžã§ã³ãåæã«ã¡ã¢ãªã«ããŒãããç°ãªãã¢ããªã±ãŒã·ã§ã³ã³ã³ããŒãã³ãã«ãªã³ã¯ãããã®ã§ãã
ããã¯ãWindowsãªã©ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããµã€ããã€ãµã€ãã¢ã»ã³ããªããµããŒãããŠããããå¯èœã§ãããã¢ããªã±ãŒã·ã§ã³ã¯å®è¡æã«ç¹å®ã®ããŒãžã§ã³ã®DLLãåç §ã§ããŸããLinuxã·ã¹ãã ã¯ãåçãªã³ã«ãŒã®èšå®ãšrpathèšå®ã䜿çšããŠåæ§ã®æ©èœãæäŸããŸããæ éã«ãªã³ã¯ããããšã§ãã¬ã¬ã·ãŒã³ã³ããŒãã³ãã¯å ã®ãã€ããªã䜿çšãç¶ãããªãã¡ã¯ã¿ãªã³ã°ãããã¢ãžã¥ãŒã«ã¯æ°ããããŒãžã§ã³ãåŒã³åºããŸãã
ç§»è¡äžã¯ããµãŒãã¹åŒã³åºããæœè±¡åã¬ã€ã€ãŒãŸãã¯ã¢ããã¿ã«ã«ãŒãã£ã³ã°ãã䜿çšããã©ã€ãã©ãªããŒãžã§ã³ãéžæã§ããŸãããã®èšå®ã«ãããæ°ããã©ã€ãã©ãªã«å®å šã«ã³ãããããåã«ãå®éã®ããã©ãŒãã³ã¹ãšäºææ§ããã¹ãã§ããŸããäž¡æ¹ã®ããŒãžã§ã³ãååšãããããã«ãŒãã£ã³ã°ããžãã¯ã®èª¿æŽã®ã¿ã§ããŒã«ããã¯ãç°¡çŽ åãããŸãã
ãã®ææ³ã¯ãããã»ã¹å šäœã®åèµ·åãçŸå®çã§ãªããå®å šæ§ã極ããŠéèŠãªã·ã¹ãã ããªã¢ã«ã¿ã€ã ã·ã¹ãã ã§ç¹ã«åœ¹ç«ã¡ãŸããããã«ãããã¬ã¬ã·ãŒã€ã³ãã©ã¹ãã©ã¯ãã£ãšææ°ã®ã³ãŒãæ¹åãå®å šã«æ©æž¡ãããããšãã§ããŸãã
æ··åããŒãžã§ã³ã®å€èšèªæ°žç¶æ§
ããªã°ãããã»ããŒã·ã¹ãã³ã¹ãšã¯ãåäžã®ã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£å ã§è€æ°ã®ããŒã¿ã¹ãã¬ãŒãžæè¡ãŸãã¯ã¢ãã«ã䜿çšããããšãæããŸãããŒãããŠã³ã¿ã€ã ã»ãªãã¡ã¯ã¿ãªã³ã°ã®æèã§ã¯ã段éçãªç§»è¡ã®äžç°ãšããŠãç°ãªãã¹ããŒãããŒãžã§ã³ãŸãã¯ã¹ãã¬ãŒãžãšã³ãžã³ãäžæçã«å ±åãããããšãæå³ããŸãã
ORMãã¯ãšãªãã«ããŒãã·ãªã¢ã©ã€ãŒãŒã·ã§ã³ã©ã€ãã©ãªãªã©ãã¹ãã¬ãŒãžãšé£æºãããã¬ãŒã ã¯ãŒã¯ãã¢ããã°ã¬ãŒãããå Žåãããªã°ãããã»ããŒã·ã¹ã¿ã³ã¹ã«ãã£ãŠã¹ã ãŒãºãªç§»è¡ãå¯èœã«ãªããŸããäŸãã°ãã¢ããªã±ãŒã·ã§ã³ã¯åŸæ¥ã®ORMã䜿çšããŠãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãžã®æžã蟌ã¿ãç¶ç¶ããäžæ¹ã§ãæ°ããã¢ãžã¥ãŒã«ã¯åãããŒã¿ãããã¥ã¡ã³ãã¹ãã¢ã«æžã蟌ã¿ãæ€èšŒãè¡ããšãã£ãããšãå¯èœã§ãããããã¯ãäž¡æ¹ã®ããŒãžã§ã³ã§åãããã¯ãšã³ãã䜿çšããªãããã¹ããŒãããªããžã§ã¯ããããã³ã°ãç°ãªããšãã£ãç¶æ³ãèããããŸãã
ãã®ã¢ãããŒãã¯ãæ°ããããŒãžã§ã³ãæ¢åã®ããŒãžã§ã³ãšäžŠè¡ããŠãã¹ãã§ããããããªã¹ã¯ã軜æžããŸãããŸããã³ã³ããŒãã³ããåäžã®ããŒã¿ã¢ãã«ããåé¢ããããšã§ãããæè»ãªã¢ãŒããã¯ãã£ãžã®éãéããŸããããªã°ãããã»ããŒã·ã¹ã¿ã³ã¹ãå®è£ ããã«ã¯ãããŒã¿ã®äžè²«æ§ã確ä¿ããããã«ãæ éãªåæãšç£èŠãå¿ èŠã§ãã
æ°ããã¹ãã¬ãŒãžã¢ãã«ãŸãã¯ã©ã€ãã©ãªã®å®å®æ§ã蚌æããããšãã·ã¹ãã ã¯èªã¿åãããã³æžãèŸŒã¿æäœããªãã¡ã¯ã¿ãªã³ã°ããããã¹ã«å®å šã«ç§»è¡ã§ããŸãããã®åŸãã¬ã¬ã·ãŒãµããŒãã¯æ®µéçã«å»æ¢ãããããŠã³ã¿ã€ã ãªãã§ç§»è¡ãå®äºããŸãã
æ€èšŒãšããŒã«ããã¯æŠç¥
ã·ã¹ãã ãããã«æ éã«ãªãã¡ã¯ã¿ãªã³ã°ããŠããäºæãã¬åäœã®ãªã¹ã¯ã¯åžžã«ååšããŸããã ãããããå ç¢ãªæ€èšŒãšããŒã«ããã¯ã®ã¡ã«ããºã ã¯ããããããŒãããŠã³ã¿ã€ã æŠç¥ã«äžå¯æ¬ ãªèŠçŽ ã§ãããããã®ã¡ã«ããºã ã¯ã倿Žã®æ£ç¢ºæ§ã«å¯Ÿããä¿¡é Œæ§ãæäŸããå°å ¥åŸã«åé¡ãçºçããå Žåã§ãè¿ éãªåŸ©æ§ãå¯èœã«ããŸãã
æ€èšŒã«ã¯ãæ©èœçãªåäœã®æ£ç¢ºæ§ãšãã¬ã€ãã³ã·ããšã©ãŒçãã¡ã¢ãªäœ¿çšéãšãã£ãéæ©èœçãªææšã®å®å®æ§ã®äž¡æ¹ã®ç¢ºèªãå«ãŸããŸããäžæ¹ãããŒã«ããã¯æŠç¥ã¯ãäœãåé¡ãçºçããå Žåã«ããããã€ã¡ã³ããããŒã¿å€æŽãå®å šã«å ã«æ»ãããšã«éç¹ã眮ããŠããŸããããããçµã¿åãããããšã§ãã©ã€ããªãã¡ã¯ã¿ãªã³ã°ã®åãçµã¿ã«ãã£ãŠã·ã¹ãã ã®ä¿¡é Œæ§ãæãªãããªãããšãä¿èšŒãããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã³ãŒãã®ãããã€ããµãŒãã¹ã®çœ®ãæããã¹ããŒãã®å€æŽã«ãŸããã£ãŠæ©èœããèªåãã¹ããå¯èŠ³æž¬æ§ã®ãã©ã¯ãã£ã¹ããããŠããŒã«ããã¯ææ³ã玹ä»ããŸãããããã®æŠç¥ãç¶ç¶çããªããªãŒãã€ãã©ã€ã³ãã©ã³ã¿ã€ã ç£èŠãšçµ±åããããšã§ããªãã¡ã¯ã¿ãªã³ã°ã¯ç¹°ãè¿ãå®è¡å¯èœã§ãªã¹ã¯ã®äœãã¢ã¯ãã£ããã£ãžãšå€åããŸãã
èªåã«ããªã¢åæ
ã«ããªã¢åæãšã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãã©ãã£ãã¯ã®ããäžéšãæ°ããããŒãžã§ã³ã«ã«ãŒãã£ã³ã°ããæ®ãã®ãã©ãã£ãã¯ã¯å®å®ããŒãžã§ã³ãåŒãç¶ã䜿çšãããšããããããã€ã¡ã³ãæ€èšŒæŠç¥ã§ããèªåã«ããªã¢åæã¯ããã®ã³ã³ã»ãããããã«çºå±ããããªã¢ã«ã¿ã€ã ãã¬ã¡ããªãšäºåå®çŸ©ãããæååºæºãçšããŠãã«ããªã¢ã€ã³ã¹ã¿ã³ã¹ã®ããã©ãŒãã³ã¹ãšæ£ç¢ºæ§ãç¶ç¶çã«è©äŸ¡ããŸãã
ãã®ææ³ã§ã¯éåžžãã«ããªã¢ããŒãžã§ã³ãšããŒã¹ã©ã€ã³ããŒãžã§ã³ã®å¿çæéããšã©ãŒçãããžãã¹KPIãæ¯èŒããŸããKayentaãFlaggerãArgo Rolloutsãªã©ã®ããŒã«ã¯CI/CDãã€ãã©ã€ã³ãšçµ±åãããŠãããã©ã€ãã¡ããªã¯ã¹ã«åºã¥ããŠãªãªãŒã¹ãããã¢ãŒã·ã§ã³ãäžæåæ¢ããŸãã¯ããŒã«ããã¯ãããã©ããã®å€æãèªååããŸãã
èªååãããã«ããªã¢åæã«ãããåææ®µéã®ããŒã«ã¢ãŠãã«ãããæäœæ¥ã«ããæææ±ºå®ãäžèŠã«ãªããŸãã倿Žãå®éã®ãŠãŒã¶ãŒãã©ãã£ãã¯ã«äžãã圱é¿ãåæ ãããæž¬å®å¯èœã§å®¢èгçãªã·ã°ãã«ãæäŸããŸããããã¯ãèŠæš¡ãè€éãã®ããã«ããªãããã¯ã·ã§ã³æ®µéã§ååã«ãã¹ãã§ããªãã³ã³ããŒãã³ãããªãã¡ã¯ã¿ãªã³ã°ããéã«ç¹ã«åœ¹ç«ã¡ãŸãã
ã«ããªã¢åæã§ã¯ã圱é¿ãç¶ç¶çã«è©äŸ¡ããªããé²åºãå¶éããããšã§ãé害ã®ãããããã€ã¡ã³ãã®åœ±é¿ç¯å²ãå€§å¹ ã«çž®å°ããã©ã€ãæŽæ°ã«å¯Ÿããä¿¡é Œãæ§ç¯ããŸãã
åæãã©ã³ã¶ã¯ã·ã§ã³ç£èŠ
åæãã©ã³ã¶ã¯ã·ã§ã³ç£èŠã§ã¯ããŠãŒã¶ãŒãšã·ã¹ãã ã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã宿çã«ã·ãã¥ã¬ãŒãããéèŠãªæ©èœãåäœããŠããããšã確èªããŸãããããã®ã·ãã¥ã¬ãŒãããããã©ã³ã¶ã¯ã·ã§ã³ã¯ããã°ã€ã³ãããŒããã©ãŒã ã®éä¿¡ãããŒã¿ã®ååŸãšãã£ãå®éã®åäœããšãã¥ã¬ãŒãããæ¬çªç°å¢ã«ãããåžžæçšŒåã®QAã¬ã€ã€ãŒãšããŠæ©èœããŸãã
ãªãã¡ã¯ã¿ãªã³ã°ãããžã§ã¯ãã«ãããŠãåæã¢ãã¿ãªã³ã°ã¯ãããžãã¯ã®äžå ·åãäžå®å šãªé·ç§»ãç°å¢èšå®ã®èª€ããæ©æã«æ€åºããŸãããªãã¡ã¯ã¿ãªã³ã°ãããã³ã³ããŒãã³ããæåŸ éãã«å¿çããäžæµã®ã·ã¹ãã ãšæ£ãã飿ºããŠããããšãæ€èšŒããŸãããã©ã³ã¶ã¯ã·ã§ã³ã¯ã¹ã¯ãªããåããäºæž¬å¯èœã§ãããããçµæãç¶ç¶çã«æ¯èŒããããšã§ãååž°ãç¹å®ã§ããŸãã
PingdomãDynatraceãNew Relic Synthetics ãªã©ã®åæã¢ãã¿ãªã³ã°ããŒã«ã¯ãããã·ã¥ããŒããã¢ã©ãŒãã·ã¹ãã ãšçµ±åãããŠããŸãããããã®ããŒã«ã¯è©³çްãªãã°ãšããã©ãŒãã³ã¹ãã¬ãŒã¹ãæäŸããããããªãã¡ã¯ã¿ãªã³ã°ã®ç§»è¡ãã§ãŒãºã§åœ¹ç«ã¡ãŸãã
ãã®ææ³ã¯ãäžæããŠãŒã¶ãŒã«çŽæ¥åœ±é¿ãäžããããžãã¹ã¯ãªãã£ã«ã«ãªã¯ãŒã¯ãããŒã®æ€èšŒã«ç¹ã«åœ¹ç«ã¡ãŸãããªã¢ã«ã¿ã€ã ãã¬ã¡ããªãšã€ã³ã·ãã³ã察å¿ã®èªååãšçµã¿åãããããšã§ãåæç£èŠã¯ãŒãããŠã³ã¿ã€ã æŠç¥ã®ä¿¡é Œæ§ã匷åããŸãã
ç°åžžæ€åºãããå€
ç°åžžæ€åºãšã¯ãçµ±èšã¢ãã«ãæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ããŸãã¯ã«ãŒã«ããŒã¹ã®ã¢ã©ãŒããçšããŠãæ³å®ãããã·ã¹ãã åäœããã®éžè±ãç¹å®ããããšãæããŸãããªãã¡ã¯ã¿ãªã³ã°ã«ãããŠã¯ãç°åžžæ€åºã·ã¹ãã ã¯ãåºæ¬çãªãã§ãã¯ã§ã¯æ€åºã§ããªãå¯èœæ§ã®ããããšã©ãŒçã®äžæãç°åžžãªãã©ãã£ãã¯ãã¿ãŒã³ãããã©ãŒãã³ã¹ã®äœäžãšãã£ãäºæãã¬çµæãæ€ç¥ããããšãã§ããŸãã
ãããå€ã¯éåžžãå±¥æŽããŒã¿ã«åºã¥ããŠèšå®ãããŸããå¹³åã¬ã€ãã³ã·ãCPU䜿çšçãã¡ã¢ãªæ¶è²»éãªã©ã®ææšãèšç®ãããä¿¡é Œåºéãè¶ ãããšãã·ã¹ãã ã¯ãã®ã€ãã³ããæœåšçãªç°åžžãšããŠãã©ã°ä»ãããŸããDatadogãAlertManagerãæèŒããPrometheusãElastic APMãªã©ã®æ©æ¢°åŠç¿ããŒã¹ã®ãã©ãããã©ãŒã ã¯ãæéã®çµéãšãšãã«é©å¿ããã¢ã©ãŒãã®ç²ŸåºŠãåäžãããããšãã§ããŸãã
ãŒãããŠã³ã¿ã€ã ã®ã·ããªãªã§ã¯ããããã®ãããå€ã¯ã¬ãŒãã¬ãŒã«ãšããŠæ©èœããŸãããªãã¡ã¯ã¿ãªã³ã°ããããµãŒãã¹ãããããªãªã°ã¬ãã·ã§ã³ãåŒãèµ·ãããå Žåãã·ã¹ãã ã¯ãã©ãã£ãã¯ã®ããŒã«ã¢ãŠãã忢ããããèªåããŒã«ããã¯ãããªã¬ãŒããŸããéçºè ã¯ã次ã®ã¹ãããã«é²ãåã«ãå®å šãªã³ã³ããã¹ããšãã¬ã¡ããªã«åºã¥ããŠèª¿æ»ãè¡ãããšãã§ããŸãã
ç°åžžæ€åºã¯ãæšæºãã¹ãã§ã¯å®¹æã«å®çŸ©ã§ããªããšããžã±ãŒã¹ãè€éãªãã¿ãŒã³ãç¹å®ããããšã§ãä»ã®æ€èšŒææ³ãè£å®ããŸããæ¬çªç°å¢ã«ããããµã€ã¬ã³ãé害ã«å¯Ÿããé²åŸ¡ã«æ°ããªæ¬¡å ã远å ããŸãã
峿ããŒã«ããã¯ã¡ã«ããºã
峿ããŒã«ããã¯æ©èœã¯ããŒãããŠã³ã¿ã€ã éçšã«äžå¯æ¬ ã§ããæ°ç§ä»¥å ã«ã¢ããªã±ãŒã·ã§ã³ãŸãã¯ããŒã¿ã¢ãã«ã®æ¢ç¥ã®æ£åžžãªããŒãžã§ã³ã«æ»ãããšãã§ããããããªãã¡ã¯ã¿ãªã³ã°ãšã©ãŒããªã°ã¬ãã·ã§ã³ã®åœ±é¿ã軜æžã§ããŸãããããã®ã¡ã«ããºã ã¯å®å šã«èªååãããæåã«ããä»å ¥ãæå°éã«æããé²è¡äžã®ã»ãã·ã§ã³ããã©ã³ã¶ã¯ã·ã§ã³ãäžæããªãããã«ããå¿ èŠããããŸãã
ã³ãŒããããã€ã¡ã³ãã§ã¯ãäžå€ã¢ãŒãã£ãã¡ã¯ããšãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¢ãã«ãã»ãŒç¬æã®ããŒã«ããã¯ããµããŒãããŸãããã®èšå®ã§ã¯ãå€ãããŒãžã§ã³ã¯åé€ãããã䞊åç°å¢ã«ãã®ãŸãŸæ®ããŸãããã©ãã£ãã¯ã¯ãããŒããã©ã³ãµãŒã®åæ§æãDNSæŽæ°ã«ãã£ãŠç¬æã«å ã«æ»ãããšãã§ããŸããã³ã³ããåãããç°å¢ã§ã¯ãKubernetesãªã©ã®ãªãŒã±ã¹ãã¬ãŒã¿ãŒã1ã€ã®ã³ãã³ãã§ä»¥åã®ãããå®çŸ©ãšæ§æã«ããŒã«ããã¯ã§ããŸãã
ããŒã¿ã¹ããŒãã®å€æŽã®å ŽåãããŒã«ããã¯ã«ã¯åŸæ¹äºææ§ã®ããæ§é ãšããŒãžã§ã³ç®¡çãããã¢ã¯ã»ã¹ã¬ã€ã€ãŒã®ç¶æãå«ãŸããŸããç Žå£çãªæäœãé©çšãããŠããªãå Žåãã·ã¹ãã ã¯æ°ããèŠçŽ ãç¡èŠããã¢ã¯ã»ã¹ãã¿ãŒã³ãå ã«æ»ãããšãã§ããŸãã
峿ããŒã«ããã¯ã«ãããéçšãªã¹ã¯ã軜æžããããªãã¡ã¯ã¿ãªã³ã°ã®å°å ¥ã«ãããä¿¡é Œæ§ãåäžããŸãããŸãããªã«ããªãå®å šãã€äºæž¬å¯èœãªæäœã«ããããšã§ãå®éšãšã€ãããŒã·ã§ã³ããµããŒãããŸãã
çµç¹ãæ¯æŽãããã®
æè¡çãªåè¶æ§ã ãã§ã¯ããŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ãæåãããã«ã¯äžååã§ããããŒã ãæ¬çªç°å¢ã«é »ç¹ãã€å®å šã«å€æŽãåæ ã§ããããã«ããã«ã¯ãçµç¹çãªæºåäœå¶ã決å®çãªåœ¹å²ãæãããŸãã广çãªãªãã¡ã¯ã¿ãªã³ã°ã®åãçµã¿ã¯ãåçåãããããã»ã¹ãæç¢ºã«å®çŸ©ããã圹å²ãå調çãªã¯ãŒã¯ãããŒããããŠã·ã¹ãã ã®ä¿¡é Œæ§ã«å¯Ÿãã責任ã®å ±æã«ããã£ãŠããŸãã
ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãšãããã€ã¡ã³ãïŒCI/CDïŒãå ±æããŒã«ããããŠå¯èŠ³æž¬æ§ãã©ãããã©ãŒã ã¯ãèªååãããäžè²«æ§ã®ãããããã€ã¡ã³ãã®åºç€ãæ§ç¯ããã®ã«åœ¹ç«ã¡ãŸãããããããããã®ããŒã«ã®æå¹æŽ»çšã¯ãããŒã ã®æ§é ãæåçãªèŠç¯ã«ãã£ãŠå·Šå³ãããããšããããããŸãããšã³ãžãã¢ãªã³ã°çµç¹ã¯ãããŒã ããµãŒãã¹ããšã³ãããŒãšã³ãã§ææãããã¡ã€ã³ã®å¢çãè¶ããŠé£æºãã倿Žãå¿ èŠã«ãªã£ãéã«è¿ éã«å¯Ÿå¿ã§ããããæ¯æŽããå¿ èŠããããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãã©ã€ãã·ã¹ãã ã®é²åãæ¯ããæ§é çããã³æç¶ãçãªèŠçŽ ã«ã€ããŠèå¯ããŸããããã«ã¯ããããã€ã¡ã³ãèªååããã€ãã©ã€ã³ã¬ããã³ã¹ããªãã¡ã¯ã¿ãªã³ã°ãã¬ã€ããã¯ãéšé暪æçãªãªãŒããŒã·ããã¢ãã«ãªã©ãå«ãŸããŸãããããã®çµç¹çèŠçŽ ãæŽåãããŠããã°ããªãã¡ã¯ã¿ãªã³ã°ã¯é«ãªã¹ã¯ãªäŸå€ã§ã¯ãªããéçºã«ãããæ¥åžžçãªäžéšãšãªããŸãã
CI/CD ãã€ãã©ã€ã³ã®èŠä»¶
å ç¢ãªCI/CDãã€ãã©ã€ã³ã¯ããŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ã®åãçµã¿ã®åºç€ãšãªããŸãããã«ãããã¹ãããããã€ã¡ã³ãã®ããã»ã¹ãèªååããããšã§ã倿Žãäžè²«æ§ãä¿ã¡ãé å»¶ãæå°éã«æããŠé ä¿¡ãããããšãä¿èšŒããŸãããŒãããŠã³ã¿ã€ã ãå®çŸããã«ã¯ããã€ãã©ã€ã³ã¯æ®µéçãªããŒã«ã¢ãŠãã䞊åå®è¡ãæ€èšŒãã§ãã¯ãã€ã³ãããµããŒãããå¿ èŠããããŸãã
äž»ãªæ©èœã«ã¯ããã«ãææç©ã®äžå€æ§ãç°å¢ã®æŽåæ§ãArgoCDãSpinnakerãGitHub Actionsãªã©ã®ãããã€ã¡ã³ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã«ãšã®çµ±åãªã©ããããŸãããã€ãã©ã€ã³ã¯ãã«ãŒã°ãªãŒã³ãã«ããªã¢ãA/Bãã¹ããšãã£ããããã€ã¡ã³ãã容æã«ããããŒã ã圱é¿åºŠãç£èŠããªãããã©ãã£ãã¯ã段éçã«ç§»è¡ã§ããããã«ããŸãã
åãã€ãã©ã€ã³ã¹ããŒãžã«ã¯ããããã€æåçãããŒã«ããã¯é »åºŠããããã€åŸã®ããã©ãŒãã³ã¹ãèšæž¬ããããã®ãã¬ã¡ããªãçµã¿èŸŒãå¿ èŠããããŸããã²ãŒããã§ãã¯ã¯ããŠããããã¹ããçµ±åãã¹ããã³ã³ãã©ã¯ãæ€èšŒã次ã®ã¹ããŒãžã«é²ãåã«åæ Œããããšã確èªããããšã§ãå質ã匷åã§ããŸãã
CI/CDãã€ãã©ã€ã³ã¯ããããã€ã¡ã³ãããã»ã¹ããšã³ãããŒãšã³ãã§èªååããããšã§ã人çãšã©ãŒãæå°éã«æããããŒã ã®èªç¥è² è·ã軜æžããŸããæ¬çªç°å¢ã§å®å šã«ãªãã¡ã¯ã¿ãªã³ã°ããããã«å¿ èŠãªä¿¡é Œæ§ãšã¹ããŒããæäŸããŸãã
ãŒãããŠã³ã¿ã€ã å±éæ€èšŒãã¹ã
ãŒãããŠã³ã¿ã€ã ã®å°å ¥åãã«ç¹å¥ã«èšèšãããæ€èšŒãã¹ãã¯ãã©ã€ãã¢ããããŒãäžããã³ã¢ããããŒãåŸã«ã·ã¹ãã ãæ£ããåäœããããšã確èªããããã«äžå¯æ¬ ã§ãããããã®ãã¹ãã¯ããŠãŒã¶ãŒã»ãã·ã§ã³ã®ç¶æãããŒã¿ã®æŽåæ§ãäžäœäºææ§ããããŠå€åããã³ã³ããŒãã³ãéã®ãªã¢ã«ã¿ã€ã åäœã«éç¹ã眮ããŠããŸãã
ãã¹ãã¹ã€ãŒãã«ã¯ããŠãŒã¶ãŒãå€ãã³ã³ããŒãã³ããšæ°ããã³ã³ããŒãã³ãã®äž¡æ¹ãåæã«æäœããã·ããªãªãå«ããå¿ èŠããããŸããããã«ã¯ãå€ãããŒãžã§ã³ã§ã»ãã·ã§ã³ãéå§ããæ°ããããŒãžã§ã³ã§ãããå®äºããã·ããªãªãå«ãŸããå ŽåããããŸããããã«ãããããŒã¿ããŒã¹ããã£ãã·ã¥ãªã©ã®å ±æãªãœãŒã¹ãç§»è¡äžãäžè²«æ§ãšå¿çæ§ãç¶æããããšãä¿èšŒãããŸãã
è² è·ãã¹ããšåæå®è¡ãã¹ããæçã§ããæ¬çªç°å¢ã«è¿ãç¶æ³ãã·ãã¥ã¬ãŒãããããšã§ãã³ãŒã眮æäžã«ã·ã¹ãã ã蚱容å¯èœãªããã©ãŒãã³ã¹ãç¶æã§ãããã©ãããæ€èšŒã§ããŸããååž°ãã¹ãã¯ãç¹ã«ãªãã¡ã¯ã¿ãªã³ã°ã®åœ±é¿ãåããéèŠãªããžãã¹ãããŒããã¹ãŠç¶²çŸ ããå¿ èŠããããŸãã
æ€èšŒãã¹ãã¯CI/CDãã€ãã©ã€ã³ã«çµ±åããæ¬çªç°å¢ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãåæ ããã¹ããŒãžã³ã°ç°å¢ãŸãã¯ãã¬ãããã¯ã·ã§ã³ç°å¢ã§å®è¡ããã®ãæé©ã§ããé«ããã¹ãã«ãã¬ããžãšå®éã®ãã©ãã£ãã¯ã·ãã¥ã¬ãŒã·ã§ã³ãåãããããã®ãã¹ãã¯ãå®å šã§äžæã®ãªããããã€ã¡ã³ãã®ããã®èªååãããã²ãŒããšããŠæ©èœããŸãã
ã©ã€ããªãã¡ã¯ã¿ãªã³ã°ã®ããã®ãã€ãã©ã€ã³ã¹ããŒãžã²ãŒã
ã¹ããŒãžã²ãŒãã¯ãCI/CDãã€ãã©ã€ã³å ã®å¶åŸ¡ãã€ã³ãã§ããã倿Žã次ã®ãã§ãŒãºã«é²ããåã«æ¡ä»¶ãé©çšããŸããã©ã€ããªãã¡ã¯ã¿ãªã³ã°ã®ã·ããªãªã§ã¯ãã¹ããŒãžã²ãŒãã¯æ§é åãããæ€èšŒãæäŸããå®å šã§ãã¹ãæžã¿ã®å€æŽã®ã¿ãæ¬çªç°å¢ã«å°éããããšãä¿èšŒããŸãã
ã¹ããŒãžã²ãŒãã®äŸãšããŠã¯ãèªåãã¹ãã¹ã€ãŒãã®ééãã«ããªã¢ãããã€åæã®æåã倿Žã¬ãã¥ãŒããã»ã¹ããã®æ¿èªãç°åžžã®ãªããã¬ã¡ããªã®ç¢ºèªãªã©ãæããããŸãããããã®ã²ãŒãã¯ãJenkinsãGitLab CIãå°çšã®ããã°ã¬ãã·ãããªããªãŒãã©ãããã©ãŒã ãªã©ã®ããŒã«ãçšããŠå®è£ ã§ããŸãã
广çãªæŠç¥ã®äžã€ã¯ãã¹ããŒãžã²ãŒãã®åºæºã«æ¬äŒŒãã©ã³ã¶ã¯ã·ã§ã³ãšæ¬äŒŒãŠãŒã¶ãŒãå«ããããšã§ãããããã®ãã§ãã¯ã¯å®éã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãã·ãã¥ã¬ãŒãããæ°æ©èœããªãã¡ã¯ã¿ãªã³ã°ãããã³ã³ããŒãã³ãã®å®å®æ§ã«é¢ããæ©æã®ã·ã°ãã«ãæäŸããŸãã
ã¹ããŒãžã²ãŒãã¯ããŒã«ããã¯ã®æ±ºå®ããµããŒãããŸããã¡ããªã¯ã¹ã®ãããå€ãè¶ ããå ŽåããŸãã¯ã²ãŒãã倱æããå Žåããã€ãã©ã€ã³ã¯èªåããŒã«ããã¯ãããªã¬ãŒãããã以äžã®ããã¢ãŒã·ã§ã³ã忢ããŸãããã®å®å šçã«ãããååž°ãé²ããé«å質ãªå€æŽã®ã¿ããŠãŒã¶ãŒã«å±ãããã«ãªããŸãã
ãã€ãã©ã€ã³ ã¹ããŒãž ã²ãŒãã¯ãæ€èšŒãããªããªãŒ ã¯ãŒã¯ãããŒã«çµã¿èŸŒãããšã§ãæåã«ããç£èŠãæžããããªãã¡ã¯ã¿ãªã³ã°ãå®å šã«å±éãããŠãããšããæž¬å®å¯èœãªä¿èšŒãæäŸããŸãã
ããŒã 調æŽãããã³ã«
å€§èŠæš¡ã·ã¹ãã ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ã¯ãçžââäºã«äŸåãããµãŒãã¹ã«åãçµãè€æ°ã®ããŒã ã®é£æºãæ±ããããããšããããããŸããæç¢ºãªèª¿æŽãããã³ã«ããªããã°ãããããäœæ¥ã¯ç«¶åãäœæ¥ã®éè€ããããã¯æ¬çªç°å¢ã®äžå®å®åãšãã£ããªã¹ã¯ã䌎ããŸããæç¢ºã«å®çŸ©ãããããŒã ã³ãã¥ãã±ãŒã·ã§ã³ã¢ãã«ã¯ããªãã¡ã¯ã¿ãªã³ã°ã®æŽåæ§ãäžè²«æ§ããããŠã€ã³ã·ãã³ãããªãŒãå®çŸããŸãã
广çãªèª¿æŽã¯ãã¿ã€ã ã©ã€ã³ãã·ã¹ãã ã®äŸåé¢ä¿ããªã¹ã¯ã¬ãã«ãããŒã«ããã¯æŠç¥ãæŠèª¬ãããªãã¡ã¯ã¿ãªã³ã°èšç»ãå ±æããããšããå§ãŸããŸãããã®èšç»ã¯ãåå ããŒã å šå¡ãå ±åã§ã¬ãã¥ãŒããé »ç¹ã«æŽæ°ããå¿ èŠããããŸããConfluenceãJiraãNotionãªã©ã®èª¿æŽããŒã«ã¯ã远跡ãšããã¥ã¡ã³ãåãäžå åã§ããŸãã
æææš©ã¢ãã«ãæç¢ºã§ãªããã°ãªããŸãããåãµãŒãã¹ãŸãã¯ãã¡ã€ã³ã«ã¯ã倿Žã®å®è£ ãšæ€èšŒãæ åœããæå®ã®ãªãŒããŒãå¿ èŠã§ããå ±æã©ã€ãã©ãªãAPIã«ã¯ãããŒãžã§ã³ç®¡çãäŸåããŒã ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ã調æŽããã¹ãã¥ã¯ãŒããå¿ èŠã§ãã
宿çãªåæäŒè°ãèªåã¢ã©ãŒãããããŠå ±æãããå¯èŠ³æž¬æ§ããã·ã¥ããŒãã¯ãå šå¡ã®è¶³äžŠã¿ãæããã®ã«åœ¹ç«ã¡ãŸããããé«åºŠãªçµç¹ã§ã¯ãããŒã ã¯ç€Ÿå ãªãŒãã³ãœãŒã¹ã¢ãã«ãæ¡çšãã倿Žã¯å¢çãè¶ããŠå ±åã§ææ¡ã»ã¬ãã¥ãŒãããŸãã
ã³ãã¥ãã±ãŒã·ã§ã³ãšæææš©ãå¶åºŠåããããšã§ãçµç¹ã¯å€§èŠæš¡ãªãªãã¡ã¯ã¿ãªã³ã°ãããå®å šãã€äºæž¬å¯èœãªãã®ã«ããããšãã§ããŸãã
ç¹æ®ãªã±ãŒã¹: ã¡ã€ã³ãã¬ãŒã ãšã¬ã¬ã·ãŒãªãã¡ã¯ã¿ãªã³ã°
ã¬ã¬ã·ãŒã·ã¹ãã ãç¹ã«ã¡ã€ã³ãã¬ãŒã ã¢ããªã±ãŒã·ã§ã³ã®ãªãã¡ã¯ã¿ãªã³ã°ã¯ãçŸä»£ã®ã¯ã©ãŠããã€ãã£ãã¢ãŒããã¯ãã£ã§ã¯ééããªãç¹æã®èª²é¡ããããããŸãããããã®ã·ã¹ãã ã¯ãããã·ã§ã³ã¯ãªãã£ã«ã«ãªããžãã¹ããã»ã¹ããµããŒãããCOBOLãCICSãIMSãVSAMãšãã£ãç¹æ®ãªãã¯ãããžãŒã«äŸåããããããžã§ãã®ã¹ã±ãžã¥ãŒã«ãã¢ããªã·ãã¯ãªãã©ã³ã¶ã¯ã·ã§ã³ãã³ãã©ãŒãšæ·±ã絡ã¿åã£ãŠããããšããããããŸããããããç°å¢ã§ã®ããŠã³ã¿ã€ã ã¯ã財åäžãŸãã¯éçšäžã®æ·±å»ãªåœ±é¿ãããããå¯èœæ§ããããŸãã
ã¡ã€ã³ãã¬ãŒã ç°å¢ã§ãŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ãå®çŸããã«ã¯ãã¢ããã€ãŒãŒã·ã§ã³ãšã·ã¹ãã ã®æŽåæ§ã®æ éãªãã©ã³ã¹ãæ±ããããŸããI/OæäœãããŒã¿æ§é ããããŠå¯çµåã€ã³ã¿ãŒãã§ãŒã¹ã«é¢ãã峿 Œãªå¶çŽã«å¯Ÿå¿ããæè¡ãæ±ããããŸããããã«ãéåžžã¯å€éãµã€ã¯ã«ã§å®è¡ããããããã¯ãŒã¯ããŒãã¯ãããŒã¿ã®ç²ŸåºŠããžã§ãã®é åºãæãªãããšãªããåæ§ç¯ãŸãã¯åé€ããå¿ èŠããããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãç¶ç¶çãªãµãŒãã¹ãç¶æããªããã¬ã¬ã·ãŒã¢ããªã±ãŒã·ã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ãã¢ããã€ãºããããã®å®è·µçãªææ³ã«çŠç¹ãåœãŠãŸããç¹ã«ã¡ã€ã³ãã¬ãŒã ãã©ãããã©ãŒã äžã§å®è¡ãããã·ã¹ãã ã«é©çšããããåçæŽæ°ãã¹ããŒãé²åãããã°ã©ã 眮æã®æŠç¥ã«çŠç¹ãåœãŠãŸãã
CICS ããã³ IMS ããã°ã©ã ã®æŽæ°
CICSãšIMSã¯ãå€ãã®ã¡ã€ã³ãã¬ãŒã ã»ã¢ãŒããã¯ãã£ã«ãããäžå€®ãã©ã³ã¶ã¯ã·ã§ã³åŠçã·ã¹ãã ã§ãããããã®ãã©ãããã©ãŒã ã¯ã24æé365æ¥çšŒåãç¶ããå¿ èŠã®ããéè¡ãä¿éºãç©æµã·ã¹ãã ãæ¯ããŠããŸãããããã®ç°å¢ã§ç®¡çãããããã°ã©ã ã®ããžãã¯ããªãã¡ã¯ã¿ãªã³ã°ããå Žåããšã³ãžãã¢ã¯ã¢ã¯ãã£ããªãã©ã³ã¶ã¯ã·ã§ã³ãçµäºãããããäžæµã®ã·ã¹ãã ãäžæããããããããšãªããã³ãŒããæŽæ°ããå¿ èŠããããŸãã
äžè¬çãªã¢ãããŒãã®äžã€ã¯ãåçããã°ã©ã newcopyã䜿çšããããšã§ããããã«ããããªãŒãžã§ã³ãåèµ·åããããšãªããæŽæ°ãããããã°ã©ã ããžãã¯ãCICSã«åããŒãã§ããŸããéçºè ã¯æŽæ°ãããã¢ãžã¥ãŒã«ãã³ã³ãã€ã«ããŠãããã€ããnewcopyã³ãã³ããçºè¡ããŠã¡ã¢ãªå ã®ããã°ã©ã ããªãã¬ãã·ã¥ããŸããã¢ã¯ãã£ããªãã©ã³ã¶ã¯ã·ã§ã³ã¯å®äºãããŸã§ä»¥åã®ããŒãžã§ã³ã䜿çšãç¶ããæ°ãããªã¯ãšã¹ãã¯ãªãã¡ã¯ã¿ãªã³ã°ãããããŒãžã§ã³ã§åŠçãããŸãã
ããäžã€ã®éèŠãªæè¡ã¯ãããŒãžã§ã³ç®¡çãããããã°ã©ã åœåã§ããã¢ããªã±ãŒã·ã§ã³ã®æ°æ§ããŒãžã§ã³ã¯ç°ãªãèå¥åã§å ±åããã«ãŒãã£ã³ã°ããžãã¯ã«ãã£ãŠã©ã¡ããåŒã³åºãããããæ±ºå®ãããŸããããã«ãããæ®µéçãªãã¹ããæ©èœã®ãã©ã°ä»ãããããŠå¿ èŠã«å¿ããŠè¿ éãªããŒã«ããã¯ãå¯èœã«ãªããŸãã
ãããã®æŠç¥ãæ£ããå®è£ ãããšãCICS ããã³ IMS ããã°ã©ã ãããŠã³ã¿ã€ã ãªãã§æ®µéçã«é²åãããããšãã§ãã倧éã®ãã©ã³ã¶ã¯ã·ã§ã³ ãããŒãäžæããä¿è·ã§ããŸãã
倿Žäžã®å ±æ VSAM ãã¡ã€ã« ã¢ã¯ã»ã¹
VSAMïŒä»®æ³èšæ¶ã¢ã¯ã»ã¹æ¹åŒïŒãã¡ã€ã«ã¯ãã¡ã€ã³ãã¬ãŒã ç°å¢ã§ãªã³ã©ã€ã³åŠçããããåŠççšã®æ§é åããŒã¿ãæ ŒçŽããããã«åºã䜿çšãããŠããŸããå ±æVSAMãã¡ã€ã«ãæ±ãã¢ããªã±ãŒã·ã§ã³ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ãããŠã¯ãããŒã¿ã®äžè²«æ§ãç¶æããããšãæãéèŠã§ãããã¡ã€ã«ã®ç Žæãã¹ããŒãã®äžäžèŽã¯ãè€æ°ã®ã·ã¹ãã ã«åæã«åœ±é¿ãåãŒãå¯èœæ§ããããŸãã
ã©ã€ãã¢ããã°ã¬ãŒãããµããŒãããæŠç¥ã®äžã€ã¯ãåãVSAMãã¡ã€ã«å ã«è€æ°ã®ã¬ã³ãŒã圢åŒãå®çŸ©ããããšã§ããããã«ãããã¬ã¬ã·ãŒããã°ã©ã ãšãªãã¡ã¯ã¿ãªã³ã°ãããããã°ã©ã ã®äž¡æ¹ããããããã®ããŒã¿åœ¢åŒãç«¶åããããšãªãèªã¿æžãã§ããããã«ãªããŸããéçºè ã¯ãCOBOLã®REDEFINESå¥ãŸãã¯ã«ã¹ã¿ã ããžãã¯ã䜿çšããŠãããããŒãã£ãŒã«ãããã©ã°ã«åºã¥ããŠããŒãžã§ã³ãåºå¥ããŸãã
ãã¡ã€ã«ã®ããã¯ãšã¢ã¯ã»ã¹å¶åŸ¡ãæ éã«ç®¡çããå¿ èŠããããŸãã代æ¿ã€ã³ããã¯ã¹ãã¬ã³ãŒãã¬ãã«ã®ããã¯ãšãã£ãæè¡ã¯ã䞊åããã»ã¹ãäºãã«å¹²æžããªãããã«ããã®ã«åœ¹ç«ã¡ãŸããå¯èœã§ããã°ãã¯ããŒã³åãããVSAMããŒã¿ãå«ãã¹ããŒãžã³ã°ç°å¢ããã¹ãå°å ¥ã«äœ¿çšãããã®åŸã段éçã«æ¬çªç°å¢ãã¡ã€ã«ãšçµ±åããŠããããšãã§ããŸãã
ç£èŠããŒã«ã¯ãèªã¿åãããã³æžãèŸŒã¿æäœã远跡ããé·ç§»äžã®ç°åžžãæ€åºããå¿ èŠããããŸãããããã®å®å šå¯Ÿçãè¬ããããšã§ãã¢ããªã±ãŒã·ã§ã³ããžãã¯ãšãã®èåŸã«ããã¬ã³ãŒãæ§é ãé²åããŠããå ±æVSAMã¢ã¯ã»ã¹ãç¶æã§ããŸãã
ããããŠã£ã³ããŠé€å»æŠç¥
åŸæ¥ã®ã¡ã€ã³ãã¬ãŒã ç°å¢ã¯ãäºåã«å®çŸ©ããããŠã£ã³ããŠïŒéåžžã¯å€éãŸãã¯ãã©ãã£ãã¯ã®å°ãªãæé垯ïŒã§å®è¡ãããããããžã§ãã«å€§ããäŸåããŠããŸãããããã®ãžã§ãã¯ã課éãã¬ããŒãçæãããŒã¿éçŽãã¢ãŒã«ã€ããšãã£ãéèŠãªã¿ã¹ã¯ãå®è¡ããŸããããããããããŠã£ã³ããŠãžã®äŸåã¯ã倿ŽããŠã£ã³ããŠãéããŠããæã«ããå±éã§ããªãããããŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ã®ããã«ããã¯ãšãªããŸãã
ææ°ã®æŠç¥ã§ã¯ãå€§èŠæš¡ãªã¢ããªã·ãã¯ãžã§ãããã€ãã³ãé§ååã®å°èŠæš¡ãªãã€ã¯ããããã«åå²ããããšã§ãããããŠã£ã³ããŠãåæžãŸãã¯æå°åããããšãç®æããŠããŸãããããã®ãã€ã¯ããããã¯ãæéééããã¡ã€ã«ã®å°çæ°ããŸãã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®ãããå€ã«åºã¥ããŠããªã¬ãŒããã1æ¥ãéããŠãã³ããããã³ã°æ¹åŒã§åŠçãããŸãã
ããäžã€ã®ã¢ãããŒãã¯ããµãŒãã¹ã©ãããŒã«ãããžã§ãåé¢ã§ããåŸæ¥ã®ãããããžãã¯ã¯ãéåæåŒã³åºããŸãã¯APIãšããŠå ¬éå¯èœãªãµãŒãã¹ã€ã³ã¿ãŒãã§ãŒã¹å ã«ã«ãã»ã«åãããŸããããã«ããããããã¹ãããããåãããŒã¿ãœãŒã¹ãšåºåãçµ±åãããªã¢ã«ã¿ã€ã ãµãŒãã¹ã«æ®µéçã«çœ®ãæããããšãã§ããŸãã
äžæã®ãªãåŠçãå®çŸããããã«ããã§ãã¯ãã€ã³ããšãªã¹ã¿ãŒãã®ã¡ã«ããºã ãç¶æãŸãã¯åå®è£ ããå¿ èŠããããŸããåºå®ããããµã€ã¯ã«ããç¶ç¶çãªããŒã¿ãããŒã«ç§»è¡ããããšã§ãçµç¹ã¯ãã€ã§ãæŽæ°ãé©çšã§ããããã«ãªãã以åã¯ãããã«äŸåããŠããã·ã¹ãã ã«çã®ãŒãããŠã³ã¿ã€ã åäœãå®çŸããŸãã
ããŒã¿ããŒã¹çµã¿èŸŒã¿ããžãã¯ã®ãªãã¡ã¯ã¿ãªã³ã°
ããŒã¿ããŒã¹çµã¿èŸŒã¿ããžãã¯ã¯ãé·ãã«ãããã¬ã¬ã·ãŒãšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã®åºç€èŠçŽ ãšããŠæ©èœããŠããŸãããCOBOLãPL/Iããã°ã©ã å ã®ã¹ãã¢ãããã·ãŒãžã£ãããªã¬ãŒããã¥ãŒããããŠçµã¿èŸŒã¿SQLã¯ãæ€èšŒãèšç®ãããŒã¿ãšã³ãªããã¡ã³ããšãã£ãéèŠãªããžãã¹ãªãã¬ãŒã·ã§ã³ãå®è¡ããããšããããããŸãããããã®ã³ã³ããŒãã³ããããŠã³ã¿ã€ã ãªãã§ãªãã¡ã¯ã¿ãªã³ã°ããã«ã¯ãæ éãªããŒãžã§ã³ç®¡çããã³ããããã³ã°ãªã¹ããŒãé²åããããŠã¬ã¬ã·ãŒã³ãŒããã¹ãšæŽæ°ãããã³ãŒããã¹éã®ãã¥ã¢ã«ã¢ãŒãäºææ§ãäžå¯æ¬ ã§ãã
æå€§ã®èª²é¡ã®äžã€ã¯ãããŒã¿ããŒã¹ã«çµã¿èŸŒãŸããããžãã¯ãéåžžãè€æ°ã®ã¢ããªã±ãŒã·ã§ã³ã«åæã«åœ±é¿ãäžããããšã§ããäŸãã°ãã¹ãã¢ãããã·ãŒãžã£ã®å€æŽã¯ããªã¢ã«ã¿ã€ã åŠçãšããããžã§ãã®äž¡æ¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãããã®ããããªãã¡ã¯ã¿ãªã³ã°ãè¡ãéã«ã¯ããã¹ãŠã®äŸåã·ã¹ãã ã«ãããåŸæ¹äºææ§ãšãã¹ãã«ãã¬ããžãèæ ®ããå¿ èŠããããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ããµãŒãã¹ã忢ãããããšãªãããŒã¿ããŒã¹çµã¿èŸŒã¿ããžãã¯ãé²åãããããã®ã³ã¢ãã¯ããã¯ã解説ããŸãããŸããç§»è¡äžã«æ©èœçãªåäœãšããŒã¿ã®æŽåæ§ãç¶æããªãããæç¶ãåããžãã¯ãããä¿å®æ§ã®é«ããµãŒãã¹æåæ§é ã«ãªãã¡ã¯ã¿ãªã³ã°ããæ¹æ³ã«ã€ããŠã説æããŸãã
DB2 ã«ãããã¹ãã¢ã ããã·ãŒãžã£ã®ããŒãžã§ã³ç®¡ç
DB2ã®ã¹ãã¢ãããã·ãŒãžã£ã¯ãããžãã¹ããžãã¯ãããŒã¿ããŒã¹ã«çŽæ¥ã«ãã»ã«åããããã«é »ç¹ã«äœ¿çšãããã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®è€éããæå°éã«æããããã©ãŒãã³ã¹ãæé©åããŸãããããããããã®ããã·ãŒãžã£ã¯ãã¢ããªã±ãŒã·ã§ã³ãšããŒã¿ã¹ãã¢éã®å¯çµåã®èŠå ã«ããªããŸããã¢ããã€ãŒãŒã·ã§ã³ãæé©åã®ããã«ã¹ãã¢ãããã·ãŒãžã£ããªãã¡ã¯ã¿ãªã³ã°ããéã¯ãã³ã³ã·ã¥ãŒããŒã«æªåœ±é¿ãäžãããããµãŒãã¹ã®äžæãåŒãèµ·ããããããããšãªãè¡ãå¿ èŠããããŸãã
ããŒãžã§ã³ç®¡çãéµãšãªãæŠç¥ã§ããæ¢åã®æé ã倿Žããã®ã§ã¯ãªããæ¬¡ã®ãããªäžæã®ååãŸãã¯ããŒãžã§ã³ãµãã£ãã¯ã¹ãæã€æ°ããããŒãžã§ã³ãäœæããŸãã calculate_interest_v2äž¡æ¹ã®ããŒãžã§ã³ãããŒã¿ããŒã¹å
ã«å
±åããã¢ããªã±ãŒã·ã§ã³ã¯å°å
¥æã«æ°ããããžãã¯ããªããã€ã³ã§ããŸããããã«ãããæ®µéçãªå°å
¥ãå®ç°å¢ã§ã®æ€èšŒããããŠåé¡çºçæã®è¿
éãªããŒã«ããã¯ãå¯èœã«ãªããŸãã
ç§»è¡ã調æŽããããã«ããµãŒãã¹ã³ã³ãã©ã¯ããŸãã¯ã€ã³ã¿ãŒãã§ãŒã¹å±€ã¯ãã©ã®ããŒãžã§ã³ã®ããã·ãŒãžã£ãåŒã³åºãããããæœè±¡åã§ããŸããæ©èœãã©ã°ãŸãã¯æ§æãã°ã«ã䜿çšããŠããªã¯ãšã¹ããåçã«ã«ãŒãã£ã³ã°ããããšãã§ããŸãããã°ãšãã¬ã¡ããªã¯äœ¿çšãã¿ãŒã³ã远跡ããå€ãããŒãžã§ã³ãå®å šã«å»æ¢ã§ããææãç¹å®ããå¿ èŠããããŸãã
ããŒãžã§ã³ç®¡çãããæé ã¯é²åçãªå€æŽããµããŒãããããŒã ãç¶ç¶çãªãµãŒãã¹ãç¶æããªããããŒã¿ããŒã¹ ããžãã¯ãæé©åããã³ææ°åã§ããããã«ããŸãã
å¯çšæ§ãç¶æããªãããªã³ã©ã€ã³åç·šæ
REORGæäœã¯ãDB2ãã¯ãããšããã¡ã€ã³ãã¬ãŒã ã»ããŒã¿ããŒã¹ã«ãããŠã衚æ§é ã®æé©åãæçåãããé åã®åå©çšããããŠããã©ãŒãã³ã¹ã®ç¶æã«äžå¯æ¬ ã§ããããããåŸæ¥ã®REORGã§ã¯è¡šãžã®æä»ã¢ã¯ã»ã¹ãå¿ èŠãšãªããããã¢ããªã±ãŒã·ã§ã³ããªãã©ã€ã³ã«ãªãããšããããããŸããç¶ç¶çãªçšŒåãæ±ããããã·ã¹ãã ã§ã¯ãããã¯å€§ããªèª²é¡ãšãªããŸãã
DB2ã®æ°ããããŒãžã§ã³ã§å°å ¥ããããªã³ã©ã€ã³REORGæè¡ã«ãããã¢ããªã±ãŒã·ã§ã³ã衚ã®èªã¿æžããç¶ç¶ããŠããéãã衚ã®åç·šæãããã¯ã°ã©ãŠã³ãã§å®è¡ã§ããŸãããããã®æäœã¯éåžžãæ®µéçã«å®è¡ãããŸããããŒã¿ã®ã·ã£ããŠã³ããŒãäœæãããåç·šæãããåŸãæçµçãªã«ãããªãŒããŒæã«æå°éã®ããã¯ã§ã¹ã¯ããã€ã³ãããŸãã
ãªã³ã©ã€ã³REORGã®å®è¡äžã¯ãã¢ããªã±ãŒã·ã§ã³ã¯è»œåŸ®ãªã¬ã€ãã³ã·ã®æ¥å¢ã«å¯Ÿå¿ããæä»ããŒãã«ããã¯ãåé¿ããããã«èšèšããå¿ èŠããããŸããDBAã¯ã·ã¹ãã ã«ã¿ãã°ã¯ãšãªã䜿çšããŠé²è¡ç¶æ³ãç£èŠããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ã®ããç«¶åãã¢ã¯ã»ã¹æéã®å»¶é·ããã§ãã¯ããŸãã
ãªã³ã©ã€ã³REORGãã¢ã¯ãã£ããã£ã®å°ãªãæé垯ã«ã¹ã±ãžã¥ãŒã«ããã¢ã©ãŒãããªã·ãŒãšçµã¿åãããããšã§ãäžæãæå°éã«æããããšãã§ããŸãããã®ã¢ãããŒãã¯ãå€§èŠæš¡ãªãªãã¡ã¯ã¿ãªã³ã°äœæ¥ã«ãããŠç¹ã«å¹æçã§ãããå¯çšæ§ã«åœ±é¿ãäžããããšãªãæ§é çãªæ¹åãæ®µéçã«é²ããããšãã§ããŸãã
COBOL ã³ããŒããã¯æ¡åŒµå¥çŽ
COBOLã³ããŒããã¯ã¯ãè€æ°ã®ããã°ã©ã ããžã§ãã¹ãããéã§å ±æãããããŒã¿ã¬ã³ãŒãã®æ§é ãå®çŸ©ããŸããããŒã¿äº€æã®ããã®ã€ã³ã¿ãŒãã§ãŒã¹å®çŸ©ãšããŠæ©èœããå€ãã®å ŽåããããåŠçãããŒãšãªã³ã©ã€ã³åŠçãããŒã®äž¡æ¹ã«æ·±ãçµ±åãããŠããŸããã³ããŒããã¯ã®æ§é ãå°ãã§ã倿Žãããšãæ°åã®ããã°ã©ã ã«æ³¢å广ãçããå¯èœæ§ããããŸããå®å šã«ãªãã¡ã¯ã¿ãªã³ã°ãè¡ãããã«ãæ¡åŒµã»ã³ã³ãã©ã¯ãã»ãã¿ãŒã³ãäžè¬çã«çšããããŸãã
æ¡åŒµãã§ãŒãºã§ã¯ãæ¢åã®ãã£ãŒã«ãã®äœçœ®ãšé·ããç¶æããªãããæ°ãããã£ãŒã«ããã³ããŒããã¯ã«è¿œå ãããŸããæ°ãããã£ãŒã«ãã䜿çšããããã°ã©ã ã¯ããã«ã¢ã¯ã»ã¹ã§ããŸãããããããç¡èŠããåŸæ¥ã®ããã°ã©ã ã¯åŒãç¶ãæ©èœããŸãããã®ãã§ãŒãºã«ãããåæ¹äºææ§ã確ä¿ãããŸãã
ãã¹ãŠã®äŸåã·ã¹ãã ãæ°ããæ§é ããµããŒãããããã«æŽæ°ãããåŸãå¥çŽãã§ãŒãºãéå§ãããŸããäžèŠã«ãªã£ãã¬ã¬ã·ãŒãã£ãŒã«ãã¯å»æ¢ãããæçµçã«ã¯åé€ãããå¯èœæ§ããããŸããå¥çŽãã§ãŒãºã¯ããã¹ãŠã®ã³ã³ã·ã¥ãŒããŒãç§»è¡ããããšã確èªããäžã§ãæ éã«å®è¡ãããŸãã
ããŒã¿ã¬ã³ãŒãæ€èšŒããŒã«ãèªåãã¹ããã¬ãŒã ã¯ãŒã¯ãªã©ã®ããŒã«ã¯ã倿Žã«ãã£ãŠããŒã¿ãç Žæããããã¬ã€ã¢ãŠãã®äžäžèŽãçãããããªãããšã確èªããã®ã«åœ¹ç«ã¡ãŸããæ¡åŒµã³ã³ãã©ã¯ããã¿ãŒã³ãé©çšããããšã§ãCOBOLã³ããŒããã¯ãã¢ããã€ãºããªãããããŠã³ã¿ã€ã ãªãã§çšŒåäžã®ã¢ããªã±ãŒã·ã§ã³ã®ãµããŒããç¶ç¶ã§ããŸãã
ã¢ãã¿ãªã³ã°ãšå¯èŠ³æž¬æ§
广çãªç£èŠãšå¯èŠ³æž¬æ§ã¯ããŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ãå®å šã«å®è¡ããäžã§äžå¯æ¬ ã§ãããããã®ãã©ã¯ãã£ã¹ã¯ãåé¡ã®æ€åºãæ³å®ãããåäœã®ç¢ºèªã倿Žã®ãããã€åŸã®ããã©ãŒãã³ã¹æ€èšŒã«å¿ èŠãªãªã¢ã«ã¿ã€ã ã®å¯èŠæ§ãæäŸããŸããå ç¢ãªå¯èŠ³æž¬æ§ããªããã°ãããŒã ã¯æéã®äžã§äœæ¥ãé²ãããµã€ã¬ã³ãé害ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®äœäžã®ãªã¹ã¯ãé«ãŸããŸãã
ç£èŠã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãšã¢ããªã±ãŒã·ã§ã³ã®å¥å šæ§ãææ¡ããããã«ãã·ã¹ãã ã¡ããªã¯ã¹ããã°ããã¬ãŒã¹ã®åéã«éç¹ã眮ããŠããŸããå¯èŠ³æž¬æ§ã¯ããã«äžæ©é²ãã§ãããäºåã®ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãªãã«ã·ã¹ãã ã®åäœã«é¢ããæ°ããªçåãããŒã ãæ¢ããããã«ãªããŸããããããçµã¿åãããããšã§ããªãã¡ã¯ã¿ãªã³ã°äžã«çºçããç°åžžã®æ€åºã蚺æããããŠå埩ãå¯èœã«ãªããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãæ°æ§ã®åäœã®æ¯èŒãããŒãžã§ã³éã®ãã©ã³ã¶ã¯ã·ã§ã³ã®è¿œè·¡ãã·ã¹ãã éã®ããŒã¿æŽåæ§ã®æ€èšŒãè¡ãããã®ææ³ã«ã€ããŠè§£èª¬ããŸãã匷åãªå¯èŠ³æž¬æ§ãã©ã¯ãã£ã¹ã確ç«ããããšã§ãããŒã ã¯æå°éã®äžæã§ç¶ç¶çãªæ¹åãè¡ãããã«å¿ èŠãªæŽå¯ãšèªä¿¡ãç²åŸã§ããŸãã
å·®åã¢ãã¿ãªã³ã°
å·®åç£èŠãšã¯ãæ¬çªç°å¢ã§åæã«å®è¡ãããæ°æ§ã®ã³ãŒããã¹ã®åäœãæ¯èŒããããšã§ããããã¯ããªãã¡ã¯ã¿ãªã³ã°åŸã®ããŒãžã§ã³ãå®ç°å¢äžã§ã¬ã¬ã·ãŒããŒãžã§ã³ãšå šãåãåäœããããã©ãããå³åº§ã«ãã£ãŒãããã¯ã§ããããããŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ã«ãããŠéèŠãªææ³ã§ãã
ãã®æ¯èŒã«ã¯ãå¿çæéãã¡ã¢ãªäœ¿çšéããšã©ãŒçãšãã£ãããã©ãŒãã³ã¹ææšãå«ãŸããŸãããŸããã³ã³ããŒãžã§ã³çããã©ã³ã¶ã¯ã·ã§ã³çµæãããŒã¿æŽåæ§ãã§ãã¯ãšãã£ãããžãã¹ã¬ãã«ã®ææšãå«ãŸããŸãããããã®ããŒã¿ã䞊è¡ããŠåéããããšã§ãããŒã ã¯ããžãã¯ãšã©ãŒãããã©ãŒãã³ã¹ã®äœäžã瀺ãå·®ç°ãæ£ç¢ºã«ç¹å®ã§ããŸãã
å·®åç£èŠãå®è£ ããããã«ãã·ã¹ãã ã§ã¯äž¡æ¹ã®ããŒãžã§ã³ãžã®ãªã¯ãšã¹ããè€è£œãããããã©ãã£ãã¯ãµã³ããªã³ã°ã䜿çšãããããããšãäžè¬çã§ãããã®åŸãGrafanaãPrometheusãSplunkãªã©ã®ãã°ããã³ã¡ããªã¯ã¹ããŒã«ãèšå®ããŠãåŸåããªãŒããŒã¬ã€è¡šç€ºããç°åžžãç¹å®ããããšãã§ããŸããæ°ããããŒãžã§ã³ãæ³å®ãããåºæºããéžè±ããå Žåã«ã¯ãã¢ã©ãŒããããªã¬ãŒã§ããŸãã
å·®åç£èŠããåŸãããæŽå¯ã¯ãäžå®å šãªãªãã¡ã¯ã¿ãªã³ã°ãæ¬ é¥ã®ãããªãã¡ã¯ã¿ãªã³ã°ã®ãªã¹ã¯ã軜æžããŸããããã«ãããããŒã«ã¢ãŠããããŒã«ããã¯ããããŠãããªãæé©åã«é¢ããããŒã¿ã«åºã¥ããæææ±ºå®ãå¯èœã«ãªããŸãã
ããŒãžã§ã³éã®åæ£ãã¬ãŒã¹
忣ãã¬ãŒã¹ã¯ãã·ã¹ãã å ã®æ§ã ãªãµãŒãã¹ãã³ã³ããŒãã³ããééãããªã¯ãšã¹ãã®ã©ã€ããµã€ã¯ã«ã远跡ããŸãããªãã¡ã¯ã¿ãªã³ã°ãè¡ãéãç¹ã«ãã€ã¯ããµãŒãã¹ãã€ãã³ãããªãã³ã¢ãŒããã¯ãã£ã«ãããŠã¯ããªã¯ãšã¹ããã¬ã¬ã·ãŒã³ã³ããŒãã³ããšæŽæ°ãããã³ã³ããŒãã³ãã®äž¡æ¹ã§ã©ã®ããã«åŠçãããããèŠèŠåããããã«ããã¬ãŒã¹ã¯äžå¯æ¬ ã§ãã
ãã¬ãŒã¹ã«ã¯ã詳现ãªã¿ã€ãã³ã°æ å ±ããµãŒãã¹åŒã³åºãéå±€ãã³ã³ããã¹ãäŒæãå«ãŸããŸããããã«ããããšã³ãžãã¢ã¯ã©ã®ã³ã³ããŒãã³ããã¬ã€ãã³ã·ãåŒãèµ·ããããšã©ãŒãçæããäºæããªãçµæãçæããŠããããç¹å®ã§ããŸããç§»è¡æã«ã¯ãæ§ããŒãžã§ã³ãšæ°ããŒãžã§ã³ã®ãã¬ãŒã¹ãæ¯èŒããããšã§ãããžãã¯ãããŒãäŸåé¢ä¿ãå¯äœçšã®äžè²«æ§ã確ä¿ã§ããŸãã
OpenTelemetryãJaegerãZipkin ãšãã£ãææ°ã®ãã¬ãŒã¹ããŒã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã©ã€ãã©ãªãšçµ±åããããšã§ã詳现ãªå¯èŠæ§ãæäŸããŸãããããã®ããŒã«ã¯ãå€ãã®å Žåããããã€ã¡ã³ãããŒãžã§ã³ã«åºã¥ããã¿ã°ä»ããšãã£ã«ã¿ãªã³ã°ããµããŒãããŠãããããŒã ã¯å®éã®ããŒã«ã¢ãŠãäžã«ç¹å®ã®ãã©ãã£ãã¯ãã¿ãŒã³ãåé¢ããŠåæã§ããŸãã
ãã¬ãŒã¹æ©èœã¯ãåé¡ãçºèŠãããå Žåã®æ ¹æ¬åå åæããµããŒãããŸãããšã³ãžãã¢ã¯ãªã¯ãšã¹ãã®çµè·¯å šäœã远跡ããåäœãéžè±ããå Žæãšçç±ãç¹å®ã§ããŸããããã«ããã解決ãŸã§ã®æéãççž®ããããªãã¡ã¯ã¿ãªã³ã°çµæã®ä¿¡é Œæ§ãåäžããŸãã
ããžãã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®çžé¢é¢ä¿
ããžãã¹ãã©ã³ã¶ã¯ã·ã§ã³çžé¢ã¯ãæè¡çãªãã¬ã¡ããªããæ³šæåŠçã顧客ãªã³ããŒãã£ã³ã°ãæ¯æãæ¿èªãšãã£ãéèŠãªããžãã¹ã€ãã³ãã«çµã³ä»ããŸãããã®å¯èŠ³æž¬æ§ã¬ã€ã€ãŒã¯ã倿ŽããŠãŒã¶ãŒãå©å®³é¢ä¿è ã«ãšã£ãŠéèŠãªçµæã«åœ±é¿ãäžãããã©ãããæããã«ããããããªãã¡ã¯ã¿ãªã³ã°ã«ãããŠéåžžã«éèŠã§ãã
ãªãã¡ã¯ã¿ãªã³ã°ãããã·ã¹ãã ã§ã¯ãå€éšçãªåäœã¯ãã®ãŸãŸã«ãå éšçãªãã©ã³ã¶ã¯ã·ã§ã³åŠçæ¹æ³ã倿Žãããå ŽåããããŸããã¬ã¬ã·ãŒã·ã¹ãã ãšæ°èŠã·ã¹ãã ã®äž¡æ¹ã§ããžãã¹ãã©ã³ã¶ã¯ã·ã§ã³ã远跡ããããšã§ãè«æ±æžçºè¡ãããªã·ãŒæ¿èªãšãã£ãçµæãæ£ç¢ºã§ããããšãæ€èšŒã§ããŸãã
ããã¯éåžžãåãã©ã³ã¶ã¯ã·ã§ã³ã«ãµãŒãã¹ãã³ã³ããŒãã³ãéã§ä¿æãããäžæã®èå¥åãã¿ã°ä»ãããããšã§å®çŸãããŸããç£èŠãã©ãããã©ãŒã ã¯ããã©ã³ã¶ã¯ã·ã§ã³IDããšã«æè¡ææšãéçŽããåŠçæéã倱æçãäžæµãžã®åœ±é¿ãäžå çã«ææ¡ã§ããããã«ããŸãã
ããžãã¹ãã©ã³ã¶ã¯ã·ã§ã³ããã·ã¥ããŒãã¯ãããžãã¹ããžãã¯ã«çŽã¥ãããªã¢ã«ã¿ã€ã ã®å¥å šæ§ææšãéçšããŒã ã«æäŸããŸãããªãã¡ã¯ã¿ãªã³ã°äžã¯ããããã®ããã·ã¥ããŒããæåãŸãã¯å€±æã®æç¢ºãªã·ã°ãã«ãæäŸããŸãããŸããæè¡ç³»ä»¥å€ã®é¢ä¿è ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ããµããŒããããµãŒãã¹ã®ç¶ç¶æ§ãç¶æãããŠããããšãä¿èšŒããŸãã
ããŒã¿æŽåæ§æ€èšŒ
ãŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°äžã¯ãããŒã¿ã®æŽåæ§ãç¶æããããšãäžå¯æ¬ ã§ããã¢ããªã±ãŒã·ã§ã³ã®åäœã¯æ£ããèŠããŠããããŒã¿ã®èªã¿åããæžã蟌ã¿ãè§£éã«ããã埮åŠãªäžæŽåãäžæµã§åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãããããã®åé¡ã¯ããã«ã¯é¡åšåããªããããããŸããããæ°æ¥ãŸãã¯æ°é±éåŸã«é¡åšåããåæãã¬ããŒãããŸãã¯ãŠãŒã¶ãŒæäœã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
ããŒã¿æŽåæ§æ€èšŒãšã¯ãæ°ããã·ã¹ãã ãŸãã¯ããŒãžã§ã³ãã以åã®ã·ã¹ãã ãšåãåºåãçæããåäžã®å€ãä¿åããããŒã¿ããŒã¹ãšæ©èœçã«åçã®æ¹æ³ã§ããåãããããšãæ€èšŒããããšã§ããããã¯ãç¹ã«ã¹ããŒãã®å€æŽããã£ãŒã«ããããã³ã°ããŸãã¯ãšã³ã³ãŒã圢åŒãæŽæ°ãããå Žåã«ã¯ãè€éã«ãªãå¯èœæ§ããããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ããªãã¡ã¯ã¿ãªã³ã°ããã·ã¹ãã ãããŒã¿ãæ£ç¢ºã«åŠçããŠãããã©ãããæ€èšŒããããã®æŠç¥ã玹ä»ããŸãããã§ãã¯ãµã ã®æ¯èŒãåªçæ§ã®æ€èšŒãã€ãã³ããœãŒã¹ã«ããç£æ»ãšãã£ãææ³ã¯ãããããäžäžèŽãæ©æã«çºèŠãããããã€åŸãã·ã¹ãã ã®åäœãäºæž¬å¯èœã§ä¿¡é Œæ§ã®é«ããã®ãšãªãããã«èšèšãããŠããŸãã
ã·ã¹ãã éã®ãã§ãã¯ãµã æ€èšŒ
ãã§ãã¯ãµã ã¯ãã·ã¹ãã éã®ããŒã¿æŽåæ§ãæ€èšŒããããã®ãã·ã³ãã«ã§å¹æçãªæ¹æ³ãæäŸããŸããã¬ã³ãŒããŸãã¯ãã©ã³ã¶ã¯ã·ã§ã³ãã€ããŒãããããã·ã¥å€ãçæããããšã§ãã¬ã¬ã·ãŒã³ã³ããŒãã³ãã®åºåãšãªãã¡ã¯ã¿ãªã³ã°ãããããŒãžã§ã³ã®åºåãäžèŽãããã©ãããæ¯èŒã§ããŸãããã§ãã¯ãµã ã®äžäžèŽã¯ãåŠçã®äžäžèŽã匷ã瀺åããŸãã
ãã®ææ³ã¯ãç§»è¡äžã«æ°æ§äž¡æ¹ã®ã·ã¹ãã ã«äºéæžã蟌ã¿ãè¡ãå Žåã«ç¹ã«æå¹ã§ããåã·ã¹ãã ã§ããŒã¿ã®æžã蟌ã¿ãŸãã¯å€æãè¡ã£ãåŸãSHA-256ãMD5ãªã©ã®ã¢ã«ãŽãªãºã ãçšããŠãã§ãã¯ãµã ãèšç®ãããŸãããããã®ãã§ãã¯ãµã ã¯æ¯èŒãšã³ãžã³ã«ä¿åãŸãã¯ã¹ããªãŒãã³ã°ãããäžäžèŽãç¹å®ãããŠåæã®ããã«èšé²ãããŸãã
ãã§ãã¯ãµã ã¯è»œéã§ãããŒã¿ããŒã¹ã®æŽæ°ãAPIã¬ã¹ãã³ã¹ãããããšã¯ã¹ããŒããªã©ããã€ãã©ã€ã³ã®è€æ°ã®ãã€ã³ãã«é©çšã§ããŸããå®éã®ããŒã¿ã¯å ¬éããããæå·åãããç°å¢ãæ©å¯æ§ã®é«ãã·ã¹ãã å šäœã§äœ¿çšã§ããŸãã
ãã§ãã¯ãµã æ€èšŒã CI/CD ãŸãã¯ç£èŠãã€ãã©ã€ã³ã«çµ±åãããšãããŒã¿äžè²«æ§ãã§ãã¯ãåžžã«ãªãªãŒã¹ ããã»ã¹ã®äžéšãšãªãããªãã¡ã¯ã¿ãªã³ã°ã®æ£ç¢ºæ§ã«å¯Ÿããä¿¡é Œæ§ãåäžããŸãã
ãšã³ãããŒãšã³ãã®åªçæ§ãã§ãã¯
åªçæ§ãšã¯ãåãæäœãç¹°ãè¿ãå®è¡ããå Žåã«åãçµæãåŸãããããšãä¿èšŒããç¹æ§ã§ãããªãã¡ã¯ã¿ãªã³ã°ã«ãããŠãã³ãŒããã¹å šäœã§åªçæ§ãæ€èšŒããããšã§ãåè©Šè¡æ¡ä»¶ããã§ã€ã«ãªãŒããŒã·ããªãªäžã§ãããŒã¿å€æããã©ã³ã¶ã¯ã·ã§ã³ã確å®ã«åäœããããšã確èªã§ããããã«ãªããŸãã
æ¯æãããŠãŒã¶ãŒã¢ã«ãŠã³ããåšåº«ãšãã£ãéèŠãªããŒã¿ãæ±ããµãŒãã¹ããªãã¡ã¯ã¿ãªã³ã°ããå Žåãéçºè ã¯éè€ãæ¬ èœãç ŽæãçºçããŠããªãããšãæ€èšŒããå¿ èŠããããŸããããã«ã¯ãã¬ã¬ã·ãŒã·ã¹ãã ãšæ°èŠã·ã¹ãã ã®äž¡æ¹ã§å詊è¡ãéšåçãªé害ãããŒã«ããã¯ãã·ãã¥ã¬ãŒã·ã§ã³ããæçµçãªããŒã¿ç¶æ ãæåŸ éãã§ããããšã確èªããããšãå«ãŸããŸãã
åªçæ§ã匷åããææ³ãšããŠã¯ãäžæã®æäœèå¥åãã·ãŒã±ã³ã¹ããŒã¯ã³ãããŒã¿ããŒã¹å¶çŽãªã©ãæããããŸãããã¹ãããŒãã¹ã¯ãéè€ãããªã¯ãšã¹ãããªãã¬ã€ããããªã¯ãšã¹ããæ¿å ¥ããããšã§ãã·ã¹ãã ã®å¿çæ§ã枬å®ã§ããŸããç£èŠããã·ã¥ããŒãã§ã¯ãéè€ããŒãäºæããªãæŽæ°ãnullå€ãªã©ã®ç°åžžããã€ã©ã€ã衚瀺ããå¿ èŠããããŸãã
åªçæ§ãã§ãã¯ã¯ãéåæéä¿¡ãå詊è¡ãé »ç¹ã«è¡ããã忣ã·ã¹ãã ããã€ã¯ããµãŒãã¹ã«ãããŠç¹ã«æçšã§ããã©ã€ããªãã¡ã¯ã¿ãªã³ã°äžããã³ãªãã¡ã¯ã¿ãªã³ã°åŸã®ä¿¡é Œæ§ãšåçŸæ§ã®é«ãåäœã®åŒ·åºãªåºç€ãæäŸããŸãã
倿Žç£æ»ã®ããã®ã€ãã³ããœãŒã·ã³ã°
ã€ãã³ããœãŒã·ã³ã°ã¯ãææ°ã®ã·ã¹ãã ç¶æ ã®ã¿ãä¿åããã®ã§ã¯ãªãããã¹ãŠã®ç¶æ å€åãäžé£ã®ã€ãã³ããšããŠèšé²ããŸãããã®ã¢ãããŒãã¯ããªãã¡ã¯ã¿ãªã³ã°äžã«ããŒã¿ã®äžè²«æ§ãç£æ»ããã³æ€èšŒããããã®åŒ·åãªææ®µãšãªããŸããã¹ãããã·ã§ãããæ¯èŒãã代ããã«ãããŒã ã¯ç¶æ é·ç§»ããã»ã¹ã®ãã¹ãŠã®ã¹ããããåçããŠåæã§ããŸãã
ã€ãã³ããœãŒã·ã³ã°ã䜿çšããã·ã¹ãã ã§ã¯ããŠãŒã¶ãŒæŽæ°ãéèååŒãåšåº«å€æŽãšãã£ãããããã¢ã¯ã·ã§ã³ãåå¥ã®ã€ãã³ããšããŠèšé²ãããŸãããããã®ã€ãã³ãã¯ãã°ãŸãã¯ãžã£ãŒãã«ã«å ¬éãããã¬ã¬ã·ãŒã³ã³ããŒãã³ããšæ°èŠã³ã³ããŒãã³ãã®äž¡æ¹ã§å©çšã§ããŸããçµæãšããŠåŸãããç¶æ ãã€ãã³ãã®è»è·¡ãæ¯èŒããããšã§ãéçºè ã¯äž¡æ¹ã®å®è£ ãåãçµæããããããã©ãããæ€èšŒã§ããŸãã
ã€ãã³ããªãã¬ã€ã¯ãããŒã«ããã¯ãã·ãã¥ã¬ãŒã·ã§ã³ããããŠãã现ããªãããã°ãå¯èœã«ããŸãããªãã¡ã¯ã¿ãªã³ã°äžã«ããšã³ãžãã¢ã¯ããŒã¿å€æŽãã©ã®ããã«å°å ¥ãããããæ£ç¢ºã«è¿œè·¡ã§ãããããåŸæ¥ã®ç¶æ ããŒã¹ã®ã·ã¹ãã ã§ã¯æäŸã§ããªãå¯èŠæ§ãåŸãããŸãã
ã·ã¹ãã ã§ã€ãã³ã ãœãŒã·ã³ã°ããã€ãã£ãã«äœ¿çšããªãå Žåã§ãããªãã¡ã¯ã¿ãªã³ã°äžã«è»œéã®ã€ãã³ã ãã° ã¬ã€ã€ãŒãå°å ¥ãããšããã¬ãŒãµããªãã£ãå€§å¹ ã«åäžããããŒã¿ã®äžè²«æ§ãç¶æãããŸãã
ãŒãããŠã³ã¿ã€ã ãäžå¯èœãªå Žå
ãŒãããŠã³ã¿ã€ã ã¯å€ãã®çµç¹ãç®æãç®æšã§ãããå®çŸãé£ããç¶æ³ãååšããŸããã¬ã¬ã·ãŒã·ã¹ãã ãžã®äŸåé¢ä¿ããã©ã³ã¶ã¯ã·ã§ã³ã®çµåãå¯èŠ³æž¬æ§ã®æ¬ åŠããããã¯å€æŽäžå¯èœãªãµãŒãããŒãã£ã·ã¹ãã ãªã©ã«ããããµãŒãã¹ã®äžæçãªäžæãäœåãªããããå¯èœæ§ããããŸãããã®ãããªã·ããªãªã§ã¯ããŠãŒã¶ãŒãžã®åœ±é¿ãæå°éã«æããå¶åŸ¡ããããã°ã¬ãŒãæã®ã·ã¹ãã ã®å®å®æ§ãç¶æããããšã«éç¹ã眮ãããŸãã
æåããæŠç¥ã¯ãéææ§ã®ããèšç»ãé¢ä¿è ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ããããŠãªã¹ã¯ã軜æžããæè¡çã¡ã«ããºã ããå§ãŸããŸããèšç»çãªçž®éã¢ãããŒãã«ã¯ãèªã¿åãå°çšã¢ãŒããéåæãã¥ãŒã€ã³ã°ãäžæçãªåç·é®æãªã©ãå«ãŸããŸãããããã®æ¹æ³ã¯ã容éãæ©èœãäœäžããç¶æ ã§ããµãŒãã¹ã®å¯çšæ§ãç¶æããªãããæéã皌ãããšãã§ããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãå¶åŸ¡ãããããŠã³ã¿ã€ã ã管çããããã®æŠç¥ã«ã€ããŠèª¬æããŸããæè¡çããã³çµç¹çãªææ³ã®äž¡æ¹ãç¶²çŸ ããæ©æŠãšãŠãŒã¶ãŒã®ãã©ã¹ãã¬ãŒã·ã§ã³ã軜æžããŸããé©åãªæºåãè¡ãã°ãããŠã³ã¿ã€ã ããŒãã§ã¯ãªãã¢ããããŒãã§ããã¹ã ãŒãºãã€äºæž¬éãã«å®è¡ã§ããŸãã
èšç»çãªå£åæŠç¥
èšç»ççž®éãšã¯ãã¡ã³ããã³ã¹ããããã€ã¡ã³ãæéäžã«ãå¶åŸ¡ãããæ¹æ³ã§ã·ã¹ãã ã®æ©èœãæå³çã«çž®å°ããææ³ã§ãããã®ã¢ãããŒãã¯ãå ±æã€ã³ãã©ã¹ãã©ã¯ãã£ãå¯çµåãå€ããããã³ã«ãªã©ã®å³ããå¶çŽã«ãããŒãããŠã³ã¿ã€ã ãå®çŸã§ããªãå Žåã«ç¹ã«æå¹ã§ãã
æã广çãªææ³ã®äžã€ã¯ãã·ã¹ãã ã®äžéšãèªã¿åãå°çšã¢ãŒãã«ããããšã§ããäŸãã°ãããŒã¿ããŒã¹ã¹ããŒãã®ç§»è¡äžã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã¯æŽæ°ã鲿¢ããªããæ å ±ã衚瀺ãç¶ããããšãã§ãããããã¯ãŒã¯ãããŒã®äžæããšã©ãŒã¡ãã»ãŒãžã®è¡šç€ºãé²ãããšãã§ããŸãã
ãã¥ãŒããŒã¹ã®ãããã¡ãªã³ã°ãå¥ã®æ¹æ³ã§ããæžãèŸŒã¿æäœã¯ã¡ãã»ãŒãžãã¥ãŒãŸãã¯ãã°ã«äžæçã«ä¿æãããã·ã¹ãã ãå®å šãªæ©èœãåéãããšå床å®è¡ãããŸããããã«ããããŠãŒã¶ãŒå ¥åã¯ä¿æããããªãã¡ã¯ã¿ãªã³ã°ããã»ã¹ã¯åé¢ãããŸãã
ã¯ã©ã€ã¢ã³ããµã€ãã®ãã£ãã·ã¥æ¡åŒµæ©èœã¯ã以åã«ååŸããããŒã¿ãé ä¿¡ããAPIåŒã³åºãã®ç¹°ãè¿ããæå¶ããããšã§ã圱é¿ã軜æžã§ããŸããããŒãžã§ã³ç®¡çãããAPIãstale-while-revalidateæŠç¥ãšäœµçšããããšã§ããã£ãã·ã¥ã¯çæéã®äžæãæå°éã«é£ãæ¢ãããŠãŒã¶ãŒãžã®è² æ ã軜æžããŸãã
ãããã®äœäžæŠè¡ãçµã¿åãããããšã§ãçã®ãŒãããŠã³ã¿ã€ã ãéæã§ããªãç°å¢ã§ãæè»æ§ãåŸãããŸãã
ãã¥ãŒããŒã¹ã®ãªã¯ãšã¹ããããã¡ãªã³ã°
æŽæ°äžã«ãŠãŒã¶ãŒãŸãã¯ã·ã¹ãã ããã®ãªã¯ãšã¹ãããã¥ãŒã«ãããã¡ãªã³ã°ããããšã§ãã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ããããã¯ãããããŠãŒã¶ãŒã«ãšã©ãŒãåãŒãããããããšãªããããŒã¿ã確å®ã«ä¿æã§ããŸããããã¯ãããŒã¿ããŒã¹ã®åã€ã³ããã¯ã¹äœæããµãŒãã¹ã®åãããã€ãªã©ãããã¯ãšã³ããµãŒãã¹ã®äžæåæ¢ãå¿ èŠãšããæäœãå®è¡ããå Žåã«ç¹ã«äŸ¿å©ã§ãã
ãã®ãã¿ãŒã³ã§ã¯ãåä¿¡ããæžã蟌ã¿ãªã¯ãšã¹ãã¯ãKafkaãRabbitMQãAWS SQSãããã¡ãªã©ã®èä¹ æ§ã®ãããã¥ãŒã«ä¿åãããŸããã¡ã€ã³ã®åŠçã·ã¹ãã ããªãã©ã€ã³ãŸãã¯ãªãã¡ã¯ã¿ãªã³ã°äžã®éãããã¥ãŒã¯ã€ãã³ãã®åéãç¶ç¶ããŸããã·ã¹ãã ããªã³ã©ã€ã³ã«æ»ããšããããã®ã€ãã³ãã¯é çªã«åçãããããããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã倱ãããããšã¯ãããŸããã
ãããã¡ãªã³ã°ãããæžã蟌ã¿ã¯éè€ãé²ãããã«åªçæ§ãæã€å¿ èŠãããããã¥ãŒã¯å詊è¡ãé å»¶ãããã³ãšã©ãŒåŠçã¡ã«ããºã ããµããŒãããå¿ èŠããããŸãããŸããåä¿¡åŽã·ã¹ãã ã¯ãåŠçãéšåçã«å®äºãããªã¯ãšã¹ãã®ã¹ããŒã¿ã¹ã远跡ããæ£ç¢ºã«åéã§ããããã«ããå¿ èŠããããŸãã
ã·ã¹ãã ã®éè² è·ãã¿ã€ã ã¢ãŠããåé¿ããã«ã¯ããã¥ãŒã®æ·±ããšåŠçé å»¶ãç£èŠããããšãéèŠã§ãããªã¯ãšã¹ããããã¡ãªã³ã°ãé©åã«å®è£ ããããšã§ããŠãŒã¶ãŒã«ã·ãŒã ã¬ã¹ãªãšã¯ã¹ããªãšã³ã¹ãæäŸãããšåæã«ãéçºè ã¯ãµãŒãã¹ã®äžæãæå°éã«æããªãããªãã¡ã¯ã¿ãªã³ã°ãæè»ã«è¡ãããšãã§ããŸãã
ã¯ã©ã€ã¢ã³ãåŽãã£ãã·ã¥æ¡åŒµ
ã¯ã©ã€ã¢ã³ããµã€ãã®ãã£ãã·ã¥æ¡åŒµæ©èœã¯ãäžæçãªã·ã¹ãã å©çšäžå¯ã®åœ±é¿ã軜æžãã匷åãªææ®µã§ããããã¯ãšã³ããµãŒãã¹ããªãã©ã€ã³ãŸãã¯èªã¿åãå°çšç¶æ ã«ãªã£ãå Žåã§ãããã©ãŠã¶ãã¢ããªã±ãŒã·ã§ã³ã¯ãã£ãã·ã¥ãããããŒã¿ã衚瀺ãç¶ããããšãã§ããããããŠãŒã¶ãŒã®çç£æ§ãç¶æããã¹ãã¬ã¹ã軜æžã§ããŸãã
ãã£ãã·ã¥æŠç¥ã«ã¯ã以åã«ãªã¯ãšã¹ããããã³ã³ãã³ããã¢ããªã±ãŒã·ã§ã³å ã®localStorageãIndexedDBããŸãã¯ã¡ã¢ãªå ãã£ãã·ã¥ã«ä¿åããããšãå«ãŸããŸãããããã®ãã£ãã·ã¥ã¯ãæ£åžžã«æéåãã«ãªãããã«èšå®ããããšããæ¥ç¶ãå埩ããéã«èªåçã«æŽæ°ããããã«èšå®ããããšãã§ããŸããstale-while-revalidateãcache-first-fallbackãªã©ã®ææ³ã«ãããããã¯ãšã³ãã®æŽæ°ãäžæåæ¢ãããŠããå Žåã§ãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®å¿çæ§ãç¶æã§ããŸãã
ããé«åºŠãªãŠãŒã¹ã±ãŒã¹ã§ã¯ããã£ãã·ã¥ãšããã¯ã°ã©ãŠã³ãåæãçµã¿åããããŸããã¢ããªã±ãŒã·ã§ã³ã¯ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãããŒã«ã«ã§ãã¥ãŒã€ã³ã°ããã·ã¹ãã ãå®å šã«å©çšå¯èœã«ãªã£ãæç¹ã§åé©çšã詊ã¿ãŸãããã®ãã¿ãŒã³ã¯ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ããªãã©ã€ã³ãã¡ãŒã¹ãã¢ããªã±ãŒã·ã§ã³ã§ããèŠãããŸãããWebããŒã¹ã®ãšã³ã¿ãŒãã©ã€ãºãœãããŠã§ã¢ã§ã䜿çšã§ããŸãã
ã¯ã©ã€ã¢ã³ããµã€ããã£ãã·ã¥ã¯ã匷åãªAPIèšèšããã£ãã·ã¥ã®ããŒãžã§ã³ç®¡çããããŠã·ã¹ãã ã®ãªã¢ã«ã¿ã€ã ã¹ããŒã¿ã¹ã瀺ããŠãŒã¶ãŒãã£ãŒãããã¯ã¡ã«ããºã ãšçµã¿åãããããšã§ãæã广çã§ããé©åã«å°å ¥ããããšã§ãçæéã®èšç»åæ¢æã«ããããããã¹ã ãŒãºãªããã©ãŒãã³ã¹äœäžãå®çŸããŸãã
SMART TS XL ããŠã³ã¿ã€ã ãªãã®ãªãã¡ã¯ã¿ãªã³ã°ãœãªã¥ãŒã·ã§ã³ãšããŠ
ãµãŒãã¹ãäžæããããšãªãè€éãªãšã³ã¿ãŒãã©ã€ãº ã·ã¹ãã ãææ°åããããšã¯ãç¹ã«ã¡ã€ã³ãã¬ãŒã ãCOBOLããŸãã¯å¯çµåãããã¢ããªã±ãŒã·ã§ã³ ã¬ã€ã€ãŒã«ãã£ãŠå®è¡ãããç°å¢ã§ã¯ãéåžžã«å°é£ãªèª²é¡ã§ãã SMART TS XL ã¯ããŸãã«ãã®èª²é¡ã«å¯Ÿå¿ããããã«ç¹å¥ã«æ§ç¯ããããã©ãããã©ãŒã ãæäŸããé«åºŠãªéçåæããã㌠ãããã³ã°ãããã³å®å šã§æ å ±ã«åºã¥ãããªãã¡ã¯ã¿ãªã³ã°ãå¯èœã«ããã¬ã¬ã·ãŒ ã³ãŒã ã€ã³ããªãžã§ã³ã¹ãæäŸããŸãã
äžå¿ã« SMART TS XL æãè€éã§ææžåãããŠããªãã¬ã¬ã·ãŒã¢ããªã±ãŒã·ã§ã³ã§ãã£ãŠããæ£ç¢ºãªå¶åŸ¡ãããŒããããšããŒã¿ãããŒããããçæã§ããããšã倧ããªç¹åŸŽã§ãããããã®ãããã¯ããã¹ãŠã®å®è¡ãã¹ãäŸåé¢ä¿ãå ±æãã¡ã€ã«æ§é ãåçãªã³ã¯ãæããã«ããã³ãŒãã倿Žããåã«ã·ã¹ãã ã®åäœãå®å šã«ææ¡ã§ããããã«ããŸãããã®æç¢ºãªæ å ±ã«ãããã©ã€ãã¢ããããŒãäžã®å¯äœçšã®ãªã¹ã¯ã軜æžãããããŒã ãèªä¿¡ãæã£ãŠãŒãããŠã³ã¿ã€ã ã®ãããã€ã¡ã³ãæŠç¥ãèšèšã§ããããã«ãªããŸãã
ãã©ãããã©ãŒã ã®ã·ãã¥ã¬ãŒã·ã§ã³æ©èœã«ãããéçºè ã¯å€æŽãæ¬çªç°å¢ã§å®è¡ããããšãªãããã®åœ±é¿ãã¢ãã«åã§ããŸãããªãã¡ã¯ã¿ãªã³ã°ãããã³ã³ããŒãã³ãã¯åå¥ã«æ€èšŒããå·®åè§£æãçšããŠå ã®ããžãã¯ãšæ¯èŒããããšãã§ããŸããããŒã¿åºåãããžãã¯å®è¡ãå€éšã€ã³ã¿ãŒãã§ãŒã¹ã«ãããäžäžèŽã¯ã倿Žãå®éã«é©çšããããã£ãšåã«ãã©ã°ä»ããããŸãã
SMART TS XL ãŸããããŒãžã§ã³ç®¡çãããã³ããŒããã¯ã®è¿œè·¡ãã¹ããŒãé²åãããã³ã°ãããããžã§ãã®äŸåé¢ä¿ã¢ããªã³ã°ããµããŒãããŠããŸãããããã¯ãã¢ããã°ã¬ãŒãäžã«ããŒã¿åœ¢åŒãšãžã§ãã·ãŒã±ã³ã¹ã®å®å®æ§ãç¶æããå¿ èŠãããã·ããªãªã«äžå¯æ¬ ã§ãããããã®æ©èœã¯ãæ¡åŒµã³ã³ãã©ã¯ãç§»è¡ãã¿ãŒã³ãšã·ã£ããŠã©ã€ãæ€èšŒãçŽæ¥ãµããŒãããŸãã
CI/CDãã€ãã©ã€ã³ãšå¯èŠ³æž¬æ§ã¹ã¿ãã¯ãšçµã¿åããããšã SMART TS XL é«ç²ŸåºŠãªåœ±é¿ã¬ããŒããæäŸããããšã§ãèªåæ€èšŒãšããŒã«ããã¯ããªã¬ãŒã匷åããŸããããã«ãããçµç¹ã¯åŸæ¥ã®ç¡¬çŽçãªç°å¢ã«ãããŠãã䞊åå®è¡ãããŒã¯ããŒã³ããã«ããªã¢æ€èšŒãšãã£ãããã°ã¬ãã·ãããªããªãŒææ³ãå°å ¥ã§ããããã«ãªããŸãã
æçµçã«ã¯ã SMART TS XL ã¬ã¬ã·ãŒã·ã¹ãã ãå®å šã«èŠ³æž¬å¯èœã§ãªãã¡ã¯ã¿ãªã³ã°å¯èœãªè³ç£ãžãšå€æããŸãããã®åæç²ŸåºŠãšçµ±åã®æè»æ§ã«ããããšã³ãžãã¢ãªã³ã°ããŒã ã¯èªä¿¡ãæã£ãŠã¢ããã€ãºãè¡ããæ®µéçã«ãªãã¡ã¯ã¿ãªã³ã°ãè¡ããæãç¹çŽ°ãªæ¬çªç°å¢ã«ãããŠãç¶ç¶çãªçšŒåãç¶æã§ããŸãã
æä»£ãéãããå€ããã®ãšæ°ãããã®ãã€ãªã
ãŒãããŠã³ã¿ã€ã ã®ãªãã¡ã¯ã¿ãªã³ã°ã¯ãã¯ã顿ã§ã¯ãããŸãããå€ãã®ããã·ã§ã³ã¯ãªãã£ã«ã«ãªã·ã¹ãã ã«ãšã£ãŠãããã¯åºæ¬çãªèŠä»¶ã§ããCOBOLããããžã§ããå®è¡ããã¡ã€ã³ãã¬ãŒã ããã³ã³ããã«ãããã€ããããã€ã¯ããµãŒãã¹ãŸã§ãç¶ç¶çãªå¯çšæ§ãç¶æããªããé²åããŠããå¿ èŠæ§ã¯ãããããã¢ãŒããã¯ãã£ã«åœãŠã¯ãŸããŸãã
ãã®èšäºã§ã¯ããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ããã¹ããŒãã®ããŒãžã§ã³ç®¡çããã忣ãã¬ãŒã¹ããããã¡ä»ãæžã蟌ã¿ãã¥ãŒãŸã§ãå¹ åºãæŠç¥ãšãã¿ãŒã³ãæ€èšŒããŸããããããã®ææ³ã«ãããæ¥åã忢ãããããšãªããã·ã¹ãã ã®åæ§ç¯ãããã©ãŒãã³ã¹ã®æé©åãæè¡çè² åµã®åæžãã¢ããªã±ãŒã·ã§ã³ã®ã¢ããã€ãŒãŒã·ã§ã³ãå¯èœã«ãªããŸãã
ãããã®ææãéæããã«ã¯ãæè¡çãªåµæå·¥å€«ã ãã§ã¯äžååã§ããçµç¹ã®é£æºãèŠåŸãããšã³ãžãã¢ãªã³ã°ãã©ã¯ãã£ã¹ããªã¢ã«ã¿ã€ã ã®å¯èŠ³æž¬æ§ããããŠç¶¿å¯ãªèšç»ãäžå¯æ¬ ã§ãããªãã¡ã¯ã¿ãªã³ã°ã¯ãã¯ããããè¯ãã³ãŒããäœãããšã ããç®çãšãããã®ã§ã¯ãªããçµ¶ãéãªãå€åã®äžã§ãéåããããšã®ãªã䟡å€ãæäŸããããšã«éç¹ã眮ãããŠããŸãã
çµç¹ãããžã¿ã«åºç€ã®å€é©ãç¶ããäžã§ãé©åãªããŒã«ãšãã¿ãŒã³ãåããŠããçµç¹ã¯ãèªä¿¡ãæã£ãŠè¡åããããè¿ éã«é©å¿ããããããæ®µéã§ãŠãŒã¶ãŒã®ä¿¡é Œãç¶æããããšãã§ããŸãã