第äºå ã²ãŒã ãµãŒãå匷äŒ
6æ18æ¥ïŒåïŒ13æããã第äºå ã²ãŒã ãµãŒãå匷äŒããéå¬ãããŸããã

ãã®æ¥ã®ã€ãã³ãã«ã¯çŽ55åãéçµãåå è ã®ã»ãŒå šå¡ããšã³ãžãã¢ã§ãã
ãªã¢ã«ã¿ã€ã ãµãŒãã«é¢ãã話ãäžå¿ã«ã3åãè¬æŒãããŸããã
ç»å£è ãšããŒãã¯ããããäžèšã®éãã
ãEmbulkãšDigdagãšããŒã¿åæåºç€ãšã
ãã¬ãžã£ãŒããŒã¿æ ªåŒäŒç€Ÿ 髿© éããïŒ@nora96oïŒ
ããªã¢ã«ã¿ã€ã ãµãŒãã
æ ªåŒäŒç€Ÿgumi æž
æ°Ž äœåŸããïŒ@yamionpïŒ
ããªã¢ã«ã¿ã€ã éä¿¡ã²ãŒã ã®å®è£
äŸã
æ ªåŒäŒç€ŸAiming å±±è€ æºä¹ãã
ããã§ã¯ã¹ã¿ãŒãã§ãïŒ
EmbulkãšDigdagãšããŒã¿åæåºç€ãš

髿©éïŒããã¯ãã»ãšããïŒïŒãã¬ãžã£ãŒããŒã¿æ ªåŒäŒç€Ÿ ãµããŒããšã³ãžãã¢ãããŒãžã£ãŒãå¥è¯å
端ç§åŠæè¡å€§åŠé¢å€§åŠã忥ããåŸããµã€ãªã¹ãã¯ãããžãŒæ ªåŒäŒç€Ÿã§ã®å€åãçµãŠ2015幎ã«ãã¬ãžã£ãŒããŒã¿ãžå
¥ç€Ÿã
1人ç®ã®ç»å£è ã¯ããã¬ãžã£ãŒããŒã¿æ ªåŒäŒç€Ÿã®é«æ©éãããããŒã¿åæåºç€ãæ®æ®µè§Šã£ãŠããªã人ã察象ãšãã髿©ããã®è¬æŒã§ã¯ãäž»ã«äžèš3ç¹ã«ã€ããŠã®ã話ããããŸããã
- ãªã³ã©ã€ã³ã²ãŒã ãšããŒã¿åæåºç€ã®é¢ãã
- ãEmbulkããã§ããããš
- ãDigdagããã§ããããš
ããŒã¿åæåºç€ãå¿ èŠãªïŒã€ã®çç±

ãªã³ã©ã€ã³ã²ãŒã ã®éå¶ã«ãããŠããŒã¿åæåºç€ã¯æ¬ ãããªããã®ãšãªã£ãŠããŠããŸãããã®èæ¯ã«ã€ããŠé«æ©ããã¯3ã€ã®çç±ã説æããŸãã
ã»çŸç¶ãç¥ããã
ãŸããã¢ã¯ã»ã¹UUæ°ãç¶ç¶çã課éé¡ã課éçãªã©ã®ãåºæ¬çãªKPIããå§ãããã€ãã³ãåå çããã¹ããŒã¿ã¹ã®æšç§»ããªã©ã®çŸç¶ãææ¡ããããã«ããŒã¿åæåºç€ã¯äœ¿ãããŠããŸãã
ã»ããŒã¿åæã®æµããã¹ã ãŒãºã«ãããã
çŸç¶ãææ¡ããæ¬¡ã«è¡ãã®ã¯ãããŒã¿ã®åæã§ããã顧客ã®åé¡ããã¿ãŒã²ããã®æ±ºå®ããã¿ãŒã²ããã®è¡å远跡ããä»®èª¬äœæããä»®èª¬ã®æ€èšŒããªã©ã«ãããŒã¿åæåºç€ã䜿ãããŸãã
ã»ããŒã¿ã®æ°äž»å
çµå¶å±€ãå§ããã©ã®è·çš®ã§ãããŒã¿ãå©çšããæ©äŒãå¢ããŠããŸããããžã¥ã¢ã«åãè¡ããªã©ã誰ã§ããããããã圢ã§ããŒã¿ãå©çšããããã«ã¯ããŒã¿åæåºç€ã®å°å
¥ãå¿
èŠã§ãã
ãã¬ãžã£ãŒããŒã¿ã§ã¯ãããããåæåºç€ãæ¯ããããã«ãFluentdããEmbulkããDigdagããšãã£ãOSSïŒãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ïŒãéçºã»æäŸããŠããŸãã
ãEmbulkãã§ã§ããããš

