æšå¹Žãããåœç€Ÿã§ã¯ããã«ãœã³ãçµç¹ããå§ããŸããã æåã®ãã®ãããªç«¶äºã¯éåžžã«æåãããç§ãã¡ã¯ããã«ã€ããŠèšäºã«æžããã 2åç®ã®ããã«ãœã³ã¯2019幎2æã«éå¬ãããæåãåããŸããã äž»å¬è ã¯æè¿ãåŸè ã®ç®æšã«ã€ããŠæžãã ã
åå è ã«ã¯ãå®è£ ã«äœ¿çšãããã¯ãããžãŒã¹ã¿ãã¯ãèªç±ã«éžæã§ãããããªãèå³æ·±ãã¿ã¹ã¯ãäžããããŸããã 顧客ã®æ¡ç¹æ©èœã䟿å©ã«å±éããããã®æ±ºå®ãã©ãããã©ãŒã ãå®è£ ããå¿ èŠããããŸãããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®é«éãããŒã§åäœããéãè² è·ã«èããã·ã¹ãã èªäœãç°¡åã«æ¡åŒµã§ããŸããã
ã¿ã¹ã¯ã¯èªæã§ã¯ãªããåå è ã®ãããžã§ã¯ãã®æçµãã¬ãŒã³ããŒã·ã§ã³ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã§èŠãããã«ãå€ãã®æ¹æ³ã§è§£æ±ºã§ããŸãã ããã«ãœã³ã«ã¯5人ã®ããŒã ã6ã€ããããã¹ãŠã®åå è ãåªãããããžã§ã¯ããè¡ããŸããããç§ãã¡ã®ãã©ãããã©ãŒã ã¯æã競äºåã®ãããã®ã§ããã ç§ãã¡ã¯éåžžã«èå³æ·±ããããžã§ã¯ããæã«å ¥ããŸãããããã«ã€ããŠã¯ããã®èšäºã§èª¬æããããšæããŸãã
åœç€Ÿã®ãœãªã¥ãŒã·ã§ã³ã¯ãKuberneteså ã®ãµãŒããŒã¬ã¹ã¢ãŒããã¯ãã£ã«åºã¥ããã©ãããã©ãŒã ã§ããããã«ãããæ°æ©èœãæ¬çªç°å¢ã«å°å ¥ããã®ã«å¿ èŠãªæéãççž®ãããŸãã ã¢ããªã¹ãã¯ããšã³ãžãã¢ãéçºè ãåå ããªããŠããèªåã«éœåã®è¯ãç°å¢ã§ã³ãŒããèšè¿°ãã補åã«å±éã§ããŸãã
ã¹ã³ã¢ãªã³ã°ãšã¯äœã§ããïŒ
Tinkoff.ruã¯ãå€ãã®çŸä»£äŒæ¥ãšåæ§ã«ã顧客ã®ã¹ã³ã¢ãªã³ã°ãè¡ã£ãŠããŸãã ã¹ã³ã¢ãªã³ã°ã¯ãããŒã¿åæã®çµ±èšçææ³ã«åºã¥ã顧客è©äŸ¡ã·ã¹ãã ã§ãã
ããšãã°ãã¯ã©ã€ã¢ã³ããç§ãã¡ã«åœŒã«ããŒã³ãäžããããç§ãã¡ãšIPã¢ã«ãŠã³ããéèšããããã«é Œã¿ãŸãã ç§ãã¡ã圌ã«ããŒã³ãäžããããšãèšç»ããŠãããªããããªãã¯åœŒã®æ¯æèœåãè©äŸ¡ããå¿ èŠãããããããŠå£åº§ããã©ã€ããŒããšã¯ã€ãã£ã§ãããªããããªãã¯ã¯ã©ã€ã¢ã³ããäžæ£ãªååŒãè¡ããªãããšã確ãããå¿ èŠããããŸãã
ãããã®æ±ºå®ã¯ãã¢ããªã±ãŒã·ã§ã³èªäœã®ããŒã¿ãšã¹ãã¬ãŒãžã®ããŒã¿ã®äž¡æ¹ãåæããæ°åŠã¢ãã«ã«åºã¥ããŠããŸãã ã¹ã³ã¢ãªã³ã°ã«å ããŠãåæ§ã®çµ±èšçææ³ã䜿çšããŠã顧客åãã®æ°è£œåã«é¢ããåå¥ã®æšå¥šäºé ãçæããããšãã§ããŸãã
ãã®ãããªè©äŸ¡ã®æ¹æ³ã¯ãããŸããŸãªå ¥åããŒã¿ãåãåãããšãã§ããŸãã ãããŠãããæç¹ã§ãå ¥åã«æ°ãããã©ã¡ãŒã¿ãŒãè¿œå ã§ããŸããããã¯ãå±¥æŽããŒã¿ã®åæã«ããã°ããµãŒãã¹ã®äœ¿çšã®å€æãå¢å ãããŸãã
顧客ãšã®é¢ä¿ã«é¢ããå€ãã®ããŒã¿ãä¿åããŠããããã®æ å ±ã®éã¯åžžã«å¢ãç¶ããŠããŸãã ã¹ã³ã¢ãªã³ã°ãæ©èœããããã«ã¯ãããŒã¿åŠçã«ã¯ã«ãŒã«ïŒãŸãã¯æ°åŠã¢ãã«ïŒãå¿ èŠã§ããããã«ãããã¢ããªã±ãŒã·ã§ã³ã®æ¿èªè ãæåŠè ãããã³æœåšçãªé¢å¿ãè©äŸ¡ããããã«ããã€ãã®è£œåãæäŸãã人ããã°ãã決å®ã§ããŸãã
ãã®ã¿ã¹ã¯ã§ã¯ãã¢ããªã¹ããæè¡è ãéçºè ãèšå®ããã«ãŒã«ã«åºã¥ããŠãç¹å®ã®éè¡ååãã¯ã©ã€ã¢ã³ãã«æ¿èªãããæåŠãããã決å®ãããå°çšã®IBM WebSphere ILOG JRules BRMSææ決å®ã·ã¹ãã ãæ¢ã«äœ¿çšããŠããŸãã
åžå Žã«ã¯ãã¹ã³ã¢ãªã³ã°ã¢ãã«ãšææ決å®ã·ã¹ãã èªäœã®äž¡æ¹ã®å€ãã®æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ããããŸãã åœç€Ÿã§ã¯ããããã®ã·ã¹ãã ã®ããããã䜿çšããŠããŸãã ããããããžãã¹ã¯æé·ããå€æ§åãã顧客ã®æ°ãšæäŸããã補åã®æ°ã®äž¡æ¹ãå¢å ããŠããŸããããã«äŒŽããæ¢åã®ææ決å®ããã»ã¹ãæ¹åããæ¹æ³ã«ã€ããŠã®ã¢ã€ãã¢ããããŸãã 確ãã«æ¢åã®ã·ã¹ãã ã§äœæ¥ããŠãã人ã ã¯ããããããã·ã³ãã«ã«ãããè¯ãããã䟿å©ã«ããæ¹æ³ã«ã€ããŠå€ãã®ã¢ã€ãã¢ãæã£ãŠããŸãããå€éšããã®ã¢ã€ãã¢ã圹ã«ç«ã€ããšããããŸãã å¥å šãªã¢ã€ãã¢ãåéããããã«ãæ°ããããã«ãœã³ãçµç¹ãããŸããã
ã¿ã¹ã¯
ããã«ãœã³ã¯2æ23æ¥ã«éå¬ãããŸããã åå è ã«ã¯æŠéããã·ã§ã³ãæäŸãããŸãããå€ãã®æ¡ä»¶ãæºããããã®ææ決å®ã·ã¹ãã ãéçºããããšã§ãã
æ¢åã®ã·ã¹ãã ãã©ã®ããã«æ©èœãããã®éçšäžã«ã©ã®ãããªå°é£ãçãããããŸãéçºäžã®ãã©ãããã©ãŒã ãè¿œæ±ãã¹ãããžãã¹ç®æšã«ã€ããŠèª¬æãåããŸããã ã·ã¹ãã ã¯ãã¢ããªã¹ãã®äœæ¥ã³ãŒããå¯èœãªéãè¿ éã«æ¬çªã«å ¥ãããã«ãéçºãããã«ãŒã«ã®åžå Žæå ¥ãŸã§ã®æéãççž®ããå¿ èŠããããŸãã ãŸããã¢ããªã±ãŒã·ã§ã³ã®çä¿¡ãããŒã«ã€ããŠã¯ãææ決å®æéãæå°éã«æããå¿ èŠããããŸãã ãŸããéçºãããã·ã¹ãã ã¯ãä»ã®äŒç€Ÿã®è£œåãåœç€Ÿã«ãã£ãŠæ¿èªãããã¯ã©ã€ã¢ã³ãåŽã®æœåšçãªé¢å¿ãããå Žåãã¯ã©ã€ã¢ã³ãã«ä»ã®äŒç€Ÿã®è£œåãè³Œå ¥ããæ©äŒãäžããããã«ã¯ãã¹ã»ã«ã§ããå¿ èŠããããŸãã
ããå€ã«ã¯ã確å®ã«æ¬çªçšŒåãããªãªãŒã¹å¯èœãªãããžã§ã¯ããäœæããããšã¯äžå¯èœã§ãããã·ã¹ãã å šäœãã«ããŒããã®ã¯éåžžã«é£ããããšã¯æããã§ãããããå°ãªããšããã®äžéšãå®è£ ããããã«æ±ããããŸããã ãããã¿ã€ããæºããå¿ èŠã®ããå€ãã®èŠä»¶ã確ç«ãããŸããã å šäœãšããŠãã¹ãŠã®èŠä»¶ãç¶²çŸ ããéçºããããã©ãããã©ãŒã ã®åã ã®ã»ã¯ã·ã§ã³ã詳现ã«æ€èšããããšãã§ããŸãã
ãã¯ãããžãŒã«é¢ããŠã¯ããã¹ãŠã®åå è ã«å®å šãªéžæã®èªç±ãäžããããŸããã ããŒã¿ã¹ããªãŒãã³ã°ãæ©æ¢°åŠç¿ãã€ãã³ããœãŒã·ã³ã°ãããã°ããŒã¿ãªã©ãããããã³ã³ã»ãããšãã¯ãããžãŒã䜿çšããããšãã§ããŸããã
ç§ãã¡ã®æ±ºå®
çããã¬ã€ã³ã¹ããŒãã³ã°ã»ãã·ã§ã³ã®åŸãFaaSãœãªã¥ãŒã·ã§ã³ãã¿ã¹ã¯ã«çæ³çã§ãããšå€æããŸããã
ãã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãéçºãããææ決å®ã·ã¹ãã ã®ã«ãŒã«ãå®è£ ããããã®é©åãªãµãŒããŒã¬ã¹ãã¬ãŒã ã¯ãŒã¯ãèŠã€ããå¿ èŠããããŸããã Kubernetesã¯Tinkoffã®ã€ã³ãã©ã¹ãã©ã¯ãã£ç®¡çã§ç©æ¥µçã«äœ¿çšãããŠãããããããã«åºã¥ããŠæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãããã€ãæ€èšããŸãããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
æãå¹æçãªãœãªã¥ãŒã·ã§ã³ãèŠã€ããããã«ããŠãŒã¶ãŒã®ç®ãéããŠéçºããã補åãèŠãŸããã ãã®ã·ã¹ãã ã®äž»ãªãŠãŒã¶ãŒã¯ãã«ãŒã«ã®éçºã«é¢äžããã¢ããªã¹ãã§ãã ã«ãŒã«ã¯ãµãŒããŒã«å±éããå¿ èŠããããŸãããŸãã¯ããã®å Žåã®ããã«ããã®åŸã®ææ決å®ã®ããã«ã¯ã©ãŠãã«å±éããå¿ èŠããããŸãã ã¢ããªã¹ãã®èŠ³ç¹ããèŠããšãã¯ãŒã¯ãããŒã¯æ¬¡ã®ãšããã§ãã
- ã¢ããªã¹ãã¯ããªããžããªããã®ããŒã¿ã«åºã¥ããŠãã¹ã¯ãªãããã«ãŒã«ããŸãã¯MLã¢ãã«ãèšè¿°ããŸãã ããã«ãœã³ã®äžç°ãšããŠãMongodbã䜿çšããããšã«ããŸããããããã§ã¯ã¹ãã¬ãŒãžã·ã¹ãã ã®éžæã¯éèŠã§ã¯ãããŸããã
- å±¥æŽããŒã¿ã§éçºããã«ãŒã«ããã¹ãããåŸãã¢ããªã¹ãã¯èªåã®ã³ãŒãã管çããã«ã«ã¢ããããŒãããŸãã
- ããŒãžã§ã³ç®¡çã確å®ã«ããããã«ããã¹ãŠã®ã³ãŒãã¯Gitãªããžããªã«ç§»åããŸãã
- 管çè ããã«ã䜿çšããŠãç¬ç«ããæ©èœçãªãµãŒããŒã¬ã¹ã¢ãžã¥ãŒã«ãšããŠã³ãŒããã¯ã©ãŠãã«ãããã€ã§ããŸãã
顧客ããã®åæããŒã¿ã¯ããªããžããªããã®ããŒã¿ã§åæãªã¯ãšã¹ãã匷åããããã«èšèšãããå°çšã®åŒ·åãµãŒãã¹ãééããå¿ èŠããããŸãã çµ±äžãããããŒã¿æ§é ãç¶æããããã«ãåäžã®ãªããžããªïŒåæè ãã«ãŒã«ã®éçºæã«ããŒã¿ãååŸãããªããžããªïŒã§æ©èœãããããªæ¹æ³ã§ãã®ãµãŒãã¹ãå®è£ ããããšãéèŠã§ããã
ããã«ãœã³ã®åã§ãã䜿çšãããµãŒããŒã¬ã¹ãã¬ãŒã ã¯ãŒã¯ã決å®ããŸããã ä»æ¥ããã®ã¢ãããŒããå®è£ ããåžå Žã«ã¯ããªãã®æ°ã®æè¡ããããŸãã æã人æ°ã®ããKubernetesã¢ãŒããã¯ãã£ãœãªã¥ãŒã·ã§ã³ã¯ãFissionãOpen FaaSãããã³Kubelessã§ãã 圌ãã®èª¬æãšæ¯èŒåæã®è¯ãèšäºãããããŸã ã
ãã¹ãŠã®é·æãšçæãæ¯èŒæ€èšããåŸã FissionãéžæããŸããã ãã®ãµãŒããŒã¬ã¹ãã¬ãŒã ã¯ãŒã¯ã¯ç®¡çãéåžžã«ç°¡åã§ãã¿ã¹ã¯ã®èŠä»¶ãæºãããŠããŸãã
Fissionã䜿çšããã«ã¯ãæ©èœãšç°å¢ãšãã2ã€ã®åºæ¬æŠå¿µãç解ããå¿ èŠããããŸãã é¢æ°ïŒé¢æ°ïŒã¯ãæ žåè£ç°å¢ïŒç°å¢ïŒãããèšèªã®1ã€ã§æžãããã³ãŒãã§ãã ãã®ãã¬ãŒã ã¯ãŒã¯ã®ãã¬ãŒã ã¯ãŒã¯å ã«å®è£ ãããç°å¢ã®ãªã¹ãã«ã¯ãPythonãJSãGoãJVMãããã³ä»ã®å€ãã®äžè¬çãªèšèªãšæè¡ãå«ãŸããŸãã
Fissionã¯ãã¢ãŒã«ã€ãã«ãããããããã±ãŒãžåãããããã€ãã®ãã¡ã€ã«ã«åå²ãããæ©èœãå®è¡ããããšãã§ããŸãã Kubernetesã¯ã©ã¹ã¿ãŒã®Fissionæäœã¯ããã¬ãŒã ã¯ãŒã¯èªäœã«ãã£ãŠç®¡çãããç¹æ®ãªãããã«ãã£ãŠæäŸãããŸãã ã¯ã©ã¹ã¿ãŒããããšããåãããã«ã¯ãåé¢æ°ã«ã«ãŒããå²ãåœãŠãå¿ èŠããããPOSTèŠæ±ã®å Žåã¯ãGETãã©ã¡ãŒã¿ãŒãŸãã¯èŠæ±æ¬æãæž¡ãããšãã§ããŸãã
ãã®çµæããšã³ãžãã¢ãéçºè ã®åå ãªãã«ãéçºè ãéçºããã«ãŒã«ã¹ã¯ãªãããå±éã§ãããœãªã¥ãŒã·ã§ã³ãååŸããããšãèšç»ããŸããã ãŸãã説æããã¢ãããŒãã«ãããéçºè ãå¥ã®èšèªã§ã¢ããªã¹ãã®ã³ãŒããæžãæããå¿ èŠããªããªããŸãã ããšãã°ãçŸåšäœ¿çšããŠããææ決å®ã·ã¹ãã ã®å Žåããã¹ãŠã®ãã©ãããã³ã¯ã«ãŒã«ãåäžã®ç°å¢ã«å±éãããŠãããããé©çšç¯å²ãéåžžã«éãããŠããçããããã¡ã€ã«ã®ãã¯ãããžãšèšèªã§ã«ãŒã«ãèšè¿°ããå¿ èŠããããŸãããŸããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãžã®äŸå床ãé«ããªããŸãã ãã®çµæãæ°ããã«ãŒã«ãå±éããã«ã¯ãã·ã¹ãã å šäœããªãªãŒã¹ããå¿ èŠããããŸãã
ç§ãã¡ãææ¡ãããœãªã¥ãŒã·ã§ã³ã§ã¯ãã«ãŒã«ããªãªãŒã¹ããå¿ èŠã¯ãããŸãããã³ãŒãã¯ãã¿ã³ãã¯ãªãã¯ããã ãã§ç°¡åã«ãããã€ã§ããŸãã ãŸããKubernetesã®ã€ã³ãã©ã¹ãã©ã¯ãã£ç®¡çã䜿çšãããšãè² è·ãšã¹ã±ãŒãªã³ã°ã«ã€ããŠèããå¿ èŠããªããªãããã®ãããªåé¡ã¯ããã«è§£æ±ºãããŸãã ãŸããåäžã®ããŒã¿ãŠã§ã¢ããŠã¹ã䜿çšãããšããªã¢ã«ã¿ã€ã ããŒã¿ãšå±¥æŽããŒã¿ãæ¯èŒããå¿ èŠããªããªããã¢ããªã¹ãã®äœæ¥ãç°¡çŽ åãããŸãã
äœãåŸãã®
ïŒç©ºæ³ã®ïŒæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ã§ããã«ãœã³ã«å°çããã®ã§ããã¹ãŠã®èããã³ãŒãã®è¡ã«å€æããã ãã§ãã
ããã«ãœã³ã§æåããããã®éµã¯ãæºåãšé©åãªèšç»ã§ãã ãããã£ãŠããŸããã·ã¹ãã ã¢ãŒããã¯ãã£ãæ§æããã¢ãžã¥ãŒã«ãšäœ¿çšãããã¯ãããžã決å®ããŸããã
ãããžã§ã¯ãã®ã¢ãŒããã¯ãã£ã¯æ¬¡ã®ãšããã§ãã
ãã®å³ã¯ãã¢ããªã¹ãïŒã·ã¹ãã ã®ã¡ã€ã³ãŠãŒã¶ãŒïŒãšã¯ã©ã€ã¢ã³ãã®2ã€ã®ãšã³ããªãã€ã³ãã瀺ããŠããŸãã
ã¯ãŒã¯ããã»ã¹ã¯ãã®ããã«æ§æãããŠããŸãã ã¢ããªã¹ãã¯èªåã®ã¢ãã«ã®ã«ãŒã«é¢æ°ãšããŒã¿ãšã³ãªããã¡ã³ãé¢æ°ãéçºããã³ãŒããGitãªããžããªã«ä¿åãã管çè ã®ã¢ããªã±ãŒã·ã§ã³ãä»ããŠã¢ãã«ãã¯ã©ãŠãã«ãããã€ããŸãã æ¡åŒµãããé¢æ°ãã©ã®ããã«åŒã³åºãããããæ€èšããã¯ã©ã€ã¢ã³ãããã®çä¿¡èŠæ±ã決å®ããŸãã
- ãµã€ãäžã®ãã©ãŒã ã«èšå ¥ããã¯ã©ã€ã¢ã³ãã¯ããªã¯ãšã¹ããã³ã³ãããŒã©ãŒã«éä¿¡ããŸãã ã¢ããªã±ãŒã·ã§ã³ãã·ã¹ãã ã®å ¥åã«å°éããããã«å¿ããŠæ±ºå®ãäžãå¿ èŠããããããŒã¿ããŒã¹ã«å ã®åœ¢åŒã§èšé²ãããŸãã
- 次ã«ãå¿ èŠã«å¿ããŠã匷åã®ããã«çã®ãªã¯ãšã¹ããéä¿¡ãããŸãã å€éšãµãŒãã¹ãšãªããžããªã®äž¡æ¹ããã®ããŒã¿ã§åæãªã¯ãšã¹ããè£è¶³ã§ããŸãã åä¿¡ãããªããã¯ãšãªãããŒã¿ããŒã¹ã«ä¿åãããŸãã
- åææ©èœãèµ·åãããå ¥åã§åŒ·åãããèŠæ±ãåãåãã決å®ãè¡ããŸããããããªããžããªã«èšé²ãããŸãã
ã·ã¹ãã ã®ã¹ãã¬ãŒãžãšããŠãJSONããã¥ã¡ã³ã圢åŒã®ããŒã¿ã®ããã¥ã¡ã³ãåãããã¹ãã¬ãŒãžãèæ ®ããŠMongoDBã䜿çšããããšã«ããŸãããããã¯ãåæãªã¯ãšã¹ããå«ããšã³ãªããã¡ã³ããµãŒãã¹ãRESTã³ã³ãããŒã©ãŒãä»ããŠãã¹ãŠã®ããŒã¿ãéçŽããããã§ãã
ãã®ããããã©ãããã©ãŒã ãå®è£ ããæ¥ããããŸããã ç§ãã¡ã¯åœ¹å²ãéåžžã«ããŸãåæ£ããåããŒã ã¡ã³ããŒã¯ç§ãã¡ã®ãããžã§ã¯ãã§èªåã®è²¬ä»»ç¯å²ãæã¡ãŸããïŒ
- ã¢ããªã¹ãã®äœæ¥ã®ããã³ããšã³ã管çããã«ãããã«ãããèšè¿°ãããã¹ã¯ãªããã®ããŒãžã§ã³ç®¡çã·ã¹ãã ããã«ãŒã«ãããŠã³ããŒãããå ¥åããŒã¿ãå å®ããããªãã·ã§ã³ãéžæããã«ãŒã«ã¹ã¯ãªããããªã³ã©ã€ã³ã§ç·šéã§ããŸãã
- ããã³ãããã³VCSçµ±åçšã®REST APIãå«ãããã¯ãšã³ã管çããã«ã
- Google Cloudã§ã€ã³ãã©ã¹ãã©ã¯ãã£ãã»ããã¢ãããããœãŒã¹ããŒã¿ãšã³ãªããã¡ã³ããµãŒãã¹ãéçºããŸãã
- 管çã¢ããªã±ãŒã·ã§ã³ããµãŒããŒã¬ã¹ãã¬ãŒã ã¯ãŒã¯ã«çµ±åããŠããã®åŸã®ã«ãŒã«ãå±éããããã®ã¢ãžã¥ãŒã«ã
- ã·ã¹ãã å šäœã®æ£åžžæ§ããã¹ãããããã®ã«ãŒã«ã®ã¹ã¯ãªãããšãæçµçãªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®ããã®çä¿¡ã¢ããªã±ãŒã·ã§ã³ã®åæã®éçŽïŒæ±ºå®ïŒã
é çªã«å§ããŸãããã
ããã³ããšã³ãã¯ããã³ãã³ã°UIãããã䜿çšããŠãAngular 7ã§äœæãããŸããã 管çããã«ã®æçµããŒãžã§ã³ã¯æ¬¡ã®ãšããã§ãã
ããŸãæéããªãã®ã§ãéèŠãªæ©èœã®ã¿ãå®è£ ããããšããŸããã Kubernetesã¯ã©ã¹ã¿ãŒã«é¢æ°ããããã€ããã«ã¯ãã€ãã³ãïŒã¯ã©ãŠãã«ã«ãŒã«ããããã€ããå¿ èŠããããµãŒãã¹ïŒãéžæãã決å®ããžãã¯ãå®è£ ããé¢æ°ã®ã³ãŒããã³ãŒãã£ã³ã°ããå¿ èŠããããŸããã éžæãããµãŒãã¹ã®ã«ãŒã«ã®å±éããšã«ããã®ã€ãã³ãã®ãã°ãäœæããŸããã 管çããã«ã§ã¯ããã¹ãŠã®ã€ãã³ãã®ãã°ã確èªã§ããŸãã
ãã¹ãŠã®æ©èœã³ãŒãã¯ãªã¢ãŒãGitãªããžããªã«ä¿åããã管çããã«ã§ãèšå®ããå¿ èŠããããŸããã ã³ãŒããããŒãžã§ã³ç®¡çããããã«ããã¹ãŠã®é¢æ°ã¯ãªããžããªã®ç°ãªããã©ã³ãã«ä¿åãããŸããã 管çããã«ã«ã¯ãèšè¿°ãããã¹ã¯ãªããã調æŽããæ©èœãçšæãããŠãããããæ¬çªç°å¢ã«æ©èœããããã€ããåã«ãèšè¿°ãããã³ãŒãã確èªã§ããã ãã§ãªããå¿ èŠãªå€æŽãè¡ãããšãã§ããŸãã
ã«ãŒã«ã®æ©èœã«å ããŠããšã³ãªããã¡ã³ãé¢æ°ã䜿çšããŠãœãŒã¹ããŒã¿ã®æ®µéçãªãšã³ãªããã¡ã³ãã®å¯èœæ§ãå®çŸããŸããããšã³ãªããã¡ã³ãé¢æ°ã®ã³ãŒãã¯ãããŒã¿ãŠã§ã¢ããŠã¹ã«ç§»åãããµãŒãããŒãã£ãµãŒãã¹ãåŒã³åºããäºåèšç®ãå®è¡ã§ããã¹ã¯ãªããã§æ§æãããŠããŸããã ãœãªã¥ãŒã·ã§ã³ãå®èšŒããããã«ãã¢ããªã±ãŒã·ã§ã³ãé¢ããã¯ã©ã€ã¢ã³ãã®æ座ãèšç®ãããµãŒãããŒãã£ã®RESTãµãŒãã¹ã䜿çšããŠã¢ãã€ã«ãªãã¬ãŒã¿ãŒã決å®ããŸããã
ãã©ãããã©ãŒã ããã¯ãšã³ãã¯Javaã§èšè¿°ãããSpring Bootã¢ããªã±ãŒã·ã§ã³ãšããŠå®è£ ãããŸããã 管çããŒã¿ãä¿åããããã«ãããšããšPostgresã䜿çšããäºå®ã§ããããããã«ãœã³ã®äžç°ãšããŠãæéãç¯çŽããããã«åçŽãªH2ã«å¶éããããšã«ããŸããã Bitbucketãšã®çµ±åã¯ãã¯ãšãªåŒ·åæ©èœãšã«ãŒã«ã¹ã¯ãªãããããŒãžã§ã³ç®¡çããããã«èé¢ã«å®è£ ãããŸããã ãªã¢ãŒãGitãªããžããªãŒãšçµ±åããããã«ã JGitã©ã€ãã©ãªãŒã䜿çšãããŸãã ãããã¯ã䟿å©ãªããã°ã©ã ã»ã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããŠgitåœä»€ãå®è¡ã§ããCLIã³ãã³ãã®äžçš®ã®ã©ãããŒã§ãã ãããã£ãŠãæ©èœãšã«ãŒã«ã匷åããããã®2ã€ã®å¥åã®ãªããžããªãããããã¹ãŠã®ã¹ã¯ãªããã¯ãã£ã¬ã¯ããªã«é 眮ãããŠããŸãã UIãä»ããŠãä»»æã®ãªããžããªãã©ã³ãã®æåŸã®ã³ãããã¹ã¯ãªãããéžæããããšãã§ããŸããã 管çããã«ããã³ãŒããå€æŽãããšãå€æŽãããã³ãŒãã®ã³ãããããªã¢ãŒããªããžããªã«äœæãããŸããã
ãã®ã¢ã€ãã¢ãå®è£ ããã«ã¯ãé©åãªã€ã³ãã©ã¹ãã©ã¯ãã£ãå¿ èŠã§ããã Kubernetesã¯ã©ã¹ã¿ãŒãã¯ã©ãŠãã«ãããã€ããããšã«ããŸããã ç§ãã¡ã®éžæã¯Google Cloud Platformã§ãã FlessãµãŒããŒã¬ã¹ãã¬ãŒã ã¯ãŒã¯ã¯ãGcloudã«ãããã€ããKubernetesã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ãããŸããã åœåããœãŒã¹ããŒã¿ãšã³ãªããã¡ã³ããµãŒãã¹ã¯ãk8sã¯ã©ã¹ã¿ãŒå ã®ãããã«ã©ãããããå¥åã®Javaã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠå®è£ ãããŠããŸããã ããããããã«ãœã³ã®éäžã§ç§ãã¡ã®ãããžã§ã¯ãã®äºåçãªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãè¡ã£ãåŸãçä¿¡ã¢ããªã±ãŒã·ã§ã³ã®çããŒã¿ã匷åããæ¹æ³ãéžæããæ©äŒãæäŸããããã«ã匷åãµãŒãã¹ãããæè»ã«ããããšãæšå¥šãããŸããã ãŸãããšã³ãªããã¡ã³ããµãŒãã¹ããµãŒããŒã¬ã¹ã«ãããããããŸããã§ããã
Fissionã䜿çšããã«ã¯ãKubernetes CLIã®äžã«ã€ã³ã¹ããŒã«ããå¿ èŠãããFission CLIã䜿çšããŸããã k8sã¯ã©ã¹ã¿ãŒã«æ©èœããããã€ããã®ã¯éåžžã«ç°¡åã§ããã¯ã©ã¹ã¿ãŒã®å€éšãžã®ã¢ã¯ã»ã¹ãå¿ èŠãªå Žåãçä¿¡ãã©ãã£ãã¯ãèš±å¯ããããã«ãæ©èœã«å éšã«ãŒããšã€ã³ã°ã¬ã¹ãå²ãåœãŠãã ãã§ãã éåžžã1ã€ã®æ©èœã®å±éã«ã¯10ç§ããããããŸããã
ãããžã§ã¯ãã®æçµã·ã§ãŒãšèŠçŽ
ã·ã¹ãã ã®åäœãå®èšŒããããã«ãéè¡ã®è£œåã®ãããããç³è«ã§ããç°¡åãªãã©ãŒã ããªã¢ãŒããµãŒããŒã«é 眮ããŸããã ãªã¯ãšã¹ãã«ã¯ãã€ãã·ã£ã«ãç幎ææ¥ãé»è©±çªå·ãå ¥åããå¿ èŠããããŸããã
ã¯ã©ã€ã¢ã³ããã©ãŒã ããã®ããŒã¿ã¯ã³ã³ãããŒã©ãŒã«éãããã³ã³ãããŒã©ãŒã¯å©çšå¯èœãªãã¹ãŠã®ã«ãŒã«ã®ã¢ããªã±ãŒã·ã§ã³ãåæã«éä¿¡ããæå®ãããæ¡ä»¶ã«åŸã£ãŠããŒã¿ãäºåã«åŒ·åããå ±éã¹ãã¬ãŒãžã«ä¿åããŸããã åèšã§ãçä¿¡ã¢ããªã±ãŒã·ã§ã³çšã®3ã€ã®ææ決å®æ©èœãš4ã€ã®ããŒã¿åŒ·åãµãŒãã¹ãå±éããŸããã ã¢ããªã±ãŒã·ã§ã³ãéä¿¡ããåŸãã¯ã©ã€ã¢ã³ãã¯æ¬¡ã®æ±ºå®ãåãåããŸããã
æåŠãŸãã¯æ¿èªã«å ããŠãã¯ã©ã€ã¢ã³ãã¯ãªã¯ãšã¹ãã䞊è¡ããŠéä¿¡ããä»ã®è£œåã®ãªã¹ããåãåããŸããã ãã®ããããã©ãããã©ãŒã ã§ã®ã¯ãã¹ã»ãŒã«ã®å¯èœæ§ãå®èšŒããŸããã
åèšã§ã3ã€ã®çºæãããéè¡ååãå©çšã§ããŸããã
- ã¯ã¬ãžãã
- ããã¡ã
- äœå® ããŒã³
åãã¢ã³ã¹ãã¬ãŒã·ã§ã³äžã«ãæºåãããæ©èœãšåãµãŒãã¹ã®åŒ·åã¹ã¯ãªãããå±éããŸããã
åã«ãŒã«ã«ã¯ãç¬èªã®å ¥åããŒã¿ã®ã»ãããå¿ èŠã§ããã ãã®ãããäœå® ããŒã³ãæ¿èªããããã«ã顧客ã®æ座ãèšç®ãããããæ§æŠã®ããžãã¯ã«é¢é£ä»ããŸããã ããã¡ããæ¿èªããããã«ãã¯ã©ã€ã¢ã³ããæ³å®å¹Žéœ¢ã§ããããšã確èªããããŒã³ãçºè¡ããããã«ãã¢ãã€ã«ãªãã¬ãŒã¿ãŒã決å®ããããã«å€éšã®ãªãŒãã³ãµãŒãã¹ã«ãªã¯ãšã¹ããéä¿¡ããããã«ã€ããŠæ±ºå®ããŸããã
ç§ãã¡ã¯ããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãé¢çœãã€ã³ã¿ã©ã¯ãã£ãã«ããããšããŸãããåºåžããå šå¡ããã©ãŒã ã«ã¢ã¯ã»ã¹ããŠã圌ãžã®æ¶ç©ºã®ãµãŒãã¹ã®å¯çšæ§ã確èªã§ããŸããã ãããŠããã¬ãŒã³ããŒã·ã§ã³ã®æåŸã«ãåãåã£ãã¢ããªã±ãŒã·ã§ã³ã®åæãå®æŒããç§ãã¡ã®ãµãŒãã¹ã䜿çšãã人æ°ãæ¿èªæ°ãæåŠã瀺ããŸããã
ãªã³ã©ã€ã³ã§åæãåéããããã«ã MetabaseãªãŒãã³ãœãŒã¹BIããŒã«ãããã«ãããã€ãããªããžããªã«ãã蟌ã¿ãŸããã ã¡ã¿ããŒã¹ã䜿çšãããšãé¢å¿ã®ããããŒã¿ã«åºã¥ããåæã§ç»é¢ãæ§ç¯ã§ããŸããããŒã¿ããŒã¹ãžã®æ¥ç¶ãç»é²ããããŒãã«ïŒãã®å Žåã¯MongoDBã䜿çšããŠãããããããŒã¿ã³ã¬ã¯ã·ã§ã³ïŒãéžæããé¢å¿ã®ãããã£ãŒã«ããæå®ããã ãã§ãã
ãã®çµæãææ決å®ãã©ãããã©ãŒã ã®åªãããããã¿ã€ããå ¥æãããã¢ã§ã¯åãªã¹ããŒããã®ããã©ãŒãã³ã¹ãå人çã«ãã¹ãã§ããŸããã ä»ã®ããŒã ãšã®æ¿ãã競äºã«ãããããããèå³æ·±ã解決çãæ¢è£œã®ãããã¿ã€ããæåãããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãåå©ããããããŸããã åããŒã ã®ãããžã§ã¯ãã§ã¯ãèå³æ·±ãèšäºãæžãããšãã§ããŸãã