æšå¹ŽããåŒç€Ÿã§ã¯ããã«ãœã³ã®éå¬ãå§ããŸããã ãã®ãããªæåã®ã³ã³ãã¹ãã¯å€§æåãåããŸãããããã«ã€ããŠã¯æ¬¡ã®èšäºã§æžããŸããã
åå è ã«ã¯ãå®è£ ãããã¯ãããžãŒ ã¹ã¿ãã¯ãå®å šã«èªç±ã«éžæã§ãããããªãèå³æ·±ãã¿ã¹ã¯ãäžããããŸããã 顧客ã¹ã³ã¢ãªã³ã°æ©èœã䟿å©ã«å°å ¥ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®é«éãªãããŒã«å¯Ÿå¿ããé«è² è·ã«èããã·ã¹ãã èªäœãç°¡åã«æ¡åŒµã§ããææ決å®ãã©ãããã©ãŒã ãå®è£ ããå¿ èŠããããŸããã
åå è
ã®ãããžã§ã¯ãã®æçµãã¬ãŒã³ããŒã·ã§ã³ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³äžã«ç§ãã¡ã確信ããããã«ããã®èª²é¡ã¯ç°¡åã§ã¯ãªããããŸããŸãªæ¹æ³ã§è§£æ±ºããããšãã§ããŸãã ããã«ãœã³ã«ã¯ 6 人ãããªã 5 ããŒã ãåå ããåå è
å
šå¡ãè¯ããããžã§ã¯ããæã£ãŠããŸããããç§ãã¡ã®ãã©ãããã©ãŒã ãæã競äºåãããããšãå€æããŸããã ãšãŠãèå³æ·±ããããžã§ã¯ããããã®ã§ããã®èšäºã§ã話ãããããšæããŸãã
åœç€Ÿã®ãœãªã¥ãŒã·ã§ã³ã¯ãKubernetes å ã®ãµãŒããŒã¬ã¹ ã¢ãŒããã¯ãã£ã«åºã¥ããã©ãããã©ãŒã ã§ãããæ°ããæ©èœãéçšç°å¢ã«å°å ¥ããã®ã«ãããæéãççž®ããŸãã ããã«ãããã¢ããªã¹ãã¯ããšã³ãžãã¢ãéçºè ã®åå ãªãã«ãèªåã«ãšã£ãŠéœåã®è¯ãç°å¢ã§ã³ãŒããäœæããå®çšŒåç°å¢ã«ãããã€ããããšãã§ããŸãã
æ¡ç¹ãšã¯äœã§ãã
Tinkoff.ru ã¯ãå€ãã®çŸä»£äŒæ¥ãšåæ§ã«ã顧客ã¹ã³ã¢ãªã³ã°ãè¡ã£ãŠããŸãã ã¹ã³ã¢ãªã³ã°ã¯ãããŒã¿åæã®çµ±èšçææ³ã«åºã¥ãã顧客è©äŸ¡ã·ã¹ãã ã§ãã
ããšãã°ãã¯ã©ã€ã¢ã³ããç§ãã¡ã«ããŒã³ãçºè¡ããŠã»ããããŸãã¯ç§ãã¡ã«å人起æ¥å®¶å£åº§ãéèšããŠã»ãããšäŸé ŒãããšããŸãã 圌ã«ããŒã³ãçºè¡ããäºå®ãããå Žåã¯ã圌ã®æ¯æèœåãè©äŸ¡ããå¿ èŠããããŸãããŸããå£åº§ãå人起æ¥å®¶ã®å Žåã¯ã顧客ãäžæ£ãªååŒãè¡ããªãããšã確èªããå¿ èŠããããŸãã
ãã®ãããªææ決å®ãè¡ãããã®åºç€ãšãªãã®ã¯ãã¢ããªã±ãŒã·ã§ã³èªäœããã®ããŒã¿ãšã¹ãã¬ãŒãžããã®ããŒã¿ã®äž¡æ¹ãåæããæ°åŠçã¢ãã«ã§ãã ã¹ã³ã¢ãªã³ã°ã«å ããŠãåæ§ã®çµ±èšææ³ã¯ãã¯ã©ã€ã¢ã³ãåãã®æ°è£œåã«é¢ããåå¥ã®æšå¥šäºé ãçæãããµãŒãã¹ã«ã䜿çšã§ããŸãã
ãã®ãããªè©äŸ¡æ¹æ³ã§ã¯ãããŸããŸãªå ¥åããŒã¿ãåãå ¥ããããšãã§ããŸãã ãããŠãããæç¹ã§ãå±¥æŽããŒã¿ã®åæçµæã«åºã¥ããŠããµãŒãã¹å©çšã®ã³ã³ããŒãžã§ã³çãé«ããæ°ãããã©ã¡ãŒã¿ãŒãå ¥åã«è¿œå ã§ããŸãã
åœç€Ÿã¯é¡§å®¢é¢ä¿ã«é¢ããè±å¯ãªããŒã¿ãä¿æããŠããããã®æ å ±ã®éã¯å¢ãç¶ããŠããŸãã ã¹ã³ã¢ãªã³ã°ãæ©èœããããã«ã¯ãããŒã¿åŠçã«ã¯ã«ãŒã« (ãŸãã¯æ°åŠçã¢ãã«) ãå¿ èŠã§ããããã«ããã誰ãç³è«ãæ¿èªãããã誰ãæåŠãããã誰ãããã«ããã€ãã®è£œåãæäŸããããè¿ éã«æ±ºå®ããæœåšçãªé¢å¿ãè©äŸ¡ã§ããããã«ãªããŸãã
åœé¢ã®ã¿ã¹ã¯ã«ã€ããŠã¯ããã§ã«å°çšã®ææ決å®ã·ã¹ãã ã䜿çšããŠããŸã
åžå Žã«ã¯ãã¹ã³ã¢ãªã³ã° ã¢ãã«ãšææ決å®ã·ã¹ãã èªäœã®äž¡æ¹ã§ãæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãå€æ°ååšããŸãã åœç€Ÿã§ã¯ãããã®ã·ã¹ãã ã® XNUMX ã€ã䜿çšããŠããŸãã ããããããžãã¹ã¯æé·ããå€æ§åããŠããã顧客ã®æ°ãšæäŸããã補åã®æ°ã¯äž¡æ¹ãšãå¢å ããŠãããããã«äŒŽããæ¢åã®ææ決å®ããã»ã¹ãæ¹åããæ¹æ³ã«é¢ããã¢ã€ãã¢ãçãŸããŠããŸãã 確ãã«ãæ¢åã®ã·ã¹ãã ã䜿çšããŠãã人ã ã¯ããããããã·ã³ãã«ã«ãããè¯ãããã䟿å©ã«ããæ¹æ³ã«ã€ããŠå€ãã®ã¢ã€ãã¢ãæã£ãŠããŸãããå€éšããã®ã¢ã€ãã¢ã圹ç«ã€å ŽåããããŸãã New Hackathon ã¯ãå¥å šãªã¢ã€ãã¢ãåéããããšãç®çãšããŠéå¬ãããŸããã
ã¿ã¹ã¯
23æXNUMXæ¥ã«ããã«ãœã³ãéå¬ãããŸããã åå è ã«ã¯ãå€ãã®æ¡ä»¶ãæºããå¿ èŠãããææ決å®ã·ã¹ãã ãéçºãããšããæŠéä»»åãäžããããŸããã
æ¢åã®ã·ã¹ãã ãã©ã®ããã«æ©èœããéçšäžã«ã©ã®ãããªåé¡ãçºçããã®ããéçºããããã©ãããã©ãŒã ãè¿œæ±ãã¹ãããžãã¹ç®æšã¯äœãã«ã€ããŠèª¬æãåããŸããã ã¢ããªã¹ããäœæ¥ããã³ãŒããã§ããã ãæ©ãæ¬çªç°å¢ã«å°å ¥ã§ããããã«ãã·ã¹ãã ã¯ã«ãŒã«ãéçºããŠåžå Žæå ¥ãŸã§ã®æéãççž®ããå¿ èŠããããŸãã ãããŠãæµå ¥ããç³è«ã®æµãã«ã€ããŠã¯ãææ決å®ã«ãããæéãæå°éã«æããå¿ èŠããããŸãã ãŸããéçºäžã®ã·ã¹ãã ã«ã¯ãä»ç€Ÿè£œåãåœç€Ÿã«ãã£ãŠæ¿èªãããã¯ã©ã€ã¢ã³ãã®æœåšçãªé¢å¿ãããå Žåã«ãã¯ã©ã€ã¢ã³ãã«è³Œå ¥ã®æ©äŒãäžããããã«ãã¯ãã¹ã»ã«æ©èœãå¿ èŠã§ãã
確å®ã«æ¬çªç°å¢ã«å ¥ããããã«ãªãªãŒã¹ã§ãããããžã§ã¯ããäžå€ã«ããŠæžãã®ã¯äžå¯èœã§ããããšã¯æããã§ãããã·ã¹ãã å šäœãã«ããŒããã®ã¯éåžžã«å°é£ã§ãããããå°ãªããšãäžéšãå®è£ ããããã«æ±ããããŸããã ãããã¿ã€ããæºãããªããã°ãªããªãå€ãã®èŠä»¶ã確ç«ãããŸããã ãã¹ãŠã®èŠä»¶ãå šäœçã«ã«ããŒããããšãšãéçºäžã®ãã©ãããã©ãŒã ã®åã ã®ã»ã¯ã·ã§ã³ã«è©³çŽ°ã«åãçµãããšã®äž¡æ¹ãè©Šãããšãã§ããŸããã
ãã¯ãããžãŒã«é¢ããŠã¯ããã¹ãŠã®åå è ã«å®å šãªéžæã®èªç±ãäžããããŸããã ããŒã¿ ã¹ããªãŒãã³ã°ãæ©æ¢°åŠç¿ãã€ãã³ã ãœãŒã·ã³ã°ãããã° ããŒã¿ãªã©ãããããæŠå¿µããã¯ãããžãŒã䜿çšããããšãå¯èœã§ããã
ç§ãã¡ã®ãœãªã¥ãŒã·ã§ã³
å°ããã¬ã€ã³ã¹ããŒãã³ã°ãè¡ã£ãçµæããã®ã¿ã¹ã¯ãå®äºããã«ã¯ FaaS ãœãªã¥ãŒã·ã§ã³ãçæ³çã§ãããšå€æããŸããã
ãã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãéçºäžã®ææ決å®ã·ã¹ãã ã®ã«ãŒã«ãå®è£ ããããã®é©åãªãµãŒããŒã¬ã¹ ãã¬ãŒã ã¯ãŒã¯ãèŠã€ããå¿ èŠããããŸããã Tinkoff ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ç®¡çã« Kubernetes ãç©æ¥µçã«äœ¿çšããŠãããããKubernetes ã«åºã¥ããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãããã€ãæ€èšããŸãã (ããã«ã€ããŠã¯åŸã»ã©è©³ãã説æããŸã)ã
æãå¹æçãªãœãªã¥ãŒã·ã§ã³ãèŠã€ããããã«ãç§ãã¡ã¯ãŠãŒã¶ãŒã®ç®ãéããŠéçºäžã®è£œåã調ã¹ãŸããã ç§ãã¡ã®ã·ã¹ãã ã®äž»ãªãŠãŒã¶ãŒã¯ãã«ãŒã«éçºã«æºããã¢ããªã¹ãã§ãã ã«ãŒã«ã¯ããã®åŸã®ææ決å®ã®ããã«ãµãŒããŒã«å±éãããããã®å Žåã®ããã«ã¯ã©ãŠãã«å±éããå¿ èŠããããŸãã ã¢ããªã¹ãã®èŠ³ç¹ããèŠããšãã¯ãŒã¯ãããŒã¯æ¬¡ã®ããã«ãªããŸãã
- ã¢ããªã¹ãã¯ããŠã§ã¢ããŠã¹ããã®ããŒã¿ã«åºã¥ããŠã¹ã¯ãªãããã«ãŒã«ããŸã㯠ML ã¢ãã«ãäœæããŸãã ãã«ãœã³ã®äžç°ãšããŠãMongodb ã䜿çšããããšã«ããŸããããããã§ã¯ããŒã¿ ã¹ãã¬ãŒãž ã·ã¹ãã ã®éžæã¯éèŠã§ã¯ãããŸããã
- éçºããã«ãŒã«ãå±¥æŽããŒã¿ã§ãã¹ãããåŸãã¢ããªã¹ãã¯ã³ãŒãã管çããã«ã«ã¢ããããŒãããŸãã
- ããŒãžã§ã³ç®¡çã確å®ã«ããããã«ããã¹ãŠã®ã³ãŒã㯠Git ãªããžããªã«ä¿åãããŸãã
- 管çããã«ãéããŠãã³ãŒããå¥ã®æ©èœçãªãµãŒããŒã¬ã¹ ã¢ãžã¥ãŒã«ãšããŠã¯ã©ãŠãã«ãããã€ããããšãå¯èœã«ãªããŸãã
ã¯ã©ã€ã¢ã³ãããã®åæããŒã¿ã¯ããŠã§ã¢ããŠã¹ããã®ããŒã¿ã§åæãªã¯ãšã¹ãã匷åããããã«èšèšãããç¹æ®ãªåŒ·åãµãŒãã¹ãééããå¿ èŠããããŸãã çµ±äžãããããŒã¿æ§é ãç¶æããã«ã¯ãåäžã®ãªããžã㪠(ã¢ããªã¹ããã«ãŒã«ãéçºãããšãã«ããããããŒã¿ãååŸããŸã) ãšé£æºã§ããæ¹æ³ã§ãã®ãµãŒãã¹ãå®è£ ããããšãéèŠã§ããã
ãã«ãœã³ã®åããã䜿çšãããµãŒããŒã¬ã¹ ãã¬ãŒã ã¯ãŒã¯ã決å®ããŸããã çŸåšããã®ã¢ãããŒããå®è£
ãããã¯ãããžãŒãéåžžã«å€ãåžå Žã«åºãŠããŸãã Kubernetes ã¢ãŒããã¯ãã£å
ã§æã人æ°ã®ãããœãªã¥ãŒã·ã§ã³ã¯ãFissionãOpen FaaSãããã³ Kubeless ã§ãã ãããããŸã
ã¡ãªãããšãã¡ãªããããã¹ãŠèæ
®ããçµæãç§ãã¡ãéžãã ã®ã¯ã
Fission ã䜿çšããã«ã¯ãæ©èœãšç°å¢ãšãã XNUMX ã€ã®åºæ¬æŠå¿µãç解ããå¿
èŠããããŸãã é¢æ°ã¯ãFission ç°å¢ãååšããèšèªã® XNUMX ã€ã§æžãããã³ãŒãã§ãã
Fission ã¯ãã¢ãŒã«ã€ãã«äºåã«ããã±ãŒãžåãããè€æ°ã®ãã¡ã€ã«ã«åå²ãããæ©èœãå®è¡ããããšãã§ããŸãã Kubernetes ã¯ã©ã¹ã¿ãŒã§ã® Fission ã®åäœã¯ããã¬ãŒã ã¯ãŒã¯èªäœã«ãã£ãŠç®¡çãããç¹æ®ãªãããã«ãã£ãŠä¿èšŒãããŸãã ã¯ã©ã¹ã¿ãŒ ããããšå¯Ÿè©±ããã«ã¯ãåé¢æ°ã«ç¬èªã®ã«ãŒããå²ãåœãŠãå¿ èŠããããŸãããã®ã«ãŒãã«ã¯ãPOST ãªã¯ãšã¹ãã®å Žå㯠GET ãã©ã¡ãŒã¿ãŒãŸãã¯ãªã¯ãšã¹ãæ¬æãæž¡ãããšãã§ããŸãã
ãã®çµæããšã³ãžãã¢ãéçºè ã®åå ãªãã«ãã¢ããªã¹ããéçºãããã«ãŒã« ã¹ã¯ãªãããå±éã§ãããœãªã¥ãŒã·ã§ã³ãååŸããããšãèšç»ããŸããã 説æãããŠããã¢ãããŒãã«ãããéçºè ãã¢ããªã¹ã ã³ãŒããå¥ã®èšèªã«æžãçŽãå¿ èŠããªããªããŸãã ããšãã°ãçŸåšäœ¿çšããŠããææ決å®ã·ã¹ãã ã§ã¯ãé«åºŠã«å°éåããããã¯ãããžãšèšèªã§ã«ãŒã«ãäœæããå¿ èŠãããããã®ç¯å²ã¯éåžžã«éãããŠããããŸãããã¹ãŠã®éè¡èŠåèæ¡ã¯ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒã«åŒ·ãäŸåããŠããŸããåäžã®ç°å¢ã«ãããã€ãããŸãã ãã®çµæãæ°ããã«ãŒã«ãå±éããã«ã¯ãã·ã¹ãã å šäœããªãªãŒã¹ããå¿ èŠããããŸãã
ç§ãã¡ãææ¡ãããœãªã¥ãŒã·ã§ã³ã§ã¯ãã«ãŒã«ããªãªãŒã¹ããå¿ èŠããªãããã¿ã³ãã¯ãªãã¯ããã ãã§ã³ãŒããç°¡åã«ãããã€ã§ããŸãã ãŸããKubernetes ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ç®¡çã䜿çšãããšãè² è·ãã¹ã±ãŒãªã³ã°ã«ã€ããŠèããå¿ èŠããªããªãããã®ãããªåé¡ã¯ããã«è§£æ±ºãããŸãã ãŸããåäžã®ããŒã¿ ãŠã§ã¢ããŠã¹ã䜿çšããããšã§ããªã¢ã«ã¿ã€ã ããŒã¿ãšå±¥æŽããŒã¿ãæ¯èŒããå¿ èŠããªããªããã¢ããªã¹ãã®äœæ¥ãç°¡çŽ åãããŸãã
åŸããã®
ç§ãã¡ã¯ïŒç©ºæ³ã®äžã§ïŒæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãæã£ãŠããã«ãœã³ã«åå ãããããç§ãã¡ãããªããã°ãªããªãã£ãã®ã¯ããã¹ãŠã®èããã³ãŒãè¡ã«å€æããããšã ãã§ããã
ããã«ãœã³ã®æåã®éµã¯ãæºåãšããç·Žãããèšç»ã§ãã ãããã£ãŠãç§ãã¡ãæåã«è¡ã£ãã®ã¯ãã·ã¹ãã ã¢ãŒããã¯ãã£ãã©ã®ãããªã¢ãžã¥ãŒã«ã§æ§æããã©ã®ãããªãã¯ãããžã䜿çšãããã決å®ããããšã§ããã
ç§ãã¡ã®ãããžã§ã¯ãã®ã¢ãŒããã¯ãã£ã¯æ¬¡ã®ãšããã§ãã
ãã®å³ã¯ãã¢ããªã¹ã (ã·ã¹ãã ã®äž»ãªãŠãŒã¶ãŒ) ãšã¯ã©ã€ã¢ã³ãã® XNUMX ã€ã®ãšã³ã㪠ãã€ã³ãã瀺ããŠããŸãã
äœæ¥å·¥çšã¯ãããªæãã§æ§æãããŠããŸãã ã¢ããªã¹ãã¯ãã¢ãã«ã®ã«ãŒã«é¢æ°ãšããŒã¿ ãšã³ãªããã¡ã³ãé¢æ°ãéçºããã³ãŒãã Git ãªããžããªã«ä¿åãã管çè ã¢ããªã±ãŒã·ã§ã³ãéããŠã¢ãã«ãã¯ã©ãŠãã«ãããã€ããŸãã ãããã€ãããé¢æ°ãã©ã®ããã«åŒã³åºãããã¯ã©ã€ã¢ã³ãããã®åä¿¡ãªã¯ãšã¹ãã決å®ããããæ€èšããŠã¿ãŸãããã
- ã¯ã©ã€ã¢ã³ã㯠Web ãµã€ãäžã®ãã©ãŒã ã«èšå ¥ãããªã¯ãšã¹ããã³ã³ãããŒã©ãŒã«éä¿¡ããŸãã 決å®ãäžãå¿ èŠãããã¢ããªã±ãŒã·ã§ã³ã¯ã·ã¹ãã ã«å ¥åãããå ã®åœ¢åŒã§ããŒã¿ããŒã¹ã«èšé²ãããŸãã
- 次ã«ãå¿ èŠã«å¿ããŠãçã®ãªã¯ãšã¹ãããšã³ãªããã®ããã«éä¿¡ãããŸãã å€éšãµãŒãã¹ãšã¹ãã¬ãŒãžã®äž¡æ¹ããã®ããŒã¿ã§æåã®ãªã¯ãšã¹ããè£è¶³ã§ããŸãã çµæãšããŠåŸããã匷åãããã¯ãšãªãããŒã¿ããŒã¹ã«ä¿åãããŸãã
- ã¢ããªã¹ãæ©èœãèµ·åããã匷åãããã¯ãšãªãå ¥åãšããŠåãåãããœãªã¥ãŒã·ã§ã³ãçæããŸãããœãªã¥ãŒã·ã§ã³ã¯ã¹ãã¬ãŒãžã«ãæžã蟌ãŸããŸãã
å ã®ãªã¯ãšã¹ããå«ããšã³ãªããã¡ã³ã ãµãŒãã¹ã REST ã³ã³ãããŒã©ãŒãéããŠãã¹ãŠã®ããŒã¿ãéçŽãããããJSON ããã¥ã¡ã³ãã®åœ¢åŒã§ããŒã¿ãããã¥ã¡ã³ãæåã§ã¹ãã¬ãŒãžãããããã·ã¹ãã å ã®ã¹ãã¬ãŒãžãšã㊠MongoDB ã䜿çšããããšã«ããŸããã
ãããã£ãŠããã©ãããã©ãŒã ã®å®è£ ã«ã¯ XNUMX æéããããŸããã ç§ãã¡ã¯åœ¹å²ãããŸãåæ£ããåããŒã ã¡ã³ããŒããããžã§ã¯ãå ã§ç¬èªã®è²¬ä»»é åãæã£ãŠããŸããã
- ã¢ããªã¹ãã®äœæ¥çšã®ããã³ããšã³ã管çããã«ãããã䜿çšããŠãèšè¿°ãããã¹ã¯ãªããã®ããŒãžã§ã³ç®¡çã·ã¹ãã ããã«ãŒã«ãããŠã³ããŒãããå ¥åããŒã¿ã匷åããããã®ãªãã·ã§ã³ãéžæããã«ãŒã« ã¹ã¯ãªããããªã³ã©ã€ã³ã§ç·šéã§ããŸãã
- ããã³ãçšã® REST API ããã³ VCS ãšã®çµ±åãå«ãããã¯ãšã³ã管çè ã
- Google Cloud ã«ã€ã³ãã©ã¹ãã©ã¯ãã£ãã»ããã¢ãããããœãŒã¹ããŒã¿ã匷åããããã®ãµãŒãã¹ãéçºããŸãã
- ãã®åŸã®ã«ãŒã«ã®å±éã®ããã«ã管çã¢ããªã±ãŒã·ã§ã³ããµãŒããŒã¬ã¹ ãã¬ãŒã ã¯ãŒã¯ãšçµ±åããããã®ã¢ãžã¥ãŒã«ã
- ã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹ããã¹ãããæçµçãªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®ããã«åä¿¡ã¢ããªã±ãŒã·ã§ã³ (決å®) ã®åæãéçŽããããã®ã«ãŒã«ã®ã¹ã¯ãªããã
é çªã«å§ããŸãããã
ç§ãã¡ã®ããã³ããšã³ãã¯ããã³ãã³ã° UI ãããã䜿çšã㊠Angular 7 ã§äœæãããŸããã 管çããã«ã®æçµããŒãžã§ã³ã¯æ¬¡ã®ããã«ãªããŸãã
æéãã»ãšãã©ãªãã£ãã®ã§ãäž»èŠãªæ©èœã®ã¿ãå®è£
ããŠã¿ãŸããã Kubernetes ã¯ã©ã¹ã¿ãŒã«é¢æ°ããããã€ããã«ã¯ãã€ãã³ã (ã«ãŒã«ãã¯ã©ãŠãã«ãããã€ããå¿
èŠããããµãŒãã¹) ãšãææ決å®ããžãã¯ãå®è£
ããé¢æ°ã®ã³ãŒããéžæããå¿
èŠããããŸããã éžæãããµãŒãã¹ã®ã«ãŒã«ãå±éãããã³ã«ããã®ã€ãã³ãã®ãã°ãæžã蟌ãŸããŸããã 管çããã«ã§ã¯ããã¹ãŠã®ã€ãã³ãã®ãã°ã確èªã§ããŸãã
ãã¹ãŠã®é¢æ°ã³ãŒãã¯ãªã¢ãŒã Git ãªããžããªã«ä¿åãããŠãããããã管çããã«ã§èšå®ããå¿ èŠããããŸããã ã³ãŒããããŒãžã§ã³ç®¡çããããã«ããã¹ãŠã®é¢æ°ããªããžããªã®ç°ãªããã©ã³ãã«ä¿åãããŸããã 管çããã«ã«ã¯ãèšè¿°ãããã¹ã¯ãªããã調æŽããæ©èœãçšæãããŠãããããé¢æ°ãéçšç°å¢ã«ãããã€ããåã«ãèšè¿°ãããã³ãŒãã確èªããã ãã§ãªããå¿ èŠãªå€æŽãå ããããšãã§ããŸãã
ã«ãŒã«é¢æ°ã«å ããŠããšã³ãªããã¡ã³ãé¢æ°ã䜿çšããŠãœãŒã¹ ããŒã¿ãåŸã
ã«åŒ·åããæ©èœãå®è£
ããŸããããã®ã³ãŒãã¯ãããŒã¿ ãŠã§ã¢ããŠã¹ã«ç§»åãããµãŒãããŒã㣠ãµãŒãã¹ãåŒã³åºããäºåèšç®ãå®è¡ã§ããã¹ã¯ãªããã§ããããŸããã ã ç§ãã¡ã®ãœãªã¥ãŒã·ã§ã³ãå®èšŒããããã«ããªã¯ãšã¹ããæ®ããã¯ã©ã€ã¢ã³ãã®æ座ãèšç®ãããµãŒãããŒãã£ã® REST ãµãŒãã¹ã䜿çšããŠãã®æºåž¯é»è©±äŒç€Ÿãç¹å®ããŸããã
ãã©ãããã©ãŒã ã®ããã¯ãšã³ã㯠Java ã§æžãããSpring Boot ã¢ããªã±ãŒã·ã§ã³ãšããŠå®è£
ãããŸããã åœå㯠Postgres ã䜿çšããŠç®¡çããŒã¿ãä¿åããäºå®ã§ããããããã«ãœã³ã®äžç°ãšããŠãæéãç¯çŽããããã«åçŽãª H2 ã«éå®ããããšã«ããŸããã ããã¯ãšã³ãã§ã¯ãã¯ãšãª ãšã³ãªããã¡ã³ãæ©èœãšã«ãŒã« ã¹ã¯ãªãããããŒãžã§ã³ç®¡çããããã« Bitbucket ãšã®çµ±åãå®è£
ãããŸããã ãªã¢ãŒã Git ãªããžããªãšã®çµ±åã«ã¯ã
ç§ãã¡ã®ã¢ã€ãã¢ãå®çŸããã«ã¯ãé©åãªã€ã³ãã©ã¹ãã©ã¯ãã£ãå¿ èŠã§ããã ç§ãã¡ã¯ãKubernetes ã¯ã©ã¹ã¿ãŒãã¯ã©ãŠãã«ãããã€ããããšã«ããŸããã ç§ãã¡ãéžãã ã®ã¯ Google Cloud Platform ã§ããã Fission ãµãŒããŒã¬ã¹ ãã¬ãŒã ã¯ãŒã¯ã¯ Kubernetes ã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ãããGcloud ã«ãããã€ãããŸããã åœåããœãŒã¹ ããŒã¿ ãšã³ãªããã¡ã³ã ãµãŒãã¹ã¯ãk8s ã¯ã©ã¹ã¿ãŒå ã®ãããã«ã©ãããããå¥åã® Java ã¢ããªã±ãŒã·ã§ã³ãšããŠå®è£ ãããŸããã ããããããã«ãœã³ã®éäžã§ãããžã§ã¯ãã®äºåçãªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãè¡ã£ãåŸãåä¿¡ã¢ããªã±ãŒã·ã§ã³ã®çããŒã¿ã匷åããæ¹æ³ãéžæããæ©äŒãæäŸããããã«ã匷åãµãŒãã¹ãããæè»ã«ããããšãæšå¥šãããŸããã ãããŠãšã³ãªããã¡ã³ããµãŒãã¹ããµãŒããŒã¬ã¹ã«ãããããããŸããã§ããã
Fission ã䜿çšããã«ã¯ãFission CLI ã䜿çšããŸãããããã¯ãKubernetes CLI ã®äžã«ã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã k8s ã¯ã©ã¹ã¿ãŒãžã®é¢æ°ã®ãããã€ã¯éåžžã«ç°¡åã§ããã¯ã©ã¹ã¿ãŒå€éšã®ã¢ã¯ã»ã¹ãå¿ èŠãªå Žåã«ãå éšã«ãŒããšé¢æ°ãžã®ã€ã³ã°ã¬ã¹ãå²ãåœãŠãŠãåä¿¡ãã©ãã£ãã¯ãèš±å¯ããã ãã§ãã éåžžã10 ã€ã®æ©èœã®ãããã€ã«ã¯ XNUMX ç§ãããããŸããã
ãããžã§ã¯ãã®æçµãã¬ãŒã³ããŒã·ã§ã³ãšç·æ¬
ç§ãã¡ã®ã·ã¹ãã ãã©ã®ããã«æ©èœãããã瀺ãããã«ãéè¡ã®ååã®ããããã®ç³ã蟌ã¿ãéä¿¡ã§ããç°¡åãªãã©ãŒã ããªã¢ãŒã ãµãŒããŒã«é 眮ããŸããã ãªã¯ãšã¹ãããã«ã¯ãã€ãã·ã£ã«ãç幎ææ¥ãé»è©±çªå·ãå ¥åããå¿ èŠããããŸããã
ã¯ã©ã€ã¢ã³ã ãã©ãŒã ããã®ããŒã¿ã¯ã³ã³ãããŒã©ãŒã«éãããå©çšå¯èœãªãã¹ãŠã®ã«ãŒã«ã«å¯Ÿãããªã¯ãšã¹ããåæã«éä¿¡ãããæå®ãããæ¡ä»¶ã«åŸã£ãŠäºåã«ããŒã¿ã匷åãããå ±éã¹ãã¬ãŒãžã«ä¿åãããŸãã åèšã§ãåä¿¡ã¢ããªã±ãŒã·ã§ã³ã決å®ãã 4 ã€ã®æ©èœãš XNUMX ã€ã®ããŒã¿ ãšã³ãªããã¡ã³ã ãµãŒãã¹ããããã€ããŸããã ç³è«æžãæåºããåŸãã¯ã©ã€ã¢ã³ãã¯æ¬¡ã®æ±ºå®ãåãåããŸããã
ã¯ã©ã€ã¢ã³ãã¯ãæåŠãŸãã¯æ¿èªã«å ããŠãåœç€Ÿã䞊è¡ããŠéä¿¡ããä»ã®è£œåã®ãªã¹ãããªã¯ãšã¹ããåãåããŸããã ãã®ããã«ããŠããã©ãããã©ãŒã ã§ã®ã¯ãã¹ã»ãŒã«ã®å¯èœæ§ãå®èšŒããŸããã
åèš 3 ã€ã®æ¶ç©ºã®éè¡ååãå©çšå¯èœã§ããã
- ã¯ã¬ãžããã
- ããã¡ã
- æµåœã
ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã§ã¯ããµãŒãã¹ããšã«çšæãããæ©èœãšãšã³ãªããã¡ã³ã ã¹ã¯ãªããããããã€ããŸããã
åã«ãŒã«ã«ã¯ç¬èªã®å ¥åããŒã¿ã®ã»ãããå¿ èŠã§ããã ããã§ãäœå® ããŒã³ãæ¿èªããããã«ã顧客ã®æ座ãèšç®ããããã倪é°æŠã®ããžãã¯ãšçµã³ä»ããŸããã ããã¡ãã®æ¿èªã«ã¯é¡§å®¢ãæ幎ã«éããŠãããã©ããã確èªããããŒã³ãçºè¡ããã«ã¯æºåž¯é»è©±äŒç€Ÿã決å®ããããã®ãªã¯ãšã¹ããå€éšã®ãªãŒãã³ãµãŒãã¹ã«éä¿¡ãã決å®ãè¡ãããŸããã
ç§ãã¡ã¯ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãé¢çœãã€ã³ã¿ã©ã¯ãã£ããªãã®ã«ããããåªããŸãããåå è å šå¡ãç§ãã¡ã®ãã©ãŒã ã«ã¢ã¯ã»ã¹ããŠãæ¶ç©ºã®ãµãŒãã¹ãå©çšã§ãããã©ããã確èªã§ããããã«ããŸããã ãããŠãã¬ãŒã³ããŒã·ã§ã³ã®æåŸã«ã¯ãåä¿¡ããç³è«ã®åæããã¢ã³ã¹ãã¬ãŒã·ã§ã³ããäœäººããµãŒãã¹ãå©çšããããæ¿èªæ°ãæåŠæ°ã瀺ããŸããã
ãªã³ã©ã€ã³ã§åæãåéããããã«ããªãŒãã³ãœãŒã¹ã® BI ããŒã«ãè¿œå ã§å°å
¥ããŸãã
ãã®çµæãææ決å®ãã©ãããã©ãŒã ã®åªãããããã¿ã€ããåŸããããã¢ã³ã¹ãã¬ãŒã·ã§ã³äžã«åãªã¹ããŒããã®ããã©ãŒãã³ã¹ãå人çã«ãã§ãã¯ããããšãã§ããŸããã èå³æ·±ããœãªã¥ãŒã·ã§ã³ãå®æãããããã¿ã€ããããã³ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®æåã«ãããä»ã®ããŒã ãšã®æ¿ãã競äºã«ãããããããåœç€Ÿã¯åå©ããããšãã§ããŸããã åããŒã ã®ãããžã§ã¯ãã§ããã£ãšé¢çœãèšäºãæžãããšæããŸãã
åºæïŒ habr.com