ç¶ããŠã髿©ããã¯ãEmbulkãã«ã€ããŠç޹ä»ããŸãã
ãEmbulkãã¯ãããå ŽæãAãããå¥ã®å ŽæãBããžã¬ã³ãŒãã転éããããã®ãªãŒãã³ãœãŒã¹ã®ããã«ã¯è»¢éããŒã«ãã§ãããã®å€§ããªç¹åŸŽã¯ãã©ã°ã€ã³æ©æ§ã§ããããšãããã«ãããAããšãBãã®å€çšãªçµã¿åããããµããŒãããŸãã
ãã«ã¯è»¢éãè¡ãäžã§ãäžè¬çã«ã¯æ¬¡ã®ãããªç¹ãé£ãããšèšãããŠããŸãã
ã»å
¥åããŒã¿ã®æ£èŠå
nullãæ¥ä»ãæ¹è¡ããšã¹ã±ãŒããæåã³ãŒããªã©ãã©ãŒãããã®ããªãšãŒã·ã§ã³ãå€ãããŒã¿ãã¯ã¬ã³ãžã³ã°ããé£ããã
ã»ãšã©ãŒåŠç
å£ããŠããŸã£ãäŸå€å€ã®æ±ããéè€ããŒã¿è»¢éã®åé¿ããããã¯ãŒã¯é害ããã®åŸ©æ§ãªã©ã®ãšã©ãŒãåŠçããé£ããã
ã»ã¡ã³ããã³ã¹
ç¶ç¶çãªåäœã確ä¿ãããã転éèŠä»¶ã®å€æŽã«å¯Ÿãã察å¿ã®é£ããã
ã»ããã©ãŒãã³ã¹
å¢å€§ããããŒã¿éã«å¯ŸããŠæ§èœãä¿ã€é£ããã
ãEmbulkãã¯ãããã£ãåé¡ã解決ããããã«éçºãããŸãããããŒã¿ãã¡ã€ã«ãå°ãã ãèªã¿èŸŒãã§ããŒã¿å®çŸ©ãäºæž¬ããŠããããguessããå®éã«ããŒã¿è»¢éãè¡ãåã«ããŒã¿ãèªã¿èŸŒãã§ã¿ããpreviewããšãã£ãããEmbulkãç¬èªã®æ©èœããã«ã¯è»¢éã容æã«ããŸãã
髿©ããã¯å®éã«ãguessãããpreviewãã䜿ã£ãäŸããã¢ã§ç޹ä»ããŸãã
泚ç®ã®æ°OSSãDigdagãã£ãŠïŒ

