ä»æ¥ã¯ãã¢ããªã·ãã¯ãœãªã¥ãŒã·ã§ã³ããã€ã¯ããµãŒãã¹ã«ã©ã®ããã«ç§»è¡ããããã説æããŸãã ç§ãã¡ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ã24æéã1æ¥24æéãã12äžåã®ãã©ã³ã¶ã¯ã·ã§ã³ãåŠçããŠããŸãã ãŠãŒã¶ãŒã¯12ã®ã¿ã€ã ãŸãŒã³ã§äœæ¥ããŸãã åæã«ãæ©èœãé »ç¹ã«è¿œå ãããŸããããããã¯ã¢ããªã¹ã§è¡ãã®ã¯éåžžã«å°é£ã§ãã ããããã·ã¹ãã ãå®å®ãã24æé365æ¥ã®éçšãã€ãŸãHighLoadãHigh AvailabilityãFault Toleranceãå¿
èŠãšããçç±ã§ãã
MVPã¢ãã«ã«åŸã£ãŠãã®è£œåãéçºããŠããŸãã ããžãã¹ã®èŠä»¶ã«åŸã£ãŠãã¢ãŒããã¯ãã£ã¯ããã€ãã®æ®µéã§å€æŽãããŸããã æåã¯ããœãªã¥ãŒã·ã§ã³ãã©ã®ããã«èŠããã¹ãã誰ãç¥ããªãã£ããããäžåºŠã«ãã¹ãŠãå®è¡ããããšã¯ã§ããŸããã§ããã æ©èœã®è¿œå ãšæ¡åŒµãç¹°ãè¿ããªãããã¢ãžã£ã€ã«ã¢ãã«ã移åããŸããã
æåã¯ãã¢ãŒããã¯ãã£ã¯æ¬¡ã®ããã«ãªããŸããããŠãŒã¶ãŒããã®ãªã¯ãšã¹ãããããã·ããããã®å¯äžã®warãTomcatãããã³NginxãåããMySqlããããŸããã
ç°å¢ïŒããã³æå°CI / CDïŒïŒ
- éçº-éçºã«ãããããã·ã¥ã«ããå±éã
- QA-1æ¥1åãéçºã
- 補å-ãã¹ã¿ãŒãšãã¿ã³ã§ã
- æåçµ±åãã¹ãã
- ãã¹ãŠãJenkinsã§æ©èœããŸãã
éçºã¯ããŠãŒã¶ãŒã·ããªãªã«åºã¥ããŠæ§ç¯ãããŸããã ãã§ã«ãããžã§ã¯ãã®éå§æç¹ã§ãã»ãšãã©ã®ã¹ã¯ãªããã¯äžçš®ã®ã¯ãŒã¯ãããŒã«é©åããŠããŸãã ããããããã§ããã¹ãŠã§ã¯ãªãããã®ç¶æ³ã«ããéçºãè€éã«ãªããããã£ãŒããã¶ã€ã³ããå®è¡ã§ããŸããã§ããã
2015幎ãç§ãã¡ã®ã¢ããªã±ãŒã·ã§ã³ã¯çç£ãããŸããã ç£æ¥éçšã§ã¯ãã¢ããªã±ãŒã·ã§ã³ããã®éçºãããã³å€æŽãprod-serverã«éä¿¡ããéã®æè»æ§ã«æ¬ ããããšã瀺ãããŠããŸãã é«å¯çšæ§ïŒHAïŒãç¶ç¶çããªããªãŒïŒCDïŒãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒãå®çŸãããã£ãã®ã§ãã
HIãCDãCIã«å°éããããã«è§£æ±ºããå¿
èŠãããåé¡ã¯æ¬¡ã®ãšããã§ãã
- æ°ããããŒãžã§ã³ãå±éãããšãã«ã·ã³ãã«-ãããã€ãããã¢ããªã±ãŒã·ã§ã³ã«æéãããããããã
- 補åèŠä»¶ã®å€æŽãšæ°ãããŠãŒã¶ãŒã±ãŒã¹ã«é¢ããåé¡-å°ããªä¿®æ£ã§ããã¹ããšæ€èšŒã«æéãããããããã
- Tomcatã§ã®ã»ãã·ã§ã³ã®åŸ©å
ã«é¢ããåé¡ïŒäºçŽã·ã¹ãã ãšãµãŒãããŒãã£ãµãŒãã¹ã®ã»ãã·ã§ã³ç®¡çãã¢ããªã±ãŒã·ã§ã³ã®åèµ·åæã«ãTomcatã«ãã£ãŠã»ãã·ã§ã³ã埩å
ãããŸããã§ããã
- ãªãœãŒã¹ã®ãªãªãŒã¹ã«é¢ããåé¡ïŒé
ããæ©ããTomcatãåèµ·åããå¿
èŠããããã¡ã¢ãªãªãŒã¯ãçºçããŸããã
ããããã¹ãŠã®åé¡ãé çªã«è§£æ±ºãå§ããŸããã ãããŠåœŒããæåã«åãäžããã®ã¯ã補åã®èŠä»¶ã®å€åã§ããã
æåã®ãã€ã¯ããµãŒãã¹
課é¡ïŒè£œåèŠä»¶ãšæ°ãããŠãŒã¹ã±ãŒã¹ã®å€æŽã
æè¡çãªçãïŒæåã®ãã€ã¯ããµãŒãã¹ãç»å ŽããŸãã-圌ãã¯ããžãã¹ããžãã¯ã®äžéšãå¥ã®warãã¡ã€ã«ã«åã蟌ã¿ãTomcatã«å
¥ããŸããã
ãã©ãŒã ã®å¥ã®ã¿ã¹ã¯ãç§ãã¡ã«ãã£ãŠããŸããïŒé±ã®çµãããŸã§ã«ããµãŒãã¹ã®ããžãã¹ããžãã¯ãæŽæ°ãããã®éšåãå¥ã®warãã¡ã€ã«ã«å
¥ããŠåãTomcatã«å
¥ããããšã«ããŸããã æ§æãšéçºã®é床ãäžããããã«ãSpring Bootã䜿çšããŸããã
å®æçã«ãŠãŒã¶ãŒèšå®ãå€æŽããããšã§åé¡ã解決ããå°èŠæš¡ããžãã¹æ©èœãäœæããŸããã ããžãã¹ããžãã¯ãå€æŽãããå ŽåãTomcatå
šäœãåèµ·åããå¿
èŠã¯ãªãã30åéãŠãŒã¶ãŒã倱ãããã®ããäžéšã®ã¿ãåèµ·åããå¿
èŠããããŸãã
åãååã«åŸã£ãŠããžãã¯ãæ£åžžã«ã¬ã³ããªã³ã°ããåŸãã¢ããªã±ãŒã·ã§ã³ã«å€æŽãå ãç¶ããŸããã ãããŠãã·ã¹ãã å
ã®äœããæ ¹æ¬çã«å€ããã¿ã¹ã¯ãç§ãã¡ã®ãšããã«æ¥ãç¬éããããããã®éšåãå¥ã
ã«åãåºããŸããã ãããã£ãŠãç§ãã¡ã¯åžžã«æ°ãããã€ã¯ããµãŒãã¹ãèç©ããŠããŸãã
ãã€ã¯ããµãŒãã¹ãéžã³åºããäž»ãªã¢ãããŒãã¯ãããžãã¹æ©èœãŸãã¯ããžãã¹ãµãŒãã¹å
šäœã®å²ãåœãŠã§ãã
ãã®ããã1Cãªã©ã®ãµãŒãããŒãã£ã·ã¹ãã ãšçµ±åããããµãŒãã¹ãè¿
éã«åé¢ããŸããã
æåã®åé¡ã¯ã¿ã€ãã³ã°ã§ãã
課é¡ïŒãã€ã¯ããµãŒãã¹ã¯ãã§ã«15ãã¿ã€ãã³ã°ã®åé¡ã
æè¡çãªçãïŒ Spring Cloud Feignã
ãœãªã¥ãŒã·ã§ã³ããã€ã¯ããµãŒãã¹ã«ã«ãããå§ãããããšãã£ãŠãåé¡ã解決ããããšã¯ãããŸããã§ããã ããã«ãæ°ããåé¡ãçºçãå§ããŸããïŒ
- ã¢ãžã¥ãŒã«éã®Dtoã§ã®å
¥åãšããŒãžã§ã³ç®¡çã®åé¡ã
- Tomcatã«1ã€ã®warãã¡ã€ã«ã§ã¯ãªããå€ãã®warãã¡ã€ã«ããããã€ããæ¹æ³ã
æ°ããåé¡ã«ãããæè¡äœæ¥äžã®ãã¹ãŠã®Tomcatã®åèµ·åæéãé·ããªããŸããã äœæ¥ãè€éã«ãªã£ãããšãããããŸããã
ãã¡ãããã¿ã€ãã³ã°ã®åé¡ã¯ããèªäœã§ã¯çºçããŸããã§ããã ãããããããã€ãã®ãªãªãŒã¹ã®éçšã§ããã¹ã段éãŸãã¯éçºäžã«ãããã®ãšã©ãŒãçºèŠãããªããšãããããšãã§ãããããåã«ç¡èŠããŸããã ããããçç£ã®éäžã§ããã€ãã®ãšã©ãŒãçºèŠãããç·æ¥ã®ä¿®æ£ãå¿
èŠã«ãªã£ããšããèŠå¶ãå°å
¥ãããããã®åé¡ã解決ããããŒã«ã®äœ¿çšãéå§ããŸããã httpãªã¯ãšã¹ãçšã®ã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªã§ããSpring Cloud Feignã«æ°ä»ããŸããã
github.com/OpenFeign/feign
cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html
圌ãéžãã ã®ã¯
-ãããžã§ã¯ãã«å®è£
ããããã®ãªãŒããŒãããã¯ã»ãšãã©ãããŸããã
-圌ã¯ã¯ã©ã€ã¢ã³ããçæãã
-ãµãŒããŒãšã¯ã©ã€ã¢ã³ãã®äž¡æ¹ã§1ã€ã®ã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšã§ããŸãã
圌ã¯ãç§ãã¡ã顧客ã圢æãããšããäºå®ã«ãã£ãŠã¿ã€ãã³ã°ã®åé¡ã解決ããŸããã ãŸãããµãŒãã¹ã®ã³ã³ãããŒã©ãŒã«ã¯ã顧客ã®åœ¢æãšåãã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããŸããã ãããã£ãŠãã¿ã€ãã³ã°ã®åé¡ã¯ãªããªããŸããã
ããŠã³ã¿ã€ã æåã®æŠãã æäœæ§
ããžãã¹äžã®èª²é¡ïŒ 18ã®ãã€ã¯ããµãŒãã¹ãçŸåšã¯ã·ã¹ãã ã®ããŠã³ã¿ã€ã ã¯åãå
¥ããããŸããã
æè¡çãªçãïŒã¢ãŒããã¯ãã£ã®å€æŽããµãŒããŒã®æ¡åŒµã
ããŠã³ã¿ã€ã ãšæ°ããããŒãžã§ã³ã®å±éã«ãŸã åé¡ããããŸããTomcatã»ãã·ã§ã³ã®åŸ©å
ãšãªãœãŒã¹ã®è§£æŸã«åé¡ããããŸãã ãã€ã¯ããµãŒãã¹ã®æ°ã¯å¢ãç¶ããŸããã
ãã¹ãŠã®ãã€ã¯ããµãŒãã¹ã®å±éããã»ã¹ã«ã¯çŽ1æéããããŸããã æã
ãTomcatãªãœãŒã¹ã®ãªãªãŒã¹ã®åé¡ã®ããã«ãã¢ããªã±ãŒã·ã§ã³ãåèµ·åããå¿
èŠããããŸããã ãããããè¿
éã«è¡ãç°¡åãªæ¹æ³ã¯ãããŸããã§ããã
ã¢ãŒããã¯ãã£ãå€æŽããæ¹æ³ã«ã€ããŠèãå§ããŸããã ã€ã³ãã©ã¹ãã©ã¯ãã£ãœãªã¥ãŒã·ã§ã³éšéãšååããŠãæ¢åã®ãœãªã¥ãŒã·ã§ã³ã«åºã¥ããŠæ°ãããœãªã¥ãŒã·ã§ã³ãæ§ç¯ããŸããã
ã¢ãŒããã¯ãã£ã®å€èŠ³ã¯æ¬¡ã®ããã«å€æŽãããŸããã
- ã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®ããŒã¿ã»ã³ã¿ãŒã«æ°Žå¹³ã«åå²ãã
- åãµãŒããŒã«Filebeatãè¿œå ãã
- ãã©ã³ã¶ã¯ã·ã§ã³ãšãã°ã®æ°ãå¢ããã«ã€ããŠãELKçšã«å¥ã®ãµãŒããŒãè¿œå ããŸããã
- ããã€ãã®haproxy + Tomcat + Nginx + MySQLãµãŒããŒïŒãããé«å¯çšæ§ãæäŸããæ¹æ³ã§ãïŒã
䜿çšãããæè¡ã¯æ¬¡ã®ãšããã§ãã
- Haproxyã«ãŒãã£ã³ã°ãšãµãŒããŒéã®ãã©ã³ã¹ã
- Nginxã¯éçå€æ°ã®é
åžãæ
åœããtomcatã¯ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã§ããã
- ãœãªã¥ãŒã·ã§ã³ã®ç¹åŸŽã¯ãåãµãŒããŒäžã®MySQLãä»ã®MySQLã®ååšãç¥ããªãããšã§ããã
- ããŒã¿ã»ã³ã¿ãŒéã®é
延ã®åé¡ã«ãããMySQLã¬ãã«ã§ã®ã¬ããªã±ãŒã·ã§ã³ã¯äžå¯èœã§ããã ãã®ããããã€ã¯ããµãŒãã¹ã®ã¬ãã«ã§ã·ã£ãŒãã£ã³ã°ãå®è£
ããããšã«ããŸããã
ãããã£ãŠããŠãŒã¶ãŒããTomcatã®ãµãŒãã¹ã«ãªã¯ãšã¹ããæ¥ããšãã圌ãã¯åã«MySQLããããŒã¿ããªã¯ãšã¹ãããŸããã æŽåæ§ãå¿
èŠãªããŒã¿ã¯ããã¹ãŠã®ãµãŒããŒããåéãããæ¥çãããŸããïŒãã¹ãŠã®èŠæ±ã¯APIãä»ããŠè¡ãããŸããïŒã
ãã®ã¢ãããŒããé©çšãããšãããŒã¿ã®äžè²«æ§ãå°ã倱ãããŸããããçŸåšã®åé¡ã¯è§£æ±ºããŸããã ãŠãŒã¶ãŒã¯ãã©ã®ãããªç¶æ³ã§ãã¢ããªã±ãŒã·ã§ã³ãæäœã§ããŸãã
- ãµãŒããŒã®1ã€ãã¯ã©ãã·ã¥ããå Žåã§ããã·ã¹ãã å
šäœã®æäœæ§ããµããŒããã3ã4ãæ®ã£ãŠããŸããã
- ããã¯ã¢ããã¯ãããããäœæãããåãããŒã¿ã»ã³ã¿ãŒå
ã®ãµãŒããŒã§ã¯ãªããè¿é£ã®ãµãŒããŒã«ä¿åããŸããã ããã¯çœå®³åŸ©æ§ã«åœ¹ç«ã¡ãŸããã
- ãã©ãŒã«ããã¬ã©ã³ã¹ã¯ãè€æ°ã®ãµãŒããŒãéããŠå¯ŸåŠãããŸããã
ãšãŠã倧ããªåé¡ã解決ãããŸããã 䜿ãããããŠãŒã¶ãŒã«ãªããŸããã æŽæ°ãããŒã«ããã¯ãããšãã圌ãã¯æããŸããã§ããã
ããŠã³ã¿ã€ã äºåºŠç®ã®æŠãã å®å
šãªäŸ¡å€
ããžãã¹äžã®èª²é¡ïŒ 23ã®ãã€ã¯ããµãŒãã¹ã ããŒã¿ã®äžè²«æ§ã®åé¡ã
æè¡çãªè§£æ±ºçïŒãµãŒãã¹ãäºãã«å¥ã
ã«èµ·åããŸãã æ¹åãããç£èŠã ãºãŒã«ãšãšãŠã¬ã«ã åã
ã®ãµãŒãã¹ã®éçºãšãã®æäŸãç°¡çŽ åããŸããã
åé¡ãçºçãç¶ããŸããã ãããç§ãã¡ã®redelaã®èŠãç®ã§ãïŒ
- åå
¥åã®å ŽåãããŒã¿ã®äžè²«æ§ããªãã£ããããæ©èœã®äžéšïŒæãéèŠã§ã¯ãªãïŒãããã¯ã°ã©ãŠã³ãã«ãã§ãŒãã€ã³ããŸããã ããšãã°ãæ°ããã¢ããªã±ãŒã·ã§ã³ãããŒãªã³ã°ãããšããçµ±èšã¯å£ã£ãŠããŸããã
- ã¢ããªã±ãŒã·ã§ã³ãåèµ·åããããã«ããããµãŒããŒããå¥ã®ãµãŒããŒã«ãŠãŒã¶ãŒãèªå°ããå¿
èŠããããŸããã ãŸããçŽ15ã20åããããŸããã ãã®äžããŠãŒã¶ãŒã¯ãµãŒããŒãããµãŒããŒã«åãæ¿ãããšãã«ãã°ã€ã³ããå¿
èŠããããŸããã
- ãŸãããµãŒãã¹ã®æ°ãå¢ãããããTomcatãåèµ·åããŸããã ãããŠä»ãç§ã¯å€æ°ã®æ°ãããã€ã¯ããµãŒãã¹ã«åŸãå¿
èŠããããŸããã
- ãµãŒãã¹ãšãµãŒããŒã®æ°ã«æ¯äŸããŠãã¬ããã¬ã€æéãå¢å ããŸããã
èããŠã¿ããšããµãŒãã¹ãäºãã«å¥ã
ã«èµ·åããããšã§åé¡ã解決ã§ãããšå€æããŸããã1ã€ã®Tomcatã§ãµãŒãã¹ãéå§ããããããããåããµãŒããŒäžã§ãµãŒãã¹ãéå§ããå Žåã§ãã
ããããä»ã®çåãçããŸããããµãŒãã¹ã¯ã©ã®ããã«çžäºã«éä¿¡ããã©ã®ããŒããå€éšã«éæŸããå¿
èŠãããã®ã§ããããïŒ
å€æ°ã®ããŒããéžæããããããã¢ãžã¥ãŒã«ã«é
åžããŸããã ããŒãã«é¢ãããã¹ãŠã®æ
å ±ãpomãã¡ã€ã«ãŸãã¯äžè¬çãªæ§æã®ã©ããã«ä¿æããå¿
èŠãé¿ããããã«ããããã®åé¡ã解決ããããã«ZuulãšEurekaãéžæããŸããã
ãŠãŒãªã«-ãµãŒãã¹çºèŠ
Zuul-ãããã· ïŒTomcatã«ãã£ãã³ã³ããã¹ãURLãä¿åããããïŒ
Eurekaã¯ããµãŒãã¹éã®éä¿¡ãå¯èœã«ãªã£ããããé«å¯çšæ§/ãã©ãŒã«ããã¬ã©ã³ã¹ã®ããã©ãŒãã³ã¹ãæ¹åããŸããã çŸåšã®ããŒã¿ã»ã³ã¿ãŒã«é©åãªãµãŒãã¹ããªãå Žåã¯ãå¥ã®ãµãŒãã¹ã»ã³ã¿ãŒã«ç§»åããããã«èšå®ããŸãã
ç£èŠãæ¹åããããã«ãæ¢åã®ã¹ã¿ãã¯ããSpring Boot Adminãè¿œå ããŠãã©ã®ãµãŒãã¹ã§äœãèµ·ãã£ãŠããã®ããç解ããŸããã
ãŸããè€æ°ã®åäžã®ãµãŒãã¹ãåããµãŒããŒã«å±éããåé¡ãåãé€ãããã«ãå°çšãµãŒãã¹ãã¹ããŒãã¬ã¹ã¢ãŒããã¯ãã£ã«ç§»è¡ãå§ããŸããã ããã«ãããåäžã®ããŒã¿ã»ã³ã¿ãŒå
ã§æ°Žå¹³ã¹ã±ãŒãªã³ã°ãå¯èœã«ãªããŸããã åããµãŒããŒå
ã§ãæŽæ°æã«åãã¢ããªã±ãŒã·ã§ã³ã®ç°ãªãããŒãžã§ã³ãå®è¡ãããããããŠã³ã¿ã€ã ããããŸããã§ããã
åã
ã®ãµãŒãã¹ãšãã®é
ä¿¡ã®éçºãç°¡çŽ åãããšããç¹ã§ãç¶ç¶çé
ä¿¡/ç¶ç¶ççµ±åã«ã¢ãããŒãããããšãå€æããŸããã ããã§ã1ã€ã®ãµãŒãã¹ã®æäŸããªãœãŒã¹ã®ãªãŒã¯ãåŒãèµ·ããããšãæããå¿
èŠããªããªãããµãŒãã¹å
šäœãåèµ·åããå¿
èŠããããŸããã
æ°ããããŒãžã§ã³ãå±éããéã®ã·ã³ãã«ãã¯äŸç¶ãšããŠæ®ã£ãŠããŸãããå®å
šã§ã¯ãããŸããã ãµãŒããŒäžã®è€æ°ã®jarã1ã€ãã€æŽæ°ãããšãããã¯ããã«èµ·ãããŸããã ãŸããå€æ°ã®ã¢ãžã¥ãŒã«ãæŽæ°ãããšãã«ãµãŒããŒã§åé¡ã¯çºçããŸããã§ããã ãã ããã¢ããã°ã¬ãŒãäžã«25åã®ãã€ã¯ããµãŒãã¹ãã¹ãŠãåèµ·åããã«ã¯éåžžã«é·ãæéãããããŸããã Tomcatã®å
éšãããé«éã§ãããããã¯äžè²«ããŠè¡ãããŸãã
ãŸãããã¹ãŠãjarã§å®è¡ããããšã§ãªãœãŒã¹ã解æŸããåé¡ã解決ããã·ã¹ãã ã®ã¡ã¢ãªäžè¶³ãã©ãŒããªãŒã¯ãŸãã¯åé¡ã«å¯ŸåŠããŸããã
ãã¡ã€ã3ãæ
å ±ç®¡ç
ããžãã¹äžã®èª²é¡ïŒ 28ã®ãã€ã¯ããµãŒãã¹ã 管çããå¿
èŠãããå€ãã®æ
å ±ã
æè¡çãœãªã¥ãŒã·ã§ã³ïŒ Hazelcastã
åŒãç¶ãã¢ãŒããã¯ãã£ãå®è£
ããåºæ¬çãªããžãã¹ãã©ã³ã¶ã¯ã·ã§ã³ãäžåºŠã«è€æ°ã®ãµãŒããŒãã«ããŒããããšãèªèããŸããã 1ããŒã¹ã®ã·ã¹ãã ã«ãªã¯ãšã¹ããéä¿¡ããã®ã¯äžäŸ¿ã§ããã ãã®ãããã€ãã³ãã¡ãã»ãŒãžã³ã°ãšãŠãŒã¶ãŒãšã®ã·ã¹ãã äœæ¥ã«Hazelcastã䜿çšããããšã«ããŸããã ãŸããåŸç¶ã®ãµãŒãã¹ã§ã¯ããµãŒãã¹ãšããŒã¿ããŒã¹éã®ã¬ã€ã€ãŒãšããŠäœ¿çšããŠããŸããã
æçµçã«ãããŒã¿ã®äžè²«æ§ã®åé¡ãåãé€ããŸããã ããã§ãäžèŠãªã¢ã¯ã·ã§ã³ãå®è¡ããã«ããã¹ãŠã®ããŒã¿ããŒã¹ã«ããŒã¿ãåæã«ä¿åã§ããŸããã Hazelcastã«ãåä¿¡ããæ
å ±ãä¿åããããŒã¿ããŒã¹ãæå®ããŸããã 圌ã¯ãã¹ãŠã®ãµãŒããŒã§ãããè¡ããŸãããããã«ããäœæ¥ãç°¡çŽ åãããã·ã£ãŒãã£ã³ã°ãåãé€ãããšãã§ããŸããã ããã§ãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ã¬ããªã±ãŒã·ã§ã³ã«ç§»ããŸããã
ãŸããã»ãã·ã§ã³ãHazelcastã«ä¿åãå§ããæ¿èªã«äœ¿çšããŸããã ããã«ããããŠãŒã¶ãŒã«æ°ä»ãããã«ãµãŒããŒéã§ãŠãŒã¶ãŒã転éã§ããŸããã
ãã€ã¯ããµãŒãã¹ããCI / CDãž
ããžãã¹ã®èª²é¡ïŒå®çšŒåç°å¢ã§æŽæ°ããã°ã©ã ã®ãªãªãŒã¹ãå éããå¿
èŠããããŸãã
æè¡çãœãªã¥ãŒã·ã§ã³ïŒã¢ããªã±ãŒã·ã§ã³ã®å±éãã€ãã©ã€ã³ãã³ãŒããæäœããããã®GitFlowã
ãã€ã¯ããµãŒãã¹ã®æ°ãšãšãã«ãå
éšã€ã³ãã©ã¹ãã©ã¯ãã£ãéçºãããŸããã ãµãŒãã¹ã®æ¬çªç°å¢ãžã®é
ä¿¡ãä¿é²ãããã£ãã®ã§ãã ãããè¡ãããã«ãã¢ããªã±ãŒã·ã§ã³ã«æ°ããå±éãã€ãã©ã€ã³ãå®è£
ããã³ãŒããæäœããããã«GitFlowã«åãæ¿ããŸããã SIã¯ãåã³ãããã®ãã¹ãã®åéãšå®è¡ãåäœãã¹ãã®å®è¡ãçµ±åãã¹ããã¢ããªã±ãŒã·ã§ã³é
ä¿¡ã«ããææç©ã®è¿œå ãéå§ããŸããã
ãããè¿
éãã€åçã«è¡ãããã«ãããããã¹ãŠã®ã¿ã¹ã¯ãå®è¡ããŠéçºè
ãããã·ã¥ããããã€ãã®GitLabã©ã³ããŒããããã€ããŸããã GitLab Flowã®ã¢ãããŒãã®ãããã§ãããã€ãã®ãµãŒããŒããããŸãïŒéçºãQAããªãªãŒã¹åè£ãæ¬çªã
éçºã¯æ¬¡ã®ãšããã§ãã éçºè
ã¯ãå¥ã®ãã©ã³ãïŒæ©èœãã©ã³ãïŒã«æ°ããæ©èœãè¿œå ããŸãã éçºè
ãçµäºãããšãéçºã®ã¡ã€ã³ãã©ã³ããšãã©ã³ããããŒãžãããªã¯ãšã¹ããäœæããŸãïŒãã©ã³ããžã®ãªã¯ãšã¹ãã®ããŒãžïŒã ä»ã®éçºè
ã¯å䜵èŠæ±ãèŠãŠããããåãå
¥ãããããŸãã¯åãå
¥ããŸããããã®åŸãã³ã¡ã³ããä¿®æ£ãããŸãã ããŒãžåŸããã©ã³ã¯ãã©ã³ãã§ç¹å¥ãªç°å¢ãå±éãããç°å¢ãäžããããã®ãã¹ããå®è¡ãããŸãã
ãããã®ãã¹ãŠã®æ®µéãå®äºãããšãQAãšã³ãžãã¢ã¯èªåã®ãQAããã©ã³ãã«å€æŽãå ããæ©èœããã³ç 究ãã¹ãçšã«ä»¥åã«äœæããããã¹ãã±ãŒã¹ã§ãã¹ããå®æœããŸãã
QAãšã³ãžãã¢ãå®äºããäœæ¥ãæ¿èªãããšãå€æŽã¯Release-Candidateãã©ã³ãã«ç§»åããå€éšãŠãŒã¶ãŒãã¢ã¯ã»ã¹ã§ããç°å¢ã«å±éããŸãã ãã®ç°å¢ã§ã¯ã顧客ã¯åœç€Ÿã®æè¡ãåãå
¥ããŠæ€èšŒããŸãã ãã®åŸããã¹ãŠããããã¯ã·ã§ã³ã«èžçããŸãã
äœããã®æ®µéã§ãã°ãããå Žåããããã®ãã©ã³ãã§ãããã®åé¡ãšéçºã®å¹³åã解決ããŸãã ãŸããRedmineãæ©èœã®ã¹ããŒãžãéç¥ã§ããããã«ãå°ããªãã©ã°ã€ã³ãäœæããŸããã
ããã«ããããã¹ã¿ãŒã¯ã¿ã¹ã¯ã«æ¥ç¶ããå¿
èŠããã段éã確èªããéçºè
ã¯ãã°ãä¿®æ£ããããšãã§ããŸãããšã©ãŒãçºçãã段éã確èªããç¹å®ã®ãã©ã³ãã«ç§»åããŠããã§ãã°ãåçã§ããŸãã
ãããªãéçº
ããžãã¹äžã®èª²é¡ïŒããŠã³ã¿ã€ã ãªãã§ãµãŒããŒãåãæ¿ããŸãã
æè¡çãœãªã¥ãŒã·ã§ã³ïŒ Kubernetesã§ã®ããã±ãŒãžåã
çŸåšãå±éã®æåŸã«ãæè¡å°é家ãjer-kiãPRODãµãŒããŒã«å ±åããŠåèµ·åããŸãã ããã¯ããŸã䟿å©ã§ã¯ãããŸããã Kubernetesãå®è£
ãããããããŒã¿ã»ã³ã¿ãŒã«ãªã³ã¯ããããããæŽæ°ããããããäžåºŠã«ããŒã«ããããšã«ãããã·ã¹ãã ã®äœæ¥ãèªååããããšèããŠããŸãã
ãã®ã¢ãã«ã«é²ãã«ã¯ã次ã®äœæ¥ãå®äºããå¿
èŠããããŸãã
- ãŠãŒã¶ãŒãç¡å·®å¥ã«ãã¹ãŠã®ãµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ã§ããããã«ãçŸåšã®ãœãªã¥ãŒã·ã§ã³ãã¹ããŒãã¬ã¹ã¢ãŒããã¯ãã£ã«ãããããŸãã äžéšã®ãµãŒãã¹ã§ã¯ãåŒãç¶ãäœããã®ã»ãã·ã§ã³ããŒã¿ããµããŒããããŠããŸãã ãã®äœæ¥ã¯ãããŒã¿ããŒã¹ã®ããŒã¿è€è£œã«ãé©çšãããŸãã
- ãŸããããã€ãã®ããžãã¹ããã»ã¹ãå«ãæåŸã®å°ããªã¢ããªã¹ãåæããå¿
èŠããããŸãã ããã«ãããæåŸã®äž»èŠãªã¹ãããã§ããç¶ç¶çããªããªãŒã«ã€ãªãããŸãã
PSãã€ã¯ããµãŒãã¹ãžã®ç§»è¡ã§äœãå€ãã£ãã®ã
- èŠä»¶ã®å€æŽã®åé¡ãåãé€ããŸããã
- Hazelcastã«è»¢éããããšã«ãããTomcatã§ã»ãã·ã§ã³ã埩å
ããåé¡ãåãé€ããŸããã
- ãããµãŒããŒããå¥ã®ãµãŒããŒã«ãŠãŒã¶ãŒã転éããå Žåããã°ã€ã³ããå¿
èŠã¯ãããŸããã
- ãªãœãŒã¹ã®ãªãªãŒã¹ã«äŒŽããã¹ãŠã®åé¡ã解決ãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®è©ã«ç§»ããŸããã
- å
¥åãšããŒãžã§ã³ç®¡çã®åé¡ã¯ãFeignã®ãããã§è§£æ±ºãããŸããã
- Gitlab Pipelinesã®å©ããåããŠãèªä¿¡ãæã£ãŠç¶ç¶çããªããªãŒã«ç§»è¡ããŠããŸãã