ããã¯ããã€ãéè¡ãã¯ãããžãŒã»ã³ã¿ãŒã®ã¢ã³ãã³ããã£ã¢ãšããšã®ã€ã³ã¿ãã¥ãŒã§ãã éèæ°åŠè
ãäœãããã®ããéè¡ããã®ããŒã¿ã¯ã©ãããæ¥ãã®ããã©ã®ããã«åŠçããæé©åãããã®ãã«ã€ããŠã話ããŸãã éèã»ã¯ã¿ãŒãžã®åå
¥ã®é£ããã蚌åžååŒæã§ã®ååŒãéè¡ã®äžè¬çãªããŒãºã
ããªãã¯éè¡ã§äœãã©ãæããŸããïŒ
-èªå·±çŽ¹ä»ããé¡ãããŸããããªãã誰ã§ãäœãããŠããã®ãæããŠãã ããã
ä»å¹Žã®1æäžæ¬ã«ãã€ãéè¡TechCenterã«ç§»ããçŸåšãäžçäžã®ããŸããŸãªãã¬ãŒããŒããã®ããŒã¿ãå¿
èŠãšããä»ã®ããŒã ã®ããŸããŸãªçš®é¡ã®éèååãªã¹ã¯ãèæ
®ãããããžã§ã¯ãã§ãµãŒããŒåŽãéçºããŠããŸãã
ãã®ãããžã§ã¯ãã¯ãå€ãã®äžè¬çãªæšæºãã¬ãŒã ã¯ãŒã¯ã§ããéãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã䜿çšããããªã倧èŠæš¡ãªã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããKafkaã®ããã°ããŒã¿ãåŠçããŸãã ãŸããæ°äžåã®CPUã®ã°ãªããã§äœæ¥ããããŸããŸãªã«ã¹ã¿ã ãããžã§ã¯ãã䜿çšããprotobufã§äœæ¥ãæé©åããéèæ°åŠã«èšç®ãå®è£
ãã
ã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžéšãšããŠãããã€ãã®è¿œå ã®æé©åãšãããããããŸãã ããããããã¯æãããããããŸããããéè¡ã§äœãèµ·ãã£ãŠããããäžè²«ããŠè«ççã«äŒããããšã¯éåžžã«å°é£ã§ããæ°ããŒã»ã³ãããããæãåºããŠè²¡æºãåŸãŸãããããã¯è€éãªæ°åŠãã¢ã«ãŽãªãºã ã倧èŠæš¡ã€ã³ãã©ã¹ãã©ã¯ãã£ãæè¡ããã³æé©åã¿ã¹ã¯ã§ãã
-é çªã«æ¥ãŠãã ããã TechCenterã§ã¯ãã°ããŒãã«ãã³ãã³ã°ãã©ãããã©ãŒã ã®èšç®ãè¡ã£ãŠãããšãã£ããããŸããã ããããéè¡ã§ã¯äœãèããããŸããïŒ
ç§ã®çµéšã«åºã¥ããŠãæè³æŽ»åã®æ çµã¿ã®äžã§ãäŸ¡æ ŒãšããŸããŸãªååã®ä»ã®å€ãã®ææšã®äž¡æ¹ãèæ
®ãããŸãã æ ªåŒã«ã€ããŠè©±ããšããã¹ãŠãæ確ã§ããçžå Žã¯ãã®äŸ¡æ Œã§ãã åµåžã®å Žåãããã¯é¡é¢ã®å²åã«ãªããŸãã
ããªããã£ãïŒããªããã£ãéèååïŒã«ã€ããŠè©±ãå ŽåãäŸ¡æ Œã¯ãã®ååã«æ¯æããªããã°ãªããªããã¬ãã¢ã ã®ãµã€ãºã§ãã ããã¯å€ãã®ç°ãªãåŒã§èšç®ãããŸãã ãªãã·ã§ã³ã®äŸ¡å€ãèŠç©ãããã©ãã¯ã»ã·ã§ãŒã«ãºåŒããããŸã-ããã¯ãçŸåšã®çžå Žãåè³ç£ããã©ãã£ãªãã£ãæºæãŸã§ã®æéãããã³ä»ã®å€ãã®èŠå ã®é¢æ°ã«äŸåããé¢æ°ã§ãã
ãã¬ãŒããŒã®ããŒããã©ãªãªã®äŸ¡å€ãèšç®ã§ããã¢ãã«ããããŸãã éšéãŸãã¯äŒç€Ÿã«ã¯ãäžé£ã®ååŒãããŒããã©ãªãªå
ã®ããªããã£ãéèååããããçŸåšã®è²»çšãèšç®ããå¿
èŠããããŸãã ãããšã¯å¥ã«ã1ã€ã®äŸ¡æ ŒããããŸãããåèšãããšãäœããã®åœ¢ã§çžé¢ããå²åŒãäžããããšãã§ããŸãã ããšãã°ãåæããžã·ã§ã³ïŒãªãã·ã§ã³ã®å
ç©ãšåçã®ãªãã·ã§ã³ãäœæããæ¹æ³ã ããã¯ãããšãã°ãªãã·ã§ã³ãªã©ã®éç·åœ¢è³ç£ã«é©ããŠããŸãããå¿
ããããã¹ãŠã®çš®é¡ã®ããªããã£ãã«åœãŠã¯ãŸãããã§ã¯ãããŸããã è©äŸ¡ã¯ãããªããã£ããæ§ç¯ãããåè³ç£ã®èŠç©ã«åºã¥ããŠããŸãã ããšãã°ã1ã€ä»¥äžã®é貚ãã¢ã®åŒçšã ããªããã£ãã¯ããŸããŸãªåè³ç£ã«åºã¥ããŠæ§ç¯ã§ããŸããé貚ã®å Žåãåè³ç£ã¯ãŠãŒãããã«ãªã©ã«ãªããŸãã ã³ã¢ãã£ãã£ããªããã£ã-ãªã€ã«ãéãå°éºŠ; ã¹ãããçš-ããŸããŸãªæ ªåŒãšåµåžã
ããªããã£ãã®è©äŸ¡ã«å ããŠããªã¹ã¯ãèæ
®ãããŸã-åžå ŽäŸ¡æ Œãããæ¿ããæŽéš°ããå Žåã«äœãèµ·ãããïŒãã©ãã£ãªãã£ã®å€åïŒã ãŸãã¯ããã«ã®è²»çšã1ã€ã§ã¯ãªããä»ã®1ã€ãŸãã¯ãã¹ãŠã®é貚ã«å¯ŸããŠ100é貚ãã¹ãŠã«ãããå Žåã¯ã©ããªããŸããã ç¹å®ã®ååãããŒããã©ãªãªã«äœãèµ·ãããã
ããããªã¢ã«ã¿ã€ã ã§èšç®ããããŒããã©ãªãªã®çŸåšã®ç¶æ
ããåé貚ã®äŸ¡æ Œå€åã®ããŸããŸãªæªåœ±é¿ãåžå Žã®ãã©ãã£ãªãã£ã®å€åã«è¿äŒŒãããå¿
èŠããããŸãã ãããè¡ãããã«ãçŸåšã®ç¶æ³ãææ¥ãåžå Žå±æ©ãçºçããå Žåã«äœãèµ·ãããã瀺ããèãããããã¹ãŠã®å€æŽã®ãããªãã¯ã¹ãæ§ç¯ããŠããŸãã
ããã¯ãçŸæç¹ã§äœã売買ããã©ã®ãããªãªã¹ã¯ãããããè©äŸ¡ããããã«å¿
èŠã§ãã ãŸããä»åŸäœãèµ·ããããè©äŸ¡ããååŒæŠç¥ãè©äŸ¡ããåžå Žã®å€åã«ããæ£ç¢ºã«å¯Ÿå¿ããŸãã ããšãã°ãã¯ã©ã³ã¿ã ã®1ã€ã¯ããªã¹ã¯ãèšç®ããããã®æ°ããã¢ã«ãŽãªãºã ãèæ¡ããŸãããããšãã°ãéå»æ°å幎éã®ãã¹ãŠã®äº€ææ
å ±ãå±¥æŽããŒã¿ã§ç¢ºèªããäœãèµ·ãããã確èªããå¿
èŠããããŸãã
ãããã®ããŒãºã«å¯Ÿå¿ãããããåžå ŽããŒã¿ãåœç€Ÿã«éä¿¡ããããŸããŸãªäº€æãã©ãããã©ãŒã ã«æ¥ç¶ãããã€ã³ãã©ã¹ãã©ã¯ãã£ããããŸãã åŒç€Ÿã«ã¯äžçäžã«å€ãã®ããŒã¿ããããããäºåéèšãè¿
éã«åŠçããã«ã¯ãäœããã®æ¹æ³ã§äºåéèšãä¿åããã³æ§ç¯ããå¿
èŠããããŸãã
-ã€ã³ãã©ã¹ãã©ã¯ãã£ã®éšåã«ç§»ãåã«ãããªãããã§ã«èšã£ãããšã«ã€ããŠãèãããããšæããŸãã ããªãã¯ããããçš®é¡ã®åæã¢ã«ãŽãªãºã ã®æã«ã€ããŠè©±ããŸãããããããã®ã¢ã«ãŽãªãºã ã¯ã©ãããæ¥ãã®ã§ããïŒ ããã¯äœããã®æžç±ã®ç¥èã§ããããããšããã¹ããã©ã¯ãã£ã¹ã§ããïŒ
ããã€ãã®ãã€ã³ãããããŸãã ãŸããããç¥ãããæ°åŒãæ°åŠè
ã«ãã£ãŠçºæãããã¢ã«ãŽãªãºã ãæ¡çšãããŸãã ããšãã°ãäžè¬ã«åãå
¥ããããŠãããªãã·ã§ã³äŸ¡æ Œèšå®ã¢ãã«ã¯ãBlack-ScholesåŒã§ãã ããããããã«å ããŠãå
éšæ¹åããããŸããç¹ã«ãäŸ¡æ Œååžã®ä»ã®æ³åã䜿çšãããããã®åŒã®ä¿æ°ãã²ãããŸãã äŸ¡æ ŒãååŒãããã³ãã®ä»ã®ææšã®ååžæ²ç·ã®åŒã¯å€§ããç°ãªãå ŽåããããŸãã
æé©åã«ã€ããŠè©±ãå Žåããããã¯ãã§ã«å
éšçãªæ¹åã§ãã ããšãã°ãéçºè
ã¯åãã€ã³ãã§ã€ã³ãžã±ãŒã¿ãŒãèšç®ãã代ããã«ãããŒå€ãèšç®ããŠæŠç®ãè¡ãããšãã§ããŸããããã«ãããã³ã³ãã¥ãŒã¿ãŒæéã20åã®1ã«ãªããŸãããåæã«èš±å®¹ã§ããååãªç²ŸåºŠãåŸãããŸãã
ãã¹ãŠã®ããŒã¿ã¯çµ¶ããå€åããŠããŸããããã¯ãã¬ããŒãã ãã§ãªãããã¬ãŒããŒã«åžå Žç¶æ³ã®ææ°ã®ç¶æ³ãæäŸããããã«ãéèŠã§ãã
-ããã¯éåžžã«è€éãªæ
å ±ã§ããããããã人ãã人ãžè»¢éããããšã¯ããããéåžžã«å°é£ã§ãã ããŒã ã®èŠæš¡ã¯ã©ã®ãããã§ããïŒãŸããã©ããã£ãŠç¥èã亀æããŸããïŒ
ã¢ã¹ã¯ã¯ã§ã®ç§ãã¡ã®ãããžã§ã¯ãã¯35人ãéçšããŠããŸãã ãããã¯ãUIãããã¯ãšã³ããã€ã³ãã©ã¹ãã©ã¯ãã£ãéèæ°åŠãªã©ã®ç¹å®ã®æ©èœãæ±ãè€æ°ã®ããŒã ã§ãã ãã®ãããªåããŒã ã«ã¯ãç¹å®ã®ã¢ãžã¥ãŒã«ã®æ©èœã«é¢ããæ·±ãå°éç¥èããããŸãã ãããããããã®äººã
ã®ã»ãã«ãç§ãã¡ã®ãããžã§ã¯ãã«é¢é£ããã·ã¹ãã ã«é¢äžããŠããå€ãã®äººã
ãããŸãã
ãããžã§ã¯ãã«é¢ãããã¹ãŠã®æ
å ±ã¯Confluenceã®ã¢ããªã¹ãã«ãã£ãŠèšè¿°ãããæšæºã¡ã«ããºã ãšãããªãã¯ãã©ãŒãã¥ã©ãžã®ãªã³ã¯ãããJIRAã¿ã¹ã¯ã®èª¬æã«ãå«ãŸããŠããŸãã æ©èœã®äœ¿çšäŸã¯ããã¹ãã§èŠã€ããããšãã§ããŸãã ãŸãã人éã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯ãã£ã³ã»ã«ãããŠããŸããã
-éèæ°åŠè
ïŒããã«äœäººããŸããïŒ éèŠãªç§åŠè
ã¯ããŸããïŒ
ã¯ãã圌ãã¯äž»ã«ãã³ãã³ã«åº§ã£ãŠåžå Žãã©ã®ããã«æ©èœãããã®éèã¢ãã«ãæ§ç¯ããå°é家ïŒéåïŒã§ãã ã»ãšãã©ã®å Žåã圌ãã¯éèãŸãã¯æ°åŠã®å士å·ãæã£ãŠããŸãã 圌ãã¯ãåžå Žãã©ã®ããã«æ©èœãããããã¬ãŒããŒãäœãå¿
èŠãšããŠããããç¥ã£ãŠãããåžå Žã®ç¶æ
ããªã¹ã¯èšç®ã¢ã«ãŽãªãºã ãããªããã£ãã®æ£ããè©äŸ¡ãèšè¿°ããäœããã®æ°åŠçã¢ãã«ãèãåºãããšãã§ããŸãã
ããšãã°ãç§ã®ååã®ã¢ã¬ã¯ãµã³ããŒã¯Habréã«é¢ããèšäºãæžããŠããã圌ã¯ãã§ã«éåã®çµéšã«ã€ããŠèšåããŠããŸãã
-éåžžã®éçºè
ã¯åœŒããšéä¿¡ã§ããŸããïŒ ãã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯ã©ããªã£ãŠããŸããïŒ å®éãæ°åŠãšåŸæ¥ã®éçºã«ã¯ãŸã£ããç°ãªãäžçããããŸãã
圌ãã¯ã³ãã¥ãã±ãŒã·ã§ã³ãšã³ãã¥ãã±ãŒã·ã§ã³ãã§ããŸãïŒããã€ãã®ãããã¬ãã«ã®ããžãã¹ã¿ã¹ã¯ãšæŠå¿µããªãŒããŒãšè°è«ãããŠããããšã¯æããã§ãããç¹å®ã®ãªã¹ã¯èšç®ãŸãã¯ãã®ä»ã®ææšã®æ çµã¿ã§ã¯ãéçºè
ã¯ãã®ã¢ãã«ãæ§ç¯ãããã¬ãŒããŒãŸãã¯ã¯ã©ã³ã¿ã ãšçŽæ¥éä¿¡ããŸã
ããããå®éã«ã¯ãããã¯çžäºäœçšã®çžäºããã»ã¹ã§ããçè«çãªã¢ã«ãŽãªãºã ãå®éã«åžžã«å®è£
ãããŠããããã§ã¯ãªãããã§ãã ãããã£ãŠãéçºè
ã¯ãçŸåšã®ã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£ã«é©åããããã«ã¢ãã«ã®å€æŽãææ¡ã§ããŸãã
察話ããã«ã¯å€ãã®æ¹æ³ããããŸã-åãSkypeãé»è©±ããã¹ãŠæšæºã®ã³ãã¥ãã±ãŒã·ã§ã³ããŒã«ã§ãã
-çµæãšããŠåºãŠãããœãããŠã§ã¢ã¯èªåã§ããïŒ ãããã®ããããã¯ãããŸããããããšããã¯ãã«ã«åæã«æºãã£ãŠãããã¬ãŒããŒã®ããã«äœããããŸããïŒãããšããã£ãŒãã§ããïŒ
ãœãããŠã§ã¢ã䜿çšããããã®ããã€ãã®ãªãã·ã§ã³ããããŸãïŒæåã®ãªãã·ã§ã³ã¯èªåã§ãã ãã¬ãŒãã£ã³ã°ããããã2çªç®ã¯ãã¬ãŒããŒã®ã¢ã·ã¹ã¿ã³ãã§ãããããŒããã©ãªãªã®çŸåšã®ç¶æ
ã衚瀺ããããŸããŸãªææšã§ã®ãªã¹ã¯ãçŸåšå®è¡å¯èœãªååŒã®ãªãã·ã§ã³ãããŒããã©ãªãªã®å°æ¥ã®ç¶æ
ãããã³ãããã®æäœã®çµæã«åºã¥ããªã¹ã¯ã詳现ã«ç€ºããŸãã ãã¬ãŒããŒåãã®ææšããªã¹ã¯èšç®ãããŒããã©ãªãªã®ç¶æ
ã«é¢ããããŒã¿ããããŸãã
-ãã1ã€ã®ææšã¯ãããŒã¿åæã®é »åºŠã§ããã©ã®ãããã®é »åºŠã§åæããŸããïŒ ç§ãç解ããŠããããã«ãã¹ãã¯ãã«ã®äžæ¹ã®åŽã§ã¯æ°ãã€ã¯ãç§ãããäžæ¹ã§ã¯æ°é±éãããå¯èœæ§ã®ããããã°ããŒã¿ã®åæã§ãã
ã€ã³ãžã±ãŒã¿ã®è€éããšéèŠåºŠã«å¿ããŠããããã¯ã©ã€ãã€ã³ãžã±ãŒã¿ã«ãªãå Žåãããããã£ãã¯ããšã«åèšç®ãããŠããããªç§åäœã§èšç®ãããŸãã ãããŠãããŒããã©ãªãªã®ã³ã¹ããèšç®ãããšãæŽæ°ã1ç§ã«1åè¡ãããããã人éã®ç®ã§ãããç¥èŠããæéããããŸãã
é·ãèšç®ïŒããšãã°ãããã€ãã®è€éãªãªã¹ã¯ïŒãæ¥äžã«å¿
èŠãªããŒã¿ãèšè¿°ããå Žåãã¿ã¹ã¯ã¯ã°ãªããã«éä¿¡ãããé貚çžå Žãå€æŽããã·ããªãªãèæ
®ãããŸãã äžè¬çãªã¡ã«ããºã ã¯æ¬¡ã®ãšããã§ããç¹å®ã®ãµã€ã¯ã«å
ã®ãã¹ãŠã®æ°ãããã©ã³ã¶ã¯ã·ã§ã³ãæ€èšããŠãããã°ãªããäžã§å°é£ãªã¿ã¹ã¯ãå®è¡ããŠãçŸåšã®åžå Žç¶æ³ã®ãã©ã³ã¶ã¯ã·ã§ã³ã»ããå
šäœã®ã€ã³ãžã±ãŒã¿ãŒãåèšç®ããŸãã
ãã®ãããªã¿ã¹ã¯ã¯ã1æéã«1åæŽæ°ã§ããŸãã ååŒæŠç¥ãè¿œãæãå¿
èŠãããå Žå-ããã¯é·ãã¿ã¹ã¯ã§ãããæããããæ°æéã¯è€éããšããŒã¿ã®éã«å¿ããŠèæ
®ãããŸãã ã°ãªããäžã®ã¿ã¹ã¯ã¯ãããšãã°ã1ã€ã®åŒãèšç®ããŠ1ã€ã®çµæãåºããªã©ãéåžžã«å°ããããããšããããšãã°ãèãããããã¹ãŠã®ãªã¹ã¯ã·ããªãªã®çžé¢ãèšç®ããŠçµã¿åãããçµæãäžããå¿
èŠãããããŒãã«ã®å Žåã¯å€§ããããããšãã§ããŸãã
ã°ãªããã®è² è·ãæé©åããæ©åšã®çš®é¡ãããŒã¿ã®éããã®ä»ã®ææšã«å¿ããŠã¿ã¹ã¯ã®èšç®æéãäºæž¬ããŠãè² è·ãæ倧ã«ããã¿ã¹ã¯ã衚瀺ãããŸãã ãªããªãã1ã€ã®å€§ããªã¿ã¹ã¯ãæãããšãä»ã®å
šå¡ã䞊ãã§åŸ
æ©ããããã§ãã
äžè¬çã«ãããã¯ããã¯ãšä»ã®æé©åã®ã¿ã¹ã¯ã ã°ãªãããžã®pingãèšç®æéèªäœãããé·ãå Žåã¯ãããã¯ãšã³ãã§å®è¡ããŸããããã¯ãšã³ãã§ã¯ããã®ãããªå°ããªã¿ã¹ã¯ã®ããã«ããã¯ã©ã¹ã¿ãŒãæ¢ã«ãããã€ãããŠããŸãã
-ãªãããã®åœ¢ã§ãããé
眮ã§ããŸããïŒ ç§ã®ç¥ãéããã¿ã¹ã¯ã®éã«å¿ããŠç°ãªãæé©åæ¹æ³ã䜿çšãããŸãã å°ããªã¿ã¹ã¯ã§ã¯ãJITã³ã³ãã€ã©ãŒãæé©åãã倧ããªã¿ã¹ã¯ã§ã¯ä»ã®äœããæé©åããã®ãçã«ããªã£ãŠããŸãã åé¡ã®é åãšãå éãšæé©åã®ããã«ããã§äœ¿çšãããŠããæ¹æ³ãæããŠãã ããã
倧ããªã¿ã¹ã¯ã®äŸã¯ãåé貚ã®çžå Žã1-2-3-10ïŒ
å€æŽããéã®ãã¹ãŠã®éèååãšãªã¹ã¯ãèšç®ããããšã§ãã ãã®å Žåãæé©åã¯ããã©ã³ã¶ã¯ã·ã§ã³ããã³ãã«ã«ã°ã«ãŒãåããŠã1ã€ã®ãã³ãã«å
ã«1ã€ã®ã¿ã€ãã®ããŒããã©ãªãªãŸãã¯1ã€ã®é貚ã®ãã©ã³ã¶ã¯ã·ã§ã³ãããããã«ããŸãã
åãã©ã³ã¶ã¯ã·ã§ã³ã«å€ãã®ãªã¹ã¯èšç®ããªãããã«ããããã倧èŠæš¡ãª1ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ãšããŠæ瀺ããçµæãæ¯äŸçã«åå²ããŸãã ãããã£ãŠãå¿
èŠãªèšç®ã®æ°ãæžãããŸãã
å¥ã®æé©åã®äŸãšããŠãä»åã¯é貚ãã¢ã䜿çšããŸãã ãã«ãŒãã«ãã«ããšãã«ãŒãã«ãŠãŒããã®2ã€ã®ãã¢ããããšããŸãã æåã®ãã¢ã§ã¯ãã«ãŒãã«ãäžèœããŠããããšãæ³åã§ããŸããããã«ãäžæããŠããå¯èœæ§ããããŸãã å®éãããã¯ãŸã£ããåãã§ãã ã«ãŒãã«ãšãŠãŒãã®ãã¢ã«ã€ããŠãåãããšãèšããŸãã ãããã£ãŠãäž¡æ¹ã®ã±ãŒã¹ã§ã«ãŒãã«ãå€åããããšã«åºã¥ããŠã1ã€ã®ããã¯ã§äžèŠç°ãªããã¢ãèæ
®ããããšãã§ããŸãã
èšç®ã®æ°ãæžããçµæãå éãããŸãã 1ã€ã®é貚ïŒãã®äŸã§ã¯ã«ãŒãã«ïŒãå€æŽãããããã§ãããå®éã«ã¯ãç°çš®è³ç£ã®ãªã¹ã¯ãèšç®ããŸããã
-ãããŠãåé¡ãçæ£é¢ãã解決ããããã巚倧ã§å·šå€§ãªã¯ã©ã¹ã¿ãŒã«å±éã§ããŸããïŒ
ãã®ãããªã¯ã©ã¹ã¿ãŒããããŸãããæ¢ã«å€ãã®èšç®ãããŒããããŠããŸãã çŸåšæ°äžã®CPUãååšããã«ãããããããã¯ã©ã¹ã¿ãŒã¯ãŽã ã§ã¯ãããŸããã
-ãããŠããœãããŠã§ã¢ã®èŠ³ç¹ãããIn-Memory DataGridãŸãã¯HadoopïŒ
ã¯ãããã¹ãŠãåŠçããHadoopãKafkaãããã³ããã°ããŒã¿ã®åŠçãæé©åããClickHouseããŒã¿ããŒã¹ããããŸãã ããŒã¿ã®ã¹ã¿ãã¯ã«é¢ããŠã¯ãJSONãé§åããããšã¯ãæ§ããã«èšã£ãŠãéå¹çã§ããããšã¯æããã§ãã ãã®ç¹ã§ãProtobufã§æé©åã®ç¬éããããŸãã ãã€ããªããŒã¿ãé
眮ããã ãã§ãªããèŸæžã䜿çšããŠã§ããéãå³ããããããšãéèŠã§ãã
ãããã«ã¯ãããšãã°ããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã«å¯ŸããŠåãã¿ã€ãã®å¥çŽä»æ§ãä¿åããŸãã èŸæžã«ãããã®æé©åã«ãããååã¯å æã¡ã¢ãªã®30ïŒ
ãç¯çŽããŸããã
-ãããã®ãã£ã¯ã·ã§ããªã¯ç¹å®ã®ããŒãã«ãããè€è£œãããŠããããäžå€®ããŒã¹ã«ãããŸããïŒ
ããŸããŸãªæ¹æ³ã§ã äž»ã«äžå€®åºå°ã«ãããŸãã ãŸããå€æ°ã®èšç®ã䜿çšããŠã°ãªããã«è»¢éããèŸæžããããŸãã ã€ã³ã¿ãŒããããã£ãã«ã¯ãŽã ã§ã¯ãªãããã倧éã®ããŒã¿ããã©ãã°ããªãããã«ãã§ããã ãã³ã³ãã¯ãã«ããããšèããŠããŸãã
ã©ã®ããã«æ©èœããŸããïŒ èšç®ã¿ã¹ã¯ãå¿
èŠãªãã¹ãŠã®æ
å ±ãšãšãã«ã°ãªããã«éä¿¡ããéè€ãé¿ããããã«èŸæžã«ããã¯ããŸãã å
éšã«ã¯ãã§ã«ãã¹ãŠã®ã³ã³ãã³ãããããè¿œå ã®ãªããžããªã«ç§»åããå¿
èŠã¯ãããŸããã ããã«ããããããã¯ãŒã¯ãã©ãã£ãã¯ãç¯çŽãããèšç®ã®é
延ãæžå°ããŸãã
-ç§ã®ç¥ãéããéè¡ã¯éå»ã®ããŒã¿ãåæããŠããŸããããã¯ãã®ã¬ãã€ã-ãã©ãã€ãããã1ã€ã®å·šå€§ãªããŒã¿ã§ãã ãããŠãåäžã®ããŒã¿ããŒã¹ã§ã®ã¢ãããŒãã¯æ©èœããŸãããïŒ ããŒã«2 TBãé
眮ã§ããŸãããããã¯è¯ããããŸããã
ã¯ãããã®ãããªç¬éã¯åå²ã«ãã£ãŠæ±ºå®ãããŸãã ãã¥ãŒãšãŒã¯ããã·ã³ã¬ããŒã«ãžã®ãã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã«é¢ããæ
å ±ã®éä¿¡ã¯ãªãœãŒã¹ã倧éã«æ¶è²»ããããã亀ææ
å ±ã«ãã£ãŠã¬ã€ã¢ãŠããããåœå¥ã®ããŒã«ã«ãã£ãã·ã¥ããããŸãã ããã§ã¯ãåœã«ããåºåãè«ççã§ããããšã¯æããã§ããããšãã°ãç±³åœã§ã®ååŒã¯ã¢ã¡ãªã«ã®ããŒã¿ã»ã³ã¿ãŒã«é
眮ãããŸãã åŒçšç¬Šã䜿çšããåæ§ã®ç¶æ³-ã«ãŒãã£ã³ã°ãæ§ç¯ãããããã©ã®ãããªååŒã§ããããã©ã®ãªãŒãžã§ã³ã«å±ããŠããããå€æãããã£ãã·ã¥ã®å Žæãç解ããå¿
èŠãªã¹ãã¬ãŒãžãšããŒã¿ããŒã¹ã«éä¿¡ããããŒã¿ãå床远跡ããªãããã«ããå¿
èŠããããŸã
-ãããŠãç°ãªãå°åã®ããŒã¿ãçµåããå¿
èŠããããŸããïŒ
ã¯ããããã¯ãããŸãããããŠãããã¯é£ããä»äºã§ãã éçŽãããçµæãååŸããããã«ããã¹ãŠã®ãªãŒãžã§ã³ãããã©ãã€ãã®ããŒã¿ããã³ãã¢ãŠãããªãããšã¯æããã§ãã ã»ãšãã©ã®å Žåãåå°åã§ãã®å°åã®ããŒã«ã«éèšãèšç®ããããããã¹ãŠã®çµæãåéããŠæŠèŠããŒã¿ãååŸããŸãã
-ããããã亀æå±¥æŽãªã©ã®å€éšããŒã¿ããããŸãã ãããŠãããããã©ã®ããã«æ±ãã®ã§ããïŒ ããªãã¯èªåèªèº«ããã©ãŒãªã³ã°ããŠããŸããããããšãããããåŠçããæ¹æ³ã¯ãããŸããïŒ
ãããã³ã«ããã³æšæºããŒã¿ãããã€ããŒãžã®æ¥ç¶ããããŸãããã€ã¿ãŒããã«ãŒã ããŒã°ã¯ã亀ææ
å ±ãæäŸããŸãã å¿
èŠãªããŒã¿ã¯å
éšã¹ãã¬ãŒãžã«ä¿åããŸãããããŒã¿ãããã€ããŒããåèŠæ±ã§ãããã®ããããŸãã ç¹°ãè¿ããŸãããå°åããšã«ããã©ãã£ãã¯ãä¿é²ããªãããã«ããŸãã
ãŸããé床ãšããã©ãŒãã³ã¹ã確ä¿ããããã«äžçäžã«ãµãŒããŒãå±éããŠããããšã¯æããã§ãã
-ãããŠãèªã¿åããŸãã¯èªã¿åã/æžã蟌ã¿çšã®ããŒã¿ïŒ èšé²ããã®ãããªéã転ããã®ãæããªããªãïŒ
åºæ¬çã«ãèªã¿åãã«ã€ããŠã¯ããã©ã³ã¶ã¯ã·ã§ã³ã«é¢ããæ
å ±ãèŠå¶åœå±ãå¿
èŠãšãããã®ä»ã®æ
å ±ãèšé²ããªããæžã蟌ã¿ãè¡ããŸãã åºæ¬çã«ãåœå
ã®ããŒãºã®èšç®ïŒãªã¹ã¯ãããŒããã©ãªãªã®äŸ¡å€ãªã©ã ããã¯å
éšãããã³ã§ãããå€éšã«éä¿¡ããããšãªããäžéšã®å°åãŸãã¯ããŒã¿ã»ã³ã¿ãŒã®ããŒã¿ãåŒãç¶ãããšãã§ããŸãã
-ç Žçãæãå²ã£ãŠããŒã¿ã»ã³ã¿ãŒã«é£ãã å Žåãã©ããªããŸããïŒ çµãããŸãããïŒ
ããŒã¿ã»ã³ã¿ãŒã®ããŒã¿ã¯ãã©ãŒãªã³ã°ãããŸãã ãªãŒãžã§ã³å
ã§ã¯ãããŒã¿ã1ã€ã®ããŒã¿ã»ã³ã¿ãŒã®1ã€ã®ããŒããã©ã€ãã«çœ®ãããŠããªãããšã¯æããã§ãã ããããªããšããã®èªè»¢è»ã®ããã«ãæž
æäžã®å¥³æ§ã誀ã£ãŠãµãŒããŒãåæããå¯èœæ§ããããŸãã ãã¹ãŠããªã³ã©ã€ã³ã§ã³ããŒãããŸããäž¡æ¹åã®ããŒã¿ã¹ããªãŒã ããããæãè¿ããã©ãŒããèªã¿åããèšé²ãšåæããŠäžè²«æ§ã確ä¿ããŸãã
ããããååãšããŠããŠãŒã¶ãŒã«è¡šç€ºããå¿
èŠããããããèšé²ã«äœ¿çšã§ããæ
å ±ã¯ã¯ããã«å°ãªããªããŸãã 圌ãä»ã§ã¯ãªãã2ç§åŸã«å¥ã®ãœãŒã¹ããåéèšãèŠãå Žåãããã¯æ²ããã§ãããããªãã¯çããããšãã§ããŸãã èŠå¶åœå±ãå€éšã®ããŒã±ãã£ã³ã°æ
åœè
ãããã³åžå Žåå è
ã«å¿
èŠãªããŒã¿ã¯ãäœã倱ããªãããã«è€æ°ã®ãœãŒã¹ã§è€è£œããã³åæãããŠããããšã¯æããã§ãã
Tech Center Deutsche BankãããŒã¿ãæºåããŠãŽããåéããæ¹æ³
-ããŒã¿ã®æºåã«é¢ãã質åã ç§ã®ç¥ãéããåãœãŒã¹ã«ã¯ç¬èªã®åœ¢åŒããããããããå³åº§ã«å€æããããšã¯ãå§ãã§ããŸããã èšç®ã®ããã«äœããã®åœ¢ã§äºåã«æºåããŠããŸããïŒ
å
éšã«åäžã®åœ¢åŒããããŸãã åãããŒã¿ã§äœæ¥ããæ¹ã䟿å©ã§ããããšã¯æããã§ãããããã¯ããããå€æããå¿
èŠæ§ã«ã€ãªãããŸãã æ
å ±ã®äº€æããµãã©ã€ã€ãžã®æ¥ç¶ãæ
åœããããŒã¿ã¹ããªãŒã ãšããŒã ããããŸãã ãããã¯ãåäžã®åœ¢åŒã§ããŒã¿ã圢æããã³åŒ·åããŸãã ããã©ãŒãã³ã¹ã®åé¡ã解決ããããã«ã2ã€ã®ããŒã¿ã¹ããªãŒã ããããŸãããã®ãã¡ã®1ã€ã¯ã亀æããŒã¿ã¹ããªãŒã ããã®æ
å ±ãæäŸããé«éãµã€ã¯ã«ã§ãã ãã®ãããããŸããŸãªã¹ãã¬ãŒãžã«ç§»åããŠæšæºæ§é ã圢æããå¿
èŠæ§ã¯äœããªããŸãã ãã®äžã§ãå¿
èŠãªææšããªã¢ã«ã¿ã€ã ã§èšç®ã§ããŸãã
ãããŠãåãã¹ããªãŒã ãåŠçããããé
ããµã€ã¯ã«ããããŸãããç§ãã¡ã®ãã©ãŒãããã§ã¯ãå¿
èŠãªãã¹ãŠã®ãã£ãŒã«ãã®ã»ããããããŸãã èšç®ããŸããŸãé
ããªããè¿œå æ
å ±ããã£ãŒã«ãããã®ä»ãã¹ãŠãå¿
èŠã«ãªããŸãã
-éçºè
ã®èŠ³ç¹ããã¯ã©ã®ããã«èŠããŸããïŒ ããŒã¿ããŒã¹ã®ã©ã®é åãéãèšç®ã®åœ±é¿ãåããããåžžã«ç¥ã£ãŠããŸããïŒ
ããã€ãã®ã€ãã³ããå°çããŸãããã£ãŒã«ãã«ã¯ã100ïŒ
ãšéšåçã«ã®ã¿å
¥åã§ããŸãã é«éã€ãã³ãã§ã¯ããªã³ã©ã€ã³ã§ãã°ããåèšç®ãããã€ã³ãžã±ãŒã¿ãŒãã«ãŠã³ãããŸãã ããŒã¿ã®å®å
šãªã»ããã䜿çšããé·ããŠé
ããµã€ã¯ã«ã§ã¯ããã¹ãŠã®ã€ã³ãžã±ãŒã¿ãå¿
èŠãšããã¿ã¹ã¯ãåã«ãŠã³ãããŸãã ããã¯ãã¿ã¹ã¯ã®è©³çŽ°ã«ãã¹ãŠäŸåããŠãããããæ·±ãããªãå Žåã§ãã
-ãããŠãããŒã¿ã¯äœã«ä¿åãããŸããïŒ HDDãSSDãRAMããã¹ãŠRAM
äž»ã«ã¡ã¢ãªå
ã å¿
èŠãªããŒã¿ã®éããšè¿ãã«å¿ããŠãJavaã®æšæºæ§é ãŸãã¯ã€ã³ã¡ã¢ãªããŒã¿ã°ãªããã®ããããã§ããŒã¿ãæ¶è²»ããã³ä¿åããããã¯ãšã³ãã§å€§ããªããŒãã䜿çšããŸãã éå»æ¥ã®å±¥æŽããŒã¿ãSSDãšãã£ã¹ã¯ã«ä¿åãããããšã¯æããã§ãã ãã ããèšç®ã«å¿
èŠãªãã®ãŸãã¯å¿
èŠãªãã®ã¯ãã¡ã¢ãªå
ã®ãã£ãã·ã¥ã«ããŒããããŸãã
-ãã£ãã·ã¥ããã«ãäžæ£ç¢ºãªèšç®ã䜿çšããŠæ
å ±ã倱ãããšã§äœããè¡ãããšã¯å¯èœã§ããïŒ
ã¯ã ã€ã³ãã£ã±ãŒã¿ãå€æŽããããããè³ç£ã®å€åã®ãã§ãŒã³ã®ãªã¹ã¯ã0ã100ïŒ
ã§èšç®ããå¿
èŠãããå Žåãããããšãå°ã觊ããŸããã ååžå³ã¯ãåŒãŸãã¯ç·åœ¢é¢ä¿ã«åŸã£ãŠãããŒã»ã³ããŒãžãšããŠæ§ç¯ãããŸãã ããŒãã€ã³ããæ§ç¯ããè¿äŒŒãè¡ããŸãã è¿äŒŒçµæãåŸãããŸããããã¯ãã°ã©ãã®ç¹å®ã®åãã€ã³ãã§ã«ãŠã³ãããå Žåãå®éã®å€ãš100ïŒ
äžèŽããŸãããããããã®ããŒã¿ãåŠçããã«ã¯ååã§ãã
ãã®ã¢ãããŒãã¯ãããšãã°ãä»ã®ãã¹ãŠã®é貚ã«é¢é£ããŠåé貚ã®å€ã1ãããŒåäœã§å€æŽãããšãã«ãã¹ãŠã®èšç®ãå®è¡ã§ããªãããããã䜿çšãããŸãã ãŸããªã¹ãããã§ç§»åããããããã€ãã®ç¹å®ã®ãã€ã³ããéžæããŠãæ®ããè£éããŸãã 粟床ã®å€ã§ååã§ãã
-ããã¯åžžã«Javaã®å€§ããªããŒãã§ããããããšããã¹ãŠãªããããã§ããïŒ
äž»ã«è
°ã«ãããŸãã
-ããã§ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«ã©ã®ããã«åãçµãã§ããŸããïŒ
ã¬ããŒãžã³ã¬ã¯ã¿ãŒã®å²ãåœãŠãšé »åºŠã®æšæºçãªç£èŠã«å ããŠã巚倧ãªããŒãžãªã©ã®èª¿æŽãé©åãªã¬ããŒãžã³ã¬ã¯ã¿ãŒã®éžæãªã©ã®å€ãã®æäœãéå§ããŸãã ããšãã°ãã·ã§ãã³ããŒã®äœ¿çšãè©Šãããšãã§ããŸãã äžéšã®ã³ã³ããŒãã³ãã¯ãçŸè±¡ãšããŠãã«GCãååšããªãããšã«åºã¥ããŠæ§ç¯ããã³èª¿æŽãããŸãã
ããã¯å埩ããã»ã¹ã§ãïŒæ¯æ¥ããã¬ãŒã ã°ã©ããã©ã€ãã§åéãã誰ããªãœãŒã¹ãã©ãã§äœ¿çšããŠãããã確èªããå²ãåœãŠã®é »åºŠãšããããããããã¢ãŠããããã®ã確èªããã³ãŒãå
ã®ãããã¢ã«ãŽãªãºã ãããæé©ãªãã®ã«æžãæããããèšç®å
šäœãæé©åãããããŸã
-ãããŠãã©ã®ããã«ã¡ããªãã¯ãåéããã©ã®ããã«ãã¬ãŒã ã°ã©ããäœæããŸããïŒ
ããŒã«ãããã«ã¯çŽ æŽããããã®ã¯äœããããŸãããæ
å ±ãæ¥ç¶ããŠåéããã®ã¯ãç§ãã¡ãäœæããJavaãšãŒãžã§ã³ãããæšæºã®ãããã¡ã€ãªã³ã°ããŒã«ããã®ä»ã®ããŒã«ã®ããããã§ãã ELKã¹ã¿ãã¯ã«ã€ãã³ããã©ããããã¡ã«ããºã ããããŸããGCã®äžæåæ¢ãšã¡ã¢ãªæ¶è²»ã€ã³ãžã±ãŒã¿ãŒã®ã¡ããªãã¯ã¢ã»ã³ããªãå«ããã°ããããŸããããŒãã¹ããŒã¿ã¹ã®ã¢ã³ããŒãããã³ãã€ã³ãžã±ãŒã¿ãŒãšãã®åŠçã«å¯ŸããæåãŸãã¯åèªåã®èŠæ±ããããŸãã 150 GBã®ããããåé€ããŠåŠçããã«ã¯ãç¹å®ã®ããªãã¯ãå¿
èŠãªã¿ã¹ã¯ã§ãã ååã¯ã 150 GBã®ã¬ããŒãžãåŠçããæ¹æ³ãšäœãèµ·ãããã«ã€ããŠãHabrã«é¢ããèšäºãæžããŸãã ã æ·±ãæãäžããããã§ã¯ãªãã®ã§ã詳ããã¯èª¬æããŸããã
-ããªãã®JavaãšGCã¯äœã§ããïŒ
Java 8ã11æ¥ã¯çŸåšããã€ãã®ããã¯ãšã³ãã§ãã¹ããããŠããŸãã ããã©ãŒãã³ã¹ãæ¯èŒããŸãã ã¬ããŒãžã³ã¬ã¯ã¿ãšããŠãäž»ã«G1ã䜿çšãããŸãã
-å€ãã³ã¬ã¯ã¿ãŒã¯ãŸã£ããããŸãããïŒ
ã¯ããæ°ãããã®ã䜿çšããŸãã ããŠãJVMããŒã§ããããããã£ãŠãã ããã
-ç§ãç解ããŠããããã«ãã»ãšãã©ã®äœæ¥ã¯æé©åãããã©ãŒãã³ã¹ã«é¢é£ããŠããŸãã ã©ããããããæé©åããã¹ãããããšã¯å¯èœã§ããïŒãããèªåçã«è¡ãããšã¯å¯èœã§ããïŒ
ã¯ããã§ããŸãã ãã¹ãã«ãŒãã«æ¥ç¶ããŠåã€ã³ãžã±ãŒã¿ãŒã®èšç®ã枬å®ã§ããç¬èªã®ãã¹ããã¬ãŒã ã¯ãŒã¯ããããŸãã ç§ãã¡ã¯ããã®äœæã«åŸäºããå°ä»»ã®ããŒã ãæã£ãŠããŸãã prodãšyuateã®é床ã枬å®ã§ããŸãïŒUAT- ãŠãŒã¶ãŒåãå
¥ããã¹ã ïŒ-ããã©ãŒãã³ã¹ãäœäžãããã©ããã確èªããŸãã æ°åŠã®æ£ãããã¯ãšãªã®é »åºŠãå®è¡æéã確èªã§ããŸããã°ãªããã䜿çšããŠäœæ¥ã確èªã§ããŸãã prodã§2åéãyuateã§3åéäœæ¥ããå Žåããããèµ·ããçç±ãç解ããå¿
èŠããããŸãã
ãã¹ãæé ãèªåçã«éå§ãããŸãã 2ã€ã®åè·¯ãžã®æ¥ç¶ãè¡ãããã€ã³ãžã±ãŒã¿ãŒã枬å®ãããŸãããã®åŸãã«ã¹ã¿ã ãªã¯ãšã¹ããã¹ããŒããç°ãªãããŒãžã§ã³ã®ã»ãŒã«ã®å¿çæéãšé
延ã§çµæãæ¯èŒã§ããŸãã ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãåäœãå§ããé »åºŠãªã©ãæ¯èŒã§ããŸãã
-å€æ°ã®ã³ã³ããŒãã³ãã«ã€ããŠè©±ããŸããããã·ã¹ãã å
šäœããã£ããã£ãããã¹ããã°ããŒãã«çµ±åãã¹ãã¯ãããŸããïŒ ãããšãããã¹ãŠã®ãã€ã¯ããã³ãããŒã¯ã§ããïŒ
ããã¯å
æ¬çãªã€ã³ãã©ã¹ãã©ã¯ãã£ã§ãã ã·ã¹ãã å
šäœã§å®è¡ãããŸããããŒãã®ãµã€ãºãGCã®å¿çæéãã¡ã¢ãªå
ã®ã©ã€ãã»ããã®ãµã€ãºãªã©ã確èªã§ããŸãã ããçš®ã®è€éãªããšã ãã®ã·ã¹ãã ã®äž»èŠãªæ©èœã¯ãèšç®ãã¹å
šäœã«æ²¿ã£ãæ°å€ã®ããããªå€åã§ããã£ããã§ããããšã§ãã å®éããããæåŸã®é²è¡ç·ã§ãã ãã®å·šå€§ãªã·ã¹ãã å
šäœã®ã©ãã«ãäºæããªãå€æŽãå ããŠããªãããšã確信ã§ããŸãã
ããã©ãŒãã³ã¹ããŒã¿ã¯ãç¹å®ã®ããžãã¹æ©èœãããã€ãã®ææšã«ãã£ãŠè©³çŽ°åã§ããŸãã ã©ãã ãæ©ããé »ç¹ã«ã«ãŠã³ããããããã芧ãã ããã ã«ã¹ã¿ã ãªã¯ãšã¹ããäœæããããããç°ãªãã³ããŒã§å®è¡ããJSON diffãçºè¡ã§ããŸãã ãã®JSONã«ã¯ãå€æŽãããããŒã¿ãšããã©ãŒãã³ã¹ã¡ããªãã¯ãå«ãŸããŠããŸãã
ããããã¹ãŠéçºããå¥ã®ããŒã ããããŸãã ããšãã°ãããŸããŸãªç°å¢ãžã®æ¥ç¶ãèŠèŠåããã³ãã®ä»ã®æ©èœã®ãµããŒãã ããã¯å
éšéçºã§ãã
-è¥ããŸãã¯å€ãéçºè
ããã·ã¹ãã å
šäœãåæ¢ããã»ã©ããã©ãŒãã³ã¹ãæãªããããªãã¹ãç¯ãæ¹æ³ã¯ãããŸããïŒ
ãã€ã¯ããµãŒãã¹ãåããã¢ãžã¥ã©ãŒã·ã¹ãã ã䜿çšããŠããããããã®ãããªå€æŽã¯ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã«äžåºŠã«åœ±é¿ãäžããããã§ã¯ãªããããããã¯æ©èœããŸããã ããŒãã100 GBæªæºã§ããã«ããããããããããã¯ããŸãããã€ã¯ããã§ã¯ãããŸããããããã§ãããã§ãã 解決ããã¿ã¹ã¯ã«å¿ããŠããµã€ãºããããã«å°ããããã倧ãããããã§ããŸãã ã·ã¹ãã å
šäœã«åœ±é¿ãäžããããã©ãŒãã³ã¹ãæ ¹æ¬çã«ç Žãããšã¯ã§ããªãã§ãããã
ãã¿ã³ãã¯ãªãã¯ããã ãã§ãããã«ãµãŒããŒãžã®å±éãéå§ããããã¹ãŠãå±éãããŠååž°ãã¹ããå®è¡ãããåŸãæåãã¹ãããã®ä»ã®ã¿ã€ãã®ãã¹ãã§åé¡ãç¹å®ã§ããŸãã ãŸãããã¹ããã¬ãŒã ã¯ãŒã¯ãèšç®ã®æ£ããéšåãã«ããŒããã ãã§ãªããããã©ãŒãã³ã¹ãã¡ã¢ãªããã®ä»ãã¹ãŠã®äœæ¥ãã«ããŒããŠãããšããäºå®ã«ããããã©ãŒãã³ã¹ã®äœäžã«æ°ä»ãããšãã§ããŸãã æè³æŽ»åã§ã¯ã決æžã®é床ãšããã«åºã¥ããååŒæ±ºå®ã®æ¡çšãéèŠãªåœ¹å²ãæãããŸãã
çµæã«åºã¥ããŠ1æ¥ã«1åã¢ããããŒãããããã¬ãŒã ã°ã©ã ã§ããæšæ¥ã¯1ã€ã®çµæããããä»æ¥ã¯å®å
šã«ç°ãªã£ãŠããããšãããããŸãã ã©ã®ã³ãŒããåé¡ãåŒãèµ·ããããããã©ãŒãã³ã¹ã®äœäžãªã©ããã£ãå Žæãç解ããŠããŸãã æ瀺çãªè«çãã°ã解決ããæšæºãã¹ããšCIã«ã€ããŠã¯è©±ããŠããªãã
-ãããŠãéèæ°åŠã®ã¬ãã«ã§ã®è«ççãªãã°ã¯ã©ãã§ããïŒ
ãã¹ããã¬ãŒã ã¯ãŒã¯ãç ç²ã«ããŠãææšã®éããæ¯èŒããŸãã èªèº«-ååãªå°éç¥èãããå ŽåããŸãã¯æ°åŠãçºæããã¢ããªã¹ããã¯ã©ã³ã¿ã ãããã°ã å€æŽãæ£ãããã©ããããªããããªã®ããææ¡ããå®éã®ãã©ã³ã¶ã¯ã·ã§ã³ãšåæãã©ã³ã¶ã¯ã·ã§ã³ã§å®è¡ããŠçµæã確èªããŸãã 誰ããééããå Žåããããä¿®æ£ããå確èªããå¿
èŠããããŸãã
財åããã¯ãšã³ãã«ã€ããŠ
-ãã®å·šå€§ãªã·ã¹ãã ã§äœãããŠããããæãåºããŠãã ããã
ããã¯ãšã³ã-æ°åŠèªäœãå®è£
ãããµãŒãã¹ã䜿çšããã·ã¹ãã ã ãããã®æ¡ä»¶ä»ãèšç®æ©ã®ãªã¯ãšã¹ããæºåããããã«éä¿¡ãããªã¹ã¯ãããŒããã©ãªãªã®äŸ¡å€ãææšã«é¢ããåçãååŸããäœããã®å€æãè¡ããŸãã
æ¯èŒçèšãã°ãããå Žæã§ã¯ãããã€ãã®æ©åšã®ãªã¹ã¯ã®ã³ã¹ããèšç®ããå¿
èŠããããå¥ã®å Žæã§ã¯ã1ã€ã®åºæ¬çãªãªã¹ã¯ã«åºã¥ããŠãã®å€åãäœæãããã€ãŸãããã®çµæããªãã·ã§ã³ã«å±éããUIã«éä¿¡ããŠããŒã¿ã衚瀺ããå¿
èŠããããŸãã ããã¯ãèšç®ããŒã¿ãæ§ç¯ããæãå°é£ãªæ°åŠããã¹ãŠçŽæ¥èšç®ããã·ã¹ãã ã«è¡ããçµæãUIã«éä¿¡ãããããªããã¯ãšã³ãã§ãã
-ããã§äœ¿çšãããŠãããã¯ãããžãŒã¯äœã§ããïŒ ãããã¯çŽç²ã«ããªãèªèº«ã®éçºã§ããããããšãæ¥ã®ãããªãæ®éçãªããã®ã§äœæ¥ã§ããŸããïŒ
SpringãJavaãMongoDBãProtobufã®ãããªæšæºçãªãã®ããããäŸåæ§æ³šå
¥ã®ããŸããŸãªæšæºã·ã¹ãã ã§ãã Reactã®ããããçš®é¡ã®UIãå€éšã·ã¹ãã ãšã®gRPCãä»ããçžäºæ¥ç¶ã«ããããŒã¿ãæäŸããŸãã
-Mongoã¯èããããOracleã¯èãããªãã£ãã æ¬æ Œçãªãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãªã©ããæã¡ã§ããïŒ
ã¯ãããããŸãããå¥ã®åœ¢åŒã§äœ¿çšãããŸãã ããã¯ãšã³ãã§ã¯ã亀ææ
å ±ã®æŽæ°ãåå¥ã®ã¡ãã»ãŒãžãšã€ãã³ãã®åœ¢åŒã§å°çããŸãã ãŸãã以åã®æéã®äžéšã®ããŒã¿ã«ã€ããŠããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããå Žåã¯ãæšæºJDBCãã©ã€ããŒãä»ããŠæ¥ç¶ããŸãã SpringDataãªã©ã®é«ã¬ãã«ã©ã€ãã©ãªã¯ãªããçŽç²ãªJDBCã¯ãšãªã ãããããŸãã ããã¯ãããã©ãŒãã³ã¹ãã³ã³ãã¯ããªã¯ãšãªãããã³é«ã¬ãã«ã®ã¿ã¹ã¯ã«åŸæ¥ã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠéæããã®ãé£ããä»ã®ãã¹ãŠã®åé¡ã§ãã
ãCQRSãã©ããã§äœ¿ã£ãŠã¿ãŸãããïŒã
è©ŠããŸããããããã¯äž»ã«æ ªåŒæ
å ±ã§ãã
å®å
šããæªæ¥ãž
-ãããŠãæåã«èª°ã®ããã«å匷ããŸãããïŒ ããã°ã©ããŒãæ°åŠè
...
ç§ã¯ç¡äºã§ãã
-ãããŠãã©ããã£ãŠããã«æ¥ãŸãããïŒ äžåºŠã»ãã¥ãªãã£ãåã£ãå Žåãéããã®ã¯é£ããã§ãã
å®å
šåæ¥èšŒæžã¯ãç§ãã»ãã¥ãªãã£ã ãã«é¢å¿ããã£ããšã¯èšã£ãŠããŸããã ç§ã¯ãããå匷ããŸããããã³ãŒãã£ã³ã°ããæåã®å¹Žããã»ãšãã©ã®éšåã§ãC ++éçºè
ã®ä»äºãåŸãŸããã 圌ã¯çµã¿èŸŒã¿ã®GNU / Linuxã§ãã£ãã·ã¥ã¬ãžã¹ã¿ãŒãæžããŠãããJavaã«åãæ¿ããŸããã 圌ã¯æšæºçãªããã¯ãšã³ããšããžãã¹ãªãŒãã¡ãŒã·ã§ã³ãäœæããããéèäŒç€Ÿã®èšŒåžæ¥çã§åããŠããŸããã ããªããã£ãã®èšç®ããªã¹ã¯ã®èšç®ãå®è£
ããŸããã 圌ã¯åçŽãªéçºè
ããªãŒããã¢ãŒããã¯ããéšéé·ã§ããã ãªããšãã§ããŸããã
ç§ã¯1æããããã«ããŸãããããã以åã¯çŽ2幎ééèæ°åŠã«åŸäºããŠããŸããã
-ã©ã®ããã«ããŠæ°åŠããåçŽãªéçºã«æã蟌ãŸããŸãããïŒ
å®éãéèæ°åŠããåçŽãªãéçºãšåŒã¶ããšã¯å°é£ã§ãã ããªããã£ãããªã¹ã¯ããŸãã¯ãã®ä»ã®ææšã®è©äŸ¡ãèšç®ããã¢ã«ãŽãªãºã ã®å®è£
ã«çŽæ¥é¢äžããŠããªãå Žåã§ããäœããã®èšç®ã«é¢äžããŠããŸãã ããã¯çŽç²ãªããã¯ãšã³ãã ãã§ãªãããââãã¯ãšã³ãã«ã¯ãåçŽãªãè¿
éãªèšç®ã®ããã®ããã¯ã©ã¹ã¿ãŒããããšæ¢ã«è¿°ã¹ãŸããã ã€ãŸããåºæ¬çãªæ°åŠãèæ
®ãããµãŒãã¹ã«è§Šããªããšããäºå®ã¯ãèšç®ããŸã£ããè¡ããªããšããæå³ã§ã¯ãããŸããã
-ãã®äœåã®äœãé¢çœããŠãã£ãããã§ããïŒ
ãŸãã財æ¿ãç解ã§ããããšã ããã
å人çã«ã¯éåžžã«åºæ¿çã§ãïŒéèæ°åŠã貿æã蚌åžååŒæãªã©ã ç§ã¯æ¬åœã«ææšãèšç®ããã®ã奜ãã§ãã ããã¯ãšã³ãã§é£ããæ°åŠãæ°ããªãããšã¯æããã§ããããšã«ãããèªåã§æšæºçãªè²¡åäºé
ãèšç®ããŸãã ããã«ã¯ç¹å¥ãªå°é£ã¯ãããŸããããèå³æ·±ãã§ãã
ããã倧éã®ããŒã¿ã§ããããã¯ãããã¯ãšã³ãã§150ã®ã¬ãã€ãã®ããã¯ãšã³ãã䜿çšããå¿
èŠããªãããšãå€ãããã€ãåäœã§ããã¯ããå¿
èŠãããããã§ãã ãããã¯ããã©ãŒãã³ã¹æé©åã®æé©åã®ããŒã¹ã§ãã ããžãã¹ã®æ°åŠãããã»ã¹ã®æ¬è³ªã«æ²¡é ããããšã¯ãšããµã€ãã£ã³ã°ã§ãã
ã¢ãã«ãããŒã¿ã¹ããªãŒã ããžã§ããã¹ããªãŒã ãããŒã¿ã¹ã¿ãã¯åŠçã ããŒã¿ããŒã¹ãããã©ãã€ãã®ããŒã¿ãããŒãããã®ã§ã¯ãªãã1ã€ã®ç°¡åãªãªã¯ãšã¹ãã§éä¿¡ãããèç©ãããäºåéèšãååŸããããã«ãã°ãªãããèªã¿èŸŒãã§ããŒã¿äºåéèšãèšç®ããæ¹æ³-ããã¯éåžžã«èå³æ·±ãã§ãã éè¡ã§ãã¹ãŠãã©ã®ããã«æ©èœããã®ãããªããããå¿
èŠãªã®ãããããŠãã®ãã¹ãŠã®èåŸã«ããèŠæš¡ãç解ããŠããŸãã
å€ç¬ãªãªãªã«ãã¯éè¡ãªãã§ååŒã§ããŸããïŒ
-æ®éã®äººãéçºè
ãç解ããŠããªãé¢çœãããšã¯ãããŸãããããããå
±æããŠäººã
ã®è³ãå¹ãé£ã°ãããšãã§ããŸããïŒ
æåã«é ã«æµ®ãã¶ã®ã¯ãã¢ã€ãã¢ã®èª¬æãšè²¡åèšç®ã®ã¿ã¹ã¯ã®è€éãã§ãã ç¹ã«äžéšã®ããªããã£ãã䜿çšããååŒæã§ã®ååŒã¯ãåã«ååŒç«¯æ«ããäŸ¡æ ŒãååŸããããçšåºŠã®éãèŠæ±ããããšãæå³ããŸããã äŸ¡æ Œãæ£ç¢ºãã€ææ°ã§ãããã©ãããå€æããå¿
èŠããããŸãã èšç®ãè¡ãå¿
èŠããããŸããããã¯ãç©åã§èšè¿°ããã2ã€ã®A4ã·ãŒãã®æ°åŒã§ãã
ç§ããã®å°åã«æ¥ãŠãäœããããã°ã©ã ãå§ããé ã®å°ããªè©±ããããŸãããã€ãŠã1ã€ã®ã€ã³ãã£ã±ãŒã¿ãŒã®èšç®ã«ç²Ÿéããããã«ç³ãåºãããŸãã-ç©åãš2次å°é¢æ°ãæã€2ã€ã®ã·ãŒãããããŸãããããŠãããªãã¯åœŒãã倧åŠã§é«çæ°åŠãæããçç±ãšããããã©ãã§åœ¹ç«ã€ããç解ãå§ããŸãã
倧åŠããã°ã©ã ã®åé¡ã¯ãå®éã®ç掻ã§ãã®ç¥èãå¿
èŠãªçç±ãç解ã§ããªãããšã§ãããããŠãå®éã®ç掻ã§ã¯ãããããã¹ãŠã®ææšãå®éã«äœ¿çšãããŠããããšãããããŸãã
ãããå€ç¬ãªãªãªã«ãããã®ãã¹ãŠã®éèæ°åŠã§éè¡ãšç«¶äºããããšã«æ±ºããããããã¯ã©ãã»ã©é£ããã§ããããïŒã
« ». â , â , .
- - , , - . , , .
, . , , . â . - , . , -.
, , . , , - ( -, - ).
â ?
. , . , , .
â , , , - . , â , .
. , : , - , .
, , - , , . , , , , â . , , , .
( , )
â , ? ?
, , Java. dependency injection, , , â , . , . . : , - .
, . , , , , happens-before. , , .
ãåç¥ã®ããã«ã IntStream#distinct
ã¯ãããªããã£ããJavaåã§ã©ãããããã®åŸéã®æäœãè¡ãããšãå«ãŸããŸãã ããã»ã©æããªãããã§ããã倧éã®ããŒã¿ã§ã¯ã倧éã®ãã¯ã·ã³ã°ãšã¢ã³ãã¯ã·ã³ã°ãé¡èã«ãªããã¡ã¢ãªãç¡é§ã«äœ¿çšãããŸãã Javaã®æ¬è³ªãç解ããå¿
èŠããããŸãããã¯ã·ã³ã°ã®ãããªäºçŽ°ãªããšã§ã¯ãäžèŠãªè¿œå ã®å²ãåœãŠã倧éã«çæã§ããããã§ãã ãŸããããã«éã«åãããã«ããã«ã¯ãããŒã«ã䜿çšããŠããã©ãŒãã³ã¹ãè©äŸ¡ããã¡ããªãã¯ãåéããä»ã®æšæºçãªäºé
ãç解ã§ããå¿
èŠããããŸãã
-éè¡ã®è©³çŽ°ãç¥ãå¿
èŠããããŸããïŒ
ããããåºæ¬çã«ã ç§ãã¡ã¯çãéè¡ã®è©³çŽ°ãç¥ã£ãŠãã人ã
ããã§ã«éè¡ã§åããŠããããšãç解ããŠããŸãã ããªããå¥ã®åéããæ¥ããšããããªãã¯åœŒå¥³ãç¥ããªãã§ãããã æåã«ãäžè¬çãªãã€ã³ãã«é¢ããããã¥ã¡ã³ããåŠç¿ã§ããŸããå
ç©ãšã¯äœãããªãã·ã§ã³ãšã¯äœããã©ã®ããã«ç°ãªãã®ãããªã¹ã¯ã¯äœãã ãããŠãããªãã¯ãã é£ã³èŸŒã¿ãããžãã¹ã®è©³çŽ°ãç解ãå§ããŸãã
ãã ããããã§ãéèŠã§ãã æåã¯ãç¹å®ã®ããžãã¹ã®ç¹æ®æ§ã«é¢é£ä»ããããŠããªãæ©èœãå®è£
ããã ãã§ãããè€éã§äž»é¡åºæã®ããšãåŸã
ã«åŠç¿ã§ããŸãã ããã«ãããã®ãæåŸã®è·å ŽïŒç§ãéšé·ãšããŠåŸæ¥å¡ãéçšãããšãïŒ-10人ã®ãã¡å°ãªããšã1人ãæªæ¥ãäœã§ããããç解ããŠããã°ãããã¯ãã§ã«è¯ãããšã§ãã
ã¢ã«ãŽãªãºã ããã«ãã¹ã¬ãããããã³Javaå
šè¬ã«é¢ããç¥èãããã°ãããžãã¹ã®è©³çŽ°ãåŠã¶ããšã¯é£ãããããŸããã ãã®ç°å¢ã«çªå
¥ããããã¥ã¡ã³ããèªãã§ç解ãããšãããèªäœãå€æããŸãã
-ã€ã³ã¿ãã¥ãŒã§Javaã®ãã®ãããªæ·±ãç¥èãã©ã®ããã«ãã¹ãããŸããïŒ ããã¯æ¬åœã§ããïŒ
ãããããã§ãã¯ããªãå¯èœæ§ãé«ãããšã¯æããã§ãã ããããããžãã¯ãã¢ã«ãŽãªãºã ãå
éšæ§é ã®ç解ã«é¢ããæšæºã¿ã¹ã¯ããããŸãã ããã¯ãã¹ãã¿ã¹ã¯ã§ããããã¯ã€ãããŒãã³ãŒãã£ã³ã°ã§ãã ããšãã°ãåè£è
ããã«ãã¹ã¬ãããç解ããŠãããã©ãããã€ãŸã競åããããããã¯ããã®ä»ãã¹ãŠãç解ã§ããããã«ããã¥ãŒã«ãã£ãã·ã¥ãå®è£
ããã¿ã¹ã¯ã éäžã§ããããæ¶è²»ããã¡ã¢ãªéããªãHashMapã§ã¯ãªãTreeMapã«ã€ããŠè³ªåããããšãã§ããŸãã ãããã£ãŠã1ã€ã®äžè¬çãªåé¡ã解決ãããšãããŸããŸãªè©³çŽ°ããç¬éã調ã¹ãããšãã§ããŸãã ããã§ã¯ãããããç¹å®ã®ãã¥ã¢ã³ã¹ãèšç®ãããæ¹æ³ã
-ããã°ã©ããŒãšããŠããè¯ããªãããã«äœãããå¿
èŠããããšæããŸããïŒ
é²åïŒ ã¢ã«ãŽãªãºã ã®åââé¡ã解決ãããã¯ãããžãŒãã¢ã«ãŽãªãºã ãæ°ããèšèªãã³ãŒãã£ã³ã°ããŠç£èŠããŸãã å®éãå€ãã¯çµéšã«äŸåããŠããŸãã ã¢ã«ãŽãªãºã ã«é¢ããå€ãã®åé¡ã解決ããå Žåãæ°ããæªç¥ã®éå»ã®ã¿ã¹ã¯ããé¡äŒŒã®ãã®ãèŠã€ããããšãã§ããŸãã æèãè¿
éã«çããèŠã€ããèœåãéçºããå¿
èŠããããŸãã StackOverflowã§Googleãæ€çŽ¢ããŠè§£æ±ºçãèŠã€ããæ©èœã¯éåžžã«äŸ¿å©ã§ãã äœããç¥ããªãããã©ãã§ãããèŠã€ããããç¥ã£ãŠãããªãããããæåãžã®éã§ãã
èšèªã¯å€åããŠããããã¯ãããžãŒãšãã¬ãŒã ã¯ãŒã¯ã¯å€åããŠããŸãã æ°ãããã¿ãŒã³ãç»å ŽããŸããã誰ãã䜿çšãããã¿ãŒã³ãããã€ãæ®ã£ãŠããŸãã Reactive Streamsã«ã€ããŠã®ã¬ããŒããšKotlinã«ã€ããŠã®èª¬æã®ãªãJavaäŒè°ã¯ããã¯ãéçšããŸããã ã«åº§ã£ãŠãããæå³ã§ã¯çŸåšã®ã€ãã³ããœãŒã·ã³ã°ãåŸã
ã«äžçãæ¯é
ããŠããããšãç解ããŠããªãã®ã¯å¥åŠã§ãã
èæ¯ãéçºããå¿
èŠããããŸãã ããšãã°ãKnutã®æ¬ã¯ãŸã é¢é£ããŠããŸãã ããŒã¹ãšæ°ãããã¯ãããžãŒã ãããŠãã©ãã§äœãã°ãŒã°ã«ããã¹ãããç¥ãå¿
èŠããããŸãã
-圌ãæåŸã«ç解ããããšã¯äœã§ãããïŒ
ã³ããªã³ã³ã«ãŒãã³ã§ã ãã£ãããã æ§æãšããžãã¯ã®äž¡æ¹ã ãã«ãã¹ã¬ãããšéåæã§ã®äœæ¥æ¹æ³ãæ€èšããŸãã 以åã¯ãKotlinãã»ãšãã©äœ¿çšããå¿
èŠããããŸããã§ããã çŸåšãç§ã¯ãããç©æ¥µçã«ç 究ããŠããŸããããã€ãã®ãããžã§ã¯ãã¯ãã§ã«ãããå©çšããŠããŸãã prodã®ããã€ãã®å°ããªã¢ãžã¥ãŒã«ã«ãååšããŸãã