ãã¡ãããEmbulkãã§ãå šãŠã®åé¡ã解決ã§ããããã§ã¯ãããŸããã äŸãã°ãäºååŠçã»äºåŸåŠçãšãã£ããåäœåŠçãã¬ãŒã ã¯ãŒã¯ããžã§ããã¥ãŒãç¶ãããå®è¡ãããããšãªã©ã«èª²é¡ããããšãŠãŒã¶ãŒãããææããããŸãã
ãããããããã¯ãEmbulkãã§è§£æ±ºããããšã§ã¯ãªãããããåŠçã®äžé£ã®æµãã管çãããšããã§è§£æ±ºãã¹ãã ãšã®èãæ¹ã髿©ããã¯ç€ºããŸãããããŠããã®èãããçãŸããã®ããDigdagãã§ãã
6æ15æ¥ã«OSSåãããã°ããã®ãDigdagãã¯ããEmbulkããå«ãããããããããåŠçã®ã¯ãŒã¯ãããŒãç°¡åã«æ±ãããã®ãªãŒãã¡ãŒã·ã§ã³ããŒã«ããã«ããè¡ã£ãããã©ã³ãå®è¡ããããã¹ã±ãžã¥ãŒã«å®è¡ãããããã¢ãã¿ãŒãããããšãã£ãè€éãªãã€ãã©ã€ã³åŠçãã·ã³ãã«ã«è¡ãããšãå¯èœã§ãã
髿©ããã¯ããEmbulkãã䜿ã£ãŠããŒã«ã«ã®CSV ãã¡ã€ã«ããPostgreSQLããžããŒããããRubyãã§ãSQLãã«éèšãããPythonãã§ãSlackãã«éç¥ãããšããäžé£ã®ãããŒããDigdagãããå®è¡ãããã¢ãæ«é²ããŸãã
åœæ¥ã®é«æ©ããã®ã¹ã©ã€ãã¯ãã¡ãã§å ¬éãããŠããŸãã
ãªã¢ã«ã¿ã€ã ãµãŒã

æž
æ°ŽäœåŸïŒãã¿ãã»ãããïŒïŒæ ªåŒäŒç€Ÿgumi ç ç©¶éçºããµãŒããžã®åãçµã¿ã¯15幎ã»ã©ã
2人ç®ã®ç»å£è ã¯ãã¢ãã€ã«ãªã³ã©ã€ã³ã²ãŒã ã®éçºã»éå¶ãè¡ã£ãŠããæ ªåŒäŒç€Ÿgumiã®æž æ°ŽäœåŸãããæž æ°Žããã«ããããªã¢ã«ã¿ã€ã ãµãŒããã§ã¯ã
- ãªããªã¢ã«ã¿ã€ã ãµãŒããäœããªããã°ãããªãã®ã
- ãªãèªäœããã®ã
- ãªãErlangãæ¡çšããã®ã
ãªã©ã«ã€ããŠç޹ä»ãããŸããã
ãªã¢ã«ã¿ã€ã éä¿¡ãå®çŸããTCP

ãŸããæž æ°Žããã¯ã¢ãã€ã«ã²ãŒã ã«ãªã¢ã«ã¿ã€ã éä¿¡ãå¿ èŠãªèæ¯ã説æããŸãã
ã¹ããŒããã©ã³ã®æµžéã«ããç«¯æ«æ§èœã®æ¹åãããããã¯ãŒã¯ç°å¢ã®åäžãšãã£ãåŽé¢ããããŠãŒã¶ãŒãå士ã®äžäœæãçãæ¬åœã®åæãã¬ã€ãå¿ èŠã«ãªããä»ãŸã§ãããæ¿å¯ãªã²ãŒã äœéšãæäŸãæ±ããããŠããã®ãçŸåšã®ã¢ãã€ã«ã²ãŒã ã§ãã
ããã§ããµãŒãåŽããéä¿¡ãã§ããªãHTTPéä¿¡ã§ã¯ãªãTCPãäœ¿ãæ¹æ³ãæž æ°Žããã¯ç޹ä»ãæåããã¯ã©ã€ã¢ã³ãããéãå¿ èŠããããŸãããäžåºŠã³ãã¯ã·ã§ã³ã確ç«ããã°ãµãŒãåŽããã奜ããªã¿ã€ãã³ã°ã§éä¿¡ã§ããç¹ã匷ã¿ã§ãã
ãã®TCPã䜿ã£ããªã¢ã«ã¿ã€ã éä¿¡ã®ã¡ãªããã¯ã©ã¡ãåŽãããéãå§ããããããšã«å ããHTTPãšæ¯èŒãããšéä¿¡ã³ã¹ããå°ããããšã ããã§ãã
ãªãèªäœïŒ

