ã¯ããã« ããã«ã¡ã¯ãTech blogéå¶æ
åœã®éå±±ã§ãã ã¹ã¿ã³ãã€ã«ã¯ããããã¯ãã®è¡åæéãSTARTãã«åºã¥ããŠãçŽ æŽãããææãåµåºããã¡ã³ããŒã衚地ãããSTARTè³ããšãã衚地å¶åºŠïŒææ¬¡è¡šåœ°ïŒããããŸãã ãŸããåæïŒäžæã»äžæïŒããšã«ããããã¯ãéšéæå±ã®ã¡ã³ããŒã®äžãã1åã«ããã¹ããã¬ã€ã€ãŒè³ïŒãããã¯ãéšéïŒããèŽãããŸãã ïŒè¡åæéãSTARTãã®è©³çްã¯ã ãã¹ã¿ã³ãã€ã®ãããã¯ãæ¬éšã®è¡åæéãSTARTããšãEngineering Beltããšã¯ïŒã ã«ãŠã確èªãã ããïŒ æ¬èšäºã§ã¯ãå
¥ç€Ÿ1å¹Žæªæºã«ãããããããã6æåºŠSTARTè³ MVPãã10æåºŠSTARTè³ æºMVPããFY22äžæ ãã¹ããã¬ãŒã€ãŒè³ïŒãããã¯ãéšéïŒããåè³ãããã©ã³ããŒãšããŠå€§æŽ»èºäžã®åæ¬ããã«ãé«è©äŸ¡ãç²åŸãããããžã§ã¯ããApply URL ãããžã§ã¯ããã«ã€ããŠãã€ã³ã¿ãã¥ãŒãããŠãããããšæããŸãïŒ -æ©éã§ããããApply URL ãããžã§ã¯ããã«ã€ããŠãæŠèŠãæããŠãã ããã åæ¬ïŒ äžèšã§äŒãããšããŠãŒã¶ãŒã®å¿åäœéšåäžãã®ããã®ãããžã§ã¯ãã§ãã 以åããŠãŒã¶ãŒã€ã³ã¿ãã¥ãŒã宿œããéã«ãæ±è·è
æ§ãããã¹ã¿ã³ãã€ã®æ±äººè©³çްããŒãžã®ãå¿åãã¿ã³ããæŒããšãæ²èŒå
ã®æ±äººè©³çްããŒãžã«é·ç§»ããŠããŸããããã«å¿åããããšæã£ãŠããåãå¿åãã©ãŒã 以å€ã®ããŒãžã«é·ç§»ããã®ã¯åããã«ããããäžäŸ¿ããªã©ã®ã声ãããã ããŠããŸããã ãã®ã声ãããšã«ãæ±äººè©³çްããŒãžã®ãå¿åãã¿ã³ããæŒããåŸã¯ãæ²èŒå
ã®å¿åãã©ãŒã ã«çŽæ¥é·ç§»ãããããšãããŠãŒã¶ãŒã®å¿åäœéšåäžãã®ããã®åæã ãšèããŸããã ãŸããã¯ã©ã€ã¢ã³ãäŒæ¥ïŒæ±äººæ²èŒå
ã®äŒæ¥ïŒæ§ã«ãšã£ãŠããæ±äººæ€çŽ¢ã®å©äŸ¿æ§ãé«ããããšã¯ããäŒæ¥æ§ãšæ±è·è
æ§ãšã®ãããã³ã°ãã®æ©äŒãå¢ããããšã«çŽçµããŸããæ¯èŒçã·ã³ãã«ãªã¹ãããã§äŒæ¥æ§ãå°å
¥ã§ãããApply URLãã¯ããŸãã«ãã¡ãŒã¹ãã¹ããããšããŠãã£ãŠã€ãã§ããã -ããããšãããããŸããæ±è·è
æ§ã®å¿åäœéšãåäžãããããšã§ããã¹ã¿ã³ãã€ã§æ±äººãæ€çŽ¢ããå¿åã«é²ãæ©äŒããããå€ãæäŸããŠããããã§ãããæ¬¡ã«ãå€ãã®è³ãåè³ããããšã«ãªã£ããApply URL ãããžã§ã¯ããã«ããã忬ããã®å
·äœç圹å²ãæããŠããã ãããã§ãã åæ¬ïŒ ãã©ã³ããŒã®åºæ¬çãªåœ¹å²ã¯ãæœçã®ROIã®èŠç«ãŠãèŠæ±ã»èŠä»¶ã®æŽçãã¹ã±ãžã¥ãŒã«ç®¡çãªã©ã§ããããã«å ããã¹ã¿ã³ãã€ã«ã¯æ§ã
ãªããã¯ã°ã©ãŠã³ããæã£ããã©ã³ããŒãéãŸã£ãŠããããšã³ãžãã¢åºèº«ããã¶ã€ããŒåºèº«ãã³ã³ãµã«åºèº«ãªã©å人ã®ã¹ãã«ã«ãã£ãŠåŸæåéãç°ãªãããããžã§ã¯ãã®å
容ã«ãã£ãŠãããã©ã³ããŒãšããŠã®åœ¹å²ã¯å€å°å€åããŸãã ãApply URL ãããžã§ã¯ããã«ãããŠã¯ãæ©èœããªãªãŒã¹ããã ãã§ãªãäŒæ¥æ§ã«å°å
¥ããã ãããšãŸã§ãèŠéã«ãããå¿
èŠãããã®ã§ãå°å
¥çåäžãå«ããæŠç¥ã®ç«æ¡ãç§ã®å€§äºãªåœ¹å²ã§ãããããŸãå
·äœçã«è¡šçŸããã®ãé£ããã®ã§ããããã©ã³ããŒã®åœ¹å²ã¯ãããããžã§ã¯ãæåã«ãããŠãéçºå®è£
以å€ã¯ãªãã§ããã人ããšèšãã°ãããããããŸããã -ãéçºå®è£
以å€ãªãã§ããã»ã»ã»èããã ãã§ã倧å€ããã§ããããã®åããããããããŸããããApply URL ãããžã§ã¯ããã®ã¹ããŒã¯ãã«ããŒã«ã€ããŠãæããŠãã ããã åæ¬ïŒ éçºéšéå
ã ãšãèªã°ã«ãŒã以å€ã®ïŒã€ã®ã°ã«ãŒããé¢ãã£ãŠããŸããããŸãããã以å€ã§ã¯æ³åãã»ãŒã«ã¹ãCSã®ã°ã«ãŒãã«ãååããã ããŸããã -èªã°ã«ãŒãã«ãšã©ãŸãããä»ã«7ã€ã®ã°ã«ãŒããšé¢ãããªãããããžã§ã¯ããæšé²ãããã®ã§ããã忬ããã衚地ããã倧ããªçç±ã®1ã€ã¯ããâApply URL ãããžã§ã¯ãâãã¹ã ãŒãºã«é²ãããããããšã ãšäŒºããŸãããããã ãå€ãã®ã°ã«ãŒããé¢ãã£ããããžã§ã¯ããæåã«å°ãããã®ããããžã§ã¯ãæšé²è¡ããç¥ãããã§ãã åæ¬ïŒ ããã§ããããŸãåæãšããŠãéå»ã®çµéšãšæ¯èŒããŠããã¹ã¿ã³ãã€ã®ãšã³ãžãã¢ã¯éçºã®ã¹ããŒããéãããããžã§ã¯ãã«ãããæäŸäŸ¡å€ã®æŠãåãããå®äºããã°ãèŠæ±ãåºã«èŠä»¶ã»ä»æ§ã®ææ¡ãªã©ãç©æ¥µçã«è¡ã£ãŠèªèµ°ããŠããåªç§ãªæ¹ãå€ããšæããŸãããŸããç§ã®ãããªéãšã³ãžãã¢äººæã«å¯ŸããŠã®æè¡çãªèª¬æãåãããããã®ã§ããã©ã³ããŒåŽã§ãèšèšæå³ãçè§£ããªããå®è£
ãé²ããããšãã§ããŸãã æè¡ã»æèãšãã«ãããã§ãã·ã§ãã«ãªæ¹ã
ãšå
±ã«é²ããããããšãããããžã§ã¯ãæåã®å€§ããªèŠå ãšãããŸããããã以å€ã§ããããžã§ã¯ãæšé²ãã«ãããŠäžæããã£ãèŠå ãæãããšãããªãã°ãæ¯ãè¿ããš3ã€ã»ã©ãããšæããŸãã ïŒïŒ40ïŒ
ã®å®æåºŠã§ãããããããå°ãäœæãã ç§ã«ã¯ãæ°å€åæããã¶ã€ã³ãªã©ã®å°éæ§ã¯ãããŸãããå®æåºŠã®é«ãè³æã®äœæã¯é£ããã§ããããããå°ãã¯ã€ã€ãŒãã¬ãŒã ãåæèŠä»¶ãªã©40ïŒ
ã®å®æåºŠã§ãããã®ã§ããŸãã¯ãšã«ãã圢ã«ããããšãå¿ãããŠããŸãã ãããåºã«ãé¡ããããããšã説æããã°è°è«ããããããªããææäŒéã®ã¹ããŒããäžãããŸããèªåã«ãªãã¹ãã«ã¯ç©æ¥µçã«ã¹ãã«ã®ãã人ãå°éã°ã«ãŒããé ŒãããŠãããã40ïŒ
ã®ãããå°ã80ïŒ
以äžã®ã¯ãªãªãã£ã«ä»äžããã®ã§ãã ãŸãããã®40ïŒ
ã®ãããå°ã®äžã«ããã¶ããªãç®æã»èŠçŽ ãã¯ããã®ã§ãä»ã°ã«ãŒããžã®çžè«ã䜵è¡ããªãããèŠä»¶æŽçãé²ããŠãããŸããããã¯ãã³ãã¥ãã±ãŒã·ã§ã³ã®å¹çåãšãããžã§ã¯ãã®æšé²ã¹ããŒãã®åäžã«å€å°ãªããå¯äžãããšèããŠããŸãã ïŒïŒ ãªãããããã®ããè«ççã«å
šåã§èª¬æãã ãApply URL ãããžã§ã¯ããã«é¢ããŠã¯ãåœåã¹ããŒã¯ãã«ããŒå
šå¡ãããžãã£ããªæ³ããæã£ãŠããç¶æ
ãšã¯èšããŸããã§ããããªããªãã課é¡ã«å¯ŸããŠå€ãã®è§£æ±ºçãããäžã§ãããããã¹ããªæã¡æãšãããèªèãçµ±äžã§ããŠããªãã£ãããã§ãã ããã§ããä»®èª¬ã®æ°å€ãåºã«ãã广ãããä»ã®ææ®µãšæ¯èŒããçµæããªã©ãèžãŸãããªãããããã®ãããè«ççã«èª¬æããããšã«åãå²ããŸãããããã«ã¯ããã®ãããžã§ã¯ãã¯ããäžé·æçãªèŠéã§ãå°æ¥ã«ã€ãªããããããžã§ã¯ãã§ããããšãçè§£ããŠãããããšãæ¬ ãããŸããã§ããã ãŸããApply URLãä»éžæããããã¹ããªæã¡æã§ããããšããã¹ããŒãªãŒãèããããšã¯ãç§ã«ãã§ããããšã§ãããã誰ããäŒããã®ããã¯ãã¹ããŒãªãŒã®çŽåŸæãé«ããããã«ãããšãŠãéèŠã§ãããã®ãããæçµçã«ã¯ãããŒãžã£ãŒãCOOã«ãååãä»°ãã§é¢ä¿è
ãšã®èªèåãããè¡ããŸããã æ¹å€ãå察æèŠã¯ãè£ãè¿ãã°ã¹ã¿ã³ãã€ãæé·ãããããšããæ³ããããããããåºãŠãããæãé£ãèšèã§ãããããã£ãæèŠãããããžã§ã¯ãã®ããŒãããããæ©èœä»æ§ãé©åã«å€æŽããããšãã§ããçµéšããããŸããç®ç·ã®ãããŠããç®æãæŽãåºããããåãããããšã«å
šåã§åãåãããšã§ããããžã§ã¯ãã¡ã³ããŒã®äžäœæãé«ããããšãã§ããã®ã§ã¯ãªãã§ããããã ïŒïŒQCDSã«æ²¿ã£ãŠããããžã§ã¯ãã管çãã æåŸã«åºæ¬çãªããšã§ããããããžã§ã¯ã管çã«ãããŠã¯ããQCDSãïŒå質:Qualityãäºç®:CostãçŽå:Deliveryãã¹ã³ãŒã:ScopeïŒãšããç®¡çææšããããŸãã ãããžã§ã¯ããããžã¡ã³ãããããŠããæ¹ã«ãšã£ãŠã¯åœããåã®ããšã ãšæããŸãããç§ã¯åºæ¬ã«å¿ å®ã«ãQCDS管çãã倧åã«ããŠããŸãã ãŸããã¹ã¿ã³ãã€ã®ãã§ãŒãºã§ã¯MVPïŒMinimum Viable ProductïŒéçºãæèããæ©äŒãå€ãã§ããMVPãšã¯ãäžè¬çã«ã顧客ã«ãšã£ãŠã䟡å€ãæäŸã§ããæå°åäœããšããŠèŠä»¶ãå®çŸ©ããããšã§ããããªãªãŒã¹ã«å¿
èŠãªã¹ã³ãŒããçµãããšã§ããªããªãŒãæ©ããæ©èœè¿œå ã»æ¹åã®ãµã€ã¯ã«ãæ©ããŸããããšãã§ããŸãã å®è£
ãé²ãã«ã€ããŠå·¥æ°ã®èŠç©ãã粟床ãé«ããªããããããªãªãŒã¹ããã«è¶³ãæå°åäœãã®åºæºã決ããŠããããšã§ããªãªãŒã¹æ¥ã®å»¶æãå¿
èŠãã©ãããæ©ãã«å€æã§ããŸãã ããã«ãéçºãé²ããŠããäžã§ã¯ããããããããããããããããããããšããããšããåžžã«åºãŠããŸãããã®ãããªå Žé¢ã«ãããŠãããããžã§ã¯ãã®MVPãQCDSåºæºãåºã«è°è«ããããšã§ããããªããªãŒææ¥ã«éã«åãç¯å²ã§ããã®WANTèŠä»¶ã远å ã§ããªããããªã©ã®ã¹ã³ãŒã調æŽã®ææ¡ããããããªããŸãã ãããžã§ã¯ããé²è¡ããéãå
±éã®å€æè»žãåºã«è°è«ããããšã§ãçµæãšããŠææ»ããå°ãªããããããžã§ã¯ãã®é²è¡ã¹ããŒããäžå®ã«ä¿ã€ããšãã§ããŸãã -ããããšãããããŸããèšãã¯æãè¡ãã¯é£ãã§ããã3ç¹ãšã忬ããã¯ãããèªç¶ã«è¡åãããŠãããªãšæããŸãããäžèšã®ãããªããããžã§ã¯ãæšé²è¡ãããæã¡ã®åæ¬ããã§ããApply URL ãããžã§ã¯ããã«ãããŠããã¹ã ãŒãºã«é²ãŸãªãããšãããã¹ã ãŒãºã«é²ãŸãªããããªãªã¹ã¯ãã¯ãªãã£ãã®ã§ããããïŒ åæ¬ïŒ æ©èœããªãªãŒã¹ããããšã«é¢ããŠã¯ãããŸãã¹ã ãŒãºã«ãããªããšããå Žé¢ã¯ãªãã£ããšæããŸããã§ããããApply URLãã¯ããã äœã£ãã ãã§ã¯æå³ããªããäŒæ¥æ§ã«å°å
¥ããã ããªããšæ±è·è
æ§ã«äœéšããŠããã ããŸãããå°å
¥ããã»ããªãã¯ãã¡ããäŒæ¥æ§ã倿ãããã®ã§ãå°å
¥ãé²ãŸãã«äœã£ããã®ãç¡æå³ã«ãªãäºæ
ã¯ããã®ãããžã§ã¯ãã«ãããŠç§ã®åã§ã¯èª¿æŽããã«ãããªã¹ã¯èŠçŽ ã ãšæããŠããŸããã ãã®ãããã»ãŒã«ã¹éšéãžã®çžè«ããã¢ãªã³ã°ã¯äžå¯§ã«è¡ããŸãããæ©èœã«å¯ŸããŠå¥œæçãªå°è±¡ãæã£ãŠããäŒæ¥æ§ããå°å
¥å¯èœæ§ã®ããäŒæ¥æ§ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ã代æ¿ããŠããã ãããªãªãŒã¹ã®ã¿ã€ãã³ã°ã«ã€ããŠããä»ã®æœçãšã®æ±ããããã§ãäŒæ¥æ§ãããã®ã¿ã€ãã³ã°ãªããŸãšããŠå¯Ÿå¿ã§ããã»å°å
¥ããããããšããææã«ããªããªãŒææãããããããšããããžã§ã¯ããŽãŒã«ã«å«ããŸãããè¯ããããã¯ãäœãã¯éçºã ãã®èŠç¹ã§ã¯ãæãåŸãŸãããéçºã»äŒæ¥ã»ãŠãŒã¶ãŒã«ãšã£ãŠãäžæ¹ãè¯ãç¶æ
ããç®æãããšãã§ããããšãããããžã§ã¯ãæåã«èµ·å ããŠãããšæããŸãã -ããããšãããããŸããé¢ä¿è
ã«æå€§éã«é
æ
®ããæ³ããšè¡åãããããžã§ã¯ããã¹ã ãŒãºã«é²ããæåã«å°ããŠãããã ãšæããŸããã ç§èªèº«ã忬ããããªãŒããããããžã§ã¯ãã«é¢ãã£ãŠããŸããããã¹ã ãŒãºããšæããè£ã«ã¯ã忬ããã®ãã现ããé
æ
®ãé ããŠããããšã«æ°ã¥ããŸããã貎éãªã話ãããããšãããããŸããïŒ ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ããã«ã¡ã¯ãã¹ã¿ã³ãã€ã®Tech blogã®éå¶æ
åœã®éå±±ã§ãã ãã£ãšããéã«å¹Žæ«å¹Žå§äŒã¿ãçµãããæ°æã¡æ°ãã«ä»äºåããè¿ããããŸããã§ããããã ã¿ãªããŸãæ¬å¹Žãã¹ã¿ã³ãã€ããããããé¡ãããããŸãããã ããŠã2023幎ã®1åç®ã®Tech Blogã®èšäºãšããããšã§ãä»åã¯ãã¹ã¿ã³ãã€ã®æè¡çè»è·¡ããŸãšããåŒç€ŸCTOæç³ã® ã2022幎ã¹ã¿ã³ãã€ã¢ããã³ãã«ã¬ã³ããŒãã®12æ25æ¥ã®èšäº ãããã¡ãã§ãã玹ä»ããŸãã ã¯ããã« (â»æ¬èšäºã¯ããStanby Advent Calendar2022ãã®åç·šéèšäºã§ãããŸããå·çæ2023幎1ææç¹ã®æ
å ±ã§ãã) ã¿ã€ãã«ã«ããããã«ããªãã2+1幎ããªã®ãã¯ã ã€ã³ã¿ãã¥ãŒèšäº(äºæ¥æåã«ãã©ãŒã«ã¹ããããšã³ãžãã¢ã®ããéå£ãäœã£ãŠãããã) ãåç
§ããã®ãè¯ãã®ã§ãããèªãã®ãé¢åãªæ¹ã®ããã«ç°¡åã«èª¬æãããšãã¹ã¿ã³ãã€ãžJoinãã1幎åã®2019幎12ææ«ã«ä»£è¡šã®åãšéé
ããã€ããŒã®æç³ãšããŠã¹ã¿ã³ãã€ã®æ€çŽ¢ç²ŸåºŠåäžã®åãçµã¿ãå§ããã®ã2020幎1æãã¹ã¿ã³ãã€ã«Joinããã®ãã2021幎1æã§ãã®ã§ã2+1幎ã®è»è·¡ã«ãªããŸãã æè¡è² åµãšã®éã ã¹ã¿ã³ãã€ã§ã®ãšã³ãžãã¢ãªã³ã°ã®åãçµã¿ãäŸãããšæè¡è² åµãšã®éãã®ã²ãšããšã§ç· ãããããããšæããŸãã æ ªåŒäŒç€Ÿã¹ã¿ã³ãã€ã¯ã2019幎12æã«ZããŒã«ãã£ã³ã°ã¹æ ªåŒäŒç€Ÿãšããžã§ãã«æ ªåŒäŒç€ŸïŒåœæãæ ªåŒäŒç€ŸããºãªãŒãïŒã®Joint VentureãšããŠèšç«ãããäŒæ¥ã§ãããããããã¹ã¿ã³ãã€ãµãŒãã¹ã¯ãããºãªãŒãã®äžäºæ¥ãç¶æ¿ãããã®ã§ããããæ¢ã«4-5å¹Žã®æ³æãç©ã¿éããŠãããããã幎代ç©ã®ãµãŒãã¹ã§ãããã 4-5幎éãµãŒãã¹ãç¶ç¶ãç¶ãããšããã®ã¯ãããã¯ããã§äžã€ã®å°æ¬ã§ãããã®ã§ãããã¹ã¿ãŒãã¢ããã®äžã§ãæ°å°ãªãçãæ®ããšãããããã®å®çžŸãšææããã£ãŠã®Joint Ventureã§ããã®ãé ·ããã®ã§ããã4-5å¹Žã®æŽå²ãšããã®ã¯ããããªãã«ããã£ã±ãæè¡è² åµãæšœã®äžã«è©°ã蟌ãã§å±
ããã®ãªã®ã§ãã æ€çŽ¢ãšã³ãžã³ æåã«æãã€ããã®ãããã®ãµãŒãã¹ã®å¿èã§ãããæå€§ã®å·®å¥åãã€ã³ãã®æ€çŽ¢ãšã³ãžã³ã§ãããã¡ãªã¿ã«ã¹ã¿ã³ãã€ã®æ€çŽ¢ãšã³ãžã³ã«ã¯ãOrganic(ç¡ææ²èŒæ±äºº)ãšAd(æææ²èŒæ±äºº)ã®2çš®é¡ã®æ€çŽ¢ãšã³ãžã³ããããGoogleãã€ããŒãªã©ã®Webæ€çŽ¢ãšåæ§ã«æææ²èŒæ±äººã«ã€ããŠã¯ãOrganicã®çµæã®äžäœãäžäœãäžäœã®åºå®æ ã«è¡šç€ºãããŸãã ã€ã³ã¿ãã¥ãŒèšäº(äºæ¥æåã«ãã©ãŒã«ã¹ããããšã³ãžãã¢ã®ããéå£ãäœã£ãŠãããã) ã§èªã£ãããã«ãã€ããŒvsã¹ã¿ã³ãã€ã§Organicæ€çŽ¢ã®ABãã¹ãã³ã³ãã宿œãããã®çµæãã€ããŒã®æ¹åŒãæ¡çšãããããšã«ãªããŸãããããŸã ãã話ããŸãããåœæã®ã¹ã¿ã³ãã€ã§ã¯ããã®çµæã¯ããã£ãŠããããšã§ããããããªããã¡ã¯æ€çŽ¢ãšã³ãžã³ã®ããšãçè§£ããŠããªããšå€ã®äººéããããªããã£ãŠããŠè©±ããŠããã ããçŽåŸããªãã®ã§ãã®ã€ãã³ãã宿œããã€ããŒãšã®åæ¥ãšãã圢ãã¹ã ãŒãºã«é²ããããšãã§ããããšæããŸãã çµæãšããŠã Organicæ€çŽ¢ãšã³ãžã³ã«ã¯Yahoo!ABYSSãšããæ€çŽ¢ãã©ãããã©ãŒã Adæ€çŽ¢ãšã³ãžã³ã«ã¯Elasticsearch ãæ¡çšããã ããã¯ãYahoo!ABYSSãå©çšããã€ããŒãšã³ãžãã¢ãšã®åæ¥ãé²ããããšã«ãããã€ããŒã®æã€æ€çŽ¢Knowledgeãã¹ã¿ã³ãã€ã«åžåããã¹ã¿ã³ãã€ã®æ€çŽ¢æè¡ã®åºäžããå³ãããšãç®çãšãããã®äžæ¹ã§ãYahoo!ABYSSã§å¹ã£ãç¥èãèªç€Ÿæ€çŽ¢ãšã³ãžã³ã«åã蟌ãããšã«ãããã¹ã¿ã³ãã€å
ã§ã®æ€çŽ¢ãšã³ãžã³ã®ç¥èãéçšçµéšãé€ãããã«ãã®ïŒãšã³ãžã³äœå¶ããšãããšã«ããŸããããã ã€ããŒã®æ€çŽ¢ãšã³ãžã³ããåãããããšã¯éåžžã«ã¡ãªããã®å€ãããšãªã®ã§ãããããã¯ã諞åã®å£ã§ãããã€ããŒå
ã®æ¹éã§ãã®ãšã³ãžã³ã®æäŸããã€æ¢ããããŠãã¹ã¿ã³ãã€ãæ»ãªãªãããã«ãã®äœå¶ã«ããŸãããããã¯ãã€ããŒãéé£ããèš³ã§ã¯ãªãããœãããŠã§ã¢ã«ã¯ã©ã€ããµã€ã¯ã«ããããã€ããŒã ãã§ãªããAWSãªã©ã¯ã©ãŠããããŠãåèªèº«ã€ããŒã®CTOãªã©ãçµéšããŠãå®éã«ãã®ãããªå€éšæäŸæ©èœãæ§ã
ãªäºæ
ã«ããæå¿µããèšæ¶ãããããã§ããããšããã®ã»ãããšã³ãžãã¢ã®ã¢ãããŒã·ã§ã³ãç¶æã§ããŸããããç¬ Organicæ€çŽ¢ Organicæ€çŽ¢ãšã³ãžã³ã®äžçªã®è² åµã¯ãã¹ã¿ã³ãã€ãµãŒãã¹éçºåæã«äœãããåŠç¿ã¢ãã«ãæŽæ°ãããã«æ¹åãããŠããªãã£ãããšã§ããããã®åãçµã¿ã«ãã£ãŠå€§ããåé²ãããã«å®æçãªæ°ã¢ãã«ã§ã®ãã¹ãã宿œãããããã«ãªããæ¹åãµã€ã¯ã«ããŸããããã«ãªããŸããã Stanby Tech Blog ã¹ã¿ã³ãã€ã®æ€çŽ¢ã®ä»çµã¿ ã«ãŠã確èªãã ããã Adæ€çŽ¢ äžæ¹ãAdæ€çŽ¢ãšã³ãžã³ã«ã€ããŠã¯ããšã³ãžã³ã®åãæ¿ããããªãã£ãã®ãšãå€ãã®æå³äžæãªã¢ã«ãŽãªãºã ãéæã«èç©ãããŠãããããããªã«ç°¡åã§ã¯ãããŸããã§ããã æåã®åãçµã¿ãšããŠã以äžã宿œããŸããã ïŒïŒæ°ã¢ãã«é©å¿ãš GSP å°å
¥ ïŒïŒSecond Phase Ranking ã®å°å
¥ ïŒïŒã¢ã«ãŽãªãºã ãšã¢ãã«ã®çµ±äž Stanby Tech Blog ã¹ã¿ã³ãã€ã®åºå衚瀺ã«ãããããžãã¯ã«ã€ã㊠ããããåèã«ããããšè¯ãããšæããŸãã ïŒïŒæ°ã¢ãã«é©å¿ãšGPSå°å
¥ GSPã£ãœããã®ãå
¥ã£ãŠããããGSPã¯ãAuctionçè«ãå¿çšããŠãäŸ¡æ Œãäžé驿£å€ã«åŒãäžããŠãããã®ãªã®ã§ãããGSPã£ãœããã®ã¯ãäŸ¡æ Œãäžå€®é©æ£å€ã«å¯ãããããªãã®ã§ãããã ãšäŸ¡æ Œé©æ£åãè¡ããããããããŸããã§ãããã¢ãã«ã¯ãOrganicãšåæ§ã§ããµãŒãã¹éçºåæã«äœæããããã®ã§ããç¬ ïŒïŒSecond Phase Rankingã®å°å
¥ Adã«ããããSecond Pahse Rankingã®éèŠæ§ã«ã€ããŠã¯ãæåŸ
åçé¡é ã«Re-RankingããŠæ²èŒé ãæ±ºå®ããã®ã§ãã ããäŸïŒããæåŸ
åçé¡ = å
¥æé¡ Ã äºæž¬CTR ãã®ãšãã«äºæž¬CTRããã®ãããäœããå
¥æé¡ãé«ãäžé©åãªåºåãäžäœã«æ¥ãŠããŸãããšãçºçããŸãããããé¿ããããã«ãFirst Phaseã§é©åæ§ã®é«ãåºåé (äžè¿°ã§ã¯ãäºæž¬CTRé )ã§Rankingããäžã§ãäžäœnæ¬ãSecond Phaseã«æž¡ããæåŸ
åçé ã«Re-Rankingããããšã«ãããé©åãªåºåéã§ã®Auctionãå®çŸããå¿
èŠããããŸããElasticsearchã®Re-Rank Plug-inã§ããã Learning to Rank ãããã«ãããã®ã§ãããããã©ãŒãã³ã¹ãåºãªããYahoo!ABYSSã®Knowledgeãåãå
¥ããããã«ã¯ãæ¡åŒµæ§ã«æ¬ ãããšããããšã§ç¬èªéçºããå¿
èŠããããŸããã ïŒïŒã¢ã«ãŽãªãºã ãšã¢ãã«ã®çµ±äž ãªããšãªãããããã®èæ¯ã¯æ³åã€ããã®ã§ãããæ€çŽ¢æ¡ä»¶ãšãåºé¢ã«ãã£ãŠã¢ã«ãŽãªãºã ãç°ãªããããã§ã¯ã詳现ã«ã¯è§Šããããªãã»ã©ã®è² åµã§ããã åãçµãã çµæ 4-5å¹Žã®æŽå²ãš éçšååºå ãšã¯ããããã®ã§ãæ°ã¢ãã«é©å¿ãš[GSP]ã®åãçµã¿ã ãã§ã¯ãæ§ã¢ã«ãŽãªãºã ã«ã¯åãŠãŸããã§ãããSecond Phase Ranking ã®å°å
¥ã䞊è¡ããŠé²ããããšãšã瀟å
ã®MLããŒã ã®åªåããã£ãŠãä»å¹Žã®4æã«æå¥ãªãç¶æ
ã§1ã3ãéæããããšãã§ããŸããã çµæãšããŠã4æã12æãŸã§ã§æ±äººäŒæ¥æ§ã®ROIãåäžãã€ã€ãåºååçæ§ã¯2åè¿ãåäžã§ãããããªäœå¶ã«ãªã£ãŠããŸããã å
è¿°ã®ã€ã³ã¿ãã¥ãŒèšäºã§ã¯ããããŸã§ã1ã3ãŸã§ã1幎ã§ãšèããŠããã®ã§çµæ2幎æãã£ãŠããŸããŸããã æ±äººããŒã¿åã蟌㿠çãããæ¿ç¥ããšæããŸãããã¹ã¿ã³ãã€ã¯ãæ±äººæ€çŽ¢ãšã³ãžã³ã§ããæ±äººæ€çŽ¢ãšã³ãžã³ã§éèŠãªãã®ããµãã€ãããŠãšèšãããã°ãå
ã»ã©ã玹ä»ãããæ€çŽ¢ãšã³ãžã³ãšãã®æ€çŽ¢ãšã³ãžã³ã®ã³ã³ãã³ãã§ããæ±äººç¥šã§ãã ã¹ã¿ã³ãã€ã®æ±äººç¥šã¯ãïŒã€ã®æ¹æ³ã§åã蟌ãŸããŠããŸãã ïŒïŒããŒã¿ãã£ãŒã ïŒïŒã¯ããŒã« ïŒïŒCMSããã®å
¥çš¿ ãã®ãã¡ã1.ãš2.ã«ã€ããŠã¯ããžã§ãããŒã¿ã³ã¢ã°ã«ãŒãã®éçºããä»çµã¿ã§å®çŸãããŠããŸããããã®ä»çµã¿ã§ã¯ãæ±äººç¥šã®åéãåæãèç©ã管çã(åé¡)ãªã©ã責åãããããªã«ãããã¬ãã·ã¥ãã¹ãããã«æ
ä¿ãããã倧ããªèª²é¡ã§ããDailyçŽ2000äžååŸã®æ±äººã®åã蟌ã¿ãšãèŠçŽç¢ºèªãåäžæ±äººãªã©ã®åæãå€å¥ããããŠã管çãæ±äººç¥šå€å®åšã«ãã£ãŠå€å®ãããçµæã®åæ ãªã©ã宿œãããçµæãšããŠã¹ã¿ã³ãã€ã«æ²èŒãããæ±äººç¥šã¯çŽ1200äž(ãŸãšãæ±äººãèæ
®ãããšçŽ800äž)çšåºŠãåŠçããä»çµã¿ãšãªã£ãŠããŸãã ãã®æ±äººåãçµã¿ã倧ããªèª²é¡ãæ±ããŠããã2021幎11æé ãã倧å¹
ãªãªãã¬ãŒã¹ã宿œããŸããã Stanby Tech Blog ã¹ã¿ã³ãã€ã®æ±äººæ
å ±å蟌ã®ä»çµã¿ãäœãçŽãã話ããåºç« ã Stanby Tech Blog æ±äººåã蟌ã¿åšãã®ãªãã¬ã€ã¹ã«ã€ã㊠Advent Calender 2022 ã¯ããŒã©ãŒïŒæ±äººåã蟌ã¿ã·ã¹ãã ïŒã®ãªã¢ãŒã察å¿ã«ã€ã㊠ãã®ä»¶ã«ã€ããŠã¯ãTech Blogã«ãã£ããèšè¿°ãããŠããã®ã§ç¹çããªããŠãè¯ãããã§ããã çµæãšããŠãæ³åŸå¯Ÿå¿ãæ±äººç¥šæ¡å
ã®ããã®ã«ã©ã ã®è¿œå ãªã©æè»ã«å¯Ÿå¿ã§ãå§ããŠããŸãã æè¿ã®åãçµã¿ãšããŠã¯ãã¯ããŒã«ããŒã¿ã®ãã¬ãã·ã¥ãã¹ãæ
ä¿ããããã®çµäºæ±äººãã§ãã¯ãåŠäœã«å¹çããè¡ãããšèšã課é¡ã«åãçµãã§ãããšããã§ãã Stanby-API Stanby Tech Blog ãããã¯ãéçºäœå¶ã®ãããŸã§ãšãããã ã«ç޹ä»ãããŠãããšããã2021幎4æã®çµç¹å€æŽã§ãæè¡ãã¡ã€ã³ã«åºã¥ããããŒã äœå¶ã«å€æŽããŠããã®ã§ããããã®åŒå®³ãšããŠãè€æ°ããŒã ãã¡ã³ãããŒãšãªã£ãŠããã®ãããã®Stanby-APIãšããµãŒãã¹ã§ãã ã¹ã¿ã³ãã€ã¯ã ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ ãæ¡çšããŠããã®ã§ããããã€ã¯ããµãŒãã¹ã£ãŠé²ããŠãããšããã€ã¯ããµãŒãã¹çŸ€ãããæãã«ããã·ã¥ã¢ããããŠããããããã¡ã€ã³ã®è²¬åããå€ãããããªã¢ã«ãŽãªãºã ãªã©ããã¹ãŠéçŽãããããããããããšããã«æãå±ãçãªãµãŒãã¹ãã§ããããã®ã§ããããããããããããã«ããããŸãç¬ çµæãšããŠãäœãæ©èœæ¹ä¿®ãå¿
èŠãªéã«ã¯å¿
ãã¡ã³ããã³ã¹ãäœåãªããããã»ãšãã©ã®ããŒã ãã¡ã³ãããŒãšãªã£ãŠããã®ã§ãéçºå¹çãèããäžããŠããŸãã 詳现ã«ã€ããŠã¯ããã®ãããžã§ã¯ããçµãã£ãé ãæ
åœãšã³ãžãã¢ãæžããããããªãã®ã§å²æããŸãããã¢ãžã¥ã©ã¢ããªã¹åã«ããããã®èª²é¡ã«åãçµãã§ããŸãã Geo-API æ±äººãµãŒãã¹ãšããŠãGeographicæ
å ±ã®ææ¡ãšçè§£ãšããã®ã¯ãéèŠãªèª²é¡ã®äžã€ãªã®ã§ãããå
šã¹ã¿ã³ãã€ãšã³ãžãã¢ãã€ãããªãŒãšæããªããèŠãŠèŠã¬ãµãããç¶ããã®ããã®Geo-APIã Geo-APIã«ã¯ããã€ãã®æ©èœãããã âåºæ¬æ©èœ ãâäœæã®Normalization (äœææååã®æ£èŠå) ãâGeo-Coder (äœæãã緯床çµåºŠæ
å ±ãžã®å€æïŒ ãâReverse Geo-Coder (緯床çµåºŠæ
å ±ããäœæãžã®å€æïŒ âãã®ä» ãâé§
ãªã©ã®å°ç¹æ
å ±ã®å€å® ãâå°ç¹æ
å ±ã®äœæã®ç¹å® ã¿ããªãèšãã«ã¯ã 誰ã仿§ãçè§£ããŠããªã ã©ã®æ©èœãã©ãã§äœ¿ãããŠããã®ããåãããªã ã³ãŒããã¡ããã¡ããªã®ã§è§Šããããªã ãšãã«ãªã¹ã§ããç¬ ãã®ãã³ãã©ã®ç®±ããšããšãããéããŸãããPhase-1ã¯ãæ¥ã«ã¯ç®ã«ããããšãã§ãããã§ãã QAC(Query-Auto-Completion) Advent Calender 2022 æ¥æ¬èªã¯ãšãªãªãŒãã³ã³ããªãŒã·ã§ã³ã®å®çŸ ã§ã玹ä»ããããããããæ€çŽ¢ãµãžã§ã¹ãæ©èœã§ãã ããããéçºåœåããäžåã¡ã³ããããŠããªããå¹ææž¬å®ãããããšãªãããããããããªãããšãã誰ãè§Šããªããªã£ãã¢ãžã¥ãŒã«ã Lightãªæ©èœã ããããElasticsearchãSolrã®æ©èœã䜿ããã«ãLuceneã§éçºããŠãæ€çŽ¢æè¡ã®çè§£ãæ·±ããããšããã®ãä»ã®ã¹ã¿ã³ãã€ã®ãšã³ãžãã¢ãããåãçµã¿ã§ããã æããã¡ç€Ÿå
ã®ãšã³ãžãã¢ã®ã¬ãã«ãç¶æã§ããªãã£ãããç°å¢ãå€ãã£ããšãã«è² åµåããã®ã§ããã£ãšãæ±çšçãªä»çµã¿ã«ãã¹ãã§ã¯ïŒãšããæèŠãèãããŠãããã§ãããä»ã¯æ€çŽ¢æè¡ã®çè§£ã®ã»ããéèŠã ãšæã£ãŠãŸãã ããã¯ãããããã第äžåŒŸã®ABãã¹ããå§ãŸãã®ããªã ä»ã«ãã玹ä»ããããšã¯ãããããããŸãããä»åã¯ãã®ãããã«ããããšæããŸãããã®èšäºãæžããªããããæ°èŠãªãªãŒã¹ç®çœæŒãã§ã楜ãã¿ãªå¹Žã«ãªãããã§ãã ã¹ã¿ã³ãã€ã¯ããŸã ãŸã ãããããã§ãïŒ æåŸã« 2023å¹Žãæ°èŠãªãªãŒã¹ãç®çœæŒããšã®ããšã§ããTech Blogã§ãæ°èŠãªãªãŒã¹ã«ãã©ãŒã«ã¹ããèšäºãæçš¿ããŠãããããªãšæã£ãŠããŸãããªãªãŒã¹ãTech Blogã®èšäºã楜ãã¿ã«ããŠããŠãã ãããïŒ ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ã¯ããã« ãžã§ãããŒã¿ã³ã¢ã°ã«ãŒãã«æå±ããŠããæ± ç°ã§ãã ãžã§ãããŒã¿ã³ã¢ã°ã«ãŒãã§ã¯ãæ±äººæ
å ±ã®åã蟌ã¿ãæ±äººæ
å ±ã®ç®¡çãæ€çŽ¢ãšã³ãžã³ãŸã§ã®ã€ã³ããã¯ã¹ãè¡ã£ãŠãããŸãã æã
ã®ããŒã ã§ã¯2020幎11æããã¹ã¿ã³ãã€ã®ã¯ããŒãªã³ã°ã·ã¹ãã ããªã¢ãŒããã¯ãã»ãªãã¬ã€ã¹ããã®ã§ããã ä»åã¯ãã®æã®äžéšã®ãããã¯ãã«ã€ããŠèª²é¡ãšå®éã«ïŒå¹ŽééçšããŠã©ãã ã£ãã®ãæ¯ãè¿ããæžããŠãããŸãã 課é¡ãšèæ¯ èª²é¡èæ¯ã¯éå»ã®ããã°ã ã¹ã¿ã³ãã€ã®æ±äººæ
å ±å蟌ã®ä»çµã¿ãäœãçŽãã話ããåºç« ã ãã§ãèšèŒããŸããã®ã§è©³çްã¯å²æããŸãã åœææ±äººåã蟌ã¿ã®çŸå Žã§ä»¥äžã®ãããªåé¡ãçºçããŠãããŸããã æ±äººå蟌ããåºåæ²èŒãŸã§æå€§6-7æéããã æ±äººã®ãã£ãŒã«ãã倿Žããã®ã«1ã¶æããã£ã æ±äººæ
å ±ã®è«ççãªç ŽæãçºçåŸã埩æ§ãŸã§ã«1ã¶æããã£ã 倧ããªåé¡ãšããŠ ãæ±äººã»åºåããŒã¿ã1ç®æã§ä¿ç®¡ãããŠããããšã§ãããŒã¿ã®æè»æ§ãæ¡åŒµæ§ã«åé¡ãçºçããŠããã ãšããæè¡çè² åµããã£ãã®ã§ãªã¢ãŒããã¯ããè¡ã£ãŠãã£ãã®ã§ããã ãã®äžã§ã¬ã¬ã·ãŒã³ãŒãåãé²ãã§ãããã®ããããŸããã ããã esæžã蟌ã¿ããã ãšããã·ã¹ãã ã§ãã â»1 ã¬ã¬ã·ãŒã³ãŒããšã¯ ïŒçç±ã¯ãªãã§ãã) ä¿®æ£ãæ¡åŒµãäœæ¥ãéåžžã«é£ããã³ãŒãã®ããšãæããŠããŸãã ïŒãã¬ã¬ã·ãŒã³ãŒãããã®è±åŽãããïŒ esæžã蟌ã¿ãããã«ã€ã㊠esæžã蟌ã¿ããã 㯠ã¯ããŒãªã³ã°ããæ±äººãããæ±äººã®æ
å ±ãæœåºããæ£èŠåããŠãæ€çŽ¢ãšã³ãžã³ãžã€ã³ãã¯ã·ã³ã°ãããšãã責åãæ
ã£ãŠãããŸãã å³ã® esæžã蟌ã¿ããã ãšãªã£ãŠããã·ã¹ãã ã«ãªããŸãã 2015幎ããéçºãããŠã Scala ãš Apache Spark ïŒãªãŒãã³ãœãŒã¹ã®åæ£åŠçã·ã¹ãã ïŒã§äœãããŠãããŸããã ã·ã¹ãã ã®åŠçã®æµããšããŠã¯ããŒãªã³ã°ããŒã¿ïŒæååã®jsonã®ããŒã¿ïŒãåãåãã以äžã®ãã€ãã©ã€ã³åŠçãè¡ããŸãã ã¯ããŒãªã³ã°ããŒã¿ïŒjsonããŒã¿ïŒããæ±äººã®ãã£ãŒã«ãã®æœåº ãã©ãŒããããã§ã㯠æ±äººæ
å ±ã®æ£èŠåã æ€çŽ¢ãšã³ãžã³ãžã®æžã蟌㿠ãããåŠçã®éçšã®åã Option[Map[String, Option[Any]]] ãšããåã§ ã©ã®ãããªå€æŽãè¡ãããæçµçã«ã©ã®é
ç®ãæžã蟌ãŸããŠããã®ãããšããããšãã³ãŒãããããã«ã¯çè§£ã§ããªãç¶æ
ã§ããã åãã€ãã©ã€ã³ã®è¿ãå€ã®å // jsonããæ±äººããŒã¿ã®æœåºããåŸã®å Map[ String , Option[Any]] // ãã©ãŒããããã§ãã¯åŸã®å Option[Map[ String , Option[Any]]] // æ±äººæ
å ±ã®æ£èŠååŸã®å Option[Map[ String , Option[Any]]] Optionã¯å€ããã®åã®éãå€ããªãã·ã§ãã«ã§ããåã§ãå€ãããã°å€ãè¿ãããªããã°å€ãè¿ããŸããã Mapã¯ããããŒããšå¯Ÿå¿ãããå€ãã®2ã€ã®èŠçŽ ããã¢ã«ããŠæ ŒçŽããããŒã¿æ§é ã§ãã Scalaã®äžçã®Anyåã¯ãã£ãšãæ±çšçãªåã«ãªããã©ã®åã®å€ãå
¥ããããšãã§ããŸãã ç°¡åãªäŸã§ããã Map[String, Option[Any]] ã¯ä»¥äžã®ãããªããŒã¿ãå
¥ããããšãã§ããŸãã val sample = Map[ String , Option[Any]]( "jobTitle" -> Option( "ããã¯ãšã³ããšã³ãžãã¢" ), "jobContent" -> Option( "ã¹ã¿ã³ãã€ã®ããã¯ãšã³ãéçºæ¥å" ), "jobType" -> Option( Array [ String ]( "æ£ç€Ÿå¡" )), "siteName" -> Option( "ã¹ã¿ã³ãã€" ), "salary" -> Option( Map( "displayString" -> None ) ) ) ã¢ãŠããããå
ã Elasticsearch ãªã®ã§æžã蟌ã¿ã¯ã§ããã®ã§ããïŒã¹ããŒãã¬ã¹ã«æžã蟌ã¿ãã§ããããïŒã æ±äººã®é
ç®ãMapã§è¡šçŸããŠããããã³ãŒãäžã§æ±äººã®åé
ç®ã®ç®¡çé£ãããããã«æ€çŽ¢ãšã³ãžã³ã§äœ¿ãããŠããªã é
ç®ã®ãã£ãŒã«ããååšããŠãããŸããã äžæ¹ã§Unitãã¹ãããã£ããæžãããŠããã®ã§ãUnitãã¹ããéããŠã³ãŒããæ¡åŒµãä¿å®éçšãã§ããŠããç¶æ
ã§ããã ãŸããã€ãã©ã€ã³åŠçãåã§æœè±¡åãããŠãããå
šäœçãªã·ã¹ãã ã®æ§é ãšããŠçè§£ããããäœãã«ãªã£ãŠãããŸããã ãããã§5幎çµã£ãŠãå
šäœçãªã³ãŒãã®èŠéãã¯è¯ãç¶æ
ã§ããã /** * ãã€ãã©ã€ã³åŠçã§äœ¿çšãã1ã€ã®åŠçã衚ããã¬ã€ãã * * @tparam IN å
¥åãã©ã¡ãŒã¿ã®å * @tparam OUT åºåãã©ã¡ãŒã¿ã®å */ trait Stage[IN, OUT] { /** * ãã®ã¹ããŒãžã§ã®åŠçããã®ã¡ãœããã«å®è£
ããŸãã * * @param in å
¥åãã©ã¡ãŒã¿ * @return åºåãã©ã¡ãŒã¿ */ def process(in: IN): OUT /** * ãã®ã¹ããŒãžã®æ¬¡ã«å¥ã®ã¹ããŒãžãé£çµããŠãã€ãã©ã€ã³ãæ§æããŸãã * * @param nextStage 次ã®ã¹ããŒãž * @tparam T 次ã®ã¹ããŒãžã®åºåãã©ã¡ãŒã¿ã®å * @return ãã€ãã©ã€ã³ */ def |[T](nextStage: Stage[OUT, T]) /** * ãã®ã¹ããŒãžã®æ¬¡ã«å¥ã®ã¹ããŒãžãé£çµããŠãã€ãã©ã€ã³ãæ§æããŸãã * ãã®ã¡ãœããã§è¿œå ãããã¹ããŒãžã¯ | ã§é£çµãããã¹ããŒãžãšã¯ç°ãªãã * åã®ã¹ããŒãžã§äŸå€ãçºçããå Žåã§ãå¿
ãåŒã³åºãããŸãã * * @param nextStage 次ã®ã¹ããŒãž * @tparam T 次ã®ã¹ããŒãžã®åºåãã©ã¡ãŒã¿ã®å * @return ãã€ãã©ã€ã³ */ def >[T](nextStage: Stage[Either[ExtractorThrowable, OUT], T]) } ã©ã®ãããªããã»ã¹ã§é²ããã®ãïŒ ä»¥äžã®æé ã§ã·ã¹ãã ã®äœãçŽããè¡ããŸããã æ¢åã®ã³ãŒããããŒã å
šå¡ã§ã³ãŒããªãŒãã£ã³ã°ããäœããã£ãŠããã®ãïŒäœã®ããã«ããã®ãïŒå¿
èŠãªã®ãïŒãè°è«ããŠã³ãŒãäžã§ã®å
±éèªèãã〠æ±äººããŒã¿ã§äœ¿ãããŠããé
ç®(å¿
é ãéå¿
é )ã䜿ãããŠããªãé
ç®ã®æŽç ãã¡ã€ã³ã¢ãã«ãå®çŸ©ãã ãã€ãã©ã€ã³åŠçã®ãããŒã§åãå®çŸ©ãã æ¢åã®ãã¡ã€ã³ããžãã¯ã§äœ¿ããã³ãŒããç§»æ€ãã Unitãã¹ããæžã å®éã«æ€èšŒç°å¢ã§éçšããŠæ³å®ããŠãªãã£ãåãããŠããªãããªã©ã®ç¢ºèª åæ®µéã®è©³çްã¯çããŸããã1ã®é
ç®ã¯æ¢åã®ã³ãŒããçç¥ããŠããã¡ã³ããŒããæ©èœã®å¿
èŠæ§ãç確ã«å€æããŠããã ãããŠã³ãŒãäžã®ç¥èŠã課é¡ãããŒã å
šå¡ã«å
±æãããã®ã§ããã£ããªãšæã£ãŠããŸãã ãŸãã esæžã蟌ã¿ããã ã§ã¯Unitãã¹ãããã£ããæžãããŠããã®ã§ã³ãŒãã®ç§»æ€ãã¹ã ãŒãºã«è¡ããŸããã ã¡ãœããã®ã¢ãŠããããã«å¯ŸããŠåå®çŸ©ãã ãªãã¡ã¯ã¿ãªã³ã°ã§å¿ã«æ®ã£ãŠãããã®ã«ã€ããŠç޹ä»ããŸãã esæžã蟌ã¿ããã ã§ã¯ã JSON圢åŒã®èšå®æ
å ±ã«ãã£ãŠãæ§ã
ãªããŒã¿ã®åœ¢åŒãæœåºããæ±çšçãªã¡ãœããããããŸããã protected def applyScript(property: ExtractProperty, rawdata: Map[ String , String ])(value: String ): Option[Any] äžèšã®ã¡ãœããã§ã¯IntåãStringåãSeqåã絊äžã衚ãåãJavaã®Liståãªã©æ§ã
ãªåã®ã¢ãŠãããããè¿ãããã®çµæè¿ãå€ã Option[Any] ã®åã§ãã©ããªå€ã§ãåãããããªäœãã«ãªã£ãŠãããŸããã ãããã¢ãŠããããã®åããã©ãã¯ããã¯ã¹åããŠãã³ãŒãã远ããªããªãããè¿ãå€ã«å¯ŸããŠåå®çŸ©ãè¡ããŸããã // çµæã衚ããã¬ã€ã trait ScriptResult sealed abstract class MVELResult extends ScriptResult object MVELResult { case class StringResult(value: String ) extends MVELResult case class IntResult(value: Int) extends MVELResult case class SeqResult(value: Seq[ String ]) extends MVELResult case class JListResult(value: java.util.List[ String ]) extends MVELResult case class ArrayResult(value: Array [ String ]) extends MVELResult case class SalaryResult(value: Option[Salary]) extends MVELResult } //ScriptResultã¯MVELResult以å€ã®åãè¿ãããšããããããMVELResultãšScriptResultã§ãããŠãããŸãã //ScriptResultãããã¯ã¹ã€ã³ããçµæã®åå®çŸ©ãè¡ãããšã§ãä»ã®æèã®åããšãããšãã§ããŸãã äžèšã¯ãã³ãŒãã®äžéšã«ãªããŸãã ãªãã¡ã¯ã¿ãªã³ã°ããã¡ãœããã®ã·ã°ãã㣠private def extractProperties( extractDefinition: ExtractDefinition, crawlingJob: CrawlingJob, parser: Parser ): Map[PropertyName, Option[ScriptResult]] ããã§ã¡ãœããã®çµæã®åãæç¢ºã«ãªããã³ãŒãã远ãããããªããŸãã ãªãã¬ã€ã¹ãè¡ã£ãçµæ ä»åã® esæžã蟌ã¿ããã ã¯2ã¶æã»ã©ã§ãªãã¬ã€ã¹ãè¡ãããšãã§ããŸããã(ã³ãŒãã®å€æŽã1ã¶æãã€ã³ãã©ã®å€æŽãããªãªãŒã¹ãŸã§1ã¶æã»ã©ã§ããã) ãŸãã¡ãœããã«éããããã¡ã€ã³ã¢ãã«ãå®çŸ©ããããšã§ãåŠçœ®äžã®ã³ãŒãã以äžã®ãããªåãå®çŸ©ãããŠãåãã€ãã©ã€ã³ã§ã®ããŒã¿ã®å€åããããããã«ãªããŸããã ãã¡ã€ã³ã¢ãã«ãå®çŸ© // ã¯ããŒãªã³ã°ããŒã¿ã®æ±äººæ
å ± case class CrawlingJob( documentId: DocumentId, crawledResult: CrawledResult // çç¥ ) // ETLãè¡ã£ãåŸã®æ±äººã®ã¯ã©ã¹ case class ExtractedJob( jobId: JobId, jobTitle: JobTitle // çç¥ ) ãªãã¬ã€ã¹åŸã®åãã€ãã©ã€ã³ã®è¿ãå€ã®å // jsonããæ±äººããŒã¿ã®æœåºããåŸã®å Either[Exception, CrawlingJob] // ãã©ãŒããããã§ãã¯åŸã®å Either[ExtractStageException, Job] åãªãç¶æ
ã ãšå®éã®ããŒã¿ã«ã©ããã£ãåãå
¥ã£ãŠããã®ããåžžã«èããªããå®è£
ããå¿
èŠããããéåžžã«é ã䜿ããŸãã äžæ¹ã§åãšããŠã³ãŒãã«èœãšã蟌ãããšãåæ
å ±ãèŠãªããé²ããããã®ã§èããããšãæžããããšãã§ããŸãã ä»ã«ããªãã¬ã€ã¹ãéããŠä»¥äžã®ããšãè¡ããŸããã ãããŸã§äŸåããŠããå€éšã©ã€ãã©ãªã®éœåã§Scalaã®ããŒãžã§ã³ã2.11ç³»ã ã£ãã®ã§ããªãã¬ã€ã¹ãæ©ã«ã¡ã³ããã³ã¹ãããŠããªãå€éšã©ã€ãã©ãªãåãé¢ãScalaããŒãžã§ã³ã2.13ã«ãããããšãã§ããŸããã ãã©ãŒããããã§ãã¯ã§ã¯ Validated ã䜿ã£ãŠç°¡æœã«ãšã©ãŒã®èç©ãå®è£
ã§ããŸããã ãããŸã§EC2äžã«Sparkã®ã¯ã©ã¹ã¿ãŒãäœãéçšããŠããŸãããã AWS EMR ã䜿ãã¯ã©ã¹ã¿ãŒç®¡çããããŒãžãã«ãªããŸããã EMRã¯ã©ã¹ã¿ãŒã®æ§ç¯ããã°åéåºç€ã®äœæãªã©ã¯é£æåºŠãé«ãã£ãã®ã§ããããããŒãžãã«ãªã£ãããšã§ç¹ã«æãå ããããšãªããã¯ã©ã¹ã¿ãŒãåãããŠãããã·ã³ãå
¥ãæ¿ãã£ãŠããã®ã§éçšèªäœã¯æ¥œã«ãªããŸããã æ±äººæ
å ±ã®æ£èŠååŠçãå¥ã¢ãžã¥ãŒã«ã«åããŠãæ±äººãæœåºããã¢ããªã±ãŒã·ã§ã³ãšããŠã®è²¬åã«å€æŽããŸããã æ¯ãè¿ã 5幎åã®ã³ãŒãã§ãã£ãŠãããŒãžã§ã³ã®ã¢ããã°ã¬ãŒããè¡ã£ããããã¡ã€ã³ã¢ãã«ãåå®çŸ©ããããšã§æ¢åã®UnitTestãåæŽ»çšããããšãã§ããã³ãŒããåçã§ããŸããã ãŸããã®ãªãã¬ã€ã¹ãã2幎ã»ã©éçšããŸãããããã¡ã€ã³ã¢ãã«ãåŠçã®éçšãåã§å®çŸ©ããããšã§æ±äººé
ç®ã®è¿œå ãåé€ãããããªããŸããã以åŸã远å ã®éçºãè¡ããŠãããŸãã Masterã®commitã®ç¶æ³ 2021幎以éããæŽ»çºã«éçºãè¡ãããŠããªãã¬ã€ã¹åŸã«éçºã®é »åºŠãäžãã£ãŠããããšãããããŸãã ã¹ããŒãã¬ã¹ãªããŒã¿ã¹ãã¢ã«æžã蟌ã仿§ã ãšãåæ
å ±ããªããŠãå®çŸã§ããã®ã§ãããæéã®çµéã«äŒŽãã¡ã³ããã³ã¹ãé£ãããªããŸãã ãã®çµæã³ãŒããã¬ã¬ã·ãŒåããããšã«ã€ãªãããããã§ãã ãã¡ãããŸã ãŸã æè¡çãªè² åµã¯ååšããŠããç¶æ
ã§ãããä»åãã¡ã€ã³ã¢ãã«ãšããŠåãå®çŸ©ããŠã責åãåè§£ããUnitãã¹ããæžãããšã§ éå»ã®ã·ã¹ãã ã®è³ç£ã䜿ããªããã³ãŒããæ¡åŒµã§ããç¶æ
ã«ã§ããŸããã ç¶ç¶çãªéçºãè¡ã£ãŠããããã«æ¹ããŠãåå®çŸ©ã責åã®èŠçŽããUnitãã¹ããéèŠã§ãããšããããšãèªèããŸããã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ããã«ã¡ã¯ãã¹ã¿ã³ãã€ã§ãã¶ã€ããŒãããŠããæž
æ°Žãšç³ããŸãã ãã®èšäºã§ã¯ãã¹ã¯ã©ã ããã£ãŠãããããªãããã¶ã€ã³äœæ¥ã®çç£æ§ãäžãã£ã..ïŒããšããé©ããå
±æãããŠãã ããã ã¹ã¯ã©ã ãšã®åºäŒã ç§ã¯ãŠã§ãæ¥çã§ããããã 10 幎ã»ã©ãã¶ã€ããŒãããã³ããšã³ããšã³ãžãã¢ã®ãããªæ¥åãããŠãããŸãã ãã®æéã®ã»ãšãã©ã§ã¯ã¹ã¯ã©ã ãã¢ãžã£ã€ã«ãšãã£ãææ³ã¯äœ¿ããããŠã©ãŒã¿ãŒãã©ãŒã«å¯ãã«ä»äºãããŠããŸããã ãããªç§ã§ãããã¹ã¿ã³ãã€ã«å
¥ã£ãŠçªç¶ã¹ã¯ã©ã ã«æŸã蟌ãŸããŸããã æåã¯ã«ã¿ã«ãèªã®å€ãããã¹ããªã³ãã®çãã«é¢é£ããå Žé¢ãå€ãã£ãã§ãããç¶ããŠãããã¡ã«åŸã
ã«è¯ããåãã£ãŠããæ°ãããŸãã ç¹ã«ãã¹ã¯ã©ã ããã¶ã€ã³äœæ¥ã«äžããè¯ã圱é¿ã宿ããŠãããæ¬èšäºã§ã¯ãã¹ã¯ã©ã ã§ãã¶ã€ã³äœæ¥ã®å¹çæ§ãäžãã£ãïŒããšããããŒãã«çµã£ãŠã話ãããŸãã ãã¶ã€ã³äœæ¥ã®çç£æ§ãé«ããã¹ã¯ã©ã ã®ãã©ã¯ãã£ã¹ ãã¹ã¯ã©ã ã®ãã¹ãŠã®ãã©ã¯ãã£ã¹ããã¶ã€ã³äœæ¥ã®çç£æ§ãé«ããããšãã£ãŠãéèšã§ã¯ãªãå¯èœæ§ããããŸãããç¹ã«åœ±é¿ã倧ãããšæãããã®ãäž»ã«ç޹ä»ããŠãããŸãã äœæ¥éã®èŠç©ãã ãŸãã¯äœæ¥éã®èŠç©ãã«ã€ããŠã§ãã ç§ãã¡ã®ããŒã ã§ã¯ã¹ããŒãªãŒãã€ã³ãã䜿ããã¹ã¯ã©ã ããŒã ã®å
šå¡ãéãŸã£ãŠäœæ¥ãçžå¯ŸèŠç©ããããŠããŸãã ãã®ã¹ããŒãªãŒãã€ã³ãä»ããéããŠããã¶ã€ã³äœæ¥ã®çç£æ§åäžã«ã€ãªããæ
å ±ãåŸãããŸãã 以åã®ç§ã¯ããã®ãã¶ã€ã³ãªãå®è£
ãããªã«å€§å€ãããªãããªããšæã£ãŠããã¶ã€ã³ãäœæããããšããããããŸããã ããããå®éã«ãã®äœæ¥ã«ã©ããããã®å·¥æ°ãããã£ããã¯ç¢ºèªã§ããŠããŸããã§ããã ã¹ããŒãªãŒãã€ã³ãã¥ããã¡ã³ããŒå
šå¡ã§ãããšããã®ç¶æ³ãå€ãããŸãã ãšã³ãžãã¢ãã¹ããŒãªãŒãã€ã³ããä»ããå Žé¢ãäžç·ã«èŠããããäºåã«æ³å®ããŠãããšã³ãžãã¢ã®äœæ¥éãšãå®éã«å¿
èŠãªäœæ¥éã®ä¹é¢ã«æ°ã¥ããã®ã§ãã ãã®æ°ã¥ããç©ã¿éãªããšããããããã¶ã€ã³ã¯å®è£
ã®è² è·ãé«ããããããã¯ã¡ãã£ãšå€ããŠãããããªã©ã®å·¥å€«ããããããªã£ãŠãããŸãã ãããªã£ãŠãããšããã¶ã€ã³äœæã®ç²ŸåºŠãäžããããšã³ãžãã¢ããåã°ãããã¶ã€ã³ãäœãããããªã£ãŠããã§ãããã ãŠãŒã¶ãŒã¹ããŒãªãŒã®æžãæ¹ ç§ãã¡ã®ããŒã ã§ã¯ããŠãŒã¶ãŒãããããæå°ã®ã¢ã¯ã·ã§ã³ãããžãã¹äŸ¡å€ãããæå°ã®åäœã§ãŠãŒã¶ãŒã¹ããŒãªãŒãèšè¿°ãããã±ããã§ç®¡çããŠããŸãã ãã®éã¯ãæšå¥šãããŠãããã©ã¯ãã£ã¹ãèžè¥²ããã¿ã€ãã«ãã{ãŠãŒã¶ãŒã®çš®é¡}ãšããŠã{éæããããŽãŒã«}ããããããªããªã{çç±}ã ããã ãã®ããã«æžããŠããŸãã äŸãã°ãã¯ãããŠã¢ã«ãã€ããæ¢ã倧åŠçãšããŠãæªçµéš OK ãªãã€ããæ¢ãããããªããªããåããŠã®ãã€ãã§äžå®ã ããã ãããªã©ã§ãã ãã®ããã©ãŒãããã«åŸã£ãŠã¹ããŒãªãŒã®ã¿ã€ãã«ãèšè¿°ããããšãã工倫ã«ãã£ãŠããã¶ã€ã³äœæ¥ã®çç£æ§ãåäžããŸãã ãã©ãŒãããã«åã£ãŠã¿ã€ãã«ãæžãããã®ã¿ã€ãã«ãæèããªãããã¶ã€ã³ããããšãã¿ãŒã²ãããç®çãæ¹ããŠæèããŠæ€èšãé²ããããŸãã ãã®çµæãšããŠãé©åãªè§£æ±ºçãææ¡ã§ããããããããã®èª²é¡ã«å¯Ÿå¿ãã解決çãèŠã€ãã£ããããå¯èœæ§ãé«ãŸãã®ã§ãã ã¿ãŒã²ãããç®çãèããŠãã¶ã€ã³ãæ€èšããã®ã¯åœããåã§ãããå¿ããæ¥åã®äžã§ã¯å¿ããŠããŸãå Žé¢ãå€ãã®ã§ã¯ãªãã§ããããã ã¹ã¯ã©ã ã¯ãã®åºæ¬ããã£ããç¶ããã®ã«é©ãããã¬ãŒã ã¯ãŒã¯ã§ãã ãããŠã¹ã¯ã©ã ãç¶ç¶ãããšãã¿ãŒã²ãããç®çãèããããšãç¡æèã«ã§ããããã«ãªããçµæãšããŠãã¶ã€ã³ã¹ãã«ã®åäžã«ãã€ãªãããšæããŠããŸãã ã¹ããªã³ãã¬ããã¹ãã¯ãã£ã ã¹ã¯ã©ã ã§ã¯ã¹ããªã³ãããšã«ãã¬ããã¹ãã¯ãã£ãïŒæ¯ãè¿ãã®ãããªãã®ïŒã宿œããŸãã ã¬ããã¹ãã¯ãã£ãã§ã¯ã人ã»é¢ä¿ã»ããã»ã¹ã»ããŒã«ã®èгç¹ãããŸããã£ãããšã»æ¹åãå¿
èŠãªããšãªã©å¹
åºã芳ç¹ã§æ¯ãè¿ãã宿œããŸãã ç§ãã¹ã¯ã©ã ã§ã¯ãªãçŸå Žã§çµéšããŠããæ¯ãè¿ãã¯ãé »åºŠãå°ãªãïŒååæã« 1 åãããããžã§ã¯ãã®çµäºåŸã ããªã©ïŒã现ããããã»ã¹ã®æ¹åã«ã€ãªããå
容ã¯åºã¥ããã£ãå°è±¡ã§ãã ã¹ã¯ã©ã ã®ã¬ããã¹ãã¯ãã£ãã¯é »åºŠãå€ãããšãããã现ããããã»ã¹ã®æ¹åã«ã€ãªããæèŠãå€ãåºãŸãã ãŸããè·çš®æšªæã§ããŒã ãçµãã§ãããããå¹
åºã芳ç¹ã§æèŠãåºãŸãã æ®éã«ä»äºãããŠãããšããã¶ã€ããŒä»¥å€ã®è·çš®ããããã¶ã€ã³ããŒã¿ã®äœãæ¹ãªã©ã«é¢ãããã£ãŒãããã¯ãããããæ©äŒã¯å€ããããŸããã äžæ¹ãã¹ã¯ã©ã ã§ã¯ãã£ãŒãããã¯ãããããæ©äŒããšãŠãå€ããçç£æ§ã®åäžãèªèº«ã®æé·ã«ç¹ãã£ãŠãããšæããŸãã æåŸã« äžèšã§ç޹ä»ãã以å€ã«ããã¹ã¯ã©ã ã®æ§ã
ãªç¹åŸŽããã©ã¯ãã£ã¹ã¯ãã¶ã€ã³äœæ¥ã®çç£æ§ãé«ããŠãããŸãã ãã®äºå®ã«æ°ãã€ããæã¯äžæè°ã«æããŸããããã¹ã¯ã©ã ã¯ã䟡å€ã®ãããœãããŠã§ã¢ãæ©ãç¶ç¶çã«æäŸãããããšã«äž»çŒã眮ãããã¬ãŒã ã¯ãŒã¯ãªã®ã§ããã®ç®çã®ããã«ãã¶ã€ã³äœæ¥ã®å¹çãåäžããã®ãåœããåãšèšããæ°ãããŸãã ãã®èšäºãèªã¿ãã¹ã¯ã©ã ãªããŒã ã§ãã¶ã€ã³ã«åãçµãã§ã¿ããïŒãšæã£ãŠããããããã¹ã¿ã³ãã€ã§ã®ãã¶ã€ããŒã®åãæ¹ãªã©ã«èå³ãæã£ãŠãããããããŸããã幞ãã§ãã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ããã«ã¡ã¯ãã¹ã¿ã³ãã€ã§ Engineering ManagerïŒä»¥äžEMïŒãæ
åœããŠããé«åã§ãã ä»åã¯ã¹ã¿ã³ãã€ã®ãããã¯ãéçºããšã£ãŠããçµç¹äœå¶ãšãã®ããããã玹ä»ãããŠããã ããŸãã ãããŠãçŸå®ã«çããŠãã課é¡ãè¬ããŠãã察çã«ã€ããŠãè§ŠããããŠããã ãããšã§ããããªã¢ã«ãªéçºçµç¹ã®çŸç¶ãšä»åŸã®å±æãå
±æãããŠããã ãããšæããŸãã ã¹ã¿ã³ãã€ã®ãããã¯ãéçºäœå¶ Product Drivenãå®çŸããããã®çµç¹ããžã§ã³ ã¹ã¿ã³ãã€ã§ã¯äŒç€Ÿå
šäœãšããŠâProduct Drivenâãæ²ããŠãããéçºçµç¹ã¯ãããã¯ãããŒããããã®å®è¡ã«è²¬ä»»ãæã¡æ¥ã
éçºã«åãçµãã§ããŸãã ãããã¯ãããŒãããããéæããããã®åããŒãæ¯ã«ããŒã ãæ§æã圹å²ã»è²¬ä»»ã»æš©éãæç¢ºåããããšã§ãããããã®ããŒã ãèªãããã·ã§ã³ãç®æšãå®çŸ©ããã¡ã³ããŒãäžäžžãšãªã£ãŠç®æšã«åãã£ãŠåãçµãäœå¶ã§éçºãé²ããŠããŸãã ãŸããéçºçµç¹ããžã§ã³ã«æ²ããŠãããèªç«åçµç¹ããšããŠåããŒã ãåãããããéçºããã»ã¹ã«ãããŠããã¯åããŒã ã§æé©ãªææ³ã远æ±ããããšãæšå¥šããŠããŸãã éçºçµç¹ããžã§ã³ãèªç«åçµç¹ã ãªãããèªç«åçµç¹ãã¯ãèªåŸãã®ãã¹ã¿ã€ãã§ã¯ãªãããèªç«ãã§åã£ãŠããŸãïŒ åºèŸèããããããã®æå³ãåŒçšãããŠããã ããšæ¬¡ã®ããã«ãªããŸãã ããã€ãèªåŸã èªåã®è¡çºãäž»äœçã«èŠå¶ããããšãå€éšããã®æ¯é
ãå¶åŸ¡ããè±ããŠã èªèº«ã®ç«ãŠãèŠç¯ã«åŸã£ãŠè¡åããããšã ããã€ãèªç«ã ä»ã®æŽå©ãæ¯é
ãåãããèªåã®åã§å€æããã身ãç«ãŠããããããšãã²ãšãã ã¡ããçµæžçã«âããã CTOæç³ã®èšèãåããã°ããèªåŸãã¯ãæäººã瀟äŒäººãšããŠãããããŸãã®èгç¹ããšããäœçœ®ã¥ãã§ããã®ããæŽã«ãã²ãšãã ã¡ãããŠããç¶æ
ãç®æããšããæå³ã衚ããŠããŸãã ãèªç«åçµç¹ãã«æ·»ããŠãããåã
人ãäºæ¥ãæ·±ãçè§£ããåã
ã®å°éæ§ãçºæ®ããèªãã®è£éãæã£ãŠå®è¡ã§ããŠããçµç¹ãã¯ããã®ãã²ãšãã ã¡ããå®çŸããç¶æ
ãèšãæããæç« ã«ãªã£ãŠããŸãã éçºçµç¹ããžã§ã³ã®å³ã§ç¹ã«è©²åœãããšãããéåã«ãããã® å°å
¥ããŠããçµç¹äœå¶ãšä»çµã¿ ãã¡ã€ã³æ§æã«æ²¿ã£ãããŒã äœå¶ ãšããã§ãçŸåšã®çµç¹äœå¶ã«å€ãã以åã¯ããããã¯ãéçºå
šäœã§LeSSïŒLarge-Scale ScrumïŒå€§èŠæš¡ã¹ã¯ã©ã ïŒãå®è·µããŠããŸããã åœæã¯ã倧åã®éçºã¡ã³ããŒã3ã5ããŒã ã«åãããŠæå±ããå
šããŒã ãã¹ã¿ã³ãã€ã®å
šãŠã®ãµãŒãã¹ã®éçºã»éçšã«æºãããç¶æ
ïŒã¹ã¿ã³ãã€å
šäœã察象ç¯å²ãšãããã£ãŒãã£ãŒããŒã ïŒãç®æãäœå¶ããšã£ãŠããŸããã ããããªãããã¹ã¿ã³ãã€ãæäŸããæ€çŽ¢ãµãŒãã¹ã¯ããžãã¹ãã¡ã€ã³ãæè¡ãã¡ã€ã³ãåºç¯å²ã«è·šãã£ãŠããããïŒäžå³åç
§ïŒãããããå
æ¬çã«éçºã»éçšã§ãããã£ãŒãã£ãŒããŒã ã®å®çŸãšããã®ã¯ãããªãé£æåºŠãé«ãç¶æ
ãç®æããŠãããšèšããŸãã æè¡ãã¡ã€ã³ã®æ§æã€ã¡ãŒãž ãã®ãããå®éã«ã¯ã©ã®ããŒã ã«ãåŸæãªæè¡ãã¡ã€ã³ã»ãµãã·ã¹ãã ããããã£ãœãã§ããã€ãŸã§ãè§Šãããšãã§ããªãæè¡ãã¡ã€ã³ã»ãµãã·ã¹ãã ããããšããç¶æ
ãæãåºããŠããŸããã§ãããããŸæãã°ããããã®æè¡ãã¡ã€ã³å
šäœãã«ããŒãããã£ãŒãã£ãŒããŒã ãç®æãããšã¯ïŒäŸã®âããŒã ããããžãŒâã§ãææãããŠããïŒãèªç¥è² è·ããçžåœé«ãçµç¹äœå¶ãç®æããŠãããšèšãããšãã§ããŸãã 2021幎1æã«çŸCTOã®æç³ã就任åŸããã®åé¡ã«çç®ããŠçµç¹åç·šã«çæããæ°å¹ŽåºŠãè¿ãã2021幎4æããæè¡ãã¡ã€ã³ã«åºã¥ããããŒã äœå¶ãžãšç§»è¡ããŸããã ããŒã 暪æã³ãã¥ãã±ãŒã·ã§ã³æœç åæã«ãããã®ããŒã ãæšªæããã³ãã¥ãã±ãŒã·ã§ã³èšèšãè¡ã£ãŠãããŒã ã®çްååãšè£éã®ä»äžã«ãã£ãŠèµ·ãããã¡ãªãµã€ãåãæå¿æ±ºå®ã®é
å»¶ã鲿¢ããããã«ãçžäºã«ç¶æ³ãææ¡ãããå
±éã®èª²é¡ã«å¯Ÿå¿ãããããããã®åºç€ãšãªãä»çµã¿ãå°å
¥ããŸããã å
·äœçã«ã¯æ¬¡ã®ãããªãã®ã§ãçŸåšãïŒéœåºŠèª¿æŽãå ããªããïŒéçšããŠããŸãã æäœéã®ã«ãŒã«æŽåãšæ
å ±ã®ãã«ãªãŒãã³å ãã»åããŒã ã®Slackãã£ã³ãã«ã¯publicã§äœæãååå
šå¡åå ãã»æšªæäŒè°äœã®ãªãŒãã³åïŒåå èªç±ãè°äºé²éç€ºïŒ ãã»å
šOKRãå¯èŠå ããŒã æšªææ¡ä»¶ã®çžè«å
ãšã¢ãžã§ã³ãã®éæå ãã»Monthlyã§ãããã¯ãéçºå
šäœã«é¢ããæ
å ±å
±æã衚地ãªã©ãè¡ãäŒè°ãéå¬ ãã»Weeklyã§å
šããŒã ã®OKR鲿äŒè°ãéå¬ ãã»Dailyã§ãããã¯ããããŒãžã£ãšCTOãšãã£ãæå¿æ±ºå®è
ãæãïŒè°é¡æã¡èŸŒã¿å¶ã®ïŒçžè«æéãç¢ºä¿ æ ¹å¹¹ãšãªããããã¯ãéçºè¡åæé ãããŠãã³ãã¥ãã±ãŒã·ã§ã³ã®å
±éèšèªãäœãã¹ãããããã¯ãéçºã«ãããè¡åæéãäœæããŸããã ããã¯å人ãšããŒã ã®è¡åãšãã€ã³ãã»ããã«é¢ããæåŸ
ãèšèªåãããã®ã§ããSTARTãã®5ã€ã®é æåã§æ§æããŠããŸãïŒãSã»Tã»Aã»Rã»Tãããããã瀺ãå
容ã«ã€ããŠã¯ã以åã®èšäºã ã¹ã¿ã³ãã€ã®ãããã¯ãæ¬éšã®è¡åæéãSTARTããšãEngineering Beltããšã¯ïŒ ãããèªã¿ããã ãããšå¬ããã§ãïŒã ãã®è¡åæéãSTARTããäŒè©±ã®ç«¯ã
ã«åºãã¬ãã«ã«æµžéãããããææ¬¡ã§è¡ã£ãŠãã衚地ã®éžè芳ç¹ããæ¡çšã»è©äŸ¡ã»è²æã»äººæé
眮ã®èгç¹ã«ããŠããŸãããããŠããã®Tech Blogãªã©ç€Ÿå€ã«æ
å ±ãçºä¿¡ããéã®èŠç¯ãšãããªã©ãåžžã«ãããã¯ãéçºæŽ»åãç
§ããé¡ãšããŠäœ¿ãããã«ããŠããŸãã ãããã¯ãéçºè¡åæéãSTARTã ãªãã§ããæšªæã³ãã¥ãã±ãŒã·ã§ã³ã®åºç€ãšããŠïŒãµã€ãåãæå¿æ±ºå®ã®é
å»¶ãé²ããã®ãšããŠæ¬¡ã®ããã«è¡åæéã察å¿ããŠããŸãã Transactive memoryïŒã©ãã®èª°ãäœã«è©³ãããã®çè§£ïŒã掻çšããŠååãä»°ããªãã ScientificïŒç§åŠçïŒãªæ°åã»ããŒã¿ãå
±éèšèªãšããŠäœ¿ãããšã§ãæ§ã
ãªç«å Žã®ã¡ã³ããŒéã®å€æã®ãã¬ãç¡ãããŠã³ãã¥ãã±ãŒã·ã§ã³ãã¹ãæžããã Relevantã«ïŒèªåããšåããŠïŒæã¿åºããŠè¡åã§ããããã«ãã 以äžã§ã玹ä»ãããŠããã ãããããªä»çµã¿ãåºç€ãšããŠãåããŒã ãæ
åœãã¡ã€ã³ã«ããããããã§ãã·ã§ãã«ãžãšé²åãããããæŽã«åã
人ã®ã¬ãã«ãŸã§èœãšã蟌ãŸããç¶æ
ã®ãèªç«åçµç¹ããç®æããŠã2021幎ã®4æã«çŸäœå¶ã®ã¹ã¿ãŒããåããŸããã 2021幎4æã«æ²ãããç®æãéçºçµç¹ã®å§¿ã çãã課é¡ãè¬ããŠãã察ç ãã®ãããªéçºäœå¶ãšä»çµã¿ãå°å
¥ããŸãããããããã«ãå
šãŠãé 調ã«èªç«åçµç¹ã«åãã£ãŠããŸãïŒããšããããã§ã¯ãããŸããã åœåãç®æãéçºçµç¹ã®å§¿ãã§æ²ããŠããã1幎åŸã®ç¶æ
ãã«å¯ŸããŠãæ¢ã«1幎åãçµéããŠããçŸç¶ã¯ã©ããïŒãšãã芳ç¹ã§æ¯ãè¿ã£ãŠãçããŠãã課é¡ã食ããã«æžãçããŠãããããšæããŸãã æšªææ¡ä»¶ã®é£èª è€æ°ããŒã ãååããŠå®çŸããå¿
èŠãããéçºæ¡ä»¶ã«ãããŠãé¢ä¿ã¡ã³ããŒãçãèªããŒã ã®éçºæ¡ä»¶ãšæãæã¡ããããã¡ã«ãªãããè¹é äžåšãç¶æ
ã«é¥ã£ãã ïŒããã§ãèªåããšåããŠå
é ã«ç«ã£ãŠãããã¡ã³ããŒããããã®ã®ïŒæ
åœå€ãã¡ã€ã³ã®èŠä»¶å®çŸ©ãã¢ãŒããã¯ãã£èšèšãææ¢ãã«ãªã£ãããæå¿æ±ºå®æ©é¢ãäžæçã§ã¹ã¿ãã¯ãããããã ç°ãªãæé軞ã§éçºããããŒã ãéãŸã£ãŠååããéçºããã»ã¹ã®ç¢ºç«ããå
±éçè§£ããšãã³ãã¥ãã±ãŒã·ã§ã³ã«ã¹ããŒãæãåºãªãã£ãã ãããã®èª²é¡ã«å¯ŸããŠãæ¢ã«å¯Ÿçãè¬ããŠãããã®ãããã€ãã玹ä»ããŸãã ãããã¯ããããŒãžã£çŽäžã«ãããã¯ããããžã¡ã³ããªãã£ã¹ïŒPdMOïŒãšããç¬èªçµç¹ãèšçœ®ããŠãããŒã 暪æã®èª²é¡ç®¡çãè¡ãããšã«ãã ããŒã 暪æã€ã·ã¥ãŒãããã¯ãã°åããŠãåããŒã ã®ããã¯ãã°ã®Epicã¬ãã«ãåããŒã ã®OKRãšçŽä»ããããããå¯èŠåããå
šäœæŽåæ§ããšãããã«ãã ããŒã 暪æã€ã·ã¥ãŒã®è²¬ä»»è
ïŒãããããããžã§ã¯ããªãŒããŒïŒãæåããŠãè€æ°ããŒã ã§é£æºããéçºã¹ã±ãžã¥ãŒã«ã®èŠç©ããé²æç¶æ³ã®éçŽãã圹å²ãæç¢ºåãã çãã課é¡ãšæ¢ã«è¬ãã察ç ãã¡ãããããã§ååãšã¯èããŠããŸããããä»è¬ããŠãã察çãå«ããŠæ¯ãè¿ããUPDATEãç¶ããå¿
èŠããããšèããŠããŸãã ä»åŸã«åããŠãŸã ãŸã å
ã«ããç®æãçµç¹ã®å§¿ã«åããŠå éããŠããããã«ãåœé¢ã¯æ¬¡ã®ãããªèª²é¡ã«åãåã£ãŠãããªããã°ãšèããŠããŸãã ããŒã éã§å
±çšã§ãããåãã®å°å
¥ åããŒã ã®å°éæ§ã掻ãããææ¡ãææãçµéããŠèŠä»¶å®çŸ©ãéçºèšç»ãè¡ããéçºããã»ã¹ã®ååãåå®çŸ©ãããšãšãã«ãèŠä»¶ãèæ¯ã®éææ§ãšçžäºç解床ãé«ããå
±éãã©ãŒããããå°å
¥ãã ããããããšã§ãçµæçã«ããŒã éã®ã³ãã¥ãã±ãŒã·ã§ã³ã³ã¹ããäžãããã®ã¶ã仮説æ€èšŒã®ã¹ããŒããé«ããã äºæ¥ãšãããã¯ãã®æªæ¥åã®éæå CxOããããã¯ããããŒãžã£ããæãäºæ¥ããããã¯ãã®æªæ¥åã®éææ§ïŒâã¡ã³ããŒã®ç解床ãšçŽåŸåºŠïŒãé«ããä»çµã¿ãšãããã«ãã£ãŠè³ªãé«ãŸãããšãæåŸ
ãããããã ã¢ããåã®ææ¡ãšè°è«ã®ããŒãã«ãäžããä»çµã¿ãæ§ç¯ãã ããããããšã§ãããŸå¯Ÿçã§å
¥ããŠãããæšªæã€ã·ã¥ãŒã®ããã¯ãã°ãã廿¢ãããïŒããã¯ãã°ããããšãããã«æžããŠããwhatãèŠãã¡ã«ãªããwhyãèŠãŠã®é©æ°çãªææ¡ããã©ã€ã¢ã«ãåºã«ãããªããªã¹ã¯ãæããŠããããïŒ ãããã£ãŠïŒæ¹ããŠã»åã³ïŒãããŒã 暪æã§è¡ããããããŠã³çãªãããžã¡ã³ããæžãããŠãããŒã ã®èªç«åºŠãé«ããŠãããããšæããŸãã ããŸå°ãåŒããŠçºããŠã¿ããšãå
±éã®ãåããæããªããŸãŸç¬ç«æ§ã®é«ãããŒã äœå¶ã§èµ°ãå§ããåŸãããŒã éã§é£æºãå¿
èŠã«ãªã£ãéã«ãã³ãã¥ãã±ãŒã·ã§ã³ã»ã€ã³ã¿ãã§ãŒã¹ããã¡ãã¡æ§ç¯ããå¿
èŠãçºçããŠãããšããã®ãçŸç¶ã®ããã«æãããŸãã ãã®ããã«æå°éã®ãåããå
¥ããããšããŠããŸãããæ±ºããŠãããããŠã³ã§ç©äºã決ãããããã§ã¯ãªãã®ã§ãä»åŸãåãã®æ©èœã¬ãã«ãé«ãŸã£ãŠããã°ãéäžç®¡ççãªä»çµã¿ãã©ãã©ãå€ããŠããã¹ãã ãšèããŠããŸãã ãããŠãæš©éã忣ãããéåç¥ãæå€§éã«æŽ»ãããããªãã¡ãèªç«åçµç¹ãã«ãã©ãã©ãè¿ã¥ããŠãããããšèããŠããŸãã ãã®ããã«ãŸã ãŸã æé·éäžã«ããã¹ã¿ã³ãã€ã®ãããã¯ãéçºçµç¹ã§ãã ãããããããã®ã¥ããã»äºæ¥ã¥ããã®å¹æãé«ããããã®ä»çµã¿ã¥ãããèãç¶ãããã©ã€ã¢ã«ãç¶ããŠãããããšèããŠããŸãã®ã§ ãã°ããèµ°ã£ãŠã»ã»ã»ãŸãçµéå ±åããããŠããã ããã°ãšæããŸãïŒ ä»¥äžããããŸã§ãèªã¿ããã ãããããšãããããŸããã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ãã®èšäºãæžããç®ç åããŸããŠãäžéãšç³ããŸããæ±äººæ€çŽ¢ãšã³ãžã³ãéçºããŠããæ ªåŒäŒç€Ÿã¹ã¿ã³ãã€ã«ãŠãBtoCãããã¯ãã®ã¹ã¯ã©ã éçºããŒã ã§ãããã¯ããªãŒããŒïŒProduct OwnerïŒPOïŒãæ
ã£ãŠããŸãããã£ãªã¢çã«ã¯åºå代çåºãé·ããçŽè¿ãŸã§ã¹ã¿ãŒãã¢ããæ¯æŽãããŠããŠãããäºæ¥äŒç€Ÿã§ã¹ã¯ã©ã ã§ã®ãããã¯ãéçºçµéšã¯åããŠã®çµéšã§ããã ããŸãç¥ãããŠãªãã®ã§ãããå®ã¯ã¹ã¿ã³ãã€ã¯æŽå²çã«ã¹ã¯ã©ã ã«é¢ããæè²ãéçºã®ç°å¢ãéåžžã«æŽã£ãŠããŸããåèªèº«ããããããããšã« Odd-e瀟 æ§ã® èªå®ã¹ã¯ã©ã ãããã¯ããªãŒããŒïŒCSPO®ïžïŒãã¬ãŒãã³ã° ãå瀟CTO è²ç¬æ§ ã®ã³ãŒãã³ã°ãæ°ã¶æã«ããã£ãŠåããããšãã§ããèªåãªãã®ãããã¯ããªãŒããŒåãèŠããŠããé ã§ããããããžã¡ããã©ä»åã®ãããªãã£ã³ã¹ããããæ¬èšäºå·çã«è³ã£ãŠããŸãã ãã®èšäºã§äŒãããããš åºæ¬çã«ã¯ã¹ã¯ã©ã ã«ããããããã¯ããªãŒããŒã§åãåžžæ¥é å¿ãããŠããããšãtipsãçµéšãããäŒãããŸããã©ã¡ãããšãããšãã€ã³ãéšåãå€ãã®ãšããªãã¹ãèªäºåŸã«ããå®è·µã§ããããšãã³ã³ãã¯ãã«æžããŠããã€ããã§ãã æ¬²ãèšãã°ãã¹ã¿ã³ãã€ã«èå³ãæã£ãŠããã人ããããå¬ãããªãšæã£ãŠããŸãã éã«æžããªãããš ã¹ã¯ã©ã ã®æç§æžçãªçšèªè§£èª¬ãå°é£ããããšã¯æžããŸããããã¹ã¯ã©ã ãšã¯ïŒããåå¥ã®ã¹ã¯ã©ã ã€ãã³ããHOWãªã©ã«ã€ããŠã岿ããŸãïŒä»åŸèšäºåããäºå®ã§ãïŒãã»ãã§äœåçã«ãŸãšããããŠããæ¹ããããããããŸãããåèªèº«ããããªã®ã§ãããå°é£ããããšã£ãŠãåŠãã§ãå®ã¯çŸå Žã«æŽ»ãã¥ããã£ããããŸããããçµæ§ãã®èšäºãèªãã§ãããã¯ããªãŒããŒãšããŠææ¥ããã©ãçããããã®æ¹ãã圹ã«ç«ãŠãã®ã§ã¯ãšæãã䜿ããããªããšãäžå¿ã«ãŸãšããŠã¿ãŸããã åã®èããPOïŒãããã¯ããªãŒããŒïŒåå ãããªãã§ãããåã®èãããããã¯ããªãŒããŒãå®ãã¹ããååããã玹ä»ããŸãã POïŒãããã¯ããªãŒããŒïŒåå 1. åå
æäžROIãæèããŠããããš 2. é·æãçæããããã§ROIãæèã§ããŠããããš 3. ROIæå€§åã®ããã®ä»çµã¿äœããã§ããŠããããš 4. æç¢ºãªå€æåºæºãšæ¯
ç¶ãšãããªãŒããŒã·ãããããããš 5. ç®çïŒç®æšãå®çŸããããã«ã¯ææ®µãåããªããªãªãžããªãã£ãšåºŠèžãããããš 6. åççã§åŠå®ãããªãããžãã¯ãæã¡ç¶ããããŠããããš 7. 驿驿ãäžã€æ¥œããæ°æã¡ããåšããåãããããªç°å¢äœããã§ããŠããããš 8. é©åãªãã£ãŒãããã¯ãå®çŸã§ããŠããããš 9. åžžã«èªèº«ãé«ãç¶ããããŠããããš 10. ã©ããªç¶æ³ã§ãïŒæ©ã§ãåã«é²ãããããªèšåãã§ããŠããããš åã1幎è¿ããããã¯ããªãŒããŒããã£ãŠæã£ãçµæãããã§ãã æ£çŽããããã¯ããªãŒããŒã¯èª°ã§ãåä¹ãããšãã§ããŸãããã ã圹å²ãå
šãããã«ã¯åŒãŸã¬åªåãå¿
èŠã ãšèšãããšãçæããŸããã ROIãæå€§åããããã«ã¯ææ®µãéžã°ãªã ãããã¯ããªãŒããŒãšã¯ãã¹ã¯ã©ã ããŒã ããçãŸãããããã¯ãã®äŸ¡å€ãæå€§åããããšã®çµæã«ææãæã€äººãã€ãŸãã¯ã ãããã¯ãã®ROIãæå€§åãã ãããšãããã·ã§ã³ã§ãã人ã®ããšã§ãã ãã¹ã¯ã©ã ãå§ããéã«ã¯ããŸããããã¯ããªãŒããŒãä»»åœããããšããšèšãããŠããã»ã©ã¹ã¯ã©ã ããŒã ã«ã¯éèŠãªååšã§ããããããã¯ãããã¯ãã°ãå·Šå³ããæçµæææ±ºå®è
ã®ãããè€æ°äººããŠã¯ãªãããå¿
ã1ã¹ã¯ã©ã ããŒã ã«å¯ŸããŠ1åã§ããéçºè
ãã¹ã¯ã©ã ãã¹ã¿ãŒãªã©ãšã¯å©å®³é¢ä¿ãç°ãªãã®ã§ãå
Œåãéæšå¥šãšèšãããŠããŸãã ROIãæå€§åããããã®æ±ºãŸã£ãææ®µã¯ãããŸãããã€ãŸããããããææ®µãè¬ããããšãã§ããããã£ãšèšãã°ããã®ããããªãªãžããªãã£ãçºæ®ãã¹ã圹å²ã§ãããšèããŠããŸããä»ç€Ÿãä»ããŒã ã®ããŠããŠãç©æ¥µçã«åèã«ãã¹ãã§ããã人ãè¶³ããªããã°ä»ããŒã ã«äº€æžããããROIçã«ãä»ã¯ããŒã ãäŒãŸããã¹ãïŒãšå€æããã°1ãæäŒãŸããã£ãŠè¯ãã§ãããã ãROIããšäžå£ã«èšã£ãŠããåãæ±ãéã¯æ³šæãå¿
èŠã§ãã -Investmentã¯ãããã¯ããªãŒããŒãçŽæ¥ã³ã³ãããŒã«ã§ããïŒ -äœã«å¯ŸããŠã®ReturnïŒ -ã©ã®æé軞ã§ã®InvestmentãšReturnïŒ äºç®è¿œå ã人å¡å¢ãããŒã«è³Œå
¥ãèšç»ãªã©æéããéãæè³ãã¹ã察象ã¯ããŸããŸã§ãããInvestmentã¯ãããã¯ããªãŒããŒãã³ã³ãããŒã«ã§ãããã®ã§ãªããŠã¯ãªããŸããã çŽæ¥Investããããšã§è¿ã£ãŠããReturnãæå€§åããã®ã§ãããã®Returnã¯å¿
ããã売äžçã®å®éçãªäºæ¥ã€ã³ãã¯ãã«éãããæè²ãæå圢æãªã©ã瀟å
åãã®å®æ§çãªReturnãããããšãå¿ããŠã¯ãããŸããã èŠèœãšããã¡ãªã®ãããã€çºçããReturnãªã®ãïŒã§ããæ¬¡ã®ã¹ããªã³ãã§åæ ããããã ã£ãïŒæ°ã¶æã¯ããŸãæ°å¹ŽåŸã®Returnãªãã ã£ãïŒãšããç¹ã¯ROIæå€§åãèããäžã§éåžžã«éèŠãªãã€ã³ãã§ãã ãŸããROIæå€§åã«åããŠãåèªèº«ãããã¯ããªãŒããŒãšããŠå¿ãããŠããããšã®1ã€ã¯ãå€å°ã®åŒ·åŒãã§ãïŒç¬ïŒãã¹ã¯ã©ã ããŒã ã¡ã³ããŒå
šå¡ã«æèŠãè³åãããªããŠã ãåŠå®ãããªããçšåºŠã®ããžãã¯ãè©°ããŠé²ããŠãã ããããã®å¿æ§ããå¿
èŠã ãªãšæããŠããŸãããšã¯ãããããããããšåãªãããããŸãŸããªã®ã§ãäŒãæ¹ãäžè²«ããæŠç¥ã¯ã»ããã«ã¯ãªããŸããããµãã«ãŒã§ãããšãç¹ããåã£ãŠããã°ãã»ã©æå¥ãèšãããªãããããªäžçã«äœãã§ããã®ããããã¯ããªãŒããŒãªã®ã§ã¯ãªãããªããšèããŠããŸãã ã€ãŸããšããããããã¯ããªãŒããŒã¯ROIæå€§åã«åããŠäžæ©ã§ãäºæ©ã§ãã¹ã¯ã©ã ããŒã ãåã«é²ãç¶ããããšã転ãã§ãã¿ãã§ã¯èµ·ããªãããšãæ¬æ°ã§ROIæå€§åãçªãè©°ããã®ã§ããã°ããããã£ãã¹ã¿ã³ã¹ãå¿
èŠãšãããŠãããšæããŠããŸãã ãããã¯ããªãŒããŒãšããŠãããªãããš éã«ãå¯äžåãã ãããªã ããšå¿ãããŠããã®ã¯ HOWïŒã©ããããïŒïŒãŸã§èžã¿èŸŒãããš ã§ãããããã¯ããªãŒããŒã¯WHATïŒäœããããïŒïŒãšWHYïŒãªããããïŒïŒã®ã»ããã§ã¹ã¯ã©ã ããŒã ãåããæ¹ãäœããšããŸããããšèšãããŠããŸãã ã€ãŸãã¯ãäœãããªãå®çŸããããïŒãšããã¹ããŒãªãŒããããã¯ããªãŒããŒãèããèªããã©ã®ããã«å®çŸããããïŒã¯éçºè
ã«å§ãããšããããšã§ããããŒã ã«ãã£ãŠã¯æè¿ãããããšãããã®ã§ããããããããã¯ããªãŒããŒãéçºã«ãŸã§ä»å
¥ããŠããŸããšãéçºè
ã®å¿æ
çã«ã¯ãèšãããããšã ãããã£ãŠãããæãå¢ãããšãå€ããšèšãããŠããŸããçµéšçã«ãåã¯æ§ããŠããŸããã äžèšã培åºããããã«å®è·µããŠããã®ã¯ä»¥äžã§ãã 1. PBI(Product Backlog Item)ã«ãŠãŒã¶ãŒã¹ããŒãªãŒïŒWHATïŒãèšèŒããããš 2. ç®ã§ãè³ã§ãèæ¯ïŒWHYïŒã培åºçã«å
±æããããš ïŒã€ç®ã¯ãPBIã¯å¿
ããŠãŒã¶ãŒã¹ããŒãªãŒã«ããŠããããšã§ããã¿ã¹ã¯ãæžãããšã¯ãŸãã«HOWãŸã§å
¥ã蟌ãã è¡çºã§ããå®çŸãããããšïŒTobeïŒããã¯ãªã¢ã§ããã°ã¹ããªã³ãå
ã«æéã§å®çŸããæ¹æ³ïŒTo-doïŒã¯éçºè
ãæ€èšããã°è¯ãã®ã§ãã ã¡ãªã¿ã«ãACã§å®çŸãããããšãæžãã ãã§ã¯éçºè
ã倿ããããã±ãŒã¹ãåºãŠããã®ã§ãããããªããŠãè¯ãããšããæ¢ããŠèšèŒããããšããããŸãïŒAC1ã€ã«å¯ŸããŠããããªããŠãè¯ãããšã2ã€ãé»éæ¯ãããã§ãïŒã 2ã€ç®ã¯ãå®çŸããããŠãŒã¶ãŒã¹ããŒãªãŒã®èæ¯ïŒãªããããå®çŸããããïŒïŒãããã£ããPBIã«èšèŒãã€ã€ãçŽåŸãããŸã§èª¬æããããšã§ãããããã¯ããªãŒããŒãPBIãæžãããšãããã®ã§ãPBIã¯èšèŒå
容ãååããã®ãè¯ãã§ãããã ãã ãPBIã®èšèŒãã¹ã¯ã©ã ã€ãã³ãã ãã§ã¯ã©ãããŠãäŒããããªãã¹ããŒãªãŒã®èæ¯ãããã¯ãã§ãããŠãŒã¶ãŒã€ã³ã¿ãã¥ãŒçµæã®ãŸãšãããã°åæçµæãç«¶åæ
å ±ãªã©ãå
±æããããã ãã©ãã©ãã§è©±ãã°ãããããããªãããšãã£ãé¡ã®æ
å ±ãå€ãæ°ãããŠããŸãã ãã®ãããåã®ããŒã ã§ã¯ããªã³ã©ã€ã³ã¯ãŒã¯ã§ããããšãããŸãå©çšããdiscordã§ãPOã©ãžãªããªããã®ãå®è·µããŠããŸããé±ã«30åã»ã©ããããã¯ããªãŒããŒãšãã©ã³ããŒãããŒã±ããããŠãŒã¶ãŒååãäžé·æã§å®çŸãããããšãªã©ã®èªç±ãªéè«ããã åçŽã«èããŠããããšããäŒã§ããä»»æåå ãªã®ã§ãããå°ã
è€éãªåãçµã¿ã«ãããŠãææçéããããããªã£ãŠããŠãã宿ã¯ãããŸããéçºè
ãããç¶ç¶åžæã®å£°ãå€ããæ°ãæç¶ããŠãããŠããŸãã ããã¯ãã°ç®¡çãšãã®å
ã«ãã倧äºãªã³ã ããã§ã¹ã¯ã©ã ã¬ã€ãæžãããŠãããããã¯ããªãŒããŒã®è²¬åã«è§ŠããŠãããŸããããããã¯ãããã¯ãã°ç®¡çãã§ãã âããããã¯ããªãŒããŒã¯ã广çãªãããã¯ãããã¯ãã°ç®¡çã«ã責任ãæã€ãâ PBIèªäœã¯èª°ãäœã£ãŠãäžŠã³æ¿ããŠãåé¡ãããŸããããæçµçã«åªå
é äœã®æææ±ºå®ã¯ãããã¯ããªãŒããŒã«å§ããããŠããŸãããã®åªå
é äœã®åºæºã¯ROIãæå€§åãããããšãäžã€ããã®ããžãã¯ã¯ãã¬ãããšãªããåžžã«äžè²«ãããããšãå¿
èŠã§ãã ãã ãå人çã«ãããã¯ãã°ã®åªå
é äœä»ããããéèŠã ãªãšæããŠããã®ã¯ããã®å
ã«ãã éçºè
ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ ã§ããåªå
é äœãä»ãããããšããŠããéçºè
ãåããªããã°æå³ããããŸããããããã¯ããªãŒããŒã¯äœãçã¿åºããªãã®ã§ãããããã¯ããåã«é²ãããããéçºè
ãæ°æã¡ããåããç°å¢ãäœã£ãŠããããšããããã¯ããªãŒããŒã«ãšã£ãŠéèŠãªåœ¹å²ã§ãããšèããŸãã éçºè
ã®äººæãåãäžã§ã®ãããã¹ããããããªãã¹ããããšããç¥ããé©åãªã³ãã¥ãã±ãŒã·ã§ã³ãåãããå¿ãããŠããŸããä»äºãšã¯èšãã1人ã®äººéã§ãããã©ã€ããŒããªåé¡ã§ã©ãããŠãæ°æã¡ãä¹ããªããšãã ã£ãŠããã§ããããããããå¿ã®å€åã鱿¬¡ãéé±ã§1on1ããªãã©ã€ã³åºç€ŸãèšããŠã³ãã¥ãã±ãŒã·ã§ã³ãåããæ©äŒãäœããéçºã«ãããéå£ã極åç¡ããããã«å¿ãããŠããŸããå°ãæ°æã¡ãä¹ã£ãŠããªãããã ãªãšããããšã§ããã°è² è·ãæžãããããéã«ä¹ã£ãŠããæ¹ã«ã¯å°ã
è² è·ãäžãããããŠããŸãã å
容ã«ãã£ãŠäŒãæ¹ãæ°ãä»ããŠããŸããäŸãã°ãè¯ããã¥ãŒã¹ãããžãã£ããªãã£ãŒãããã¯ã¯å
šäœã®å Žã§ç倧ã«è©±ããŸããããã¬ãã£ããªãã£ãŒãããã¯ãå¿
èŠãªæã¯ãªãã¹ãåå¥ã§å¯Ÿé¢ã§è©±ãããã«ããŠããŸãã DMãéæšå¥šã«ããŠããäŒæ¥ãããããã£ãããããã§ãããå
šã±ãŒã¹ã«åœãŠã¯ããå¿
èŠã¯ãªããšæã£ãŠããŸãã人ã«ãã£ãŠã¯å
šäœã§èªãããããšãå«ãªäººãããã¯ãã§ãç¹æ§ã«åãããŠå¯Ÿå¿ãã¹ãã§ãããã ã¡ãªã¿ã«åã®ããŒã ã§ã¯ååæã®æçµæ¥ã¯å
šå¡ã§äŒæãåãããã«ãããªã©ãããŒã ç¬èªã®ã«ãŒã«ãèšããããããŠããŸãã ãããã¯ããªãŒããŒãšããŠæèããŠããããšãštipsé ä»ã«ãæžãããããšã¯ããããããã®ã§å¥èšäºã«ããã€ããã§ãããä»åãäŒããããã£ãã®ã¯ããããã¯ããªãŒããŒãå
šããç¶ãã倧å€ããšãã®åé¢èªç±åºŠãé«ãããã®ããããããšããç¹ã§ãã ã€ãŸããšããããããã¯ããªãŒããŒã«ã¯ç¹å¥ãªã¹ãã«ãè³æ Œã¯å¿
èŠãªããROIãžã®å·çããããŠããããã¯ãã«å¯Ÿããç±ãæ³ããšããŒã ã¡ã³ããŒãžã®ãªã¹ãã¯ããããã°èª°ã§ããããã¯ããªãŒããŒãåä¹ãããšæã£ãŠããŸãã 誰ã§ãåä¹ãããã¯è£ãè¿ãã°ãèªåã ãã«ããåºããªã䟡å€ãåžžã«åãããŠããããšã«ä»ãªããŸãããã ãããã¯ããªãŒããŒãšããŠã¢ãã¿ã ãã«ããã§ããªãããšã£ãŠãªããªãã§ããïŒ ããšããåªãã®èšèãåžžã«èŠçã®æšªã«ã¡ãã€ãããªããæŽ»åããŠãããªããŠã¯ãªããªãã®ã§ãã ãªãªãžããªãã£ãåºãç¶ããããšã¯è³é£ã®æã ãšããŠããå°ãªããšããããã¯ããªãŒããŒãšããŠã®èªèŠã¯æã¡ç¶ããããšãåããã€ãæãã®ããã«PCã®æšªã«è²Œã£ãŠããããšèããã®ã以äžãããã¯ããªãŒããŒã®ååãšããããã§ããã POïŒãããã¯ããªãŒããŒïŒåå 1. åå
æäžROIãæèããŠããããš 2. é·æãçæããããã§ROIãæèã§ããŠããããš 3. ROIæå€§åã®ããã®ä»çµã¿äœããã§ããŠããããš 4. æç¢ºãªå€æåºæºãšæ¯
ç¶ãšãããªãŒããŒã·ãããããããš 5. ç®çïŒç®æšãå®çŸããããã«ã¯ææ®µãåããªããªãªãžããªãã£ãšåºŠèžãããããš 6. åççã§åŠå®ãããªãããžãã¯ãæã¡ç¶ããããŠããããš 7. 驿驿ãäžã€æ¥œããæ°æã¡ããåšããåãããããªç°å¢äœããã§ããŠããããš 8. é©åãªãã£ãŒãããã¯ãå®çŸã§ããŠããããš 9. åžžã«èªèº«ãé«ãç¶ããããŠããããš 10. ã©ããªç¶æ³ã§ãïŒæ©ã§ãåã«é²ãããããªèšåãã§ããŠããããš äžèšã¯ãããŸã§å人çãªãååãã§ã¯ãããŸãããèªè
ã®POã®çããã«ãšã£ãŠã®ååããŸãšããŠã¿ããšãèªç±åºŠãé«ãè·åã®äžã§ã軞ããã¬ãã«åãçµãããããããŸããïŒ Twitterã§èŠã€ã次第 ã¹ã¿ã³ãã€ã¢ã«ãŠã³ããã³ã¡ã³ããããããããŸããïŒã ã¡ãªã¿ã«ãOdd-e瀟æ§ãã ãããã¯ããªãŒããŒãã§ãã¯ãªã¹ã ããšãããã§ãã¯ãªã¹ããå€éšå
¬éããŠããã®ã§ãèå³ããã°ãã²ã確èªãã ããã æåŸã«ãæ¬æã§ãããããã¯ããªãŒããŒãšããŠãããªãããšãã§è§Šãããåããããã¯ããªãŒããŒãæ
ãäžã§äžæããã£ãtipsãå°ãã ã玹ä»ããŸãã åé¿æ¬¡ç¬¬ã§ã¯é¢é£èšäºãå
¬éããŠããããšæããŸãã®ã§ãææ³çãã²ãåŸ
ã¡ããŠãããŸãã ãŸãšãïŒã¹ã¯ã©ã tips ã ã èª²é¡æã éçºè
ã«ãšã£ãŠãPOããã©ã³ããŒãèããŠããããšãããããªãã®ã§ãéçºã«ã¢ã€ãã¢ã掻ããã¥ããã 1.POã©ãžãª ã ã 解決çã ä»»æã§æ¯é±2å30åãdiscordã§ã©ãžãªçªçµé¢šããŒã¯ãéå¬ã éçºããŒã ã¯è³ã ãåå ã§OKãPOããã©ã³ããŒã¯çŽè¿ã®ãããã¯ã課é¡ãããŒãããããåæçµæãªã©ãæ®æ®µããžãã¹åŽã§äŒè©±ãããããªéè«ãæºåãªãã«å®æœã 以äžãããã¯ããªãŒããŒtimesã§ã€ã¶ãããããšãæŸã£ãŠè©±ããããããŠããã çµæã æ¯èŒç課é¡ã®ç®ç·åããããããããªã£ããšæããã éçºè
ãããè©å€ã¯è¯ããç¶ç¶ãæ±ãã声ãå€ãã ïŒïŒãããã¯ããªãŒããŒtimes ã ã 解決çãã slackã«å
¬éãã£ã³ãã«ãäœãããããã¯ããªãŒããŒãšããŠèããŠããããšãTwitteræèŠã§slackã«ã²ãããåãæŽ»åãåžå Žãæ°ã«ãªããã¥ãŒã¹ãSEOããŠãŒã¶ãŒäœéšããã°åæçµæãã»ãæ¥å以å€ã®éå€ãªãããã¯ãªã©ã1æ¥1æçš¿ä»¥äžã¯å¿ãããŠããã ä»ããŒã ã®POããåç»ã çµæã 衚ã«ããã¥ããèªã°ã«ãŒãã®POã®èããéçºè
ãä»ã¡ã³ããŒã远ãããããªããã³ãã¥ãã±ãŒã·ã§ã³ã«ãããåæèª¬æãæžã£ãïŒã¡ã³ããŒããããã®åtimesã«æããŠãã¢ã¬ã®ããšã§ãããïŒããªã©ã§è©±ãã€ãªãããããªã£ããïŒã éçºè
ãšã®æçãªäŒè©±ã«çºå±ããã±ããåã«ã€ãªããã ãã§ãªããä»ã°ã«ãŒããšé£æºããŠæœçã«ã€ãªãããããªå¯æ¬¡ç广ãã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ããã«ã¡ã¯ãã¹ã¿ã³ãã€ã§ Engineering Manager ãæ
åœããŠããã¹ããã¡ã³ãšé«åã§ãã ä»åã¯ãå
æ¥éå¬ããããã¹ã¯ã©ã ãã§ã¹ä»å°ãã§ç޹ä»ãããŠããã ããç§ãã¡ã®æŽ»åã«ã€ããŠãäŒãããããšæããŸãã ç»å£ã®èæ¯ 2022幎8æ26æ¥ã27æ¥ã«éå¬ãããã¹ã¯ã©ã ãã§ã¹ä»å°ã®ããŒããŒãã¹ããŒãã«Odd-e Japanä»£è¡šã®æ±ç«¯æ§ãç»å£ããã«ããã£ãŠãã¹ã¿ã³ãã€ã®äºäŸã玹ä»ãããããšã®ã声æããããã ããç§ãã¡ãã²ã¹ãç»å£ããŠã話ããããŠããã ããŸããã Odd-e Japan瀟ã«ã¯ã¹ã¿ã³ãã€ã®ã¢ãžã£ã€ã«ã³ãŒãã»ã¢ããã€ã¶ãŒããé¡ãããŠããŸãã ä»£è¡šã®æ±ç«¯æ§ã¯æ¬çš¿å·çæç¹ã§æ¥æ¬ã§ãã 1人ãåœå
ã«éå®ãããªã Certified Scrum Trainer® ãšããŠèªå®ãããŠããã¢ãžã£ã€ã«ã³ãŒãã§ãã¹ã¿ã³ãã€ã®ã¹ã¯ã©ã å°å
¥ã«ãæåããæå°ãããã ããŠãããŸããŠããã®ç±ãã¯åœæãç¥ãã¡ã³ããŒã®èªãèã«ãªã£ãŠããã»ã©ã§ãã ä»åã®æ±ç«¯æ§ã®ããŒããŒãã¹ããŒãã®ã¿ã€ãã«ã¯ãVarious Scrum Teamsãã äž»å¬è
ããããã®ããœãããŠã§ã¢éçºä»¥å€ã§ã®æŽ»çšäºäŸãæŽ»çšæ¹æ³ã話ããŠã»ããããšããèŠæã«å¿ããŠæ°ç€Ÿã®ã¹ã¯ã©ã 掻çšäºäŸã玹ä»ãããã®ã§ããããã®äžç€ŸãšããŠåå ãããŠããã ããããã¡ã§ãã ã¹ã¯ã©ã ãã§ã¹ä»å° www.scrumfestsendai.org ã¹ã¯ã©ã ãã§ã¹ä»å°2022 - æ±ç«¯æ§ããŒããŒãã¹ããŒãæŠèŠ confengine.com äºäŸç޹ä»ã®æŠèŠïŒç§ãã¡CTO宀ãEMå®€ã®æ¥åãã¹ã¯ã©ã ã§é²ããŠããŸã ãã®ãªãã§ç§ãã¡ã玹ä»ããã®ã¯ãæ¥ã
ç§ãã¡ãæå±ããŒã ã§è¡ã£ãŠããæ¥åã®é²ãæ¹ã«é¢ããŠã§ããããããªè©±ã®äœãé¢çœããšãããã®ãïŒãŸãç§ãã¡ã®ããŒã ã®ç«ã¡äœçœ®ãæ¥åã«ã€ããŠã説æããããšæããŸãã ããŒã åç§° CTO宀ïŒ2021幎4æãïŒâçŸåšã¯ EM宀ïŒ2022幎4æãïŒ ããŒã ã®ç«ã¡äœçœ® ç§ãã¡ã®ãããã¯ãéçºçµç¹ã§ã¯ããããã¯ãããŒãããããéæããããã®åããŒãïŒæè¡ãã¡ã€ã³ããšã«éçºããŒã ãæ§æããŠããŸãã å³ïŒãããã¯ãéçºçµç¹ã®æ§æã€ã¡ãŒãž ç§ãã¡ã®EM宀ã¯ãããã®éçºããŒã ãæšªæçã«æ¯æŽããååšã§ãã ããŒã ã®ããã·ã§ã³ ãšã³ãžãã¢ãªã³ã°ããã©ãŒãã³ã¹çºæ®ã®ããã®ç°å¢æŽåã»çµç¹éå¶æœçã»æè¡èª²é¡ã®è§£æ±ºä¿é²ã人ææé·ä¿é²ãªã©ã宿œãã æ¥åå
容ã®äŸ ã»OKRå°å
¥æ¯æŽïŒæ¢ã«æé¢ãããŠããŸãïŒ ã»ãšã³ãžãã¢è¡ååºæºãEngineering Beltãã®å®çŸ©ã»å°å
¥ã»æ¹å®ïŒ é¢é£èšäº ïŒ ã»ãããã¯ãçµç¹ã®ã¢ã»ã¹ã¡ã³ã ã»éçºããŒã ã®ããã»ã¹æ¹åæ¯æŽ ã»ãããã¯ãéçºçµç¹å
±éäŒè°äœã®éå¶ïŒOKR鲿äŒè°ãTechLeadäŒè°ããããŒãžã£äŒè°ã衚地ã€ãã³ã çïŒ ãããªç§ãã¡ã®ããŒã ã¯ãäžè¬çãªã¹ã¯ã©ã ããŒã ãšæ¬¡ã®2ç¹ãç°ãªããšèšãããã§ãã ã»ãããã¯ãéçºã§ã¯ãªããçµç¹éçºãããã·ã§ã³ãšããããŒã ã»ãããã¯ããªãŒããŒïŒProduct OwnerïŒPOïŒå«ãã¡ã³ããŒå
šå¡ã100%å°ä»»ãããªãããŒã è£è¶³ïŒç§ãã¡ã¯EM宀ã®ããã·ã§ã³ãšã¯å¥ã«ãEMãšããŠåŸæåéãæ
åœç¯å²ããšã«éçºããŒã ã®æ¯æŽïŒäŸãã°ã¡ã³ããŒãšã®1on1ãéçºããŒã ã®TechLeadãšã®ååãéçºããŒã ã®POããããŒãžã£ãŒãšã®ååãªã©ïŒãè¡ã£ãŠããŸãã ç§ãã¡ãã¹ã¯ã©ã ãå°å
¥ããèæ¯ çŸåšã®çµç¹äœå¶ã«ãªã以åãã¹ã¿ã³ãã€ã§ã¯å€§èŠæš¡ã¹ã¯ã©ã ïŒLeSSïŒãæ¡çšããŠããŠãé«åãå«ãã¹ã¯ã©ã ãã¹ã¿ãŒ3åäœå¶ã§åãçµãã§ããŸãããããããã«æå±ããŒã ãæã¡ã€ã€ãLeSSå
šäœãã¿ãŠããŠãPOããµããŒããããšããããã¡ã§ããããã®åœæã次ã®ãããªçç±ã§ãã¹ã¯ã©ã ãã¹ã¿ãŒ3åãã¹ã¯ã©ã ããŒã ãšããŠæŽ»åããããšã«ããŸããã ã»ã¹ã¯ã©ã ãã¹ã¿ãŒéã§ååããŠå¯Ÿå¿ããã¹ã課é¡ãçžåœæ°ããã課é¡ç®¡çã»ã¿ã¹ã¯ç®¡çãªã©ããŒã ã¯ãŒã¯ãæ±ãããã ã»èªåãã¡èªèº«ãã¹ã¯ã©ã ãå®è·µããŠã«ã€ãŒã³ãç¹°ãè¿ãããšã§ãéçºããŒã ã®æ¯æŽã«ç¹«ãããããªäºäŸãç¥èŠãèç©ããã ãã®åŸãäžèšã¹ã¯ã©ã ãã¹ã¿ãŒ2åãå ããŠçºè¶³ããCTO宀ïŒçŸEM宀ïŒã§ãããã®æµããæ±²ãã§ã¹ã¯ã©ã ãç¶ç¶ããŸããã ç§ãã¡ã®ã¹ã¯ã©ã ã§è¡ã£ãŠãã工倫 ãã®ãããªæµãã§çŸåšã«è³ããè¶³ãã2幎以äžã¹ã¯ã©ã ãç¶ããŠããŸããããã¯ãåé¡ãçããŠãã«ã€ãŒã³ãå ããŠããŸãããç§ãã¡ãã«ã€ãŒã³ããŠãããã€ã³ããäºã€ã玹ä»ããããšæããŸãã 1.ã¹ããŒã¯ãã«ããŒã®èæ
® 2.Scientificãªãµãããã ãããããç°¡åã«ã玹ä»ããããšæããŸãã 1ïŒã¹ããŒã¯ãã«ããŒã®èæ
® RefinementãšPlanningãäžå¿ã«ãã¹ããŒã¯ãã«ããŒãèæ
®ããŠè¡ã£ãŠããããšãããã€ããããŸãã POã®ã¢ãµã€ã³ã¯ãã¯ãæéèŠã ã£ã CTOãå€å¿ã ã£ããããåœåããã«é
æ
®ããããã¡ã§ãåœåã¯EMã®åè°å¶ã§POã代è¡ãããšããäœå¶ãåããŸããããšãããã課é¡ã®èæ¯ãæãåããŠããªãã£ããããŽãŒã«ã«å¯Ÿããåªå
é äœå€æãäžååã ã£ãããã¬ãã¥ãŒãåããŠãå奿ççã«ãªã£ãããšåé¡ãåŽåºããŸããããã®æç¹ã§ã¯ãç§ãã¡ã®æ¥åã®åžä»€å¡ã§ããCTOããããŒã å€ã®ã¹ããŒã¯ãã«ããŒãšå€ãããªãç¶æ
ã§ããã ãã®åçãããæ¹ããŠã¹ã±ãžã¥ãŒã«èª¿æŽããé¡ããããªã©ããŠãïŒã¡ãããšïŒCTOãPOã«è¿ããŠããŒã ãåå§åããŸããããã®åŸã¯ããã·ãã£ãã«ã€ãŒã³ããŸããã è€çŒã§ã®Planningã»Refinementã®ç¢ºä¿ ããŒã ã®ãµããããã§ãæ¯ã¹ããªã³ãç©ã¿æ®ããç¶ããŠãããåé¡ã«ã€ããŠè©±ãåã£ããšããããæ€èšäžè¶³ãšææãåãããšããã¯å¥ã®EMãèŠããæ°ä»ããŠããã¯ãããšããã¹ããŒã¯ãã«ããŒãšã®äŒè°èšå®ãé
ããŠç¢ºèªãéã«åããªãã£ãããªã©ã®ãããããæ®µåãäžè¶³ãçç±ã§å®äºã§ããªãã£ããšããå
±éèŠå ãæµ®ãã³äžãã£ãŠããŸãããèšãæãããšãã宿ã®å®çŸ©ãæºããããã«å¿
èŠååãªãµãã¿ã¹ã¯ãäœæã§ããŠããªãããšããç¶æ³ãèŠããŠããã®ã§ãã ããã§ãå²ã蟌ã¿å¯Ÿå¿ãå
¥ããã¡ã§æãã«ããã£ãEMéã§ãPlanningãæã£ãŠè¡ããããæéã確ä¿ãããããRefinementã¯é¢ä¿ããEM2人以äžã§æéãåãããŠè¡ãããšããWorking Agreementã远å ããŸããã以éãå®äºçãæ Œæ®µã«ã«ã€ãŒã³ããŠããŸãã çžå¯ŸèŠç©ãã®èгç¹ã®å
±éèªè å
ã«äŒè°èšå®ãé
ããäŸãæžããŸããããç§ãã¡ã䟡å€ãæäŸããã¹ããŒã¯ãã«ããŒã¯ãåéçºããŒã ã®ãããŒãžã£ã»POã»Tech Leadããããã¯ããããŒãžã£ãéšé·é£ãCTOãCOOãããã«äººäºãåºå ±ãªã©ãå ããããšããããããã¯ãã°ã¢ã€ãã ããšã«ã¹ããŒã¯ãã«ããŒã倧ããç°ãªãããŸãããŸãããããã¯ãéçºå
šäœãã¹ã³ãŒãã®èª²é¡ã§ã¯å
šéçºããŒã ã®ãªãŒããŒãšã³ãã¥ãã±ãŒã·ã§ã³ãå¿
èŠã ã£ããããã®ã§ãçžåœãªäººæ°ã«ãªãã±ãŒã¹ãå€ãã§ãã ããã§ãç§ãã¡ã®çžå¯ŸèŠç©ããã§ã¯ãã¹ããŒã¯ãã«ããŒã®æ°ããäžã€ã®è»žãšããŠå®çããŠããŸãããããã¯ãéçºã®çžå¯ŸèŠç©ãã§ã¯ãæè¡ã®äžç¢ºå®æ§ããšãèŠæ±ã®äžç¢ºå®æ§ããšã軞ã«è¡ãªã£ãŠããã®ã§ãããã¹ããŒã¯ãã«ããŒã®æ°ã¯åŸè
ã«è©²åœãããšããæŽçãããŠããŸãã æåŸã®ãã€ã³ãã¯CTO宀ã»EM宀ãšããç§ãã¡ã®ããŒã ãªãã§ã¯ã®ç¹åŸŽçãªãã®ãããããŸããããåãããã«ç€Ÿå
ã«å¯ŸããŠãµãŒãã¹ãæäŸããããŒã ã§ã¹ã¯ã©ã ãå®è·µãããŠãããã䌌ããšããœãŒãããããããããŸããã®ã§ãæ
å ±äº€æããŠã¿ãããšããã§ãã ãã以å€ã®2ã€ã¯ãã©ããªã¹ã¯ã©ã ããŒã ã§ãå
±éããŠåœãŠã¯ãŸã話ã ãããšæããŸãã 2ïŒScientificãªãµãããã ç§ãã¡ã¯ãæäžåã客芳çããŒã¿ã䜿ã£ããµãããããè¡ã£ãŠãããŒã 掻åãã«ã€ãŒã³ããããšããŠããŸãã å³ïŒãµããããã§äœ¿ã£ãŠããããŒã¿ã®ã€ã¡ãŒãž å
ã
ã¯ã1ã§ãæãããå®äºçãäœãããšãã課é¡ã«åãåãããã ã£ãããå
Œåã¡ã³ããŒã°ãããªã®ã§äœæ¥æéã®èªèãã¡ã³ããŒéã§åãããŠããå¿
èŠããã£ããããšãã£ããã£ããã§å§ããåãçµã¿ã§ãã ããŒã¿ã䜿ãããšã§ã次ã®ãããªã¡ãªããããããšèããŠããŸãã ã»å®¢èгçäºå®ãæ¯ãè¿ãããšãã§ãã ããã€ã¢ã¹ãå°ãªãã§ãã ã»å
šå¡ãåã察象ã«å¯ŸããŠæ¯ãè¿ãããšãã§ãã ãåã察象ãã¿ãŠå¥ã®æ°ä»ããåºããšãã¯ãä»äººã®èŠç¹ãç¥ãããšãã§ãã ãããŒã¿ã®è§£éã¯åšç±çµéšããã£ãªã¢ã«äŸåããªãã®ã§ã誰ã§ãæ°ä»ããæãããã ãã®ãScientificãªãµãããããã«ã€ããŠã¯ãç»å£æã«è€æ°ã®æ¹ããã質åãããã ãããããã®åŸã®ãããã¯ãŒãã³ã°ã¿ã€ã ã§ãäœäººãã®æ¹ã話ãã«æ¥ãŠãã ãããªã©ãå€ãã®åé¿ãããã ãããããè£è¶³æ
å ±ãšããŠå
±æãããŠããã ãããšæããŸãã fact ã䜿ã£ããµããããïŒ ç§åŠçãªãµãããããè¯ãé¿ãã ã¹ã¯ã©ã ãã¹ã¿ãŒãèªååããããïŒScientificãªãµãããã QïŒScientificãªãµãããããã©ããªææšãã䜿ãã§ããïŒ AïŒã³ãããããã¹ããŒãªãŒãã€ã³ãïŒå®äºããã¹ããŒãªãŒãã€ã³ãã®å·®åãäŸ¡å€æäŸã§ãããŠãŒã¶ãŒã¹ããŒãªãŒïŒãããããªãã¿ã¹ã¯ãšã®ã¢ã€ãã æ¯çããªã©ãã¿ãŠããŸãã QïŒçãå°ãããŒã¿ãåãããã«ããŠãã工倫ã¯ïŒã©ããã£ãŠææšãéžå®ããïŒ AïŒJiraã®ã¬ããŒãã§èªåçã«åºãŠãããããªãã®ããå§ããŠãèªåéã課é¡ãæãããã®ãã©ã枬ããïŒã§æ¬¡ã®ãµãããããŸã§ã«ææšãäœã£ãããããããµããããã®ãµããããã§ãæ°ä»ããåºãªãããŒã¿ã¯äžæŠãäŒã¿ãããªã©ããŠå
¥ãæ¿ãã詊ã¿ãŠããŸãã QïŒå
šéšãå
šéš fact ããŒã¹ã«ãªããšã¡ãã£ãšçª®å±ã«ãªãã®ã§ã¯ïŒ AïŒãææã®ãšããã ãšæããŸããå
ããå®éã«ã¯ç§ãã¡ããåèªã®ãããããããæžãåºãã¹ããŒã¹ãšããèšããŠããŠãHybridã§äœ¿ã£ãŠããŸãã ãŸããããŒã¿ã䜿ããµããããã¯å®æœééãå°ã空ããŠããã以å€ã®ãµãããããšçµã¿åãããŠè¡ãã®ããããšèããŠããŸãã ã¡ãªã¿ã«ãç§ãã¡ã¯ãæ1åãããŒã¿ã§æ¯ãè¿ã£ãŠããŸãããšããã®ããæ¯ã¹ããªã³ãã®ã¬ããã¹ãã¯ãã£ãã§ããŒã¿ã®æšç§»ãã¿ãŠã倧ããå€åããªãã®ã§ãåŸåãå€ããå¯èœæ§ããã3-4ã¹ããªã³ãããã空ããŠã¿ããããããé©åãªãµã€ã¯ã«ã§ã¯ãšèããŠããŸãã ãŸãããã®ããã«ãå
ã«äºå®ããåé¡èªèãããŠãããã®æã®ææ
ãæãåºãããšããæµãããéã«ãå
ã«ææ
ãèªèããŠããåé¡ãšãªãäºå®ãæãåºãããšããæµãããã©ã¡ãããµãããããšããŠæå¹ã ãšæã£ãŠããŸããã以éã®ãèŠå ãæãäžããŠâ察çãèããŠâTRYããããšããæµãã¯å
±éãããšèããŠããŸãã ä»åŸã«ã€ã㊠ãšããããã§ãä»åãããããæ©äŒãåŸãŠãèªåãã¡ã®æŽ»åã®ãµãããããšæŽçã«ã繫ãããŸãããä»åŸã«åããéå¿ïŒwillïŒãæžããŠç· ãããããããšæããŸãã éçºããŒã ã®Scientificãªãµãããããæ¯æŽããã åããŒã ã®ç¶æ³ãæ±ãããŒãã«ãã£ãŠèŠãã¹ãããŒã¿ãç°ãªããšæãããã®ã§ãããããã®ããŒã ç®æšãéçºã¹ã¿ã€ã«ãªã©ã«å¯ãæ·»ã£ãŠã瀺åãæ°ä»ããåŸãããããªææšãããŒã¿ãæ¢ããšãããã䌎走ããŠãããã°ãšèããŠããŸãã éçºããŒã ã® good practice ã玹ä»ãåããçããåããæ©äŒãæåãäœããã ä»åãç§ãã¡èªèº«ãäºäŸã玹ä»ãããŠããã ããããšã§ã瀟å
ã§ãããŒã 掻åã®å·¥å€«ãå
±æããããå Žãäœã£ãŠãããã°ããšæããŸããã ç§ãã¡ã¯åããŒã ã®ãèªç«åçµç¹ãåãç®æããŠããã®ã§ãç»äžçã§ã¯ãªãæ§ã
ãªåãçµã¿ãTRYãããŠããŸãããããã®ããããªããšããã£ãŠã¿ããããã£ãŠã¿ãŠã©ãã ã£ããããäºãã«å
±æããŠåŠã³åãæçŸ©ãããããã«æããŸãã 宿çã«ã俯ç°çãªçµç¹åæãè¡ããã ç§ãã¡ã¯POçã«èªåãã¡ã§ä»®èª¬ç«ãŠãè¡ãã¹ãç«å Žãªã®ã§ãããã¯ãã°ã«äžŠãã§ããæ¢åã®èª²é¡ã ãã«èŠéãåºå®ãããŠããŸããªããããåæãååæããšã«çµç¹å
šäœããµãããã£ãŠä¿¯ç°çã«åæããæ©äŒãèšããããšèããŠããŸãã ã²ãšãŸãããã®ããšèªäœãããã¯ãã°ã«ç©ãã§ãããŠã宿œããªãã€ã³ããããããã«ããŠããããšæããŸãïŒç¬ïŒã 以äžããèªã¿ããã ãããããšãããããŸããã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ã¯ããã« æ±äººæ€çŽ¢ãšã³ãžã³ã¹ã¿ã³ãã€ã§ã¯ãåºåæ ãååšããŠããŸãã åºåäž»æ§ããåºåæ ã«åºãããæ±äººç¥šã«å¯ŸããŠå
¥æé¡ãæ±äººã«èšå®ããã ããåºåã衚瀺ãããããã«ãªã£ãŠãããŸããã¹ã¿ã³ãã€ã§ã¯ãã®åºåã®ã¯ãªãã¯ã«å¯ŸããŠåçãäžããä»çµã¿ãæ¡çšããŠããŸãã ã¹ã¿ã³ãã€ã®ããã«æ€çŽ¢ã«é£åããŠåºåãåºããã®ãæ€çŽ¢é£ååºåãšåŒã³ãŸãããã®ãããªæ€çŽ¢é£ååºåã«ãããŠã¯ãæ€çŽ¢ã®ç²ŸåºŠãæ
ä¿ããå¿
èŠããããŸãããåæã«åºåãšããŠã®åçã確ä¿ããå¿
èŠããããŸãã ãã®èšäºã§ã¯ã¹ã¿ã³ãã€ã«ãããã©ã³ãã³ã°ãšå
¥æã®ä»çµã¿ã«ã€ããŠç޹ä»ãããŠããã ããŸãã â» å
¥æé¡: åºåäž»æ§ãèšå®ããåºåã«å¯Ÿããæå€§äºç® â» èœæé¡: 1clickã«èª²éãããåºåè²» åºåã©ã³ãã³ã° ã¹ã¿ã³ãã€ã§ã¯èœæé¡ã®æ±ºå®ãšã©ã³ãã³ã°ã«GSPãå©çšããŠããŸãã GSPïŒGeneralized Second Price AuctionïŒã¯ã»ã«ã³ããã©ã€ã¹ãªãŒã¯ã·ã§ã³ã®äžçš®ã§ãããã©ã³ãã³ã°ãšèª²éæ¹åŒã®æ±ºå®ããŸãã ãã£ã«ã¿ãŒ æ€çŽ¢æ¡ä»¶ã«äžèŽããªãåºåã衚瀺ããŠããŠãŒã¶ãŒã«èå³ãæã£ãŠããã ããªããããæ€çŽ¢ã«ãããããæ±äººç¥šã ãããªãŒã¯ã·ã§ã³ã«åå ã§ããããã«çµã蟌ã¿ãè¡ãªã£ãŠããŸãã ã©ã³ãã³ã° ãã£ã«ã¿ãŒã«æ®ã£ãæ±äººç¥šã®äžã§ãããæ±è·è
ã«ãããããæ±äººç¥šãäžäœã«åºãããã¹ã¿ã³ãã€ã§ã¯ãŠãŒã¶ãŒã®ã¯ãªãã¯çãæ©æ¢°åŠç¿ã«ããäºæž¬ããŠããŸãã äºæž¬ããã¯ãªãã¯çãšãå
¥æé¡çãå©çšããŠæåŸ
åçé¡ãèšç®ããŠã©ã³ãã³ã°ã®äžäœã«åºãæ±äººç¥šã決å®ããŠããŸããããã«ãããŠãŒã¶ãŒã®ããŒãºã«ãã£ãæ±äººç¥šãã©ã³ãã³ã°äžäœã«æãã€ã€ãªãŒã¯ã·ã§ã³ãå®çŸããŠããŸãã æåŸ
åçé¡ = å
¥æé¡ Ã äºæž¬CTR èœæé¡ã®æ±ºå® ã¹ã¿ã³ãã€ã§æ¡çšããŠããGSPã¯ãã»ã«ã³ããã©ã€ã¹ãªãŒã¯ã·ã§ã³ã®äžçš®ã§ããããå
¥æé¡ããã®ãŸãŸèœæé¡ã«ãªããŸããã èªåããã©ã³ãã³ã°ã1ã€äžã®æ±äººç¥šã®æåŸ
åçé¡ãšåé¡ãšãªãããã«ãèœæé¡ã決å®ããŸãã èšç®äŸ é äœ å
¥æé¡ äºæž¬CTR æåŸ
åçé¡ èœæé¡ 1 35 0.30 10.50 34 2 25 0.40 10.00 23 3 20 0.45 9.00 20 èœæé¡èšç®ããžãã¯ïŒ é äœ:1ã®èœæé¡èšç®ãããšã10.00 / 0.30 = 33.33 ãšãªãã®ã§ãèœæé¡ã34ãšãã é äœ:2ã®èœæé¡èšç®ãããšã9.00 / 0.40 = 22.5 ãšãªãã®ã§ãèœæé¡ã¯23ãšãã ãŸãšã ãã®èšäºã§ã¯ã¹ã¿ã³ãã€åºåã®æ€çŽ¢ç²ŸåºŠãæ
ä¿ãã€ã€åçæ§ãæ
ä¿ããããã®ä»çµã¿ã«ã€ããŠç޹ä»ãããŠããã ããŸãããä»ã«ãã¹ã¿ã³ãã€ã§è¡ãããŠããæè¡ãªã©ã玹ä»ããŠããŸãã®ã§èå³ãæã£ãŠããã ããã®ã§ããã°ãä»ã®èšäºãã芧ãã ããã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ããã«ã¡ã¯ãStanbyã®DataPlatformã°ã«ãŒãã§ããŒã¿ãšã³ãžãã¢ããã£ãŠããé³ã§ãã ä»åã¯ãã¹ã¿ã³ãã€ç€Ÿãç¬èªã«éçºããŠãããªã¢ã«ã¿ã€ã åæãã©ãããã©ãŒã ã®Stanby Analyticsã玹ä»ããŸãã Stanby Analyticsãšã¯ äœæ
Stanby Analyticsãäœãäºã«ãªã£ãã®ã GAã®å»æ¢ Stanbyã¯ãµãŒãã¹éå§æããGoogle AnalyticsïŒãŠãããŒãµã« ã¢ããªãã£ã¯ã¹ã以äžUAïŒã䜿ã£ãŠãããUAãããŒã¹ãšããåæçµæã§äºæ¥å€æãè¡ãªã£ãŠããŸããã ããããGoogle瀟ãã2023幎ã®UAãµããŒãçµäºãšãGoogle Analytics4 (以äžGA4)ã®ç§»è¡ãæ¡å
ãããããšããã£ããã«ã瀟å
ã§Stanby Analyticsãããžã§ã¯ããéå§ãããŸããã GA4ã®éé¡ãé«ã å
šãŠã®åæèŠä»¶ãGA4ã§æºãããã©ã³ãæ€èšããçµæãã¹ã¿ã³ãã€ã®ãŠãŒã¶ãŒæ°å¢å ã«äŒŽã£ãŠãå
šãŠã®ã€ãã³ããã°ãGA4ã§ååŸããã«ã¯é«é¡ã«ãªãçºãå
補åã§ã³ã¹ãããŠã³ãæåŸ
ã§ããäºãããããŸããã GA4ã®ã«ã¹ã¿ãã€ãºæ§ãäœã Google Analyticsã¯å®æåºŠã®é«ããããã¯ãã§ãããGA4åäœã§ã¯Stanbyã®åæèŠä»¶ãæºãããŸãããäœãç¹æ®ãªåŠçããããæãã«ã¹ã¿ãã€ãºæ§ã®äœããUAæä»£ãã課é¡ã«ãªã£ãŠããŸããã ããŒã¿åºç€ãçµ±äžããã ã¹ã¿ã³ãã€ã§ã¯AWSãããŒã¹ã«éçºãããŠãããData Platformã°ã«ãŒããéçºããŠããåºç€ã¯å
šãŠAWSäžã«ãããŸããGAã¯ããŒã¿ãGCPã®Big Queryã«ä¿åããã®ã§ãããŒã¿åºç€ãåæãããŠããç¶æ
ã§ãããGAã®ããŒã¿ãä»ã®ããŒã¿ãšäžç·ã«åæãããå ŽåãBig QueryããããŒã¿ãæã£ãŠæ¥ãªããã°ãªããªããå·¥æ°ãããã£ãŠããäºãåé¡ãšãªã£ãŠããŸããã Stanby Analyticsã®ã¢ãŒããã¯ãã£ãŒ ã¢ããªã±ãŒã·ã§ã³å±€ ããã³ããšã³ãã«JSãåã蟌ã¿ãããã³ãã§çºç«ããå
šãŠã®ã€ãã³ãããã°ãšããŠãµãŒããŒãµã€ãã«é£ã°ããŠããŸã Data Pipelineå±€ ããã³ããšã³ãããæ¥ãã€ãã³ããã°ã¯ãAPI GatewayãéãKinesis Streamã«éãããŸãã Kinesis Streamã¯ã¡ãã»ãŒãžQueueã®åœ¹å²ãæãããŠããããããããããåŠçãšãªã¢ã«ã¿ã€ã åŠçã®ãã€ãã©ã€ã³ã«åãããŠè¡ããŸãã ãããåŠçã®å Žå çããŒã¿ãç°¡åãªåé¡ãããŠKinesis FirehoseãéãS3ã«æžã蟌ãã§ãããŸãã ãªã¢ã«ã¿ã€ã åŠçã®å Žå Kinesis AnalyticsãéããŠå¿
èŠãªããžãã¹ããžãã¯ãå
šãŠonlineã§åŠçãããŠãããŸããäŸãã°ã»ãã·ã§ã³åšãã®KPIãåŠçããå ŽåãFlinkã®Session Window FunctionãçšããŠåäžSessionã§çºçããå
šãŠã®ã€ãã³ããAggregateãèšç®ããåŸOpensearchã«ããŒã¿ãæžã蟌ã¿ãŸãããªã®ã§ææšã«ãã£ãŠmsã¬ãã«ã®ã©ã°ãšãããžãã¹ããžãã¯ã«å¿ããŠæ°å ~ æ°ååã©ã°ã®ãã€ãã©ã€ã³ãåæã«èµ°ãåŠçãè¡ãªã£ãŠããŸãã äžã®ç»åã¯Flinkã®ãã€ãã©ã€ã³ã®1ã€ã§ãããPipelineäžã§è²ããªåŠçãéèšãè¡ãªã£ãäžã§ããŒã¿ã®æžã蟌ã¿ãè¡ãªã£ãŠããå³ã«ãªããŸãã Data Storage & Computingå±€ ãããåŠçã®å Žå S3ã«æžã蟌ãŸããããŒã¿ã¯AWS Glueã§å®æçã«å å·¥ãããdatalake(S3)ã«ä¿åãããŸããåæè
ã¯åºæ¬çã«Athenaã䜿ãdatalakeäžã®ããŒã¿ãåæããæ§ã«ãªã£ãŠããŸãã ãªã¢ã«ã¿ã€ã åŠçã®å Žå åºæ¬çã«å å·¥ããžãã¯ã¯å
šãŠååŠçã®ãã€ãã©ã€ã³äžã§çµäºããŠããã®ã§ãOpensearchã®åœ¹å²ã¯ç°¡åãªãã£ã«ã¿ãªã³ã°ãšãæžã蟌ãŸããããŒã¿ã®æ€çŽ¢ãšãªã£ãŠããŸããçµæãšããŠè€éãªQueryãå®è¡ãããäºã¯ã»ãŒãªãããã¢ãªã¢ã«ã¿ã€ã ãªåæãå¯èœãšãªã£ãŠããŸãã Visualizationå±€ ãããåŠçã®å Žå RedashãTableauã䜿çšããŠãããããŒã¿ã¢ããªã¹ãã®æ¹ã
ã«äœæããŠé ããããã·ã¥ããŒãã§ã¢ããªã±ãŒã·ã§ã³ã®ç¶æ
ãå¯èŠåãæ¥ã
åæãç¶ããŠããŸãã ãªã¢ã«ã¿ã€ã åŠçã®å Žå OpenSearchã«ä»å±ããKibanaã§å¯èŠåããŠãããä»ã¯äžçªåºæ¬çãªææšã®ã¿ãå¯èŠåããŠããŸãããã¡ãã¯åæçšé以äžã«ãç°åžžæ€ç¥ãç®çãšãªã£ãŠããŸãã ãªã¢ã«ã¿ã€ã åŠçã®ç°åžžæ€ç¥ Stanby Analyticsã«ããããªã¢ã«ã¿ã€ã åŠçã®æå€§ã®å©ç¹ãç°åžžæ€ç¥ã«ãªããŸãã éå»ã¹ã¿ã³ãã€ã§ã¯ããµãŒãã¹ãªãªãŒã¹åŸç°åžžå€ãæ€ç¥ããä»çµã¿ãæŽã£ãŠããªãããŠãŒã¶ãŒæ§ã«å€§ããªãè¿·æããããããŠããŸã£ãçµéšããããŸãããã®ãããªäºæ
ã鲿¢ããçºãStanby AnalyticsãæŽ»çšãããŠããŸãã ã¢ã©ãŒãéŸå€ã®èšçœ®ãé£ãã ã¹ã¿ã³ãã€ã¯æ±äººæ€çŽ¢ãšã³ãžã³ã®ãµãŒãã¹ã§ãããåºæ¬çã«24æé365æ¥ã®çšŒåãããŠããŸããåœç¶ãªããã1æ¥ã®äžã§ã¯ã¢ã¯ã»ã¹ãéäžããæé垯ã鿣ããæé垯ããããŸããããŒã¯æã®ã¢ã¯ã»ã¹æ°ã¯ãªãããŒã¯æã®çŽ10åçšã«ãªããŸããæŽã«æ±äººã掻çºã«ãªãå£ç¯æ§ããCMçã«ããäžæçãªã¢ã¯ã»ã¹ã®æ¥éš° ããããŸããäžã®ç»åã§ã¯äžæ¥å
ã®ææšã®å€åã«ãªããŸãããããŒã¯æãšããã§ãªãæé垯ã§ããªãã®èœå·®ãããäºã瀺ããŠããŸãã ãããªäžãã¢ã¯ã»ã¹æ°ãã¯ãªãã¯æ°ã®æ§ãªåçãªææšã®ç°åžžå€ãåŸæ¥ã®åºå®éŸå€ãèšå®ããæ¹æ³ã§æ€ç¥ããã®ã¯ãšãŠãé£ãããªããŸãããªã¢ã«ã¿ã€ã ã®ç°åžžæ€ç¥ã«ãããŠããã åã«0, 1ã®æ§ãªæ»æŽ»ç£èŠã ãã§ãªããæ¥æ¿ãªKPIã®å€åããã¡æ©ãæ€ç¥ããã¢ã¯ã·ã§ã³ãèµ·ããäºãæ±ããããŠããŸãã Kibanaã®Anomaly Detection äžèšã®èª²é¡ã解決ããçºãä»åStanby Analyticsã§æ¡çšããã®ã¯Kibanaã®Anomaly detectionæ©èœã§ãã https://www.elastic.co/guide/en/kibana/current/xpack-ml-anomalies.html 泚: AWSã®OpenSearchãµãŒãã¹ã§ã¯ã7.10ããŒãžã§ã³ã®KibanaããæäŸããŠããªãçºãStanbyã§ã¯7.10ã®Kibanaã䜿çšããŠããŸãã ã¢ã«ãŽãªãºã ã«é¢ããå
·äœçãªèª¬æã¯å²æãããŠé ããŸãããKibanaã§ã¯Random Cut Forestã䜿çšããŠãããæåž«ãªãåŠç¿ãçšããŠçŽè¿ã®Windowãµã€ãºå
ã®ããŒã¿ãšæ¯èŒããäºã«ããé«éã«ç°åžžå€ã®çºèŠãå¯èœãšããŠããŸãã https://aws.amazon.com/jp/blogs/big-data/using-random-cut-forests-for-real-time-anomaly-detection-in-amazon-opensearch-service/ Anomaly Detectionã®ãã©ã¡ãŒã¿æ°ã¯å€ããªããç°¡åãªéŸå€ã®èšå®ã ãã§å§ãããããæè»œãªæ©æ¢°åŠç¿æ©èœãšãªã£ãŠããŸãã Anomaly Detectionã®éçš çµè«ããç³ãäžããŸããšãçŸç¶ãããã¯ã·ã§ã³ç°å¢ã§ç°åžžæ€ç¥ãåºæ¥ãŠããã¯ããããŸããã çç±ã¯ãŸã ãªãªãŒã¹ããŠæ°ã¶æçšåºŠãªã®ã§ããããã¯ã·ã§ã³ã¬ãã«ã§ã®ç°åžžãçºçããŠããªãããã§ããïŒããããšïŒ ãªã®ã§ä»åã¯ãããã¯ã·ã§ã³ç°å¢ã§æå³çã«ç°åžžå€ãçºçãããæã®çµæãšãªã£ãŠããŸãã 19:00ã«OpenSearchãžæžã蟌ãããŒã¿éãååã«ããæãæ°åã§Anomaly Gradeãäžããã20åçšåºŠã§ ç°åžžã¬ãã«ã70%ãè¶
ããã¢ã©ãŒããçºç«ãããŸããä»åã¯ãªãªãŒã¹äœæ¥çã§äžæçãªç°åžžãç¡èŠããçºãæ¢ããŠ20å以äžç°åžžãç¶ãå Žåã®ã¿çºç«ãããããã«ãã¥ãŒãã³ã°ããŠããŸãã ãã®åŸãããŒã¿éãååã®ãŸãŸæ«ãæµãç¶ãããšãåŸã
ã«æ°ããããŒã¿éã«å¯ŸããŠã®åŠç¿ãé²ãã§è¡ããæ°æéåŸã«ã¯æ£åžžå€ãšã¿ãªããŠã¢ã©ãŒããæ¢ãŸã£ãŠããäºãããããŸãã Stanby Analyticsã®å±æ 以äžãStanby Analyticsã®çŸåšãšãªã£ãŠããŸããããŸã ãŸã éçºéäžã®ãããã¯ãã§ãæ¥ã
ããŒã ã¡ã³ããŒãšè°è«ããªããæ¹åãè¡ãªã£ãŠããŸãã Stanby Analyticsã®å°æ¥åïŒ Flink SQLã®å®è£
çŸåšã®Kinesis Analyticsã¯Scalaã®ã¢ããªã±ãŒã·ã§ã³ã§æžãããŠããŸãããäœã£ãŠã¿ããæå€ãšFlinkSQLã§ä»£æ¿ã§ããããªã³ãŒããå€ãã£ãã§ããFlinkSQLã§äœãäºã«ãããBatchåŠçãšåãã³ãŒãã§ããžãã¯ã®ã¡ã³ããã³ã¹ãå¯èœã§ãã LakeHouseã®å°å
¥ çŸåšã®Batchã·ã¹ãã ã¯Hourlyã®éèšããè¡ãªã£ãŠããŸãããAthenaã§ä»ã®ããŒã¿ãšåæããéã«ã¯1æéã®ã©ã°ãçºçããŸããHudiãIcebergãšãã£ãä»çµã¿ãçšããŠãBatchéèšã®ãã¢ãªã¢ã«ã¿ã€ã åãç®æããŠããŸãã ããŒã¿åæã®æ°äž»å çŸåšãæ°ææšã®è¿œå ãããã·ã¥ããŒãäœæã¯ãšã³ãžãã¢ãäž»äœã§åããŠããŸããããŒã¿ããªãã³ãªæåãç®æãã«ã¯ã誰ã§ãããŒã¿ãæ±ããæ°äž»çãªç°å¢æäŸãå¿
èŠäžå¯æ¬ ã§ããããŒã¿ãã©ãããã©ãŒã ã®ãšã³ãžãã¢ã ãã§ãªãã誰ããç°¡åã«ããŒã¿åæãå§ãããããã©ãããã©ãŒã ãç®æããŠããŸãã æåŸã« Stanby Analyticsã®éçºã«ãã£ãŠãUAã§ã¯è§£æ±ºå°é£ã ã£ãåæãã³ã¹ãé¢ã®èª²é¡ãã¯ãªã¢ããæŽã«ãªã¢ã«ã¿ã€ã ãªã¢ãããªãŒæ€ç¥ã®ä»çµã¿ã«ãããããè¿
éäžã€æè»ãªç°åžžæ€ç¥ãå¯èœãšãªããŸããã Data PlatformããŒã ã§ã¯Stanby Analyticsã®éçºãéçšã ãã§ãªãã瀟å
ã®ããŒã¿åºç€ã®æ¹åãããŒã¿ãã€ãã©ã€ã³ã®æ§ç¯çæ²¢å±±ã®æ¥åã«é¢ãããŸããã¹ã¿ã³ãã€ç€Ÿã®ããŒã¿æŽ»ç𿝿Žãããé¢ä¿ããæè¡é åã«èå³é¢å¿ãããæ¹ã¯ãæ¯éäžåºŠãæ°è»œã«ãçžè«ãã ããã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
1 ã¯ããã« ã¯ãããŸããŠãã¹ã¿ã³ãã€ã®SearchAdvertisingCoreGroup(æ€çŽ¢ã»åºåã³ã¢ã°ã«ãŒãã以éSACG)ã§APIã»ã€ã³ãã©åšãã®éçºãè¡ãªã£ãŠãã鿣ã§ãã ãã®èšäºã§ã¯ãã¹ã¿ã³ãã€ã«ãããæ€çŽ¢ãžã®åãçµã¿ã玹ä»ããŸãã 2 äžè¬çãªæ€çŽ¢ã·ã¹ãã ã«é¢ã㊠ãŸãäžè¬çãªæ€çŽ¢æ¹åã®åãçµã¿ã玹ä»ããŸãã 以äžã®å³ã®ããã«äžè¬çãªæ€çŽ¢ã·ã¹ãã ã¯å€§ããåããŠ2ã€ã®ã³ã³ããŒãã³ãã«åããããŸãã 2.1 ã¯ãšãªããªããã»ã¹ ãŠãŒã¶ãŒãå
¥åããã¯ãšãªãããæ€çŽ¢ãããããããå å·¥ãããã ãŠãŒã¶ãŒã®æ€çŽ¢çè§£ãããããããããã¯ãšãªã¢ã³ããŒã¹ã¿ã³ãã£ã³ã°ããšäžè¬çã«ã¯åŒã°ããŠããã³ã³ããŒãã³ãããã®ã¯ãšãªããªããã»ã¹ã«å«ãŸããŸãã ããããæ€çŽ¢ã·ã¹ãã ã«äœ¿ãæ
£ããŠãããŠãŒã¶ãŒãªããã¯ãšãªã¢ã³ããŒã¹ã¿ã³ãã£ã³ã°ã¯å¿
èŠãããŸããã æ€çŽ¢çªããããã°èªåã§æå³éãã®æ€çŽ¢ã¯ãšãªãå
¥åãæ§ç¯ã§ããããã§ãã ãããå
šãŠã®ãŠãŒã¶ãŒãæ
£ããŠãããšã¯éããŸãããããã§å¿
èŠã«ãªã£ãŠããã®ããŠãŒã¶ãŒã®æ€çŽ¢è¡çºãå©ãã圹å²ã§ããã¯ãšãªã¢ã³ããŒã¹ã¿ã³ãã£ã³ã°ã§ãã query understanding query classificationïŒåé¡ïŒ query correctionïŒèšæ£ïŒ query expansionïŒæ¡åŒµïŒ query relaxationïŒç·©åïŒ query suggestionïŒææ¡ïŒ query segmentationïŒã»ã°ã¡ã³ããŒã·ã§ã³ïŒ query scopingïŒã¹ã³ãŒãã³ã°ïŒ äžãªã¹ãã®ããã«ã¯ãšãªã¢ã³ããŒã¹ã¿ã³ãã£ã³ã°ã¯äž»ã«7ã€ã®ã³ã³ããŒãã³ãããæ§æãããŠããŸãã ããããã®ã³ã³ããŒãã³ãã®åœ¹å²ã玹ä»ããŸãã 2.1.1 classificationïŒã¯ãšãªåé¡ïŒ ãŠãŒã¶ãŒãå
¥åããã¯ãšãªãåé¡ããã³ã³ããŒãã³ãã«ãªããŸãã 2.1.2 correctionïŒã¯ãšãªèšæ£ïŒ ãŠãŒã¶ãŒãå
¥åããã¯ãšãªã®èª€åè±åãªã©ãèšæ£ããã³ã³ããŒãã³ãã«ãªããŸãã äŸãã°ãgoogleã§ããšã³ãžã¢ããšæ€çŽ¢ãããšãããšã³ãžãã¢ããšããŠæ€çŽ¢ãããçµæãè¿ã£ãŠããŸãã ãŒããããçã®åçŸç â»2ã®äœäžã«å¯ŸããŠæå¹ã§ãã 2.1.3 expansionïŒã¯ãšãªæ¡åŒµïŒ ãŠãŒã¶ãŒãå
¥åããã¯ãšãªã«å¯ŸããŠã¿ãŒã ã远å ããã³ã³ããŒãã³ãã«ãªããŸãã æ€çŽ¢å¯Ÿè±¡ã®ããã¥ã¡ã³ããå¢ããããã«ã¯ãšãªãæžãæããŸãã äŸãã°ããã¡ã¬ãããã€ããã«å¯ŸããŠããïŒã¡ã¬ã or ãµã³ã°ã©ã¹ïŒ and ïŒãã€ã or ã¢ã«ãã€ãïŒãã®ããã«ã¯ãšãªãæ¡åŒµããããšã§æ€çŽ¢å¯Ÿè±¡ã®ããã¥ã¡ã³ããå¢ããããšãã§ããŸãã 2.1.4 relaxationïŒã¯ãšãªç·©åïŒ ãŠãŒã¶ãŒãå
¥åããã¯ãšãªã«å¯ŸããŠããæ€çŽ¢ããããããããã«ã¯ãšãªãæžãæããŸãã ç°¡åã«ã§ããããšã¯ã¹ãããã¯ãŒãã®åé€ã§ãã äŸãã°ãããã€ããæ±äº¬éœåšèŸºãã®ãããªã¯ãšãªã«å¯ŸããŠã ãåšèŸºããåé€ããŠãããããšã§ æ€çŽ¢å¯Ÿè±¡ã®ããã¥ã¡ã³ããå¢ããããšãã§ããŸãã 2.1.5 suggestionïŒã¯ãšãªææ¡ïŒ ãŠãŒã¶ãŒãå
¥åããã¯ãšãªã«å¯ŸããŠä»ã®ã¯ãšãªãææ¡ããã³ã³ããŒãã³ãã«ãªããŸãã ããã«ã¯ã¯ãšãªãªãŒãã³ã³ããªãŒããé¢é£ããŒã¯ãŒãã®è¡šç€ºãªã©ãããã ã¯ãšãªãªãŒãã³ã³ããªãŒãã§ã¯ã以äžã®ããã«ãŠãŒã¶ãŒå
¥åã¯ãšãªã«å¯ŸããŠã 以äžã®äŸã§ã¯ãenãšæã€ãšããšã³ãžãã¢ãåèžããªã©ã®ãããªæ€çŽ¢ã¯ãšãªãææ¡ããŠããŸãã ãŸããé¢é£ããŒã¯ãŒãããã®ã³ã³ããŒãã³ãã®äžéšã§ãã ãŠãŒã¶ãŒãå床æ€çŽ¢ã¯ãšãªãå
¥åããå¿
èŠããªããªããéå¶ç®ç·ã§èšããšé¢è±ãé²ããå¯èœæ§ããããŸãã 2.1.6 segmentationïŒã¯ãšãªã»ã°ã¡ã³ããŒã·ã§ã³ïŒ ãŠãŒã¶ãŒãå
¥åããã¯ãšãªã«å¯ŸããŠãæå³çã«ãŸãšãŸãã®ããåèªã«åå²ããŠããæå³éãã®æ€çŽ¢çµæãè¿ãããã«ããŸãã äŸãã°ãNew Yorkãšããåèªã«å¯ŸããŠç©ºçœã§åå²ãããšå
šãæå³ãå€ãã£ãŠããã®ã§ãåå²ã¯ããã«New Yorkãšãã1ã€ã®åèªãšããŠã¿ãªããæ¹ãè¯ãã§ãããã 2.1.7 scopingïŒã¯ãšãªã¹ã³ãŒãã³ã°ïŒ ãŠãŒã¶ãŒå
¥åã®ã¯ãšãªãã»ã°ã¡ã³ããããã¯ãšãªã«å¯ŸããŠããžã£ã³ã«ãå²ãåœãŠãŠããé©åç â»1ãé«ããããšãããŸãã ãŠãŒã¶ãŒãçç£æ¥ã®ãã€ããæ¢ããŠãããè±ã飌è²ããã€ãããšæ€çŽ¢ããäŸã§èããŸãã ãã®ã¯ãšãªã«å¯ŸããŠãè±é£Œè²= çç£æ¥ãã®ãžã£ã³ã«ã ãšèªèããããšã§ãè±ã飌è²ããŠããåç©åã®æ±äººæ
å ±ãåºãå¯èœæ§ããããšãã ãçç£æ¥ããžã£ã³ã«ã®ã©ãã«ãã€ããããã¥ã¡ã³ãã®ã¿æ€çŽ¢çµæãšããŠè¡šç€ºãããããã«ãªããŸãã 以äžãã¯ãšãªããªããã»ã¹ãæ§æããã¯ãšãªã¢ã³ããŒã¹ã¿ã³ãã£ã³ã°ã®åã³ã³ããŒãã³ãã®ç޹ä»ã§ããã 2.2 ã¯ãšãªãã¹ãããã»ã¹ æ€çŽ¢çµæã®å å·¥ã»ã©ã³ãã³ã°çãè¡ãã³ã³ããŒãã³ãã§ãã æ€çŽ¢çµæã®ã©ã³ãã³ã°ã§ã¯ã¯ãšãªã«åèŽããããã¥ã¡ã³ããäœãããã®åºæºã§äžŠã³æ¿ããããšãããŸãã äŸãã°ãããã¥ã¡ã³ãã®ç»é²æ¥é ã«äžŠã¹ãŠããæ°é®®ãªããã¥ã¡ã³ããäžäœã«äžŠã³æ¿ããããæ©æ¢°åŠç¿ã¢ãã«ãçšããŠããè€éãªèŠçŽ ãçµã¿åãããŠããã¥ã¡ã³ããäžŠã³æ¿ããããæ§ã
ãªææ³ããããŸãã ãã以äžã¯ãã®èšäºã®ç¯å²ãè¶
ããã®ã§è§ŠããŸããããæ°ã«ãªãæ¹ã¯ãã²è«æçèªãã§ã¿ãŠãã ããã 以äžã®ããã«ãäžæŠã«æ€çŽ¢ãšãã£ãŠãæ§ã
ãªã³ã³ããŒãã³ãããæ§æãããŠããããšãåãããŸããã ã¹ã¿ã³ãã€ã®æ€çŽ¢ã·ã¹ãã ã«é¢ããŠã¯å¥èšäºã§è©³ãã玹ä»ããŠããŸãã®ã§ããã²ã芧ãã ããã https://techblog.stanby.co.jp/entry/stanby_search â»1ãé©åç æ€çŽ¢çµæã®äžã§ã¯ãšãªã«ãããããããã¥ã¡ã³ãã®å²å â»2ãåçŸç ã¯ãšãªã«å¯ŸããŠè¿ãã¹ãããã¥ã¡ã³ãã®äžã§ãã©ãã ãè¿ããã®ãã®å²å 3 ã¹ã¿ã³ãã€ã«ãããæ€çŽ¢æ¹åãžã®åãçµã¿ ããããã¯ãå®éã«ã¹ã¿ã³ãã€ã§è¡ã£ãŠããæ€çŽ¢æ¹ååãçµã¿ãã玹ä»ããŸãã äž»ã«ãåç« ã®å
容ã«ãã£ãŠå
·äœäŸãèŒããªãã玹ä»ããŸãã ãŸããæ€çŽ¢åšãã®å€§ãŸããªã·ã¹ãã æ§æã¯äžå³ã®ããã«ãªã£ãŠããŸãã 3.1ã¯ãšãªã¢ã³ããŒã¹ã¿ã³ãã£ã³ã°ã®å®æœ 3.1.1 suggest-apiã®èª¬æ suggestionãè¡ãapiã§ãããŠãŒã¶ãŒã®é廿€çŽ¢ãªã¯ãšã¹ãããsuggestã¯ãŒããæœåºããæ€çŽ¢ãšã³ãžã³ã«ã€ã³ããã¯ã¹ããŠããŸãã æ€çŽ¢çªã«ãŠãŒã¶ãŒãæåãå
¥åãããšãã®æåã«ãããããsuggestã¯ãŒãã衚瀺ããŠããŸãã äŸãã°ããšã³ãžãã¢ããšå
¥åããæäžã®ããnããšããæåã«å¯ŸããŠsuggestã¯ãŒããæ€çŽ¢ã§ããªããšãããŸããã ãã®å Žåæ€çŽ¢ãšã³ãžã³ã«suggestã¯ãŒããã€ã³ããã¯ã¹ããéã«ããenjinia, enziniaãã®ãããªããŒãåèªã¿ã远å ããããã¥ã¡ã³ããã€ã³ããã¯ã¹ããŠãããŸãã ããã«ãŠãŒã¶ãŒã¯ãšãªã«å¯ŸããŠããããn => enãã®ããã«ããŒãåèªã¿ã«å€æããŸãã ãã®åŸã倿åŸã®ãŠãŒã¶ãŒã¯ãšãªã§prefix searchãããããšã§ suggestã¯ãŒããçµæãšããŠååŸããŠããŸãã 3.1.2 query-handling-apiã®èª¬æ ãã®apiã§ã¯ãã¯ãšãªã¢ã³ããŒã¹ã¿ã³ãã£ã³ã°ã®ä»¥äžã³ã³ããŒãã³ããå®è£
ããŠããŸãã relaxationãšexpansionãå®çŸããŠããŸããçŸç¶äž»ã«ãã«ãŒã«ããŒã¹ã§ã¯ãšãªã¢ã³ããŒã¹ã¿ã³ãã£ã³ã°ã®åã³ã³ããŒãã³ããå®çŸããŠããŸãã ããããã®å
·äœäŸã玹ä»ããŠãããŸãã å®éã®ã¯ãšãªå€å®æ¹æ³ã¯ä»¥äžã®èšäºãåç
§ããŠãã ããã å
·äœçãªå®è£
æ¹æ³ãªã©ã詳ãã玹ä»ããŠããŸãã https://techblog.stanby.co.jp/entry/label 3.2.1 relaxation äž»ã«ã¹ãããã¯ãŒãã®åé€ãè¡ãªã£ãŠããŸãã äŸãã°ããåéã»ä»äºãã®ãããªæåããŠãŒã¶ãŒå
¥åã¯ãšãªããåé€ããŠããŸãã ã¹ã¿ã³ãã€ã§ã¯æ±äººæ
å ±ãæ±ã£ãŠããã®ã§ããåéã»ä»äºããªã©æç€ºçã«ããã¥ã¡ã³ãã«èšèŒããå¿
èŠããªãããã§ãã ãããã®åèªãåé€ããããšã«ããã åçŸçãé«ããããšãã§ããŠããŸãã expansion ã¹ã¿ã³ãã€ã§ã¯ããšã³ãžãã¢ã»çè·åž«ãªã©ã®ããŒã¯ãŒãã®ä»ã«ãæ±äº¬éœã»ç¥å¥å·ã®ããã«å€åå°æ€çŽ¢ã«ã察å¿ããŠããŸããïŒæ€çŽ¢çªã2ã€çšæãããŠããïŒ ããã§éŠéœåãå
¥åããããšãã«ã¯ããéŠéœå => æ±äº¬éœãç¥å¥å·çãã«å€æããoræ€çŽ¢ã«ããŠããŸãã ã¹ã¿ã³ãã€ã®æ±äººç¥šã§ã¯å
·äœçãªéœéåºçãèšèŒãããŠããããšãå€ãã®ã§ã ãã®ãããªå€æåŠçãå
¥ããããšã§åçŸçãé«ããããšãã§ããŠããŸãã æ©æ¢°åŠç¿ã©ã³ãã³ã°ã¢ãã«ã®èª¬æ ã¹ã¿ã³ãã€ã§ã¯Yahoo! Japanã§ç¬èªéçºããŠããSolrã®ãã©ã°ã€ã³ãå©çšããŠãæ©æ¢°åŠç¿ã¢ãã«ã«ããã©ã³ãã³ã°ãå®çŸããŠããŸãã ã©ã³ãã³ã°ã¢ãã«ã®ç¹åŸŽéãšããŠã¯ãæ±äººç¥šèªäœã®ç¹åŸŽãæ€çŽ¢ãã°ããéèšããæ±äººç¥šããšã®ã¯ãªãã¯æ°ãªã©ã®å®çžŸããŒã¿ã䜿çšããŠããŸãã ABãã¹ããéããŠæ¥ã
ã¢ãã«æ¹åã«åãçµãã§ããŸãã ãŸãšã ãã®èšäºã§ã¯ãã¹ã¿ã³ãã€ã«ãããæ€çŽ¢æ¹åã®äžäŸã玹ä»ããŸããã æ€çŽ¢æ¹åãšèšã£ãŠã課é¡ã«å¯ŸããŠæ§ã
ãªã¢ãããŒããååšããŸãã çŸåšã¹ã¿ã³ãã€ã§ã¯ããã®èšäºã§ç޹ä»ããæ§ã
ãªã¢ãããŒãããšã課é¡è§£æ±ºã«åããŠæ¥ã
åãçµãã§ããŸãã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã åèæç® æ€çŽ¢ã·ã¹ãã å®åè
ã®ããã®éçºæ¹åã¬ã€ãããã¯: https://www.lambdanote.com/products/ir-system-ebook query understanding: https://queryunderstanding.com/ query relaxation: https://queryunderstanding.com/query-relaxation-342bc37ad425 query expansion: https://queryunderstanding.com/query-expansion-2d68d47cf9c8 query segmentation: https://queryunderstanding.com/query-segmentation-2cf860ade503 query correction: https://queryunderstanding.com/spelling-correction-471f71b19880 ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ã¹ã¿ã³ãã€ã§ã¯ãæ§ã
ãªæè¡å匷äŒãã€ãã³ãã«ç»å£ãããŠãããŸãã æ¬èšäºã§ã¯ããããŸã§ç»å£ããå匷äŒãã€ãã³ãã§ã話ããå
容ãè³æããŸãšããããŠããã ããŸããã ã¹ã¿ã³ãã€ã«ãããECS on FargateããEKS on Fargateãžç§»è¡ãã話ïŒCloudNative Days 2021ãbyåç° è³åŒ ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ãªçµç¹ãã·ã¹ãã ã«SLOãå°å
¥ããŠãã話ïŒObservability Conference 2022ãbyå°æè¯å€ªé èªç¶èšèªåŠçã¹ã¿ãŒãã¢ããã«åŠã¶å®è·µäºäŸïŒML Study #4ãby åå· æ·³äžé ã¹ã¿ã³ãã€ã«ãããSLOã®ããããŸã§ãšãããã/ãã¹ã¿ã³ãã€Ã heyãæ¥æé·ã¹ã¿ãŒãã¢ããSREã®ãªã¢ã«ããbyå°æè¯å€ªé ã¹ã¿ã³ãã€ã«ãããECS on FargateããEKS on Fargateãžç§»è¡ãã話ïŒCloudNative Days 2021ãbyåç° è³åŒ ã¹ã¿ã³ãã€ã§ã¯ã2021幎5æããæ±äººæ€çŽ¢ãšã³ãžã³ãã¹ã¿ã³ãã€ãã EKS on Fargateãžç§»è¡ãããããžã§ã¯ã ãé²ããŠããŸããã è¬æŒã§ã¯ãç§»è¡ã®èšç»ãEKS on Fargateãéžãã çç±ãæ¢åã·ã¹ãã ãšã®çµåãåæ¿æ¹æ³ãä»åŸã®å±æãªã©ã«ã€ããŠã話ããŸããã speakerdeck.com ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ãªçµç¹ãã·ã¹ãã ã«SLOãå°å
¥ããŠãã話ïŒObservability Conference 2022ãbyå°æè¯å€ªé æ±äººæ€çŽ¢ãšã³ãžã³ãã¹ã¿ã³ãã€ãã¯ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ãæ¡çšããŠãããçµç¹çã«ãæ©èœæ¯ã«åãããŠéçºã»éçšãããŠãããŸãããããã£ãçµç¹ã«SLOãå°å
¥ãããŠããäžã§ãããã€ãã®èª²é¡ãèŠããŠããŠãããŸããã è¬æŒã§ã¯ã課é¡ã«å¯ŸããŠãSREãéçºãšã³ãžãã¢ãã¡ã¯ã©ã®ããã«ç«ã¡åãã£ãã®ããæšªæçãªSLOã«ãŒã«ã®çå®ãDatadogã䜿ã£ãSLOéçšç°å¢ã®çµ±åãšãã£ãåãçµã¿ããçµç¹ã»æè¡é¢åãããŠç޹ä»ããŸããã SLOã®ãªãŒããŒã·ãããSLOéåæã®å¯Ÿå¿ãããŒããŠãŒã¶ãŒã®è¡åã«å¯ãæ·»ã£ãSLOãªã©ããã©ã®ããã«èšèšã»å°å
¥ã»æ¹åããŠããã®ãã ã100幎ç¶ãäŒç€Ÿã§ã¯ãªãã100åå€ããäŒç€Ÿããç®æãã¹ã¿ã³ãã€ã®è»è·¡ããçæ§ã®SLOå°å
¥ã«é¢ãããã³ããšããŠã䜿ãããã ããŸããšå¹žãã§ãã speakerdeck.com è¬æŒå
容ã¯äžèšã§èŠèŽå¯èœã§ãã event.cloudnativedays.jp â»æ¬è¬æŒã¯thinkitãžãåãäžããŠããã ããŸããã thinkit.co.jp èªç¶èšèªåŠçã¹ã¿ãŒãã¢ããã«åŠã¶å®è·µäºäŸïŒML Study #4ãby åå· æ·³äžé ã¹ã¿ã³ãã€ã¯å
šåœã®ä»äºæ
å ±ããããŒãºã«ãã£ãæé©ãªæ±äººãæ¢ãããšãã§ããæ±äººæ€çŽ¢ãšã³ãžã³ã§ããã æ¥ã
ãæ€çŽ¢ç²ŸåºŠãåäžãããããã«æ§ã
ãªæœçããããªã£ãŠããŸãã è¬æŒã§ã¯ããããã®æœçã®ãã¡ãèªç¶èšèªåŠçãå©çšãããã®åã³ããããå©çšããããšããŠãããã®ã®ç޹ä»ããããŠããã ããŸããã æåŸã®è³ªåäŒã§ã¯ããšãŠãå€ãã®è³ªåãããã ãããåå ããã ããçããã®èªç¶èšèªåŠçãžã®é¢å¿ãé«ã窺ããŸããã speakerdeck.com è¬æŒå
容ã¯äžèšã§èŠèŽå¯èœã§ãã www.youtube.com æ€çŽ¢ç²ŸåºŠã«é¢ãã仿œçãšããŠãã©ãã«æ
å ±ã§ã®æ€çŽ¢ã«ã€ããŠã¯ãäžèšããã°ã§ã玹ä»ããŠããŸãã techblog.stanby.co.jp ã¹ã¿ã³ãã€ã«ãããSLOã®ããããŸã§ãšãããã/ãã¹ã¿ã³ãã€Ã heyãæ¥æé·ã¹ã¿ãŒãã¢ããSREã®ãªã¢ã«ããbyå°æè¯å€ªé SREããããã«å¯ŸããŠãã¹ã¿ã³ãã€ç€Ÿã§ã©ã®ããã«åãçµãã§ããã®ããçºè¡šããŸãããSLOïŒService Level ObjectiveïŒãã©ã®ããã«èããåãçµãã§ããã®ãããããã€ã«é¢ããããŒã«ã課é¡ãªã©ãæ¥ã
ã®éçºã«ãããã芳ç¹ã§ã話ããããŠããã ããŸããã speakerdeck.com ã¹ã¿ã³ãã€ã§ã¯ãæ±äººæ€çŽ¢ãšã³ãžã³ãéçºéçšããŠããããããããŸãã¹ã¿ã³ãã€ã ããããçºä¿¡ã§ããå
容ããç©æ¥µçã«å匷äŒãã»ãããŒãéããŠãçºä¿¡ããŠãŸãããŸãã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ïŒæ¬èšäºã¯ãå·çæ2022幎7ææç¹ã®æ
å ±ã§ãïŒ æ ªåŒäŒç€Ÿã¹ã¿ã³ãã€ã¯ãæ¥æ¬æå€§çŽã®æ±äººæ€çŽ¢ãšã³ãžã³ãã¹ã¿ã³ãã€ãã®éçºã»éå¶ãææããŠããŸãã âUPDATE WORKSTYLES ãã¯ããããã«ãã£ãšåœ©ãâãããã·ã§ã³ã«æ²ãããã¯ãããžãŒã®åã§äžã®äžã®ãã¯ãããããã¢ããããŒãããŠããããšãç®æãåŒç€Ÿã§ãããã©ããªæè¡ãçšããŠã©ããç®æããŠããã®ãã æ¬èšäºã§ã¯ãå
ã€ããŒCTOãšããŠæ¥æ¬ã®æ€çŽ¢/åºåæè¡ãçœåŒã2021幎1æããåŒç€ŸCTOãåããæç³ä¿¡ä¹ããããã®å
šå®¹ã«ã€ããŠèªã£ãŠããã ããŸããã ãprofileã æ ªåŒäŒç€Ÿã¹ã¿ã³ãã€ãCTOãæç³ ä¿¡ä¹ ã·ã¹ãã éçºäŒç€ŸãçµãŠã2000幎ã«ã€ããŒæ ªåŒäŒç€Ÿå
¥ç€ŸãYahoo! JAPANã®åºåé
ä¿¡ã·ã¹ãã ãªã©ã®éçºã«åŸäºã2009幎ã«å瀟CTOã«ã2013幎ã«ã·ãã¢ãã§ããŒã«å°±ä»»ã2014å¹Žã«æ ªåŒäŒç€ŸããªãŒã¯ã¢ãŠãå·è¡åœ¹å¡CTO就任ãIPOåŸãèŠæ®ãããšã³ãžãã¢ãªã³ã°çµç¹äœãã«æºããã2017幎1æãããªãŒã¯ã¢ãŠãã»ããŒã«ãã£ã³ã°ã¹å·è¡åœ¹å¡å°±ä»»ããã®åŸããŠã¢ãã€ã¹ã¿ãŒãã€ã³ãã©ã¹ãã©ãããªãŒã¯ã«ãªã©ãã³ãã£ãŒäŒæ¥ã®æè¡é¡§å就任ã2019幎10æãæ±äº¬éœããŒãããžã¿ã«ãµãŒãã¹ãã§ããŒå§å±ããæ±äº¬éœã®DXæšé²ããã³æ§é æ¹é©ã®ããã®ã¢ããã€ã¶ãŒãåããŠããã2021幎1æã¹ã¿ã³ãã€CTO就任ã ã€ããŒå
CTOãæãæ°ããªæ€çŽ¢ãšã³ãžã³ã¥ãã ãŒãŸãã¯ããã«ãã¹ã¿ã³ãã€ãã«ã€ããŠæããŠãã ããã ã¹ã¿ã³ãã€ã¯ãæ±äºº(ä»äºæ¢ã)ã«ç¹åããæ€çŽ¢ãšã³ãžã³ã§ãã æ±äººäŒæ¥ãè¯ã人æã®æ¡çšãåºæ¥ãããšãæ±è·è
ãããè¯ãäŒæ¥ã«å°±è·åºæ¥ãããšãæçµç®çãšããŠããããã®èª²é¡ãæè¡ãçšããŠè§£æ±ºããããšããŠããŸãã äž»ãªæè¡ãšããŠã¯ãæ€çŽ¢æè¡/åºåæè¡ã掻çšããŠããŸãã åºåã¯2000å¹Žãæ€çŽ¢ã¯2008幎ãããšç§èªèº«ãã20幎è¿ãæºãã£ãŠããé åã§ããããã®éã®é²åãç®èŠãŸãããããŸã ã«æ°ããçºèŠããããªã©ãéåžžã«å¥¥ãæ·±ãäžççžã§ãããªãé¢çœãé åã§ããã ãŒãããŸã§æç³ãããé¢ããããŠããæ€çŽ¢ãšã³ãžã³ãšãã¹ã¿ã³ãã€ã¯ã©ããªéããããã®ã§ããïŒ æ€çŽ¢ãšã³ãžã³ãšã¯ããŠãŒã¶ãŒã®æå³ãæ±²ã¿åããè€æ°ã®ããã¥ã¡ã³ããã©ã³ãã³ã°åãããã®ãæäŸãããµãŒãã¹ã§ããèšèã«ãããšç°¡åã§ãããããå®çŸããããšããé£ãããããæ¥œããäžçã§ãã ãŠãŒã¶ãŒæå³ãæ±²ã¿åãã«ããŠãããŠãŒã¶ãŒèªèº«ãæç¢ºãªæå³ãæãããŠããªãã±ãŒã¹ãããã®ã§ããµãŒãã¹ã«èç©ããããã°ã«ããçµ±èšãã¯ã©ã¹ã¿ãªã³ã°ããŠãŒã¶ã®å±æ§ãªã©ãå©çšããŠãæ€çŽ¢æåäºæž¬(ã€ã³ãã³ã)ãªã©åšèŸºæè¡ã掻çšããªãããŠãŒã¶ãŒæå³ãããæ£ç¢ºã«å°ãã ãå¿
èŠããããŸãã ã©ã³ãã³ã°ã«ãããŠããã©ããªé äœã§ã©ã³ãã³ã°ããã®ãæé©ãªã®ããšããåãã«çãã¯ãããŸãããäžçªãªãŒãœããã¯ã¹ãªæ¹æ³ãšããŠã¯å¯Ÿè±¡ããã¥ã¡ã³ãã«å«ãŸããã¿ãŒã æ°ã§ã©ã³ãã³ã°ãåºããã®ã§ãããããã ãã§ã¯äžååãªããšãå€ããæ©æ¢°åŠç¿ãå§ããšããæ§ã
ãªæè¡ãçµã¿åãããŠKPI沿ã£ãäºæž¬ç²ŸåºŠã®æ¹åãè¡ã£ãŠããããšãå€ãã§ããã ãããªäžã§ããã¹ã¿ã³ãã€ãåãçµãã§ããæ±äººæ€çŽ¢ã¯ãç¹æã®é£ããããããšèããŠããŸãã äŸãã°ãéåžžã®WEBæ€çŽ¢ãªã©ã§ã¯ãŠãŒã¶ãŒã®ã»ãšãã©ã®æ€çŽ¢ã¯æ¢ããããã®ãæç¢ºã§ãç確ãªããŒã¯ãŒããå
¥ããŠæ€çŽ¢ããã ããããšãå€ãã§ãããããæ±äººæ€çŽ¢ã§ã¯ããŠãŒã¶ãŒèªèº«ããåãããããšããããŒãºã¯ãããã®ã®ãã©ããªä»äºãæ¢ããŠãããäžé®®æãªããšãå€ããæ€çŽ¢ãããªããããå€ãã®æ€çŽ¢çµæãã¿ãŠæ¢ãåŸåããããŸããäŸãšããŠãæ£ç€Ÿå¡ãããéœéåºçåãã®ã¿ãšãã£ãããã¯ã¯ãŒãã§ã®æ€çŽ¢ã§ã¯ãäœãåªå
ããŠã©ã³ãã³ã°ããããæ€çŽ¢çµæã ãã§ã¯è£ããªããŠãŒã¶ãŒã®æå³ãã©ã®ãããªæè¡ã§å°ããéåžžã«é£ããåé¡ã ãšèããŠããŸãã ãŸããæ°åãèšå·ãªã©æ€çŽ¢ãšã³ãžã³ã§åœãŠã¥ãã䞻芳çãªããŒã¯ãŒããã¹ãããã¯ãŒãã®æ€çŽ¢ãéåžžã«å€ãã®ããæ±äººæ€çŽ¢ã®ç¹åŸŽã§ããECæ€çŽ¢ã§ãâããããâ âããããâãªã©ã®äž»èгçãªããŒã¯ãŒããååçªå·ãåçªãªã©ã®ã¹ãããã¯ãŒãã¯å€ãã®ã§ãããäœãè²·ããããã®ããŒãºãçµããããã®ã§äºæž¬ãããã粟床ãé«ããããã§ãããæ±äººæ€çŽ¢ã¯ããã«å ããŠå°±æ¥å
ãªã©äœçœ®æ
å ±ãªã©ããŸããŸãªæ¡ä»¶ãè€åçã«å å³ããŠè§£æ±ºããªããã®ãå€ããããŸãã ãã®ãããéåžžã®å
šææè¡ã ãã§ã¯è§£æ±ºããªãããšãå€ããåŸã§ãã話ããŸãããæ§ã
ãªæè¡ãå©çšããŠãããæ±äººãçè§£ãããããŠãŒã¶ã®ããŒãºã«å¿ãããããããæé©ãªæ¹æ³ãæ¥ã
èããªããæ¹åã«åãçµãå¿
èŠãããã®ãç¹åŸŽã§ããã ãŒéåžžã«å¥¥ãæ·±ãæ€çŽ¢ãšã³ãžã³ã¥ããã§ãããã¹ã¿ã³ãã€ã§åãçµãã§ããããšã«ã€ããŠç°¡åã«æããŠãã ããã ä»ãŸã§ãã£ãŠããããšãé ã«ã話ããããšããªãŒãœããã¯ã¹ã«æ€çŽ¢ããŒã¯ãŒãã«å¯ŸããŠå
šææ€çŽ¢ãšã³ãžã³ãçšããããã«CTRæé©åãè¡ãã©ã³ãã³ã°ãããããç¶ç¶çã«åäžãããæäŸãã€ã¥ããããããšã«æ³šåããŸãããããã¯é²èЧ(ã¯ãªãã¯)ãããããæ±äººã¯ãŠãŒã¶ããŒãºã«åèŽããŠããã§ããããšãã仮説ãåæã«ããåãçµã¿ã§ããã瀟å
ã§ã®æ¹åãµã€ã¯ã«ã®ç¢ºç«ãšå
šææ€çŽ¢ãšã³ãžã³ã®knowledgeã®èç©ãKPIã§ããCTRæ¹åã«ãããŠãäžå®ã®ææããããããšãã§ããŸããã ããããå
šææ€çŽ¢ãšã³ãžã³ã ãã®on the flyã§é©åãªæ€çŽ¢çµæãè¿ãããšã®æ¹åã«éçãèŠããŠãããããæ¬¡ã®åãçµã¿ãšããŠæ±äººç¥šå€å®æ©ã®éçºãéå§ããŸãããããã¯ãæ€çŽ¢ãšã³ãžã³ã«ã€ã³ããã¯ã¹ããåã«ãæ±äººç¥šãå€å®æ©ã«ãããŠããã®æ±äººãã©ã®ãããªæ±äººãªã®ããäºåã«ã©ãã«ä»ããããã®ã§ãã äŸãã°ã³ã³ããåºå¡ã®ä»äºãæ¢ãããã«ãã³ã³ãããã§æ€çŽ¢ããããšãéåžžã®å
šææ€çŽ¢ã ãã§ã¯ã³ã³ããåºå¡ã®æ±äººããã³ã³ãããè¿ãã«ããæœèšã§ã¯ãããæ±äººãäžç·ã«åºãŠããŠããŸããŸããããããäºåã«æ±äººç¥šå€å®åšãéãããšã«ãããã³ã³ããåºå¡ã®æ±äººãªã®ããã³ã³ãããè¿ãã®ç°ãªãæ±äººãªã®ããå€å®åšãéããŠã©ãã«ä»ãããããšã§ããããŠãŒã¶ãŒãæ±ããŠããçµæã衚瀺ããããšãã§ããŸãã å®ã¯ãæ€çŽ¢çµæã®CTRã®ã¿ãKPIãšããŠè¿œæ±ãããšãæ€çŽ¢çµæã«å¿
èŠæäœéã®æ
å ±ã®ã¿ã衚瀺ããŠè©³çްãèŠãªããšããããªãããã«ããããšã§æ¹åããããšã¯ããããã®ã§ãããç§ãã¡ã®ç®çã¯æåã«èª¬æãããšãããæ±äººäŒæ¥ãè¯ã人æã®æ¡çšãåºæ¥ãããšãæ±è·è
ãããè¯ãäŒæ¥ã«å°±è·åºæ¥ãããšã§ããã§ãã®ã§ããŠãŒã¶ã®ããŒãºã«ãã£ãæ±äººç¥šã§äžã€ãã質ã®è¯ãæ±äººç¥šãšãããã®ã远æ±ããªããã©ã³ãã³ã°ã§ããããã«æ¥ã
æ¹åãç¶ããŠããŸãã æ€çŽ¢ãšã³ãžã³ã¥ããã®å
ã«ãèŠæ®ããäžçãšã¯ïŒãæ€çŽ¢ãããªãæ€çŽ¢ãšã³ãžã³ã ãŒå¥¥æ·±ãæ€çŽ¢ãšã³ãžã³ã¥ããã§ãããæ€çŽ¢æè¡ã®çŸç¶ã«ã€ããŠãæããŠãã ãã ã²ãšæåã«æ¯ã¹ãŠäŸ¿å©ãªãœãããŠã§ã¢ãæ°å€ãçãŸããæ€çŽ¢ãšã³ãžã³ã¯å€ãã®æ¹ãè§Šãã身è¿ãªæè¡ãšãªããŸãããåºåæè¡ãæšèŠæè¡ãªã©çŸåšã§ã掻çšãããæè¡ãæ€çŽ¢ã§å¹ã£ãknowledgeããšã³ãžã³ãªã©ã®æè¡ããæŽŸçããŠãããWEBæ¥çã«å€§ããå¯äžããŠããæè¡é åãšãããã§ãããã ç°¡åã«æ€çŽ¢æ©èœããµãŒãã¹ã«æå
¥ãããµãŒãã¹ãå¢ããäžæ¹ã§ãæ€çŽ¢ãäž»èŠæè¡ãšããŠçé¢ç®ã«éçºã«åãçµãã§ããäŒæ¥ã¯å°ãªããšæããŠããŸããå®éã«ããã¯ããã¯ä»¥å€ã§æ€çŽ¢æè¡ã®éçºã«åãçµãã§ããäŒæ¥ã¯çšå°ãªååšã§ãããæ€çŽ¢æè¡ã®çºå±ãäžéšäŒç€Ÿãšã¢ã«ãããã¯ã«éããããŠããŸã£ãŠããŸãããæã
ã¯ããŸãã«ããã«å¯ŸããŠäºæ¥ã®æé·ãšããææãšãšãã«ææŠããŠãããããšèããŠããŸãã ç§ãã¡ã®æè¡ã¯ããããããã¯ããã¯ãšèšãããäŒæ¥ããæ¯ã¹ããšå€§ããããã€ã³ãããŠããŸãããã¹ã¿ã³ãã€ãåãçµãæ±äººæ€çŽ¢ã¯ãçŸæç¹ã§ã¯éåžžã«ããŒã«ã«ã«æ ¹ä»ããçºå±éäžãªé åã§ããç«¶åå«ãæ±äººæ€çŽ¢ãšã³ãžã³ã§ã®æç¢ºãªæ£è§£ã«èŸ¿ãçããŠãããã¬ã€ã€ãŒã¯ããªããšèããŠããã®ã§ãããææŠãããããããŸããã ãŒä»åŸã®ã¹ã¿ã³ãã€ã®å±æã¯ã©ãèããŠããã®ã§ããããïŒ çŸåšã¯ãæ±äººã®é²èЧã«å¯ŸããŠæé©åãè¡ã£ãŠããŸãããä»åŸãæ±äººãžã®å¿åããæãŠã¯å°±è·ãæ¡çšãšãããšãããŸã§ãã®æè¡ãæè¯ãããŠãããããšèããŠããŸãã ãã®ããã«ãçŸåšã¯ãŠãŒã¶ãŒããŒãºãããæ·±ããããã®æ€çŽ¢æ©èœãå€è§çã«éçºããŠããŸãã ä»åŸæ€çŽ¢ãšã³ãžã³ã®ããŒã¿ãæºãŸã£ãŠããã°ããŠãŒã¶ãŒã®ãã¢ã°ã©ãã£ãã¯ã®æ
å ±ãå
ã«ããããŠãŒã¶ãŒã«é©ããæ±äººã衚瀺ããããšãå¯èœãšãªããŸããæ€çŽ¢ããŠãããŠãŒã¶ãŒã®ç°å¢ãææ¡ããããåèŽããŠããæ±äººãææ¡ããåãçµã¿ãªã©å®æœããŠããããã§ããããããã®ç²ŸåºŠãäžããã°ãã¢ããªã®ããã·ã¥éç¥ãªã©ã«ã䜿ããããã«ãªããŸãããããã¯IRïŒInfomation RetrievalïŒã®äžã§ãæšèŠæè¡ã®é åãšãªããŸãããããããæŽ»çšããªããããããŠãŒã¶ãŒã®ããŒãºã«ããåèŽããæ€çŽ¢ãšã³ãžã³ã«ä»ç«ãŠäžããŠããããã§ãã ãã ãåè¿°ã®éããæ±äººæ€çŽ¢ã«ãããŠã¯ãŠãŒã¶ãŒèªèº«ãããŒãºãææ§ãªã±ãŒã¹ãå€ããããä»ã®ãããªæ€çŽ¢çªã眮ããŠãŒã¶ãŒã«æ€çŽ¢ããã ãã¢ãã«ã§ã¯ãæ¬è³ªçãªèª²é¡è§£æ±ºã«ã¯ãªããªããšèããŠããŸãã å°æ¥çã«ã¯ããŠãŒã¶ãŒã«ããæ€çŽ¢ã§ã¯ãªãããã¡ããããŠãŒã¶ãŒã®æå³ãæ±²ã¿åããæ±äººãææ¡ã§ãããµãŒãã¹ã«ãªãããšãå¿
èŠã§ãããããŸã§ãŠãŒã¶ãŒã®æ€çŽ¢ã«å¯ŸããŠããé©ããçµæãåºãããšããåãçµã¿ã«ã€ããŠè©±ããŠããŸãããããŸãã«ç®æããŽãŒã«ã¯ãæ€çŽ¢ãããªãæ€çŽ¢ãšã³ãžã³ãã§ããã ä»ã¯æ£çŽãŸã ããããããšã®ååãå®çŸåºæ¥ãŠããããã§ã¯ãªãã§ãããäžã€ãã€çå®ã«é段ãç»ã£ãŠããŸããããã°ããã»ã©ææã«ç¹ããå®æã¯æãŠãŠããã®ã§ããŸãã«äžçªæ¥œããææã§ããã ãŒæåŸã«ãããèªãã§ãã ããæ¹ã«äžèšãé¡ãããŸãã è²ã
ãªã話ãããŸããããå®éã«ã¯ãæ¥ã
å°éãªæè¡ã®ç©ã¿éããšææŠã®ç¹°ãè¿ãã§ãã ã¹ã¿ã³ãã€ã§åãçµãã æè¡ã®ææŠã«ã€ããŠã¯ã瀟å
ã«éããã«ç©æ¥µçã«å€ã«å€ãçºä¿¡ãããŠãããããšèããŠããŸããæ€çŽ¢æè¡ãåºåæè¡ã«èå³ãããæ¹ãšç¹ãããããšæã£ãŠããŸãããçºä¿¡ã亀æµãªã©ãããŠãããæè¡åãé«ããŠãããããšæã£ãŠããŸãã ãŒStanby Tech Blogã«ãéããŸãããå°ããã€ã§ã¯ãããŸãããä»åŸãã¹ã¿ã³ãã€ã®åãçµã¿ãããã°ãéããŠçºä¿¡ããŠãããããšæããŸããæ¬æ¥ã¯ããããšãããããŸããã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
MLOpså°å
¥ã§Amazon SageMaker Pipelineã«ããMLã¯ãŒã¯ãããŒæ§ç¯ã®è©± ã¯ããã« ã¯ãããŸããŠãã¹ã¿ã³ãã€ã®SearchAdvertisingCoreGroup(æ€çŽ¢ã»åºåã³ã¢ã°ã«ãŒãã以éSACG)ã§æ©æ¢°åŠç¿é¢é£ã®éçºããã£ãŠããçã§ããä»åã¯Amazon SageMaker Pipelineã§MLã¯ãŒã¯ãããŒãæ§ç¯ããåãçµã¿ã玹ä»ããŸãã MLOpsãšã¯ ç§ãæå±ããŠããSACGã¯æ©æ¢°åŠç¿ã¢ãã«ãçšããŠæ¹åæœçããªãã©ã€ã³ã§å¹ææ€èšŒããŠãA/Bãã¹ãã§ä»®èª¬ã確ãããããšã§ãŠãŒã¶ãŒã®æ€çŽ¢äœéšãç¶ç¶çã«æ¹åããŠããŸãã åŸæ¥Groupå
ã§ã¯AWSã®ãããŒãžãæ©æ¢°åŠç¿åºç€Amazon SageMakerãå©çšããŠPoC(Proof of Concept)ãæ©æ¢°åŠç¿ã¢ãã«ã®æ§ç¯ããã¬ãŒãã³ã°ãªã©ãè¡ã£ãŠããŸããã éå»PoCã®çµæãæ¯ãè¿ãã«ãããããã¡ã³ããŒãå±
ãªããªã£ãéã®åŒãç¶ããªã©åé¡ããããŸããã ãã®ãããªçç±ãããMLOpsã®å°å
¥æ€èšãå§ããŸããã MLOpsã«ã€ããŠæç¢ºãªå®çŸ©ã¯ãªããŠãDevOpsããã®æŽŸçã§æ©æ¢°åŠç¿ã®ã¯ãŒã¯ãããŒãå¹çåã§ããããšãç®æããŠããŸãïŒå人çèŠè§£ïŒãããåèã«ãããã®ã¯Googleãããã»ã¹ã®èªååã®ã¬ãã«å¥ã§MLã¯ãŒã¯ãããŒãå®çŸ©ããŠããŸã. - MLOps ã¬ãã« 0: æåããã»ã¹ - MLãã€ãã©ã€ã³ã¯èªååãå«ãŸãªã - MLOps ã¬ãã« 1: MLãã€ãã©ã€ã³ã®èªåå - MLãã€ãã©ã€ã³èªäœãèªååãã - MLOps ã¬ãã« 2: CI/CDãã€ãã©ã€ã³ã®èªåå - MLãã€ãã©ã€ã³èªäœåã³CI/CDãèªååãã åºå
ž: MLOps: æ©æ¢°åŠç¿ã«ãããç¶ç¶çããªããªãŒãšèªååã®ãã€ãã©ã€ã³ äžèšã¯ãŒã¯ãããŒãæ§ç¯ããããã«ãæ¬çªé©çšã®ææéãããããå®éšç®¡çãã«ãããªã©ã®èª²é¡ãåºãŠãMLOpsã¯ãã®ãããªèª²é¡ã解決ããããšãæåŸ
ãããŠããŸãã Groupå
ã§ååšãã課é¡ãæŽçããŠãåªå
床ãã€ããŠæ®µéçã«ã¬ãã«ã¢ãããç®æããŠããŸããç§éã¯ãMLOpså°å
¥ãæåã®æšé²ãŽãŒã«ãšããŠãMLOps ã¬ãã« 1ããéšåçã«å®çŸããããšãå
·äœçã«ã¯ãããŒã¿ã®ååŠçãã¢ãã«ãã¬ãŒãã³ã°ãã¢ãã«è©äŸ¡ããã€ãã©ã€ã³åããããé²ããŠãããããšèããŠããŸãã Groupå
ã®èª²é¡æŽç MLOpsãå°å
¥ããåã«ãGroupå
ã§å®éã«ã¢ããªã³ã°ãæ
åœããŠããã¡ã³ããŒã«ãã¢ãªã³ã°ããŠåºãŠããæ©æ¢°åŠç¿ãããžã§ã¯ããé²ããäžã§ãããã課é¡ã玹ä»ããŸãã åŸã§å®éšãåçŸãã«ãã ãå
æã®ABãã¹ããããæã®ããã®æœççµæãä»ã®ããŒã¿ã«ãã1å確èªãããããããã®æã®ã¢ãã«ã®ååŠçã¯ã©ããªåŠçã§ãã ã£ãïŒããªã©ã®èŠæããããããŸããABãã¹ãçµäºã®æ°ã¶æåŸã«å®éšãåçŸãããæã«ãåœåã®åŠç¿ãååŠçãœãŒã¹ã³ãŒããåŠç¿æãšè©äŸ¡æã«äœ¿ãããŒã¿ãã¢ãã«ã®ãã€ããŒãã©ã¡ãŒã¿ãªã©ãå
šéšçšæããªããšåçŸãã«ããã§ããåçŸã§ããªãæã«éå»ã®ç¥æµã掻çšã§ããªããªã£ãŠæ©äŒæå€±ã«ãªããŸããã ã¢ãã«çæã®æé MLOpsãå°å
¥ããåã«ãABãã¹ããè¡ãéã«ã¢ãã«ãäœæã«ããã£ãŠãããŒã¿åã蟌ããããŒã¿ååŠçãã¢ãã«åŠç¿ãã¢ãã«è©äŸ¡ãå
šéšæåã§å®è¡ããå¿
èŠããããŸãããç¹ã«é »ç¹ã«ABãã¹ããåãæã«ããã®ãããªæé ã®æåå®è¡ã¯æéãããããããã¥ãŒãã³ãšã©ãŒãèµ·ããããç¶æ
ã§ããã ãŸãã¢ãã«éçºãæ
åœããã¡ã³ããŒãçšäºã§äŒã¿ã«ãªã£ãæãä»ã®ã¡ã³ããŒã«åŒãç¶ããäžèšã®ããã»ã¹ãå®è¡ãããšãã³ãŒãããã©ã¡ãŒã¿ãªã©ãå
šéšäŒããªããšãããªãã®ã§ãåŒãç¶ãããã«ããç¶æ
ã§ããã MLãã€ãã©ã€ã³ã®æ§ç¯ MLOpså°å
¥æåã®æšé²ãŽãŒã«ã«åœãã£ãŠãGroupå
æŽçãã課é¡ãåŸã§å®éšãåçŸãã«ããããã¢ãã«çæã®æéãã«å¯ŸããŠãå®éšç®¡çã§ããæ©æ¢°åŠç¿ãã€ãã©ã€ã³ã®å°å
¥ãèããŠããŸãã ä»åã¯Groupå
å©çšããæ©æ¢°åŠç¿ãã©ãããã©ãŒã Amazon SageMakerãšã®é£æºãå®éšç®¡çãã©ã€ãã«å§ããããããšãããAmazon Sageaker Pipelineã®å°å
¥ã決å®ããŸããã Amazon Sagemaker Pipelineãšã¯ãæ©æ¢°åŠç¿ã¯ãŒã¯ãããŒã管çããCI/CDãµãŒãã¹ã§ããæ©æ¢°åŠç¿ããã»ã¹ã®åã¹ããããã¯ãŒã¯ãããŒã«çµã¿èŸŒãã§ãJSON圢åŒã®DAG(Directed Acyclic Graph)ãšããŠã¯ãŒã¯ãããŒãå®çŸ©ããŠç®¡çãåå©çšã§ããŸããã¯ãŒã¯ãããŒãå®è¡ãããšãã«å
šãŠã®ã¹ãããã®è©³çްããã°ã«èšé²ããŠåŸããèªå远跡ã§ããŸãã CTRäºæž¬ã¢ãã«ãäŸã«ããŠãã¯ãŒã¯ãããŒã®æµããç°¡åã«ç޹ä»ããŸããå
šäœã®æ§æã¯äžèšã®å³ã®ã€ã¡ãŒãžãšãªããŸãã CodeBuildãã察象ã®pipelineãå®è¡ããŸãããŸããSageMaker Processing Jobããèµ·åããŠS3ã«çœ®ãããŒã¿ã«å¯ŸããååŠçãè¡ããŸããåŠçãããããŒã¿ãåŠç¿è©äŸ¡çšã®ããŒã¿ãšããŠS3ã«ä¿åããŸãã æ¬¡ã«ãSageMaker Training Jobããèµ·åããŠãååŠçãããããŒã¿ãçšããŠã¢ãã«ãåŠç¿ããŸããåŠç¿ãããã¢ãã«ãS3ã«çœ®ããŸããæåŸã«ãSageMaker Processing Jobããèµ·åããŠããã¹ãããŒã¿ãšã¢ãã«ã䜿ã£ãŠã¢ãã«ãè©äŸ¡ããŠããªãã©ã€ã³è©äŸ¡çµæãS3ã«ä¿åããŸãã å®è¡ã®è©³çްã¯SageMaker Studioã§ç¢ºèªããããšã§ããŸããåã¹ããããããã«ã¯ãªãã¯ãããšã¹ãããã®å
¥åãåºåããã©ã¡ãŒã¿ãªã©ã®æ
å ±ã確èªã§ããŸãã å°å
¥ã®å¹æãšããŠã¯ã - éå»ã®å®è¡çµæããã³ãã©ã¡ãŒã¿ãããŒã¿ãªã©ã远跡ã§ããŠãåå®è¡ãå¯èœã«ãªã - ããŒã¿åéããã¢ãã«è©äŸ¡ãŸã§1ã€ã®ãã€ãã©ã€ã³ã§ãŸãšããŠOne-Clickã§å®è¡ã§ãã ãŸãšã ãã®èšäºã§ã¯ãGroupå
ã§åã蟌ãã MLOpså°å
¥ã®çµç·¯ãæœçã玹ä»ããŸãããMLOpså°å
¥ã«ãã£ãŠæ©æ¢°åŠç¿ãããžã§ã¯ãã®éçšãèªååã§ããŠãæéãçããå®éšã«å€ãã®æéãå²ãããšãã§ããããã«ãªããŸãããä»åŸãæ©æ¢°åŠç¿æœçãã©ãã©ãæ€èšŒããŠãŠãŒã¶ãŒã«äŸ¡å€ãæäŸã§ããããã«ä»®èª¬æ€èšŒã®ãµã€ã¯ã«ãåããŠãããããšèããŠããŸãã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
æ±äººæ€çŽ¢ãšã³ãžã³ã§äœ¿çšããã©ãã«ä»äžã®è©± ã¯ããã« ã¹ã¿ã³ãã€ã§ã¯æ±äººæ€çŽ¢ãšã³ãžã³ã«ã©ãã«æ
å ±ã§ã®æ€çŽ¢ãå¯èœã«ããŠããŸãã ã©ãã«ãšã¯æ±äººæ
å ±ãæ€çŽ¢ããŒã¯ãŒãã®ç¹åŸŽçãªæ
å ±ã«å¯ŸããTagä»ããšèããŠããã ããã°ã€ã¡ãŒãžããããããšã æ¬èšäºã§ã¯Ruleã«ããã©ãã«ä»ããããŒããšããŠããŸãã ã©ãã«ã®äœ¿ãæ äŸãšããŠãäœåããšããé§
ã®æ±äººãæ€çŽ¢ããå ŽåãæããŸããäœåãšããé§
ã¯å
šåœã«äžèšã®æ°ååšããŸãã æ±äº¬éœãäœåé§
倧éªåºãäœåé§
çæ¬çãäœåé§
é·åŽçãäœåé§
å
µåº«çãäœåé§
ïŒJRè¥¿æ¥æ¬ïŒ å
µåº«çãäœåé§
ïŒéªç¥é»éïŒ ãäœåé§
ããšããåèªã®ã¿ã§æ€çŽ¢ããéã¯äžèšå
šãŠã®é§
ã®æ±äººããŒã¿ã察象ãšãªããŸããããåèµéç· äœåé§
ãã®å Žåã¯ãåèµéç·ãã¯æ±äº¬ã«ããè·¯ç·ãªã®ã§ã1ã®ãæ±äº¬éœãäœåé§
ãã®ã¿ã察象ãšãªã£ãŠæ¬²ãããšããã§ãããããããæ±äº¬éœãäœåãã®æ±äººããŒã¿ã«ãåèµéç·ãã®èšè¿°ããªãå Žåã«ã¯çµã蟌ãããšãã§ããŸãããããã§é§
ååšèŸºæ
å ±ããåäžé§
åã§ãå¥ç©ãšæ±ããä»çµã¿ãšããŠã©ãã«ãå°å
¥ããŠããŸãã è€æ°ã®åäžé§
åããçµã蟌ãæ
å ±ãšããŠã éœéåºç ã è·¯ç·å ã䜿çšããŠããŸããæ±äº¬éœã倧éªåºã®äœåé§
ã§ããã°ä»¥äžã®çµãèŸŒã¿æ
å ±ãšã®çµã¿åãããæããããŸãã ãã®ããã«åããäœåé§
ãã§ãã£ãŠãåšèŸºæ
å ±ãæŽ»çšããã©ãã«ä»äžããã°åºå¥ã§ããŸãã åºå¥ã§ããã°ãã®ã©ãã«æ
å ±ãçšããŠãããæå³ã«è¿ããã®ãæ€çŽ¢ããããšãå¯èœã«ãªããŸãã ã©ãã«ä»ããè¡ãã«ã¯MLãRuleã ã©ãã«ä»ããè¡ãã«ãããèããããææ³ã¯å€§ããåããŠRuleããŒã¹ã𿩿¢°åŠç¿ã®2ã€ãæããããŸãã 2ã€ã®ææ³ã®ã¡ãªããã»ãã¡ãªããããŸãšãããšä»¥äžããã«ãªããŸãã ã¡ãªãã ãã¡ãªãã RuleããŒã¹ é«é åŠç¿ããŒã¿äœæäžèŠ Ruleã§è¡šçŸã§ããªããã®ã¯å¯Ÿå¿äžå¯ æ©æ¢°åŠç¿ Ruleã§è¡šçŸã§ããªããã®ã«å¯Ÿå¿å¯èœ åŠç¿ããŒã¿äœæè² è·ãé«ã ã©ã¡ããæ¡çšããããšãããšHybridãªåœ¢ã§è¡ãã®ãBetterããšèããŸãã åèªã®æç¡ã§æ±ºå®ã§ãããããªã©ãã«ä»ããŸã§æ©æ¢°åŠç¿ã䜿ãå¿
èŠã¯ãããŸããã ããããRuleã§è¡šçŸã§ããªããã®ãããã®ã§æ©æ¢°åŠç¿ã䜿çšããªããšããéžæè¢ããããŸããã ãŸãã¯RuleããŒã¹ã§ã©ãã«ä»ãã宿œããã®åŸãŸããªãåããªãéšåãæ©æ¢°åŠç¿ã§è£ã圢ãšããŠããŸãã RuleããŒã¹ã®æ©èœå®çŸ© RuleããŒã¹ã«ã¯äžèšã®5ã€ã®æ©èœãå®è£
ããŸããã åèªã®æç¡Ruleæ©èœ æå®åèªã®æç¡ã«ããã©ãã«ãä»äžãåé€ãã åèªã®çµã¿åããRuleæ©èœ 2ã€ä»¥äžã®åèªã®çµã¿åããã®æç¡ã«ããã©ãã«ãä»äžãåé€ãã ã©ãã«ãšåèªã®çµã¿åããRuleæ©èœ ä»äžããã©ãã«ãšåèªã®çµã¿åããã«ããã©ãã«ãä»äžãåé€ãã Ruleé©çšé åºæ©èœ Ruleã®é©çšã«é åºãèšããã©ãã«ãä»äžããé åºãå¶åŸ¡ãã äŸïŒ é åº1. æ±äº¬ ã«å¯Ÿã㊠é§
ã©ãã«ãä»äž é åº2. æ±äº¬éœ ã®å Žåã«ã¯ é§
ã©ãã«ãåé€ ã©ãã«ä»äžå
ã®æå®æ©èœ ã©ãã«ãä»äžãã圢æ
çŽ ãå¶åŸ¡ãã äŸïŒ éœå¶æ°å®¿ç· äœåé§
ã® äœåé§
ã«ã®ã¿ã©ãã«ãä»äžããå Žåã«äœ¿çš éœå¶æ°å®¿ç· , äœåé§
ãšãã«Ruleæ¡ä»¶ã ããé§
ã©ãã«ãä»äžããå Žåã«ã¯è·¯ç·åã«ã¯ä»äžããããªãå Žåããã æ§æ éçºèšèª : Rust æ§æModule : 圢æ
çŽ è§£æ Rust補㮠Lindera ã䜿çšããŠããŸãã瀟å
ã«Linderaã®Maintainerãããããšããããæ¡çšããŸããã DoubleArray RuleEngine DoubleArray Ruleãæ€çŽ¢ããã®ã«DoubleArrayã䜿çšããŠããŸããDoubleArrayã®è©³ãã説æã¯ããã§ã¯å²æããŸãã DoubleArray ã®æŠèŠã¯ãã¡ãã®ããŒãžãç°¡æœã«ãŸãšãŸã£ãŠããŠçè§£ããããã§ãã åãç«ãŠãŠç¹å¥ãªããšã¯ããŠããŸããããDoubleArrayã®æ€çŽ¢ç¶æ
ãç¶æããªããæ€çŽ¢ãè¡ããããã«ããŠããŸãã äŸãšããŠã¯äžèšã«ãªããŸãã DoubleArrayã«è¿œå ããæ
å ± ã»åœéãã©ãŒã©ã ã»åœéå±ç€ºå Ž æ€çŽ¢ããæåå ã»åœéå±ç€ºå Žé§
æ€çŽ¢æã®åœ¢æ
çŽ è§£æããã[åœé å±ç€º å Ž é§
]ã§ãäžèšã®ããã«æååãäœæããŠæ€çŽ¢ããã®ã¯éå¹ç ã»åœé ã»åœéå±ç€º ã»åœéå±ç€ºå Ž ã»åœéå±ç€ºå Žé§
DoubleArrayã®baseãcheckãtailã®ç¶æ
ãä¿æããŠããã°ååã®æ€çŽ¢çµæã®ç¶ãããæ€çŽ¢ããããšãå¯èœ RuleEngine äžèšã®ãäœåé§
ãã®Ruleãjsonã§è¡šçŸãããšäžèšã®ããã«ãªããŸãã 1001 : æ±äº¬éœã®äœåé§
1002 : 倧éªåºã®äœåé§
{"order":1, "add_label":[[1, [1001, 1002]]], "word_rule":[{"word":"äœåé§
"}]} {"order":2, "del_label":[[1, [1002]]], "word_rule":[{"word":"æ±äº¬éœ"}, {"word":"äœåé§
"}]} {"order":2, "del_label":[[1, [1002]]], "word_rule":[{"word":"æ°å®¿ç·"}, {"word":"äœåé§
"}]} {"order":2, "del_label":[[1, [1002]]], "word_rule":[{"word":"åèµéç·"}, {"word":"äœåé§
"}]} {"order":2, "del_label":[[1, [1001]]], "word_rule":[{"word":"倧éªåº"}, {"word":"äœåé§
"}]} {"order":2, "del_label":[[1, [1001]]], "word_rule":[{"word":"äžçºç·"}, {"word":"äœåé§
"}]} {"order":2, "del_label":[[1, [1001]]], "word_rule":[{"word":"éªå ºç·"}, {"word":"äœåé§
"}]} jsonã®åé
ç®ã¯ä»¥äžã®å
容ã衚ããŠããŸãã order : Ruleã®é©çšé ã衚ããå°ããå€ã®Ruleããé ã«Ruleãé©çšããã add_label : ã©ãã«ãä»äžããword_ruleäžã®åœ¢æ
çŽ Indexãšãã®ã©ãã«åã del_label : ã©ãã«ãåé€ããword_ruleäžã®åœ¢æ
çŽ Indexãšãã®ã©ãã«åã word_rule : æ§æèŠçŽ ã®ãwordããšãlabelsããè§£ææç« ãšäžèŽããã°ããadd_labelã, ãdel_labelããé©çšããã word : 圢æ
çŽ è¡šèšãšåäžã®æååãè§£ææç« ã«ååšããã°äžèŽãšããã è€æ°ããå Žåã¯ãèšè¿°ããããŠãé åºãRuleæ¡ä»¶ãšãªãã äžèšã® "word_rule":[{"word":"æ±äº¬éœ"}, {"word":"äœåé§
"}] ã§ã¯ã以äžã®ããã«ãªãã è§£ææç« ïŒãæ±äº¬éœã®äœåé§
ã RuleäžèŽ è§£ææç« ïŒãäœåé§
æ±äº¬éœã RuleäžäžèŽ labels : 圢æ
çŽ ã«ä»äžãããã©ãã«ãè§£ææç« ã«ååšããã°äžèŽãšããã é
åãšãªã£ãŠããã©ãã«ãè€æ°èšè¿°ãããŠããå Žåã¯ANDæ¡ä»¶ãšããŠåŠçããã äžèšã®Ruleã«å¯Ÿã㊠ãåèµéç·ã®äœåé§
ã ãè§£æãããšRuleé©çšã¯ä»¥äžã®æµãã§è¡ãããŸãã order:1ã®Ruleãé©çšããäžèšã®ç¶æ
ãšãªã åèµéç· [] ã® [] äœå [1001, 1002] é§
[1001, 1002] order:2ã®Ruleãé©çšããäžèšã®çµæãšãªã åèµéç· [] ã® [] äœå [1001] é§
[1001] Ruleæ€çŽ¢ã®å
šäœã®æµããšããŠã¯äžèšã®ã€ã¡ãŒãžãšãªããŸãã ãŸãšã RuleããŒã¹ãå°å
¥ããããšã§åçŽãªãã®ãªãã°æ©æ¢°åŠç¿ãå°å
¥ããªããšãäºè¶³ããããšã玹ä»ããŸããã æ©æ¢°åŠç¿ã¯ææ³ã®äžã€ã§ãã£ãŠç®çã§ã¯ãªãã®ã§ãæé©ãªææ³ãæ¡çšããããšãéèŠãšèããŸãã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
â»æ¬å
容㯠Visional Designer Blog ã®è»¢èŒã§ãã UI/UXãã¶ã€ããŒã®æ©å·ã§ãã ä»åã¯ãæ±äººæ€çŽ¢ãšã³ãžã³ãã¹ã¿ã³ãã€ãã§ABãã¹ããé²ãããªãã§åºãŠããããã¶ã€ã³ã®éšåæé©ããããã¶ã€ã³ã®æéããªãã課é¡ã«ããã¶ã€ã³ã¬ã€ãã©ã€ã³ããã«ãœããã«ã¹ã¿ããŒãžã£ãŒããŒããããäœæããŠããŠãŒã¶ãŒäœéšã®è³ªãä¿ã¡ãåäžãç¶ããããã®ç°å¢ã»äœå¶ãæŽããåãçµã¿ã玹ä»ããŸãã åã«ã¬ã€ãã©ã€ã³ãªã©ãäœæããããã»ã¹ã玹ä»ããã®ã§ã¯ãªããäºæ¥ææšãšãŠãŒã¶ãŒã®äœéšãã©ã³ã¹ããšãããã«ããããã®æã¡æã«è³ã£ãçµç·¯ãšãéäžã§æã¡æãå€ããçŽäœæ²æãå«ããŠèµ€è£žã
ã«ã玹ä»ã§ããã°ãšæããŸãã äºæ¥ææšãšãã¶ã€ã³ã®æãåãã®ä»ãæ¹ã«æ©ãã§ããæ¹ å®éçãªææšãéèŠãªç°å¢ã§ããã¶ã€ã³è² åµãèµ·ããã®ã§ã¯ãšæã£ãŠããæ¹ å
±éã®ãŠãŒã¶ãŒåããã¶ã€ã³æéããªããéçºã¡ã³ããŒãšã®æèã®ããåããã«æ©ãã§ããæ¹ ãããã£ãã¢ã€ã¢ã€ãæ±ããŠããæ¹ã«èªãã§ããã ããå°ãã§ãéçºããŒã ã§ã®åãæ¹ãèãããã£ããã«ãªãã°å¬ããã§ãã ã°ããŒã¹ãé²ããäºæ¥ãšãã¶ã€ã³ã®éã§èµ·ãã2ã€ã®èª²é¡ ãã¹ã¿ã³ãã€ãã¯ãæ±äººæ€çŽ¢ãšã³ãžã³ãµãŒãã¹ã§ãã ã€ã³ã¿ãŒãããäžã«å
¬éãããŠããæ£ç€Ÿå¡ããã¢ã«ãã€ããªã©ãå
šåœã®ããŸããŸãªæ±äººæ
å ±ã®äžãããããŒã¯ãŒãã§æé©ãªæ±äººæ
å ±ãäžæ¬ã§æ¢ãããšãã§ããŸãã æ±äººæ€çŽ¢ãšã³ãžã³ãã¹ã¿ã³ãã€ã ãµãŒãã¹ã°ããŒã¹ã®ããããããé±6æ¬ã®ABãã¹ãã宿œããŠããããã®çµæãäž»ãªå€æè»žã«ããŠæœçãé²ããŠããŸãã äŸãã°ãæ±äººæ
å ±ãæ²èŒãããã«ãŒãUIã®ãã¶ã€ã³ãå°ãå€ããã ãã§ãäºæ¥ã®éèŠææšã«å€§ããªåœ±é¿ãåºãããããã¶ã€ã³ãæ©èœã®ä»æ§ãABãã¹ãããæ¹åæ§ãèŠåºããŠããŸããã æ€çŽ¢çµæããŒãžã®ã«ãŒãUI ããããç°å¢ã§ãABãã¹ãã§å€æããªããã°ããŒã¹ãé²ãããªãã§ã以äžã®2ã€ã®èª²é¡ãåºãŠããŸããã 1. ãã¶ã€ã³ã®éšåæé©å åãUIãæ
å ±èšèšã§ããããŒãžããšã«ABãã¹ãã®çµæãç°ãªãããšããããŸãããäºæ¥ææšãåªå
ããŠABãã¹ãã®åã¡ãã¿ãŒã³ãåãå
¥ããŠãã£ãããšã§ãã¶ã€ã³ã®éšåæé©ãé²è¡ããµãŒãã¹å
šäœã§ãã¶ã€ã³ã®äžè²«æ§ã倱ãããæåã仿§ãç°ãªãç®æãåºãŠããããšã§ãŠãŒã¶ãŒäœéšèªäœãåé¡èŠãããããã«ãªããŸããã 2. ãã¶ã€ã³ã®æéããªã ãã¶ã€ã³ã®æéãã«ãŒã«ãå®ãŸã£ãŠãããããã¶ã€ã³ã®éžæè¢ãå€ããªã£ãŠããŸããããããããšãABãã¹ãã®ãã¿ãŒã³æ€èšã«æéãããã£ããããã¶ã€ã³ãæ€èšããããã®ABãã¹ãã®éãå¢ããŠããŸããããè²»çšå¯Ÿå¹æã®èгç¹ã§ãã¶ã€ã³ã®æéãæ±ºããåªå
床ãäžãããŸããã§ããã ãéšåæé©åãã®èª²é¡ã«ã¯ãã¶ã€ã³ã¬ã€ãã©ã€ã³ãäœæãããã¶ã€ã³ã®æéããªãã課é¡ã«ã¯ãã«ãœããã«ã¹ã¿ããŒãžã£ãŒããŒããããäœæããæã¡æãåããŸããã ããããã¯ãããããã®æã¡æã«è³ããŸã§ã®çµç·¯ãå«ããã¬ã€ãã©ã€ã³ããã«ãœããªã©ã®çå®ããã»ã¹ã玹ä»ããŸãã ããã¶ã€ã³ã®éšåæé©åãã®èª²é¡ã«ã¯ããã¶ã€ã³ã¬ã€ãã©ã€ã³ãäœæ ãã¶ã€ã³ã®éšåæé©åã«ã€ããŠãå
·äœçãªäŸã玹ä»ããŸãã ã¹ã¿ã³ãã€ã§ã¯ããæ€çŽ¢çµæããŒãžããæ±äººè©³çŽ°ããŒãžãã®ããŒãžã«æ±äººæ
å ±ãæ²èŒãããã«ãŒãUIããããŸããABãã¹ããããäžã§äºæ¥ææšãåªå
ããçµæãããŒãžããšã®æ
å ±èšèšãUIãç°ãªã£ãŠããŸããã äžã«ã¯ä»æ§ãæåãªã©ãéšåæé©ã«ãªãããµãŒãã¹å
šäœã®ãŠãŒã¶ãŒäœéšããããªãã«ãªã£ãŠãããšæããŠããŸããã ãã®ãããªãã¶ã€ã³ã®éšåæé©ã«æ¯æ¢ããããããããã¬ã€ãã©ã€ã³ãäœæããããšã«ããŸããã çŸç¶ãå¯èŠåããããæ°ããªåé¡ãçºç ãŸãããã©ã³ããµã€ãºãã«ã©ãŒãUIããŒããã©ã®ããã«äœ¿ãããŠããããæŽçããŠã䜿çšã«ãŒã«ãææ§ãªãã®ãå¯èŠåããŸããã°ã¬ãŒã«ã©ãŒã®äœ¿çšã«ãŒã«ã決ãŸã£ãŠããªãã£ããããã¿ã³ã®å€§ãããè²ããã©ãã©ã ã£ããããŠãæ³å以äžã«ãã¶ã€ã³ãæã£ãŠãããã䞊ã¹ãŠã¿ããšæ¹ããŠã¬ã€ãã©ã€ã³ã®å¿
èŠæ§ãæããŸããã æ¬¡ã«ããããã®ã«ãŒã«ãæŽããŸãã éçºã«é¢ããå§ããã°ããã®äººã§ããçµ±äžãããã¢ãŠãããããäœããããã«ã©ãŒãã¿ã€ãã°ã©ãã£ãŒãã¢ã€ã³ã³ãã³ã³ããŒãã³ããã®ãã¶ã€ã³ãæ§æããæå°èŠçŽ ãšããã®äœ¿çšã«ãŒã«ãã¬ã€ãã©ã€ã³ãšããŠãŸãšããŸããã ã¬ã€ãã©ã€ã³ãæŽããŠããäºæ¥ææšã«ãã€ãã¹ã®åœ±é¿ãäžããããã«ã¯ãããŸããã ãã®ãããã¬ã€ãã©ã€ã³ãæ¬çªç°å¢ã«åæ ããåã«ãABãã¹ãã§ã¬ã€ãã©ã€ã³ã«æ²¿ã£ããã¶ã€ã³ã«å€æŽããŠããéèŠææšã«æªåœ±é¿ãäžããªããã確ãããŠãããŸããã ããããéœåºŠABãã¹ãã§ç¢ºèªããé²ãæ¹ã§ã¯æ°ãã«2ã€ã®åé¡ãåºãŠããŸããã 1ã€ã¯ãã¬ã€ãã©ã€ã³ãåæ ãããã¶ã€ã³ãABãã¹ãã§è² ããŠããŸããã¬ã€ãã©ã€ã³ã§çµ±äžããããªãã±ãŒã¹ãåºãŠããŠããŸã£ãããšã ãã1ã€ã¯ãéèŠææšãžã®åœ±é¿ã確èªããABãã¹ãã«æéãããã£ãŠããŸãããšã§ãã ABãã¹ãã¯ãµãŒãã¹ã°ããŒã¹ã®ããã«ã宿œããŸããã°ããŒã¹ã®ããã®ãã¹ããåªå
ãããã®ã§ãã¬ã€ãã©ã€ã³ã®æŽåãæãããã«é²ãŸãã«ããŸããã äºæ¥ã®éèŠææšãšãã¶ã€ã³ã®çµ±äžã«æãåããã©ãã€ããã ãã®ã¿ã€ãã³ã°ã§ãäºæ¥ã®éèŠææšãšãã¶ã€ã³ã®çµ±äžãã©ã¡ããåªå
ãã¹ãããè°è«ããŸããã ããã¶ã€ã³ã®äžè²«æ§ããªãããšã¯èª²é¡ãªã®ã§ããã¶ã€ã³ãæããããšã¯è³æãããã ããéèŠææšã«åœ±é¿ããªãããšã¯æ
ä¿ãããããšãã£ãèãããããã¯ããªãŒããŒããã©ã³ããŒããèãåºããçå°ç¹ãæ¢ã£ãŠãããŸãã çµæããããã¯ããªãŒããŒããã©ã³ããŒããã¶ã€ããŒã®äžè
éã§ã¬ãã¥ãŒããã¬ã€ãã©ã€ã³ã¯ãã¹ããè¡ããã«åæ ããäºæ¥ææšã«åŒ·ã圱é¿ããããªå Žæã«éãABãã¹ããè¡ãããšã§åæããŸããã ãã¹ãã®åªå
床ãªã©ã調æŽããªãããã¬ã€ãã©ã€ã³ã®Ver.1ã宿ãéšåæé©ãé²ãã§ããããŒãžã«ã¬ã€ãã©ã€ã³ãåæ ãããµãŒãã¹å
šäœã®çµ±äžæãæ
ä¿ããåºç€ãæŽããŸããã ããã¶ã€ã³ã®æéããªãã課é¡ã«ã¯ããã«ãœããšã«ã¹ã¿ããŒãžã£ãŒããŒããããäœæ 次ã«ããã¶ã€ã³ã®æéããªãã課é¡ã«ããã«ãœããšã«ã¹ã¿ããŒãžã£ãŒããŒããããäœæããåãçµã¿ã§ãã å®éã¯æåãããã«ãœããªã©ãäœæããããã§ã¯ãªããã¯ããã¯èª²é¡ã«é©åã§ã¯ãªãææ³ããšã£ãŠããŸããŸããããã®ãããããå«ããŠç޹ä»ããŸãã ããŒã å
šå¡ãå·»ã蟌ãã§ããµãŒãã¹ã®ã€ã¡ãŒãžããŸãšããããšããã倱æ åœæãæå±ããŠããæ±è·è
åãWebãããã¯ãã®éçºããŒã å
šå¡ãå·»ã蟌ã¿ãããµãŒãã¹ã®ã€ã¡ãŒãžããéçŽããŠããããããã¶ã€ã³ã®æ¹åæ§ãèŠã€ããããšããŸããã ããã§ããµãŒãã¹äººæ Œããã¿ããªã§èããã¯ãŒã¯ã·ã§ãããè¡ããã°ã«ãŒãã«åãããŠãã¹ã¿ã³ãã€ãµãŒãã¹ãšããã°ããããšããããŒã¯ãŒããåºããŠããã¶ã€ã³ã®æ¹åæ§ããšããŸãšããããšè©Šã¿ãŸããã å®éã«ã¯ãŒã¯ãé²ãããšãããããã®ããŒã¯ãŒããåºãããã°ã«ãŒãããšã«ããŒã¯ãŒãã®è³ªãéã£ããããŠãæ¹åæ§ããŸãšããããªãã£ãã®ã§ãããŒã¯ãŒãããåãè²ãæ€èšããã©ã®æ¹åæ§ãçžå¿ãããABãã¹ãã§æ±ºããããšèããŸããã ããããããã§ãã¬ã€ãã©ã€ã³ãšåããã1ã€1ã€ã®ããŒã¯ãŒãããåºãããããã®è²ã§ãã¹ããè¡ããšèšå€§ãªå·¥æ°ãããã£ãŠããŸããŸãã ãŸããèªåãã¡ãçŸåšæ±ããŠãããµãŒãã¹ã®ã€ã¡ãŒãžèµ·ç¹ã§ã¯ãªããä»åŸã©ããããµãŒãã¹ã«ããŠãããããã®ããžã§ã³ã®èгç¹ãããã«ãçŸåšå©çšããã ããŠãããŠãŒã¶ãŒã«å ããŠãå°æ¥çã«ãããªãŠãŒã¶ãŒã«ã䜿ã£ãŠããããããšãã£ããŠãŒã¶ãŒã®èгç¹ãåæ ãã¹ãã§ã¯ãšããèãã«ããããŸããã ããã§ãã©ããªãµãŒãã¹ã§ããããããã©ããªãŠãŒã¶ãŒã«äœ¿ã£ãŠããã£ãŠãã©ããªæ°æã¡ã«ãªã£ãŠæ¬²ããããããã«ãœããã«ã¹ã¿ããŒãžã£ãŒã«ãããã§åºããŠããããã¶ã€ã³ã®æ¹åæ§ãèŠåºãé²ãæ¹ã«ã·ããããŸããã ã¹ã¢ãŒã«ããŒã ã§ã®åææŠ ãµãŒãã¹äººæ Œãèããã¯ãŒã¯ã·ã§ããã®åçç¹ã¯ãå€ãã®ã¡ã³ããŒãå·»ã蟌ã¿ãããŠæèŠããŸãšããã®ã«èŠæŠããããšãäœæ¥æéã奪ã£ãŠããŸã£ãããšã§ããã ããããèžãŸããŠããã«ãœããªã©ãèããéã¯ãéçºããŒã å
šå¡ã§ã¯ãªãããã¶ã€ããŒãšãã©ã³ããŒãèªãæãæããŠãããã¡ã³ããŒã®å°äººæ°ã§ããããäœæããã®åŸãããŒã å
šå¡ã«ãã£ãŒãããã¯ãããã圢ã§é²ããããšã«ããŸããã ãŸãã¯ããã«ã¿ãŒã²ãããšãªããŠãŒã¶ãŒå±€ããããªã¯ã¹ã§å¯èŠåããŸããããŸããŸãªãŠãŒã¶ãŒã®ãä»äºæ¢ãã§å€§åã«ããŠãã軞ãããããç«¶åãµãŒãã¹ãå«ãä»ã®ãµãŒãã¹ãšäžç·ã«æŽçããŠããåžå Žã®äžã§ã¹ã¿ã³ãã€ã¯ãã®èŸºãã ããããšããçžå¯Ÿçãªããžã·ã§ã³ãšãŠãŒã¶ãŒå±€ã決ããŸããã åžå Žã®ããžã·ã§ã³ãšã¿ãŒã²ããå±€ãæ±ºãããšããã§ããã«ãœãã®äœæã«ã¯ãããŸãã ããŸããŸãªã»ã°ã¡ã³ãã®ãŠãŒã¶ãŒãã«ããŒãããã2çš®é¡ã®ãã«ãœããäœæããŸããã ãã«ãœãã«ã¯ãä»äºãæ¢ãããã®è¡åããã®ãã£ãããä»äºæ¢ãã®æ¡ä»¶ã«ãªããããªèŠçŽ ïŒäŸãã°ãåäŸãçæŽ»ã®äžå¿ã«ããåè²ãŠäžã®æ¹ã¯ãæéã«èéãå¹ãããæ°ã«ããŠããïŒãæ®æ®µäœ¿ã£ãŠããã¢ããªãªã©ã®é
ç®ãå
¥ããŸãã 2çš®é¡ã®ãã«ãœããšå€§ãŸããªä»äºãæ¢ããŸã§ã®è¡åãæŽçã§ãããšããã§ãå®éã«ãã«ãœããæŽ»çšãããšãªã£ãæã«ãã©ã¡ãã䜿ãã¹ããè¿·ãã®ã§ã¯ãšãã課é¡ãåºãŸããã ããã§ãã¡ã³ããŒããã®ææ¡ã§ãã¡ã€ã³ãã«ãœããšãµããã«ãœãã®ããã«åªå
é äœãã€ããããšã«ãã«ã¹ã¿ããŒãžã£ãŒããŒãããã®äœæãèŠè¶ããŠãã¡ã€ã³ãã«ãœãããã詳现ã«ããŠãããŸããã ã«ã¹ã¿ããŒãžã£ãŒããŒãããã«ã¯ãä»äºãæ¢ããã£ããããä»äºã«å°±æ¥ããåŸãŸã§ã®å段éã§ã©ã®ãããªè¡åããšã£ãŠããã®ããã©ã®ãããªæèãªã®ãããªã©ã®èŠçŽ ãå
¥ããç¹ã«å段éã§ã®ãã€ã³ãæèçã«åºããŸããã ã«ã¹ã¿ããŒãžã£ãŒããŒããããäœã蟌ãã§ãããšããŠãŒã¶ãŒã®ãã€ã³ããä»äºãæ¢ãäžã§ã®å°ãäºããšãä»äºãããããšãžã®äžå®ãã«åãããããããããµãŒãã¹ã®æ©èœãšããŠæäŸããã¹ã䟡å€ãšããã¶ã€ã³ã®æ¹åæ§ã«åæ ã§ããããªæ
ç·çãªäŸ¡å€ã«åé¡ã§ããããšã«æ°ä»ããŸããã ããããŠãã©ããªãµãŒãã¹ã§ããããããã©ããªãŠãŒã¶ãŒã«äœ¿ã£ãŠããããããã2ã€ã®èгç¹ãèžãŸãããã«ãœããšã«ã¹ã¿ããŒãžã£ãŒããŒãããã宿ãããããæ ãæã«ããŠãä»åŸã«ã©ãŒãã¢ã€ã³ã³ãªã©ã®æ€èšãé²ããŠããäºå®ã§ãã çµæïœéèŠææšãåäžããããŸã§ã§ããªãã£ãåãçµã¿ã«ãææŠã§ããç°å¢ã« ããã¶ã€ã³ã®éšåæé©ããããã¶ã€ã³ã®æéããªãããšãã課é¡ã«ãã¬ã€ãã©ã€ã³ããã«ãœããã«ã¹ã¿ããŒãžã£ãŒããŒããããäœæããŠããŠãŒã¶ãŒäœéšã®è³ªãæ
ä¿ããåäžãç¶ããããã®ç°å¢ã»äœå¶ãæŽããŸããã æœçãé²ããªãããã°ããŒã¹ç®çã®ABãã¹ãã¯ç¶ç¶ããŠãããäºæ¥ã®éèŠææšãå幎ã§40%以äžåŒãäžããææã«ãã€ãªãããŸããã ä»åŸã¯ãŠãŒã¶ãŒãã¢ãªã³ã°ãªã©ã«ãåãå
¥ãããã«ãœããªã©ã¯äœã£ãŠçµããã§ã¯ãªãããã©ãã·ã¥ã¢ãããç¶ããŸãã ãŸãããããã¯ãå
šããŒã ãžå±éããæ©äŒããããããŒã éã®é£æºã«çºå±ããããšã«ãä»ãŸã§ã¯ãããããã®ããŒã ã§éçºãé²ããããšãå€ãã£ãã§ããããã«ãœããã«ã¹ã¿ããŒãžã£ãŒããŒãããããµãŒãã¹å
šäœã®è»žã«ãªããWebããã¢ããªãžã®æµå
¥æœçãªã©ãããããã¯ã¹ã¿ã³ãã€å
šäœã®äœéšèšèšã«ã掻çšã§ããããšæããŠããŸãã ãããã«ïœäœãã ãã§ãªããã¡ã³ããŒã«ãŠãŒã¶ãŒäœéšã®ããšãåãç¶ãããããã¶ã€ããŒã« 玹ä»ãããã«ãœããã«ã¹ã¿ããŒãžã£ãŒããŒãããã®ããã«ãã¶ã€ã³ã«éããããŸããŸãªãã¬ãŒã ã¯ãŒã¯ããããŸããããã éé²ã«å®æœããã°ãããšããããã§ã¯ãããŸããã éçºãé²ããã«ããã£ãŠããŒã ãäœã«å°ã£ãŠããã®ãã®ã課é¡ããä»ããå¿
èŠãããã®ãã®ãåªå
é äœãããã®äžã§ãé©åãªææ³ããäœããèããæšé²ããŠããããšãéçºããŒã ã®ã€ãã¡ã³ããŒãšããŠå€§äºãªåœ¹å²ã ãšæããŠããŸãã ä»åãèªåã®å°ããªæ©ã¿ãå°ãäºããå®ã¯ããŒã ããããã¯ãå
šäœã®èª²é¡ã«ãªã£ãŠããŠãç©æ¥µçã«åé¡æèµ·ãææ¡ããããšã®éèŠæ§ã宿ããŸãããå®éãéçºã¡ã³ããŒãUXãã¶ã€ã³ã«èå³ããããå·»ã蟌ããšç©æ¥µçã«åå ããŠãããŸããã ããžãã¹ã®ææšã倧äºã«ããªãããäºæ¥ãšãŠãŒã¶ãŒã®ãã©ã³ã¹ããšã£ãŠããŠãŒã¶ãŒäœéšã®éèŠæ§ãããŒã ã«åãç¶ããããšã¯ãã¶ã€ããŒã®åœ¹ç®ã ãšæããŠããŸããã¡ã³ããŒãçŽåŸæãæã£ãŠéçºã§ããããã«ããã¶ã€ããŒã®ç¬ããããã«ã¯ãªãããã¡ã³ããŒãå·»ã蟌ãã§ããŒã ãåŒã£åŒµã£ãŠããããã¶ã€ããŒã§ããããã§ãã ãã¶ã€ããŒããç©æ¥µçã«å£°ãäžããŠãã¡ã³ããŒãå·»ã蟌ã¿ãè¯ããŠãŒã¶ãŒäœéšãç®æãã¹ãäžç·ã«ããã°ã£ãŠãããŸãããïŒ ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
EKSã®CoreDNSãå®å®ãããããã®åãçµã¿ ããã«ã¡ã¯ãStanbyã®ProductPlatformã°ã«ãŒãã§SREããã£ãŠããå°æã§ãã ä»åã¯EKSç°å¢ã®CoreDNSãå®å®çšŒåãããããã«åãçµãã ããšã玹ä»ããŸãã äœãèµ·ããã®ã ãŸãåæãšããŠãåœç€ŸãµãŒãã¹ã®å€ãã¯ECS/Fargateã§éçšããŠãããçŸåšEKS/FargateãžFrontããæ®µéçã«ç§»è¡ããŠããŸãã ç§»è¡ã«ã€ããŠã®çµç·¯ãæ¹æ³ã«ã€ããŠã¯ã CloudNative Days Tokyo2021 ã§ã® ç»å£è³æ ãã芧ãã ããã æ¬é¡ã«æ»ããŸããããæ¥ãEKSã§çšŒåããŠããã·ã¹ãã ã§ãšã©ãŒãå€çºããŸããã5xxã®HTTPã¹ããŒã¿ã¹ã³ãŒãã倧éçºçããWebé²èЧé害ãæç¶çã«çºçããŠããŸããã FrontããAPIã®éä¿¡ã§5xxãçºçããŠããããã§ãPodå
ã§çšŒåããŠããã³ã³ããã調æ»ãããšãåå解決ã§å€±æããŠããŸããã EKSãå
éšã®åå解決ããµãŒãã¹ãã£ã¹ã«ããªã«äœ¿ã£ãŠãã CoreDNS Podã®æ°ãåã«å¢ãããšãšã©ãŒã解決ããã®ã§åå ã¯CoreDNSãšå€æããåå 調æ»ãšåçºé²æ¢ãžã®åãçµã¿ãå¿
èŠã«ãªããŸããã CoreDNSã®è² è·ç¶æ³ãèŠã é害ãèµ·ãããšãã¯CoreDNSã®ç£èŠãããŠããªãã£ãã®ã§ãæ€èšŒç°å¢ã«è² è·ããããŠäºè±¡ãåçŸããŠCoreDNSã®ç¶æ
ãç£èŠããããšã詊ã¿ãŸããã åŒç€Ÿã¯ç£èŠã«Datadogã䜿ã£ãŠãããŸãããªã®ã§CoreDNSãDatadogã§ç£èŠããããã«ãCoreDNSã®Podã«å¯ŸããŠãµã€ãã«ãŒã³ã³ãããšããŠDatadogã³ã³ããã远å ããDatadogã³ã³ããããDatadogã«ã¡ããªã¯ã¹ãéä¿¡ããããšããŸããã ãããEKS/Fargateã®ãããªã®ãæã
ã®èšå®ãæªãã®ããDatadogã«ã¡ããªã¯ã¹ãéä¿¡ã§ããŸããã§ããã AWSãDatadogã®ãµããŒããšãããåãããã®ã§ããè§£æ±ºã«æéããããããã§ããŸãäžæ¹ã§ã³ã³ããåºç€ãFaragateã§ã¯ãªãEC2ã ãšã¡ããªã¯ã¹ãååŸã§ããããšã確èªã§ããŸããã ãªã®ã§ãCoreDNSãåããŠããkube-systemãšããnamespaceã ããEC2ã§åãããHybrid EKSç°å¢ãæ§ç¯ããŸããã ä»çµã¿ãšããŠã¯ãç¹å®ã®namespaceã䜿ãFargate profileãäœæããnamespaceã®æå®ããªãå Žåã¯defaultã®managed node groupã«deployããŠããŸãã ããã§ã¡ããªã¯ã¹ãååŸã§ãã Webãžã®ãªã¯ãšã¹ãã«å¿ããŠCoreDNSãžã®ãªã¯ã¹ããå¢å ããããš è² è·ãäžå®ç¶ã«ãªããšãCoreDNSã®Podãåèµ·åãèµ·ããããš ã確èªã§ããŸããã CoreDNSå®å®åãããããã«ãã£ãããš [å°å
¥ã«è³ãã]ããŒãã«DNSãã£ãã·ã¥ãæããã æ€èšŒã¯ãããã©å°å
¥ã«ã¯è³ããªãã£ã察çãšããŠã NodeLocal DNSãã£ãã·ã¥ ã玹ä»ããŸãã ããã¯ãã¯ã©ã¹ã¿ãŒããŒãäžã§DNSãã£ãã·ã¥ãšãŒãžã§ã³ããDaemonSetã§çšŒåãããããšã§ãã¯ã©ã¹ã¿ãŒã®DNSããã©ãŒãã³ã¹ãåäžãããæ©èœã§ãã ãã ã¢ããªã±ãŒã·ã§ã³ç°å¢ã®ããŒãã¯Fargateãªã®ã§ãDaemonSetãåããããšãã§ãããæå¿µããŸããã ndotsèšå®ãå€æŽ åå解決ã®ããã«äœ¿ã resolve.conf ã«ã¯ ndots ãšãããåå解決ãããšãã«ããŒã«ã«ãã¡ã€ã³ãã©ã®ãããåªå
ãããããèšå®ã§ãããã©ã¡ãŒã¿ããããŸãã ããã©ã«ã㯠5 ã§ãEKSã®å Žåã ãšä»¥äžã®ããã«ãªã£ãŠããŸãã nameserver 10.100.0.10 search default.svc.cluster.local svc.cluster.local cluster.local ec2.internal options ndots:5 ndots:5 ã ãšãããã5以äžã®å Žåã¯FQDNãšèŠåããã以äžã®é ã§åå解決ã詊ã¿ãŸãã ãã®ç¶æ
ã§ example.com ãžã®åå解決ã詊ã¿ãå Žåã®æåã¯ä»¥äžã®é åºã§ãããŒã«ã«ãã¡ã€ã³ãèªåã§è£å®ããŠåå解決ã詊ã¿ãŸãã example.com.default.svc.cluster.local. example.com.svc.cluster.local. example.com.cluster.local. example.com.ec2.internal. example.com. ããã ãšåå解決ã«ã³ã¹ããããããããã®ã§ndotsã1ã«èšå®ããcorednsãžã®è² è·ã軜æžãããŸããã 詳现㯠AWSã®å
¬åŒèšäº ãåç
§ããŠãã ããã CoreDNSãªãªãŒã¹æã®åæè»œæž CoreDNSãžã®èšå®å€æŽãåæ ããéãããŒãªã³ã°ãããã€ããŠãã«ãé¢ããããªãªãŒã¹æã«æ¥ç¶ãäžå®å®ã«ãªããã¢ããªã±ãŒã·ã§ã³Podãå
šãŠALB TargetGroupããåãé¢ãããäºè±¡ãçºçããŸããã CoreDNS PodãåŠçäžã®ãªã¯ãšã¹ããããã«ãé¢ãããPodãterminateãããŠããããã§ãçµäºãåŸ
æ©ãããå¿
èŠããããŸããã CoreDNSã³ã³ããã«ã¯sleepã³ãã³ãããªãã®ã§ã lameduckãªãã·ã§ã³ ãå
¥ããŠçµäºãåŸ
æ©ãããŸããã å®éã®corefileã¯ä»¥äžã®ããã«ãªããŸããããã¯çµäºã20ç§åŸ
æ©ãããèšå®ã§ãã .:53 { errors health { lameduck 20s } } EKS1.21ç°å¢ã®CoreDNSã®podé
眮æŠç¥ãæ€èšãã Hybrid EKSã«ãªããCoreDNSãEC2ããŒãäžã§åãã®ã§ãEC2ããŒãã§é害ãèµ·ããæã®ããšèæ
®ããå¿
èŠããããŸãã ç¹ã«EC2ããŒããçªç¶åæ¢ããå Žåã«ãµãŒãã¹ãžã®åœ±é¿ãæå°éã«æããå¿
èŠããããŸãã ãŸããããŒãã墿žãããå ŽåãPodãåããªãããã«ãã工倫ãå¿
èŠã«ãªããŸãã topologySpreadConstraints ã䜿ã£ãŠPodã®é
眮ã調æŽãã descheduler ã䜿ã£ãŠããŒãã墿žããæã«Podãåé
眮ãããããã«ããŸããã topologySpreadConstraints ãšã¯ topologySpreadConstraints ã¯ãPodãregionãzoneãnodeãããã³ãŠãŒã¶ãå®çŸ©ãããã¡ã€ã³ã§Podã忣ãããé«ãå¯çšæ§ãšå¹ççãªãªãœãŒã¹å©çšãå®çŸã§ããä»çµã¿ã§ãã Podããããã€ãããšãã®åããšãªããããŒãã远å ããŠãåé
眮ã¯è¡ãããŸããã å®éã«CoreDNS Podã«èšå®ããå€ãå
ã«è§£èª¬ããŸãã "topologySpreadConstraints": [ "maxSkew": 5, "topologyKey": "kubernetes.io/hostname", "whenUnsatisfiable": "DoNotSchedule" } ] topologyKey ã¯åæ£ãããåäœã§ãã kubernetes.io/hostname ã ãšããŒãåäœã§Podã忣ãããŸãã maxSkew ã¯topologykeyåå£«ãæ¯èŒãããšãã«ãé
眮podæ°ã®æå€§ãšæå°ã®å·®åã®èš±å®¹ç¯å²ã§ãããã®èšå®ã ãšãããŒãéã®Podæ°å·®åã5ãŸã§èš±å®¹ãããšããããšã§ãã whenUnsatisfiable ã¯ã maxSkew ãæºããããããªããŒãããªãå Žåã®æåãå¶åŸ¡ããŸãã DoNotSchedule ã¯ããã©ã«ãã®èšå®ã§ã maxSkew ãæºãããããªPodã®ã¹ã±ãžã¥ãŒã«ãè¡ããŸãããïŒå®éã®æåãèŠããšãåçã«é
眮ããŠãããã§ããïŒ ããã§Podã®ãããã€æã«ããŒãéã§Podãåçã«é
眮ãããããã«ãªããŸããã descheduler ãšã¯ Descheduler ã¯ãããŒãã®ç¶æ
ãèŠãŠç§»åå¯èœãªPodãèŠã€ãåºãããããéé¿ãããŸããçŸåšã®å®è£
ã§ã¯deschedulerã¯ãéå»ãããããPodã®äº€æãã¹ã±ãžã¥ãŒã«ãããéå»ããããPodã®é
眮ã¯ããã©ã«ãã®ã¹ã±ãžã¥ãŒã©ã«äŸåããŸãã å®éã«CoreDNS Podã«èšå®ããå€ãå
ã«è§£èª¬ããŸãã apiVersion: v1 kind: ConfigMap metadata: name: descheduler-policy-configmap namespace: kube-system data: policy.yaml: | apiVersion: "descheduler/v1alpha1" kind: "DeschedulerPolicy" evictSystemCriticalPods: true evictLocalStoragePods: true maxNoOfPodsToEvictPerNode: 1 nodeSelector: node-type=default strategies: "RemovePodsViolatingTopologySpreadConstraint": enabled: true params: includeSoftConstraints: false namespaces: include: - "kube-system" CoreDNS㯠kube-system ã«ããã®ã§ã evictSystemCriticalPods: true ãå¿
èŠã§ããã strategies: RemovePodsViolatingTopologySpreadConstraint ãèšå®ããããšã§ãå
ã»ã©èšå®ããtopologySpreadConstraintsãéå»ãããããªã·ãŒã«ãªããŸãã ããšã¯Deploymentã® descheduling-interval ã«èšå®ããééã§ã topologySpreadConstraints ã«éåããPodãéå»ãããããŸãã å
¬åŒ ã«ãããµã³ãã«ã¯ä»¥äžã®ããã«ãªã£ãŠããŸãã apiVersion: apps/v1 kind: Deployment metadata: name: descheduler namespace: kube-system labels: app: descheduler spec: replicas: 1 selector: matchLabels: app: descheduler template: metadata: labels: app: descheduler spec: priorityClassName: system-cluster-critical serviceAccountName: descheduler-sa containers: - name: descheduler image: k8s.gcr.io/descheduler/descheduler:v0.23.1 imagePullPolicy: IfNotPresent command: - "/bin/descheduler" args: - "--policy-config-file" - "/policy-dir/policy.yaml" - "--descheduling-interval" - "5m" - "--v" - "4" ããã§Kubernetesã®ããŒããéçšããäžã§åé¡ã«ãªããã¡ãªãPodãåãåé¡ã«ãããçšåºŠå¯Ÿå¿ã§ããŸããã Datadogã§ç£èŠãã CoreDNSã®ã¡ããªã¯ã¹ãåããããã«ãªã£ãã®ã§ãDatadogã§ç£èŠãå§ããŸããã Datadogã®Blogèšäº ãåèã«ã以äžã®ã¡ããªã¯ã¹ãç£èŠããŠããŸãã ã«ãã³å
ã¯Datadogã§ååŸã§ããCoreDNSã®ã¡ããªã¯ã¹ã§ãã corednsã®responseã®æ°(coredns.forward_response_rcode_count) corednsã®ãšã©ãŒã³ãŒã(coredns.response_code_count{rcode:serverfail}) corednsã®ãªã¯ãšã¹ãã¿ã€ã (coredns.request_duration.seconds.sum / coredns.request_duration.seconds.count) corednsã®forwardãªã¯ãšã¹ãã¿ã€ã (coredns.forward_request_duration.seconds.sum / coredns.forward_request_duration.seconds.count) ããã·ã¥ããŒããäœæããè² è·ã®å€åã远ããããã«ããŸããã ãŸãšã CoreDNSã®è² è·äœæžãè¡ã£ããããã§ãšã©ãŒæ°ãæ¿æžãå®å®çšŒåããããã«ãªããŸãããHybrid EKSã¯ããŒã å
ã§ã®è°è«ãè² è·è©Šéšãè¡ãæ¬çªå°å
¥ããçŸåšã¯æ¬çªç°å¢ã§å®å®çšŒåããŠãããŸãã çŸç¶ã«æºè¶³ããããšãªãä»ã«ãæ§ã
ãªåãçµã¿ãè¡ãªã£ãŠããã®ã§ããŸãã®æ©äŒã«å
¬éããçæ§ã®æ¥ã
ã®éçšãžã®ãã³ãã«ãªã£ããå¬ããã§ãã æåŸãŸã§ãèªã¿ããã ãæé£ã埡座ããŸããã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ã¹ã¿ã³ãã€ã®æ±äººæ
å ±å蟌ã®ä»çµã¿ãäœãçŽãã話ããåºç« ã æ±äººæ
å ±ãåãæ±ãã¹ã¿ã³ãã€ã§ã¯ã2020幎ããå幎ãããã§æ±äººæ
å ±å蟌ã®ä»çµã¿ãæŽæ¹ããŸãããæ¬èšäºã§ã¯æŠèŠãã話ãããŠã詳现ã«ã€ããŠã¯ããŒãå¥ã«å¥èšäºã«ãŠæ²èŒãããŠããã ããŸãã ã¹ã¿ã³ãã€ã«ãããæ±äººæ
å ±å蟌ãšã¯ïŒ åœç€ŸãµãŒãã¹ã¯å
šåœã®ä»äºæ
å ±ããæ±è·è
ã®ããŒãºã«ãã£ãæ±äººãæäŸãããã®ã§ãããæ±äººæ
å ±ã¯å
šåœã®äŒæ¥ãæ±äººã¡ãã£ã¢ããµã€ãããåéãããŠãããŸããã æ±äººæ
å ±å蟌 ãã¯ç€Ÿå€ã«ååšããæ±è·æ
å ±ã®åéãä¿ç®¡ã»æŽåœ¢ãæ€çŽ¢ãšã³ãžã³ãžã®indexingã®å·¥çšå
šäœãæããŸãã æã
ã«ãšã£ãŠã¯ãæ±äººæ
å ±ã¯ãååããæ±äººæ
å ±ã®å蟌ã¯ãä»å
¥ããã«åœãããã®ã§ããããæ±äººæ
å ±å蟌ããšã¯ãããã¯ãã®çåœç·ã«åœããéèŠãªä»çµã¿ã§ãããŸãã ãŸãåºåïŒæææ±äººæ ïŒã«ãã売äžãç«ãŠãŠãããåºåãžã®æ±äººåæ ãå©çã®çåœç·ã«ãªã£ãŠãããŸãã æŠèŠ 2020幎ãä»åŸã®ããžãã¹å±éãèžãŸãããããã¯ããã€ã«ã¹ããŒã³ãäœæãããã«ããããçŸç¶ã·ã¹ãã ãããã¯ãã«ååšããããã€ãã®è² åµããããžãã¹å±éã®åŸéã«ãªã£ãŠããããšãæç¢ºã«ãªããŸããã ãã§ã«å
·äœçãªå
åãçºçããŠãããŸãã æ±äººå蟌ããåºåæ²èŒãŸã§æå€§6-7æéããã æ±äººã®ãã£ãŒã«ãã倿Žããã®ã«1ã¶æããã£ã æ±äººæ
å ±ã®è«ççãªç ŽæãçºçåŸã埩æ§ãŸã§ã«1ã¶æããã£ã ãããã®äºäŸãã·ã¹ãã æ§æãããŒã¿æ§é ããå°ãåºãããæå€§ã®è² åµã¯ããæ±äººã»åºåããŒã¿ã1ç®æã§ä¿ç®¡ãããŠããããšã§ãããŒã¿ã®æè»æ§ãæ¡åŒµæ§ã«åé¡ãçºçããŠããããšããç¹ã§ãããèšãæãããšãæ±äººãåºåããŒã¿ãå¯çµåããŠããã倿Žäœæ¥ã«å¯Ÿãã圱é¿ç¯å²ãèšããããã倿Žã«ã³ã¹ãã»æéãéåžžã«ãããç¶æ
ã«ãªã£ãŠãããŸããã ã·ã³ãã«ãªãã ãã©ãæ¡åŒµæ§ãã»ãŒãªãã£ãã®ãé£ç¹ ç§éãäžããæ±ºæã¯ããæ±äººå蟌çŽåŸã®æ±äººæ
å ±ãæ§é åããŒã¿ãšããŠãã€ããšã§ãç®çå¥ïŒåºåãæ€çŽ¢ãåæãçããŒã¿ãªã©ïŒçšéã«åãããããŒã¿ãœãŒã¹ãæãŠãããã«ããããšããããšã§ãããŸãã æåã¯å
šéšçãã§æžãããã©ãããããããã€ãã®æ©èœã¯æèé¢ãããŠãããŸã ãããå®çŸãããããæ¬é¡ã§ããããæ±äººããŒã¿ã¹ãã¢åPJTããéå§ãããŸããã PJTã¡ã³ããŒãšããŠå¯ãéãããã6åã®ããŒã ãã«ããæ¹åæ§ã®ããåããããå§ãŸããçŽ4ã¶æã§æ±äººããŒã¿ã®æ§é åãè¡ãïŒjob-store PJTïŒãåŸã«3ã¶æãããŠåºåé
ä¿¡ã®ä»çµã¿ãå
šé¢æŽæ¹ããŸããïŒad-store PJTïŒã PJTå®äºåŸããéè€æé€ãå¯©æ»æ©èœã®è¿œå ãªã©ãæ°ã
ã®æ©èœã远å ããŠãããæé·å¯èœãªãããã¯ããšããŠçãŸãå€ããããšãåºæ¥ãŸããã æ¬ç·šã§ã¯ã以äžã®ç« ç«ãŠãèããŠãããå¯èœãªéãè©³çŽ°ã«æ±äººæ
å ±å蟌ã®ã話ããããŠããã ããããšæã£ãŠãããŸãã Part.1 èª²é¡æã®ç¢ºèªããèšç»çå® Part.2 éçºãããªãªãŒã¹ãž Part.3 ãªãªãŒã¹åŸã®è©± ç©æ¥µæ¡çšäžã§ã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
Cats MTL ã®ãçŽ¹ä» ã¯ããã« ã¹ã¿ã³ãã€ã§ã¯ã·ã¹ãã éçºã«äž»ã« Scala ã䜿çšããŠããŸãããŸããã®äžéšã§ã¯ãã¢ããããšãã§ã¯ãã䜿çšããŠåå®å
šã§å
ç¢ãªã·ã¹ãã ãæ§ç¯ããŠããã·ã¹ãã ããããŸãã ã¢ããããšãã§ã¯ãã®åæã«ãããŠã¯ãããããæžãããã圢ã§ã©ããã¢ãããã Eff ãªã©ããããŸãããäžæ¹ã§ Scala ã®é¢æ°åã©ã€ãã©ãªã§ãã Cats ãšã·ãŒã ã¬ã¹ã«çµ±åå¯èœã§ãã Cats MTL ãšããã©ã€ãã©ãªããããæžããããã®é¢ã§ãéå»ã®ããŒãžã§ã³ãšæ¯èŒããŠããªãåäžããŠããŸãã ããã§ã¯ã Cats MTL ãã¢ããªã±ãŒã·ã§ã³ã«ã©ã®ããã«åãå
¥ããã®ãããµã³ãã«ã³ãŒããå
ã«ç޹ä»ããŠãããŸãã æ¬æäžã®ãµã³ãã«ã³ãŒãã§äœ¿çšããåã©ã€ãã©ãªã®ããŒãžã§ã³ã¯ä»¥äžã®éãã§ãã scala : 3.1.0 cats : 2.6.1 cats-mtl : 1.2.1 cats-effect : 3.3.1 ãŸããScala ã®ã³ã³ãã€ã«ãªãã·ã§ã³ã¯ kind projector ãæå¹ã«ãããã -Ykind-projector ãå ããå¿
èŠããããŸããè©³çŽ°ãªæ
å ±ã¯äžèšURLãåç
§ããŠãã ããã https://docs.scala-lang.org/scala3/guides/migration/plugin-kind-projector.html Cats MTL ãšã¯ Cats MTL (Monad Transformer Library) ã¯ãã®åã®éãScalaã®é¢æ°åã©ã€ãã©ãªã§ãã Cats ã® Applicative ãªã©ã«å¯Ÿå¿ããã¢ãããã©ã³ã¹ãã©ãŒããŒçšã®åã¯ã©ã¹ãæäŸããã©ã€ãã©ãªã§ãã äŸãã°ãäžèšã®ããã«ã¢ãããã©ã³ã¹ãã©ãŒããŒãè€æ°äœ¿çšããå Žåããã¹ãããã¢ãããã©ã³ã¹ãã©ãŒããŒããã®ãŸãŸäœ¿çšãããšã³ãŒããéåžžã«è€éã«ãªã£ãŠããŸããŸãã import cats.data._ def checkState: EitherT[StateT[List, Int, ?], Exception, String ] = for { currentState <- EitherT.liftF(StateT.get[List, Int]) result <- if (currentState > 10 ) EitherT.leftT[StateT[List, Int, ?], String ]( new Exception( "Too large" )) else EitherT.rightT[StateT[List, Int, ?], Exception]( "All good" ) } yield result Cats MTL ã§ã¯ããã®ãããªåé¡ã解決ãã¢ãããã©ã³ã¹ãã©ãŒããŒããã³ããªã³ã°ããã³ãŒããæããããšã§ãã³ãŒãã®èšè¿°æ§ãå¯èªæ§ãé«ããŸãã import cats.MonadError import cats.syntax.all._ import cats.mtl.Stateful def checkState[F[_]](implicit S: Stateful[F, Int], E: MonadError[F, Exception]): F[ String ] = for { currentState <- S.get result <- if (currentState > 10 ) E.raiseError( new Exception( "Too large" )) else E.pure( "All good" ) } yield result åãå
容ã®ã³ãŒããéåžžã«èŠããããªããŸããã ãŠãŒã¹ã±ãŒã¹ Cats MTL ã§æäŸãããåã¯ã©ã¹ã®å
ãã¢ããªã±ãŒã·ã§ã³å
ã§ããå©çšããã Ask ãš Raise ã«ã€ããŠãµã³ãã«ã³ãŒãã亀ããŠç޹ä»ããŠãããŸãã ããã§ã¯ãIDã«äžèŽãããŠãŒã¶ãŒæ
å ±ãååŸããç¹å®ã®æ¡ä»¶ã«é©åããã°ãŠãŒã¶ãŒæ
å ±ããã®ãŸãŸè¿ããé©åããªããã°ãšã©ãŒãè¿ããšããç°¡å㪠ãŠãŒã¹ãŒã±ãŒã¹ãäŸãšããŠèããŠã¿ãŸãã Ask 㯠Kleisli#ask ãåã¯ã©ã¹ãšããŠè¡šãããã®ã§ãäœãããã®å€ãä¿æãããããèªã¿åºããŠå©çšããããã«äœ¿ãããŸãã ãã®åã¯ã©ã¹ãå©çšããããšã§ãåŠçã®äžã§åçã«ã¢ããªã±ãŒã·ã§ã³ã®èšå®ãèªã¿èŸŒãã ããäŸåããã€ã³ã¹ã¿ã³ã¹ã泚å
¥(DI)ãããã§ããŸãã import cats._ import cats.syntax.all._ import cats.mtl._ object UserUseCase: def user[F[_]: Monad]( id: UserId )(implicit A: Ask[F, UserAlgebra] ): F[IdentifiedUser] = for { alg <- A.ask user <- alg.user[F](id) } yield user Raise 㯠Functor ã«å¯ŸããŠäŸå€ããšã©ãŒã®è³ªã衚ãåïŒäŸãã° Either[E, A] ãçºçãããæ©èœãæäŸãããã®ã§ãã ApplicativeError#mapError ãšåçã®æ©èœãæäŸããŸãããå㯠ApplicativeError ã§ããå¿
èŠã¯ãããŸããã ãã®åã¯ã©ã¹ãå©çšããããšã§ãåŠçæ¡ä»¶ã«ãã£ãŠãšã©ãŒãšã㊠Left ãçæã§ããŸãã ç¹å®ã®æ¡ä»¶ã«é©åããªãå Žåã«ãšã©ãŒãè¿ãããšãã仿§ã Raise ã䜿çšããŠå®è£
ããŠã¿ãŸãããã import cats._ import cats.syntax.all._ import cats.mtl._ object UserUseCase: def user[F[_]: Monad]( id: UserId )(implicit R: Raise[F, UserError], A: Ask[F, UserAlgebra] ): F[IdentifiedUser] = for { alg <- A.ask user <- alg.user[F](id) identified <- if (user.invalid) R.raise(UserError(id)) else user } yield identified äžèšã§äœæããããã°ã©ã ãå®è¡ããŸããå®è¡çµæã å®è¡ããã¡ãœããã®ååŒæ°ã«ã¯åã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã§ãã EitherT ãš Kleisli ãæå®ããŸãã(å®éã«ã¯ååŒæ°ã¯å¥é type ãšããŠå®£èšããŠãããšèŠããããªããŸãã) å®è¡çµæãšããŠååŸã§ãã EitherT[Kleisli[...]] ã«å¯Ÿã㊠EitherT#value ããã³ Kleisli#run ãè¡ããæçµçã« Either[UserError, IdentifiedUser] ãååŸããŸãã import cats._ import cats.data._ import cats.effect.IO object Main: def main(args: List[ String ]) = UserUseCase.user[EitherT[Kleisli[IO, UserAlgebra, _], UserError, _]] (UserId(args( 0 ))) .value .run(UserAlgebra) ãããã« Cats MTLã䜿çšããããšã§ãã³ãŒãã®èšè¿°ãšå®è¡ãããŸãåé¢ãã€ã€ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«å¿
èŠãšãªãæ©èœ(ãšã©ãŒåŠçãäŸåæ§ã®æ³šå
¥ãªã©)ãç°¡æãªã³ãŒãã§å®çŸã§ããŸããã ãŸã ã¢ãããã©ã³ã¹ãã©ãŒããŒã® lift ãè¡ãããšããå¹³åŠãª for æã®ã¿ã§UseCase ãèšè¿°ããããšãåºæ¥ãèšè¿°æ§ãå¯èªæ§ããšãã«å€§ããåäžããŸããã ã¢ããã®æ§è³ªãäœ¿ãæ¹ãåŠç¿ããŠããã«ã¯ãããªãã«ã³ã¹ããããããŸãããCats MTL ã®æ§ãªã©ã€ãã©ãªãå°å
¥ããããšã§ããŸãã¢ãããã¢ãããã©ã³ã¹ãã©ãŒããŒã«å¯Ÿããé è©£ãç¡ããŠãã¢ããªã±ãŒã·ã§ã³ã® æ©èœãèšè¿°æ§ãæãªãããšç¡ãé©åãªå¶çŽãæããã匷ãã³ãŒããæžãããšãã§ããŸãã åç
§ Cats MTL: https://typelevel.org/cats-mtl/ ç©æ¥µæ¡çšäžã§ã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ãã®èšäºã§ã¯ãQAããŒã ãçŸåšé²è¡åœ¢ã§åãçµãã§ããäžå
·åãã±ããæ£åžã®åãçµã¿ã«ã€ããŠã話ãããŸãã ã¯ããã« ããã«ã¡ã·ã¹ãã éçºã«ãããŠããã°ã远跡ã»ç®¡çã»åæããããšã¯éåžžã«éèŠã§ãã ãã®ãããJIRAãBacklogãRedmineãªã©BTSïŒãã°ã»ãã©ããã³ã°ã»ã·ã¹ãã ïŒã®éçšã¯å¿
èŠäžå¯æ¬ ã§ãã ãã±ããã起祚ãããç·šéããããçãããçµéšããããšæããŸãã ãã®äžã§ããããªç¶æ³ã«åºããããããšã¯ãªãã§ããããïŒ TOPããŒãžã«è¡šç€ºãããã倥ããæ°ã®ãªãŒãã³ãªãã±ãã X幎åã«èµ·ç¥šãããŠããŸã æ®ã£ãŠãããã æ
åœè
ãããããªããŠè¿·åã®ãã±ãã ããã€ãçŽããã®ãŸãŸäžçåããªããã±ãã ã¹ã¿ã³ãã€ãäŸå€ã§ã¯ãããŸããã 2021幎8ææç¹ã§ããã4å²ã®ãã±ãããæã€ããã®ãŸãŸãæŸçœ®ãããŠããŸããã éçºãé²ãã«ã€ãããã±ããã¯å¢ãç¶ããŸãã å幎åŸãæ°å¹ŽåŸãäºå¹ŽåŸãå幎åŸã¯ã©ããªã£ãŠããŸãã®ã§ããããïŒ ã©ãã«ãããã ã©ãããŠããããšæã£ãã®ïŒ ãããžã§ã¯ãã®é¢šéããè¯ããããããã§ããå
·äœçã«ã¯ããçŸåãããã°ãããã€ã§ãã©ã®çšåºŠã®åœ±é¿ãããã®ãç¬æã«å€å¥ã§ããç¶æ
ããçæ³ãšããŠããŸããããã«ãããQAã®ã¿ãªããå
šãŠã®ã¡ã³ããŒãäžå
·åã®çŸç¶ãæ£ç¢ºã«ææ¡ã§ããå
±éã®å顿èãæãŠããšèããŠããŸãã ã©ããããïŒ ãçŽãäºå®ã®ãããã±ããã ããæ®ã£ãŠããç¶æ
ãã«ãããã ãã§ããã ãããã«è¿ã¥ãããã ããã§ããããããããŸãã 1. ã¿ããªã§æ£åžããŒãã£ã³ã° POïŒProduct OwnerïŒããšã³ãžãã¢ãQAã®åããŒã ããã¡ã³ããŒãåãããªãŒãã³äžã®ãã±ããã®åŠéãæ±ºããMTGã宿œããŸããã 確ãã«åŠéã¯æ±ºããããã®ã§ããã30åã§4ä»¶ãé床ã ã£ããããæ®ã£ãŠãããã±ãããã¹ãŠã«å®æœããã®ã¯è² æ
ã倧ããããŸããããŸãããã±ããã®åŠéã¯POäž»å°ã§æ±ºããããšãå€ããå
šå¡ã®æèŠãåãå¿
èŠæ§ãèãïŒMTGã§ããæçŸ©ããªãããšããããšã«æ°ã¥ããŸããã 2. æ£åžãªã¹ãäœæ äžèšã®åçãæŽ»ãããéåæã³ãã¥ãã±ãŒã·ã§ã³ã§ã®æ£åžã«åãæ¿ããŸããã 察象ãšãããã±ããã®ãªã¹ããäœããåã
ã®ãã±ããã«ãããQAã®æžå¿µäºé
ïŒäžå
·åãæ®ã£ãŠããããšã«ãããŠãŒã¶ãŒãžã®æªåœ±é¿ïŒãèšèŒããŸããã POã¯æžå¿µäºé
ãåºã«ãæ¹ä¿®äºå®ãããªã¹ã¯èš±å®¹ãã®å€æãäžããããªã¹ã¯èš±å®¹ããšããããã±ããã¯QAåŽã§ã¯ããŒãºã§ããããã«ãªããŸããã ãããšãã®èãæ¹ ãã±ããã¯ãã€éããïŒ ãã±ãããã§ããæ¡ä»¶ã¯ããããªããŠããŸãããäžå
·åãèŠã€ããæãã§ãã äžæ¹ããã±ãããéããæ¡ä»¶ã¯ããã€ããããŸãã ãäžå
·åãçŽã£ãããšã確èªããæããäžå
·åãæ¹ä¿®ããªãããšã決ããæããªã©ãªã©ã åè
ã¯æçœã§ãããåŸè
ã¯èª°ãã»ãã€æ±ºããã®ã§ãããïŒ ã¹ã¿ã³ãã€ã§ã¯POãäž»å°ããŠéææ±ºå®ãããããPOãžã®é£çµ¡ã«éç¹ã眮ããŠããŸãã ããã€ããã¯æ¥ãªã éçºã»ãªãªãŒã¹ãæ¢ããŠæ¢åäžå
·åã®æ¹ä¿®ã®ã¿è¡ãã¿ã€ãã³ã°ããããªããšãããã倧åã®çŸå Žã§ããã€ãçŽããã¯ãã€ãŸã§ãçŽããŸããããŸããæéãéèŠåºŠã決ãŸããªããã±ããã¯ããããåªå
é äœã極端ã«äœãïŒæ¹ä¿®ããæçŸ©ãèãããšãèšããŸãããã®ãããªãã±ãããçãŸããèæ¯ãšããŠãQAãéå°å質ãªèãæ¹ãããŠããå ŽåããããšæããŸãã éäžå£°ãäžããŠå€æãä»°ããããæ¹ä¿®ããªãããšã決ããŠéãããããã«ããŸãã è¿·ã£ããéãã éšå±ã®æé€ãããŠãæã«ããããŸãããïŒ ãæšãŠããããªâŠâŠã§ãããã€ã䜿ããããããªããæ®ããïŒã â䜿ããŸããã ãã±ãããåãã§ããã䜿ããããããªããã¯äœ¿ããŸããã è¿·ã£ããïŒãªãŒãã³ã«ããŠããçç±ãèšããªããªãã¯ããŒãºããŸãããã 幞ãããã±ããã¯ã¢ããšéã£ãŠåŸããåãªãŒãã³ã§ããŸãã ããã€ãçŽããã®ããã€ãããæ¥ãå Žåããåœåãšã¯ç¶æ³ãéããããããªãã®ã§æ°ãããã±ãããäœã£ãŠãããã§ãããã ãããã«ãããæ®ããŠããçç±ãã¯ã£ããããªããã±ããã¯éããŸãããã ãã ããååçã«ãçŽã£ãããçŽããªããšæ±ºãããã®ããããã§éããã¹ãã§ãã åŸè
ã®å Žåãäžå
·åãæ¹ä¿®ããŠããªããšãããªã¹ã¯ãããæšããã¡ããšå
±æããŸãããã ãã±ãããéãããããŸããQAãäžå
·åã黿®ºããŠããŸã£ãŠã¯æ¬æ«è»¢åã§ãã ãã£ãŠã¿ãçµæ 掻åãéå§ããçµæãäžå
·åïŒãã±ããïŒã®ã¯ããŒãºçã¯é 調ã«åäžãã4ãæåŸã«ã¯80ïŒ
以äžãéæããŸããã ãã®é«ãæ°Žæºãç¶æããããã«ã¯ãç¶ç¶çãªåãçµã¿ãå¿
èŠã§ãã ãããã« ããã±ããã®æ£åžã§ãPJã®èŠéããè¯ããããããšããã¢ãããŒã®ããšãããçšåºŠã®ææãåºãããšãã§ããŸããã倧äºãªã®ã¯ãPOãå·»ã蟌ãå§¿å¢ããšãç¶ç¶çãªåãçµã¿ãã§ãã ãããããQAãäž»äœãšãªã£ãŠåãçµãã§ãããŸãã ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com
ã¯ããã« æ±äºº æ€çŽ¢ãšã³ãžã³ ã®ã¹ã¿ã³ãã€ã§ã¯å
šåœã®ä»äºæ
å ±ããèªåã®ããŒãºã«ãã£ãæé©ãªæ±äººãæ¢ãããšãã§ããŸãã ãã®èšäºã§ã¯ãã¹ã¿ã³ãã€ã®æ€çŽ¢ã®ä»çµã¿ã玹ä»ããŸãã æ€çŽ¢ãšã³ãžã³ ã®æŠèŠ äžè¬çã« æ€çŽ¢ãšã³ãžã³ ã¯è€æ°ã®ãã§ãŒãºããæãç«ã€ã·ã¹ãã ã§ãã 以äžã®å³ã¯ æ€çŽ¢ãšã³ãžã³ ãæ§æãããã§ãŒãºã衚ããŠããŸãã æ€çŽ¢ãšã³ãžã³ ã«ã¯ã倧ããåããŠããŒã¿ã®åéãããŒã¿ã®ã€ã³ãã¯ã·ã³ã°ãæ€çŽ¢ã®ïŒã€ã®ãã§ãŒãºããããŸãã ããŒã¿ã®åéãã§ãŒãºã§ã¯æ€çŽ¢å¯Ÿè±¡ãšããããŒã¿ãããŸããŸãªãœãŒã¹ããéããŠããŸããã¹ã¿ã³ãã€ã®å Žåãåãæ±ãããŒã¿ã¯æ±äººç¥šã§ãã ããŒã¿ã®ã€ã³ãã¯ã·ã³ã°ãã§ãŒã¹ã§ã¯ãååŸããŠããããŒã¿ã§ æ€çŽ¢ãšã³ãžã³ ã®ã€ã³ããã¯ã¹ãæ§ç¯ããŸãã ã€ã³ããã¯ã¹ãšã¯çŽ¢åŒãšããæå³ã§ãæ€çŽ¢ã®ããã«äºåæºåããŠããããŒã¿ã§ãã æ€çŽ¢ãšã³ãžã³ ã¯ã€ã³ããã¯ã¹ã掻çšããããšã§é«éã«æ€çŽ¢çµæãè¿ãããšãã§ããŸãã æ€çŽ¢ãã§ãŒãºã§ã¯ã æ€çŽ¢ãšã³ãžã³ ããŠãŒã¶ãããªã¯ ãšã¹ ããåãåã£ãéã«å®éã«æ€çŽ¢ã宿œãããã§ãŒãºã§ãã æ€çŽ¢ãã§ãŒãºã¯ããã«ã¯ãšãªãã³ããªã³ã°ããããã³ã°ãã©ã³ãã³ã°ãšããïŒã€ã®ã¹ãããã«åãããŸãã ã¯ãšãªãã³ããªã³ã°ã§ã¯ãŠãŒã¶ã æ€çŽ¢ãšã³ãžã³ ã«å
¥åããã¯ãšãªã®åæããããªããæ€çŽ¢ã«é©ãã圢ãžã¯ãšãªã倿ããŸãã ãããã³ã°ã§ã¯ æ€çŽ¢ãšã³ãžã³ ã®å
šãŠã®ããŒã¿ã®äžããã¯ãšãªã«åãããŒã¿ãçµããã¿æ€çŽ¢çµæãšããŠååŸããŸãã æåŸã®ã©ã³ãã³ã°ã§ã¯ãååŸããããŒã¿ããŠãŒã¶ã®ããŒãºã«ãã£ãé çªãžäžŠã³æ¿ããŸãã 以éã§ã¯ã æ€çŽ¢ãšã³ãžã³ ã®ãããããã§ãŒãºã«ã€ããŠãã¹ã¿ã³ãã€ã§ã¯ã©ã®ãããªä»çµã¿ã«ãªã£ãŠãããã玹ä»ããŸãã ã¹ã¿ã³ãã€ã® æ€çŽ¢ãšã³ãžã³ ã®ä»çµã¿ ããŒã¿ã®åé ã¹ã¿ã³ãã€ã§æ±ãæ±äººç¥šã¯ããŸããŸãªãšããããååŸããŠããŸããååŸå
ã®çš®é¡ãšããŠã¯ã ã¯ããŒãªã³ã°ã XML ãã£ãŒããã¹ã¿ã³ãã€ã§æ±äººç¥šãäœæããããªã©ããããŸãã ã¯ããŒãªã³ã°ã§ã¯ã ã¯ããŒã©ãŒ ãšããããã°ã©ã ãæ±äººç¥šãæ²èŒããŠãããµã€ãã®HTMLãååŸã»è§£æããããŒã¿ãæœåºããŠæ±äººç¥šãéããŠããŸãã ãµã€ãããšã«ããŒãžã®äœããç°ãªãã®ã§ã ã¯ããŒã©ãŒ ã¯ããŒãžã®ã©ã®éšåãèŠãŠæ
å ±ãæœåºããããæ£ããå€å®ããããŒã¿ãæœåºããå¿
èŠããããŸãã XML ãã£ãŒãã§ã¯ãæ±äººç¥šæ²èŒå
ã®äŒæ¥ã®ãµãŒããŒã«ããããŒã¿ãååŸããããã¹ã¿ã³ãã€ã®ãµãŒããŒã«æ±äººç¥šããŒã¿ã眮ããŠããã£ããããããšã§æ±äººç¥šããŒã¿ãååŸããŸãããã®æ¹æ³ã§ååŸããããŒã¿ã¯ XML ãã¡ã€ã«åœ¢åŒã§æ±ããŸãã ãŸããã¹ã¿ã³ãã€ãæäŸããŠããæ±äººç¥šãäœæããæ©èœã䜿ãããšãå¯èœã§ãã ãã®å Žåã¯çŽæ¥æ±äººç¥šããŒã¿ãã¹ã¿ã³ãã€å
ã®ããŒã¿ããŒã¹ã«ä¿åãããããããããããŒã¿ãååŸããŸãã ããŒã¿ã®ã€ã³ãã¯ã·ã³ã° äžèšã®ããã«ããŠéããŠããããŒã¿ãæ€çŽ¢ã·ã¹ãã ã®ã€ã³ããã¯ã¹ã«ç»é²ããã®ã§ããã ããŒã¿ã®åœ¢åŒãæ±äººç¥šã®æžãæ¹ãããããã§ç°ãªããããããŒã¿ãã€ã³ãã¯ã·ã³ã°ããåã«å
éšã§æ±ãããã圢åŒã«å€æããŠããŸãã ããã«ãããäŸãã°ã絊äžãæ°å€åã«å€æããããšã§æçµŠâå以äžã®æ±äººç¥šã ãçµã蟌ããšãã£ãããšãã§ããããã«ããŸãã ãŸããæ±äººç¥šããšã«æ€çŽ¢ã§äœ¿çšããããã®è¿œå ã®æ
å ±ã®ä»äžãè¡ããŸãã å
·äœçã«ã¯ãæ±äººç¥šãäžå®æéã«äœåã¯ãªãã¯ãããããšãã£ãå®çžŸããŒã¿ããæ±äººç¥šã®ããŒã¿ããæšæž¬ããæ±äººã®ã«ããŽãªãªã©ã§ãã ããã¯ããããã³ã°ã®ç²ŸåºŠã®æ¹åãã©ã³ãã³ã°ã®æ¹åã®ããã«ãåŸè¿°ãã æ©æ¢°åŠç¿ ã©ã³ãã³ã°ã¢ãã«ã®ç¹åŸŽéããŒã¿ãšããŠäœ¿çšãããŸãã ãã®ããã«ããŠãæ±äººç¥šããŒã¿ã®ã€ã³ãã¯ã·ã³ã°ãè¡ã£ãŠããã®ã§ããã æ±äººç¥šããŒã¿ã®ç¹åŸŽãšããŠæŽæ°é »åºŠãé«ããšããããšã«ã泚æããªããã°ãªããŸããã æ±äººç¥šã¯ãäŒæ¥ãæ±è·è
ãæ¡çšã§ããæç¹ã§ç¡å¹ã«ãªã£ãŠããŸããŸãã ãã®ãããçµäºããæ±äººãåé€ãæ€çŽ¢çµæãžè¡šç€ºãããªãããã«ããªããšãããŸããã ãŸããæ±äººç¥šã®æ
å ±ãæŽæ°ãããå Žåãã€ã³ããã¯ã¹ã«ãçŽ æ©ãåæ ãããå¿
èŠããããŸãã ãã®ããã«ã倧éã®æ±äººç¥šããŒã¿ãçŽ æ©ãåŠçããå¿
èŠãããããã ã€ã³ãã¯ã·ã³ã°ã®å®è£
ã§ã¯ã¹ããªãŒãã³ã°åŠçãè¡ããªã©æ§ã
ãªå·¥å€«ãããŠããŸãã æ€çŽ¢ ãããŸã§ã¯ãæ€çŽ¢ã宿œããåã®ããŒã¿ãæºåãããã§ãŒãºã説æããŸããã ããããã¯ãå®éã«ãŠãŒã¶ãæ±äººç¥šãæ€çŽ¢ã宿œããéã«è¡ãããåŠçã説æããŠãããŸãã ã¯ãšãªãã³ããªã³ã° ãŠãŒã¶ãå
¥åããã¯ãšãªã¯ãŸãæåã«ããã¯ãšã³ãã® API ã«æž¡ãããŸãã ããã§ãåãåã£ãã¯ãšãªãæ€çŽ¢ã·ã¹ãã ã§äœ¿çšãã圢åŒã«å€æããŸãã ãŸããåã«å€æããã ãã§ã¯ãªããæ€çŽ¢åè³ªãæ¹åããããã«ããŸããŸãªåŠçã宿œããŠããŸãã äŸãã°ãã¯ãšãªã«äŒç€Ÿåãå«ãŸããŠããå Žåããã®éšåã ãæœåºããŠã€ã³ããã¯ã¹ã®äŒç€Ÿåã®ãã£ãŒã«ããžããããããããã«ããŸãããŸããéçšåœ¢æ
ã«é¢ããæååãå«ãŸããŠããå Žåãå
éšçãªã³ãŒã衚çŸã«å€æããããšã§ãæååãå®å
šã«äžèŽããŠããªãå Žåã§ãåãæå³ã®éçšåœ¢æ
ã®æ±äººç¥šãååŸã§ããããã«ããŠããŸãããã®ããã«ããŠãŒã¶ãå
¥åããã¯ãšãªãåæãã»é©åãªåŠçãæœãããšã¯æ€çŽ¢çµæã®å質ãåäžãããããã«éåžžã«éèŠã§ãã ãããã³ã° ããããã¯ãæ€çŽ¢ã·ã¹ãã ã®å
éšã§å®æœãããåŠçã«ãªããŸãã API ã§åŠçãããã¯ãšãªãæ€çŽ¢ã·ã¹ãã ã«å
¥åããããšã æ€çŽ¢ã·ã¹ãã å
éšã§ã¯ãæ€çŽ¢çµæã®åè£ãšãªãæ±äººç¥šãååŸããŸãã ããã§ã¯ãã§ããã ãé«éã«ãŠãŒã¶ãæ±ããŠãããã®ã«ããããããã®ã ããéäžè¶³ãªãååŸããããšãæ±ããããŸãã ã¹ã¿ã³ãã€ã§ã¯æ€çŽ¢ã·ã¹ãã ã« Yahoo! Japan ãéçºããŠãã ABYSS ã䜿çšããŠããŸãã ABYSS㯠Yahoo! Japan ã®ããŸããŸãªãµãŒãã¹ã§å©çšãããŠãããABYSSãå©çšããããšã§ããããŸã§ Yahoo! Japan ã®äžã§å¹ãããŠããããŸããŸãªæ€çŽ¢æè¡ã®ããŠããŠãæ€çŽ¢åè³ªã®æ¹åã«åãå
¥ããããšãã§ããŠããŸãããŸããåŸè¿°ããæ€çŽ¢çšã®ç¬èª ãã©ã°ã€ã³ ãå©çšããããšã§ æ©æ¢°åŠç¿ ãçšããã©ã³ãã³ã°ã®æ¹åãã§ããããã«ãªã£ãŠããŸãã ã©ã³ãã³ã° ãããã³ã°ã®åŸã«ååŸããçµæãäžŠã¹æ¿ããŸãã æ€çŽ¢ãšã³ãžã³ ã¯ãŠãŒã¶ãå
¥åããã¯ãšãªã«å¯ŸããŠããããããçµæããŠãŒã¶ã®ããŒãºã«ãã£ãé çªã§è¿ãããšãå¿
èŠã§ãããªããªããæ€çŽ¢ã«ãããããçµæããããããã£ãŠããŠãŒã¶ã¯å
šãŠãèŠãããšãã§ããªãããã§ãããã®ãããæ€çŽ¢çµæã®ã©ã³ãã³ã°ã®æ¹åãéåžžã«éèŠã«ãªããŸãã ã©ã³ãã³ã°ã®æ¹åæ¹æ³ãšããŠã æ©æ¢°åŠç¿ ã䜿ã£ãŠæ€çŽ¢çµæãäžŠã³æ¿ãã ã©ã³ã¯ãã³ã°åŠç¿ ãšããææ³ãããç¥ãããŠããŸããã©ã³ã¯ãã³ã°åŠç¿ã§ã¯ã æ©æ¢°åŠç¿ ã¢ãã«ãæ€çŽ¢çµæã®äžŠã³é ãæé©ã«ãªãããã«åŠç¿ãããŸããæ€çŽ¢æã«ã¯ãã®åŠç¿æžã¿ã¢ãã«ã䜿çšããŠãæ€çŽ¢çµæãäžŠã¹æ¿ããŸãã ã¹ã¿ã³ãã€ã§ã¯ Yahoo! Japan ã§ç¬èªéçºããŠããSolrã® ãã©ã°ã€ã³ ãå©çšããŠã æ©æ¢°åŠç¿ ã¢ãã«ã«ããã©ã³ãã³ã°ãå®çŸããŠããŸããã©ã³ãã³ã°ã¢ãã«ã®ç¹åŸŽéãšããŠã¯ãæ±äººç¥šèªäœã®ç¹åŸŽã«å ããŠãã€ã³ãã¯ã·ã³ã°ãã§ãŒãºã®èª¬æã§è¿°ã¹ãããã«ããã°ããéèšããæ±äººç¥šããšã®ã¯ãªãã¯æ°ãªã©ã®å®çžŸããŒã¿ã䜿çšããŠããŸãã ãŸãšã ãã®èšäºã§ã¯ãã¹ã¿ã³ãã€ã®æ€çŽ¢ã®ä»çµã¿ã玹ä»ããŸããã æ€çŽ¢ãšã³ãžã³ ã¯è€æ°ã®ãã§ãŒãºããæ§æãããã·ã¹ãã ã§ããã ããããã®ãã§ãŒãºã§ãããŸããŸãªæè¡ç課é¡ãååšããŸãã ã¹ã¿ã³ãã€ã¯ãããã®èª²é¡ã«å¯ŸããŠå°éã®ããŒã ãè€æ°ååšããŠããã æ¥ã
解決ã«åãçµãã§ããŸããåããŒã ãã©ã®ãããªããšããã£ãŠãããã¯ã ããããã®ããŒã ã®èšäºãã確èªãã ãã! ã¹ã¿ã³ãã€ã®ãããã¯ããçµç¹ã«ã€ããŠè©³ããç¥ãããæ¹ã¯ãæ°è»œã«ãçžè«ãã ããã www.wantedly.com