èªç€Ÿã®ã²ãŒã ç¹æãªä»æ§ãžã®å¯Ÿå¿ã®å¿ èŠæ§ããWindows Serverãã§ã¯æ©èœéå€ã§éçšã³ã¹ããé«ãããšããããæž æ°Žããã¯ããã«ãŠã§ã¢ãèªäœããŸãã
éžæããã®ã¯ãPub/Subã¢ãã«ãããã®ã¢ãã«ã®å€§ããªã¡ãªããã®ã²ãšã€ã¯ãã¡ãã»ãŒãžããPublishãããPubåŽããã¡ãã»ãŒãžã賌èªïŒSubscribeïŒããSubåŽãæèããå¿ èŠããªããšããç¹ã§ãããã®çµæããªã³ã©ã€ã³ã²ãŒã ã§ããèŠããããRoomã¢ãã«ãã®ããã«Roomã管çããå¿ èŠããããŸããã
ããã«æ¢åã®è€éãªã·ã¹ãã ããã£ãŠãã·ã³ãã«ã«å°å ¥ã§ããããšããPub/Subã¢ãã«ãã®ã¡ãªããã§ããããŸãã
ãããã³ã«ã«é¢ããŠã¯ãæ°bitãåãè©°ãããããã·ã³ãã«ã§ããããšãåªå ããŸãããããã«ãéèŠèŠããã®ã¯æ¡åŒµæ§ã§ãããã®çµæãTLVïŒtype-length-valueïŒããŒã¹ã®ãããã³ã«æ§é ãæ¡çšããã®æ§é ã«ã¯æ¡åŒµããããããšãšãå®è£ ãæ¯èŒç容æã§ãããšããã¡ãªããããããšæž æ°Žããã¯èª¬æããŸãã
ãErlangãã£ãŠãªã«ãããã®ïŒ

ãµãŒãã®ã³ã³ã»ããã¯ãããã³ã«ã§å®çŸ©ããã以äžã®ããšã¯ãããå管ãšããŠã®åœ¹å²ã«åŸ¹ãããããšããµãŒãåŽã§ã¯ç«¯æ«ãšã®ã¹ããŒãïŒç¶æ ïŒãä¿æããããšã¯ãã£ãŠãããŠãŒã¶ãŒã®ããŒã¿ãã²ãŒã ã®ããŒã¿ã¯æããªãããã«èšèšããŸãã
äŸãã°ããŠãŒã¶ãŒã®èªèšŒãªã©ã§ã¯ããŒã¿ããŒã¹ã«åãåãããå¿ èŠããããŸãããå¿ èŠãªããŒã¿ã¯å šãŠå€éšã«åãåãããè¡ããŸãã
æž æ°Žããã¯å®è£ ã«ããããããã°ã©ãã³ã°èšèªãšããŠãErlangãã䜿çšããŸãã1998幎ãããªãŒãã³ãœãŒã¹ãšãªã£ããšãªã¯ãœã³ç€Ÿè£œã®é¢æ°åèšèªã§ãããErlangããäŒå Žã®ã»ãšãã©ã®æ¹ãååã¯ç¥ã£ãŠãããã®ã®ãå®éã«äœ¿ã£ãããšãããæ¹ã¯ããã2人ã»ã©ããããŸãããæž æ°Žããã¯ãäžäœãªããErlangããæ¡çšããã®ã§ããããïŒ

ãErlangãã®å€§ããªç¹åŸŽã¯è¶ 軜éãªããã»ã¹ã§ããäžç¬ã§ç«ã¡äžãããããããããªã¡ã¢ãªãã䜿çšããŸããã
ãã®ãããã€ã³ã¹ã¿ã³ã¹ãäœããããªæèŠã§ããã»ã¹ãããã°ã©ãã³ã°ããŠãããŸãã1å°ã®ãµãŒãã®äžã§ãæ°äžããæ°åäžãšãã£ãããã»ã¹ãèµ°ãã®ã ãšãããŸããããã»ã¹éã§ã¯ã¡ãã»ãŒãžéä¿¡ãã§ããåãåãåŽã¯ä»»æã®ã¿ã€ãã³ã°ã§åãåºãããšãå¯èœã§ãã
ãŸãããErlangãã¯èé害æ§ã«åªããŠããããšãç¹åŸŽã§ãããããå¯èœã«ããã®ããLet it Crashããšããã¢ãããŒãã§ãã ããããã»ã¹ã§ãšã©ãŒãèµ·ãããšããã®ããã»ã¹ãç£èŠããŠãããSuperviserãããšã©ãŒã®èµ·ãã£ãããã»ã¹ã®åèµ·åãåŸå§æ«ãè¡ããŸãããSuperviserãã«ããç£èŠããªãŒãäœãããšã§ãäœãé害ããã£ãéã«ç¶ºéºã«è§£æŸããããšãå¯èœã«ãªããŸãã
è² è·è©Šéšãªã©ãçµãŠãæž æ°Žããã¯ãæã£ãããã¹ããŒããåºãããšãErlangãã§ã®ãªã¢ã«ã¿ã€ã ãµãŒããè©äŸ¡ããŸããã
ãŸããæž æ°Žãããéçºãããªã¢ã«ã¿ã€ã ãµãŒãã¯ã幎å ãç®åŠã«ãªãŒãã³ãœãŒã¹ãšããŠå ¬éããäºå®ããããšã®ããšã§ãã
åœæ¥ã®ã¹ã©ã€ãã¯ãã¡ãã§å ¬éãããŠããŸãã
ããªã¢ã«ã¿ã€ã éä¿¡ã²ãŒã ã®å®è£ äŸã

å±±è€æºä¹ïŒããŸãµãã»ããšãïŒïŒæ ªåŒäŒç€ŸAiming ãšã³ãžãã¢ãç«å€§å¥œããªãç«ã¢ã¬ã«ã®ãŒæã¡ã
æåŸã®ç»å£è ã¯ããªã³ã©ã€ã³ã²ãŒã ãéçºã»éå¶ããæ ªåŒäŒç€ŸAiming ã®å±±è€æºä¹ãããå±±è€ããã¯ããªã³ã©ã€ã³ã²ãŒã ãäœãã®ã«å¿ èŠãªéä¿¡æè¡ãšããŠ
- éä¿¡äŒç»ãšéä¿¡å 容
- éä¿¡ã©ã€ãã©ãª
ã«ã€ããŠç޹ä»ããŸããã
ã²ãŒã ã«ãã£ãŠç°ãªãé信圢åŒ

å±±è€ããããå ã»ã©ç»å£ããæž æ°Žããã玹ä»ããããã«ãåæ¹åéä¿¡ã®ãUDPãã§ã¯ãªãåæ¹åéä¿¡ã®ãTCPãããªã¢ã«ã¿ã€ã éä¿¡ã²ãŒã ã«ã¯å¿ èŠã ãšèª¬æããŸãã
åžžææ¥ç¶ããŠããããšã§ãã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ãã«å¯ŸããŠãªãã©ã€ããã ãã§ã¯ãªãããµãŒãåŽããã¯ã©ã€ã¢ã³ãã«ããã·ã¥ãå¯èœã ããã§ãã
æ¥ç¶ãããéä¿¡ã®å 容ã¯äž»ã«ãããŒãã¬ãŒã 圢åŒããšãã¡ãã»ãŒãžåœ¢åŒãã®2ã€ã
ãããŒãã¬ãŒã 圢åŒãã¯ãã³ã³ãããŒã©ãŒããã®å ¥åæ å ±ãå°ãªãããŒã¿ãæç¶çã«éãåã圢åŒã§ãå¯ŸæŠæ Œéã²ãŒã ãªã©ã«æå¹ãšãããŠããŸãã
ãã¡ãã»ãŒãžåœ¢åŒãã¯ãæç¶ãåŒã³åºããã¡ãã»ãŒãžåããŠå¿ èŠãªããŒã¿ããããšããã圢åŒãã¢ã¯ã·ã§ã³æ§ãäœãã¿ãŒã³ã²ãŒã ãMMOïŒå€§èŠæš¡å€äººæ°åãªã³ã©ã€ã³ïŒã²ãŒã ã§äœ¿ãããŠããŸãã
ããããéä¿¡ã®äŒç»ã圢åŒã¯ããããžã§ã¯ãã®èŠæš¡ãå 容ã«ãã£ãŠé©åã«éžæããå¿ èŠããããšå±±è€ããã¯ææããŸãã
ç¬èªéä¿¡ã©ã€ãã©ãªã®éçº

ç¶ããŠãå±±è€ããã¯ç€Ÿå ã«å°å ¥ããå ±ééä¿¡ã©ã€ãã©ãªã玹ä»ããŸãã
éçºåœæã®7幎ã»ã©åã«ã¯ããŸãOSSããªãã£ããããAimingã§ã¯èªç€Ÿã§ã¡ãã»ãŒãžããŒã¹ã®ã©ã€ãã©ãªãéçºããããšã決å®ã
ãœã±ããéšåã®ã³ãŒãã¯ãiOSãAndroidãPCãå®¶åºçšã²ãŒã æ©ãªã©ãç°ãªãã¯ã©ã€ã¢ã³ãããã©ãããã©ãŒã éã§ã®éä¿¡ãæäŸããå¿ èŠããããŸãã
ããã«ããã®éä¿¡ã©ã€ãã©ãªã¯ã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠRPCïŒRemote Procedure CallïŒãæäŸããŠããŸããRPCãšã¯ãå¥ã®ãã·ã³ã§åããŠããã¡ãœãããããã°ã©ã ããåŒã³åºãä»çµã¿ãå±±è€ããã¯ããã€ããªãŒããŒã§ã®ããŒã¿ã®è¡šçŸæ¹æ³ãããã±ããæ§é ã§ã®ã¡ãã»ãŒãžã®è¡šçŸã玹ä»ããŸããããããå®è£ ã«ãããåé¡ç¹ããããã¯ã¡ãã»ãŒãžãã²ãšã€è¿œå ããããšã«è¿œå ã»ä¿®æ£ããªããã°ãããªãã³ãŒãéãå€ããšããç¹ã§ãã

ãã®åé¡ãç°¡æåããçºã«ãIDLïŒInterface Definition LanguageïŒãçšæããŸããIDLãšã¯RPCã®å 容å®çŸ©ãæœè±¡åããäžéèšèªã®ãããªä»çµã¿ã§ããå±±è€ããã«ããã°ãIDLã®ãžã§ãã¬ãŒã¿ã«ãã察象èšèªããšã®ã³ãŒããèªåçæãããã®ã§å€§å¹ ã«æéãåæžãããããã§ãã
å±±è€ããã¯ãã²ãŒã å ã®æäœãã©ã®ããã«ã¡ãã»ãŒãžåãããŠããã®ããå ·äœçãªäºäŸã䜿ã£ãŠç޹ä»ããŸããã
åœæ¥ã®ã¹ã©ã€ãã¯ãã¡ãã«å ¬éãããŠããŸãã
æèŠªäŒïŒ

3åã®è¬æŒãçµãã£ãåŸã¯æèŠªäŒãäž»å¬ã®ææããã«ãã也æ¯ã§ã¹ã¿ãŒãïŒ

倧éã®ãã¥ãŒãã€ãšããŒã«ïŒ

仿¥ã®ãã€ãŸã¿ã¯ãã¶ã§ãïŒ

芪çŠäŒãå€§çæ³ã®ãã¡ã«çµäºããŸããã
次åã®éå¬ã¯å¹Žå ãç®æããŠããããã§ããæ¥œãã¿ã«ãåŸ ã¡ããŠããŸãïŒ
åæã»æïŒ108UNITED
ããããã€ãã³ã
é¢é£ããã€ãã³ã
第äºåã²ãŒã ãµãŒãå匷äŒ
2016幎06æ18æ¥ (å)ããããã®èšäº

ãã¯ãã«ã®ã»ãã¥ãªãã£ã³ã³ãµã«ã¿ã³ããèªããŒããã©ã¹ãã®å ¥å£ãIDã®äžçãââIAM/IGA/PAM管çã®éèŠæ§ãšã¢ãããŒãã解説

AWSãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ããèªããã¯ã©ãŠããã€ãã£ãæä»£ã®ãœãããŠã§ã¢ã®æ§ç¯ã»éçšã5ã€ã®ãã€ã³ãââAWS Tech talk Night#5











