![ç»å](https://habrastorage.org/getpro/habr/post_images/a14/068/e21/a14068e21cfdae4eedef9b3eba2a5b1e.jpg)
ã¬ãŽã¢ãŒãå±ã®åç
å€ãã®å ŽåããµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ã¯ããµãŒãã¹ãšããŠæ©èœïŒFaaSïŒåœ¢åŒã§ãµãŒãã¹ãæäŸããæ¢åã®ãã©ãããã©ãŒã ã«é¢é£ä»ããããŠããŸãã ãããã®ãã©ãããã©ãŒã ã®å€ãã¯æåŸ ã¯ããã§ãããçããæã£ãŠããµãŒããŒã¬ã¹ããªãã®ãã¹ãŠãèŠãããšãäœåãªããããŠããŸãã ããããããã¯ç©äºã®çãããèŠæ¹ã§ãã
ä»æ¥ã¯ããµãŒããŒã¬ã¹ãã©ãããã©ãŒã ã®éçºãããã«ç§ãã¡ã®æ 床ãã©ã®ããã«å€ãããã«ã€ããŠã話ããŸãã ãŠãããŒãµã«ãµãŒããŒã¬ã¹ãã¯ãããžãŒã®3ã€ã®æ³¢ã瀺ãããããã®çžäºäœçšã瀺ããŸããããã¯ãFaaS補åãããã¯ããã«å¹ åºãæ©äŒãæäŸããããšãç®çãšããŠããŸãã
ããµãŒããŒã¬ã¹ãã¯ãããžãŒãã®æŠå¿µã«ã€ããŠ
ãµãŒããŒã¬ã¹ãã¯ãããžãŒã¯åžžã«ãµãŒãã¹ã¬ãã«ã®æœè±¡åã§ããããšã³ããŠãŒã¶ãŒã®å©äŸ¿æ§ã®ããã«äœæãããé¯èŠã§ãã åœç¶ãããŒããŠã§ã¢ã¯ã©ãã«ãè¡ããŸããã å®éããµãŒããŒã¬ã¹ãã¯ãããžãŒã«ã¯2ã€ã®å®çŸ©çãªç¹æ§ããããŸããã«ã¹ã¿ã ä»®æ³ãã·ã³ã€ã¡ãŒãžã§ã¯ãªããç®ã«èŠããªãã€ã³ãã©ã¹ãã©ã¯ãã£ã§ããã åºå®ã®æé絊ã§ã¯ãªãã å®éã«æ¶è²»ããããªãœãŒã¹ã«åºã¥ããæ¯æãã¹ããŒã ã
ããã¯äžèŠãããšæããããããããŸããããã»ãšãã©ç¥ç§çã§ã¯ãããŸãããã»ãšãã©ã®ã¯ã©ãŠããµãŒãã¹ã¯ããã§ã«ãµãŒããŒã¬ã¹ã®ååã§åäœããŠããŸãã AWS S3ãAzure Storageãªã©ã®åºæ¬ãµãŒãã¹ã䜿çšããå Žåãä¿åãããããŒã¿ã®éïŒã€ãŸãã䜿çšããããã£ã¹ã¯å®¹éã®ã³ã¹ãïŒãI / Oæäœã®æ°ïŒããŒã¿ãžã®ã¢ã¯ã»ã¹ãæŽçããããã«å¿ èŠãªã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ã®ã³ã¹ãïŒãããã³è»¢éãããããŒã¿ã®éïŒã³ã¹ããããã¯ãŒã¯ãã£ãã«ã®äœ¿çšïŒã ããã¯ãã¹ãŠããŒããŠã§ã¢ãµãŒããŒã«äŸåããŸããããã®å®¹éã¯ããã®ãããªã·ã¹ãã ã®éçšã®ãã®åŽé¢ã«ã€ããŠèããŠããªãæ°çŸãŸãã¯æ°åã®æ¶è²»è ã«åãããŠããŸãã
å€ãã®éçºè ã¯ããµãŒããŒã¬ã¹ç°å¢ã§ã³ãŒããå®è¡ãããšããèãã«æ··ä¹±ããŠããŸããã€ãŸãããŠãããŒãµã«ãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ã®èãã«ã¯æ £ããŠããŸããã
ã³ãŒããæ©èœãå§ãããã©ãããç¥ãã«ã¯ã©ãããã°ããã§ããïŒ ç°å¢ããããã°ããã³ç£èŠããæ¹æ³ã¯ïŒ ãµãŒããŒãœãããŠã§ã¢ãææ°ã®ç¶æ ã«ä¿ã€æ¹æ³ã¯ïŒ
ãããã¯ç解ã§ããåå¿ãšè³ªåã§ãã æ©èœã«é¢ä¿ããªããããã®åé¡ã¯ãã¹ãŠãåªãããµãŒããŒã¬ã¹ã¢ãŒããã¯ãã£ãšã¯äœãã«ã€ããŠè©±ãåãåã«è§£æ±ºããå¿ èŠããããŸãã ãã®åéã§ãã§ã«è¡ãããŠããããšãèŠãŠã¿ãŸãããã
第äžæ³¢ïŒã€ãã³ãäŸåã³ã³ãã¥ãŒãã£ã³ã°
FaaSãã©ãããã©ãŒã ã¯ããµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ã®åžå Žã«åå ¥ããæåã®ãã©ãããã©ãŒã ã§ãã äŸã«ã¯ãAWS Lambdaããã³Azure Functionsãå«ãŸããŸãã ãã¡ãã¡ã§ããªã³ããã³ãã§åŒã³åºãããã³ãŒããã©ã°ã¡ã³ããé 眮ã§ããŸãã ãã®ãããªã¢ããªã±ãŒã·ã§ã³ã¯ãããŸããã éçºè ã¯ãé¢æ°ãã¢ããªã±ãŒã·ã§ã³ã®ãã©ã°ã¡ã³ããäœæããé©åãªã¿ã€ãã³ã°ã§ã³ãŒããããªã¬ãŒããã€ãã³ãã«åºã¥ããŠã«ãŒã«ãèšå®ããŸãã äŸïŒãHTTPãªã¯ãšã¹ãã/ fooã«å°çãããšãã«Xãéå§ãããããã¡ãã»ãŒãžããã®ãã¥ãŒã«ãããšãã«YãåŒã³åºããã ãªã©ãªã©ã
![](https://habrastorage.org/getpro/habr/post_images/a4e/854/fd4/a4e854fd42441357f864466b673341f5.png)
é¢æ°ã¯éåžžã«ã·ã³ãã«ã«ããããšãã§ããŸãã ããšãã°ãç°¡åãªã¿ã¹ã¯ãå®è¡ããããã®ããã€ãã®ã¡ãœããã®åŒã³åºãã§æ§æãããŸã
éçºè ã¯ãµãŒããŒã«ã€ããŠäœãç¥ãããæ°ã«ããŸããã ã³ãŒãã¯æ©èœããŸãã ãã®å Žåããããã€ããŒã·ã¹ãã ã®ãªãœãŒã¹ã®æ©èœã䜿çšããŠèšç®ããããã»ãã®äžç¬ã ãæ¯æãå¿ èŠããããŸãã ã¹ã±ãŒãªã³ã°ã®åé¡ã¯éçºè ã®åå ãªãã§è§£æ±ºããããããé¢æ°ãåŒã³åºãããé »åºŠïŒ1æ¥ã«1åããŸãã¯1æéã«100äžåïŒã¯éèŠã§ã¯ãããŸããã
ãããã£ãŠãFaaSã¯ééããªããµãŒããŒã¬ã¹ãã¯ãããžã§ããã倩æ°äºå ±ãèªåã§ããããšã¯ãããŸããã ããã«ã¯ããã€ãã®çç±ããããŸãã
- ç¹å®ã®ã€ãã³ããç¹å®ã®æäœãããªã¬ãŒããã¢ãã«ã«ãã¹ãŠã®ã¯ãŒã¯ããŒããåæžãããããã§ã¯ãããŸããã
- ã³ãŒãããã®äŸåé¢ä¿ããæ確ã«åé¢ããããšã¯ãåžžã«å¯èœãªããšã§ã¯ãããŸããã äŸåé¢ä¿ã«ãã£ãŠã¯ãæ·±å»ãªã€ã³ã¹ããŒã«ããã³æ§æãªãœãŒã¹ãå¿
èŠã«ãªãå ŽåããããŸãã
- éçºäžã®èšèªãããã°ã©ãã³ã°ãã©ãã€ã ã¯ãFaaSãã©ãããã©ãŒã ã§ãµããŒããããŠããªãå ŽåããããŸãã
- éåžžãæ¢åã®ã¢ããªã±ãŒã·ã§ã³ãFaaSã¢ãã«ã«å€æããããšã¯éåžžã«è€éã§ããããã財æ¿çã«å®è¡äžå¯èœã§ãã
ãããã¯ãã¹ãŠã¢ãŒããã¯ãã£äžã®åé¡ã§ãã
ããã«ãããã€ãã®ã·ããªãªã§ã¯ãFaaSãéåžžã«äžäŸ¿ã«ããçŽç²ã«éå ·çãªå°é£ããããŸãã ããŒã«ã¯çµ¶ããæ¹åãããŠããããããã®çš®ã®åé¡ã«ã€ããŠã¯ç¹ã«å¿é ããŠããŸããã ç§ãã¡ãæãã»ã©éãã¯ãããŸãããããããããªããFaaSã䜿ãå§ããã®ã劚ãããã®ã§ããã°ããããã®åé¡ã¯ããã«è§£æ±ºããããšç¢ºä¿¡ããŠããŸãã äž»ãªåé¡ã¯ãããããã€èµ·ãããã§ãã
第äºæ³¢ïŒã¯ãŒã¯ãããŒã¹ããŒã
ã¯ãŒã¯ãããŒãã€ãã³ãã«ãã£ãŠå®è¡ãããå°ããªã³ãŒãã®ã¢ãã«ã«åãŸããªãããã«FaaSã·ã¹ãã ãšã®é¢ä¿ãããŸããããªãã£ãå Žåãããã¯2ã€ã®ããšã®ãããããæå³ããŸãã ãããžã§ã¯ããããè€éãªçµç¹ãå¿ èŠãšããããããã°ã©ã ãç¶ç¶çã«å®è¡ããå¿ èŠããããããŸãã¯ããªãã®æéãæ¬è³ªçã«åããã®ãå¿ èŠã§ãã
è€éãªçµç¹ã®ãããžã§ã¯ãã§ã¯ãæåã«Azure Logic AppsãAWS Step Functionsãªã©ã®è£œåãåãäžããããŸããã éçºè ã¯ãã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠãé·ãããã»ã¹ã説æãããããŒãã£ãŒããäœæã§ããŸãã ã¹ããŒã ã®å©ããåããŠãé¢æ°ã®åŒã³åºãé åºãèšå®ããããã»ã¹å¶åŸ¡ãç·šæãããã¬ãŒã ã¯ãŒã¯ã«ç¬èªã®æ©èœãåã蟌ãããšãã§ããŸãã
![](https://habrastorage.org/getpro/habr/post_images/acc/1fd/0e4/acc1fd0e4b32680301a34ecf929ebfc7.png)
Azure Logic APPã§ã¢ããªã±ãŒã·ã§ã³ãäœæããŸããããã¯ãCRMã·ã¹ãã ã«æŽæ°ã衚瀺ããããšãããããããã«åŠçããããã«éä¿¡ããŸãã ããŸããŸãªã·ã¹ãã ãçµã¿åãããè€éãªéåæããã»ã¹ã®ç®¡çã¯ãå¿ èŠãªæé ã®èª¬æã«éå®ãããŸãã
è€éãªã·ã¹ãã ã®çžäºäœçšã¹ããŒã ãæŽçããããã®ãã©ãããã©ãŒã ã¯ãéçºãç°¡çŽ åããŸãã ããšãã°ãé»åã¹ãã¢ã«é¢ããã¬ãã¥ãŒã«é¢é£ããç¹å®ã®ã³ãŒããååã®è³Œå ¥ãã24æéåŸã«ç«ã¡äžããå¿ èŠãããå Žåã察å¿ããã¿ã¹ã¯ãã¹ããŒã ã«è¿œå ããã ãã§ååã§ãã 誰ããããªãã®è£œåã«Twitterã§èšåããå Žåãäœããã®ã¢ã¯ã·ã§ã³ããšãå¿ èŠããããŸããïŒ ãããæŽçããã«ã¯ãããŠã¹ãæ°åã¯ãªãã¯ããã ãã§ãã Twitter APIãªã¯ãšã¹ããåçãžã®å¿çæ¹æ³ã«ã€ããŠèããå¿ èŠã¯ãããŸããã ããã«äœ¿çšã§ãããããã¯ã¯ãããã°ã©ã ã®ç·šæã®åé¡ãç·©åããã ãã§ãªããã»ãšãã©ã®äžè¬çãªãµãŒãã¹ã®ã¯ã©ã€ã¢ã³ãã³ãŒããèšè¿°ããå¿ èŠããªããªããŸãã
ã¹ããŒã ã䜿çšããã¢ãããŒãã¯ããžãã¹ããã»ã¹ã®ã¢ããªã³ã°ã«ã¯åªããŠããŸããããã¹ãŠã®è² è·ããµãŒããŒã¬ã¹ãã©ãããã©ãŒã ã«è»¢éããããšã¯ã§ããŸããã ããã¯äžèœè¬ã§ã¯ãããŸããã ããšãã°ããããŒãã£ãŒãã®åœ¢åŒã§è¡šç€ºãããéåžžã«è€éãªæ±ºå®ããªãŒã¯éåžžã«åä»ã«èŠããŸãããããã䜿çšããã®ã¯äžäŸ¿ã§ãã ãã®ãããªç¶æ³ã§ã®éåžžã®ããã°ã©ã ã³ãŒãã¯ãããè¡šçŸåè±ãã§ãã ããã«ããã®ãããªãµãŒãã¹ã®æ¯æãã¢ãã«ã¯ãã¹ããŒã ã®ã¹ãããã®èšç®ã«åºã¥ããŠãé »ç¹ãªèŠæ±ãšã¿ã¹ã¯ãéåžžã«å°ããªéšåã«åå²ããããšãé«äŸ¡ãªåã³ã«ããŸãã
èŠããã«ãé¢æ°ã䜿çšããã¢ãããŒããåè·¯ã®ã¢ããªã±ãŒã·ã§ã³ããè€éãªã¢ããªã±ãŒã·ã§ã³ãç¶ç¶çã«å®è¡ããäœæ¥ãæŽçãããšããåé¡ã«å¯Ÿãã䟡å€ãããœãªã¥ãŒã·ã§ã³ãæäŸããŸããã äžèŠãããšãããããã¯ããã»ã©æ·±å»ãªåé¡ã§ã¯ãªãããµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ã®ç¯å²ãããªãçãã ãã§ãã ãããã1ã€ã®ç°¡åãªäºå®ããã¹ãŠãå€ããŸããéå»æ°å幎ã«ããã£ãŠäœæãããã¢ããªã±ãŒã·ã§ã³ã¯ãå°ãªããšãéšåçã«ã¯ç¶ç¶çãªã¿ã¹ã¯ãšããŠèšèšãããŠããŸããã ãããã£ãŠããµãŒããŒã¬ã¹ãã¯ãããžãŒã®ç¬¬3ã®æ³¢ãæ¥ãŸããã
第äžæ³¢ïŒã³ã³ããåæè¡
ã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããåæè¡ã¯ãäž»ã«Dockerã®äººæ°ã«ãããæ°å¹Žåã«å€§è¡åããŸããã ãããã®æè¡ã®åºçŸã¯éåžžã«é¡èã§ããããšãå€æããŸããã ã³ã³ããã¯ã次äžä»£ã®ä»®æ³ãã·ã³ãšèŠãªãããšãã§ããŸãã æåã¯ãLinuxãšã³ã·ã¹ãã ãã³ã³ããåã·ã¹ãã éçºè ã®çŠç¹ã§ããããä»ã§ã¯WindowsãµããŒãã«ã€ããŠè©±ãããšãã§ããŸãã ããã«ãMesosphereãCubernetesãªã©ã®ã³ã³ãã管çãã©ãããã©ãŒã ãããäžè¬çã«ãªãã€ã€ãããŸãã
ã³ã³ããã«ã€ããŠèª¬æããéã«èæ ®ãã¹ãæãéèŠãªããšã¯ãã³ã³ããããã軜éãªæœè±¡åã«ããä»®æ³ãã·ã³ã®éåžžã®ä»£æ¿ãšèŠãªãããšãã§ããªããšããããšã§ãã ã³ã³ããã¯ãæ±çšã¢ããªã±ãŒã·ã§ã³ã®ããã±ãŒãžåã¡ã«ããºã ã§ããããŸãã Node.jsäžã®ã¢ããªã±ãŒã·ã§ã³ãç¹å¥ãªNginxæ§æãå¿ èŠãšããå Žåãã³ã³ããã§æ§æããã ãã§ååã§ãã ASP.NET Webãµã€ããããã¯ã°ã©ãŠã³ãã§WindowsãµãŒãã¹ã䜿çšããŠããå Žåãã³ã³ããã€ã¡ãŒãžã«é©åãªã¬ã€ã€ãŒãåã蟌ãããšãã§ããŸãã
質åãçºçããå ŽåããããŸãããã ãããã³ã³ããã®äœ¿çšã¯æããã«ã¢ããªã±ãŒã·ã§ã³ãããã±ãŒãžåããããã®æ段ãšèããããŠããŸããããµãŒããŒã¬ã¹ãã¯ãããžãŒã¯ãããšäœã®é¢ä¿ãããã®ã§ããããïŒ ã³ã³ããã¯åºæ¬çã«ãã³ã³ãããã¹ãã§å®è¡ãããããã±ãŒãžåããããããµãŒããŒã§ãã å®éãããã¯äžçš®ã®ãµãŒããŒã§ãïŒ ãããã£ãŠãã³ã³ããã¯ã»ãšãã©ãµãŒããŒã¬ã¹ãã¯ãããžãŒã®æµã§ããããšãããããŸããïŒã
ãã質åã§ããã ã³ã³ããã¢ãŒããã¯ãã£ã«ã¯2ã€ã®èŠçŽ ãããããã®é©åãªæ§æã«ãããã³ã³ããããµãŒããŒã¬ã¹ãã©ãããã©ãŒã ã«è²¢ç®ã§ããããã«ãªããšç¢ºä¿¡ããŠããŸãã ããã¯ããµãŒããŒã¬ã¹ã³ã³ãããŒãã¹ãã£ã³ã°ããã³èªåã³ã³ãããŒã¡ã³ããã³ã¹ã§ãã
ãµãŒããŒã¬ã¹ã³ã³ãããŒãã¹ãã£ã³ã°
Container Clustersã¯ãå¹ççãªå€§èŠæš¡ãã¹ãã£ã³ã°ãã©ãããã©ãŒã ã§ãã ã³ã³ããã¯ãä»®æ³ãã·ã³ãšæ¯èŒããŠãã¯ãŒã¯ããŒãã®å¯åºŠãå®éã«é«ããããšãã§ããŸãã
ãã ãããµãŒããŒã¬ã¹ãã¯ãããžãŒã«åãæ¿ããã«ã¯ãä»®æ³ãã·ã³ã®ã¿ã¹ã¯ãåŸ æ©ããŠããåžžæåäœããã¢ãã«ãå¿ããå¿ èŠããããŸãã æ¶è²»éã®è©³çŽ°ãªæž¬å®ã§ããé話ããŒã¹ã®è«æ±ãå¿ èŠã§ãã
ãããå®è£ ããæåã®å€§èŠæš¡ãªææ¡ã¯Azure Container Instancesã§ããã®ãµãŒãã¹ã®äºåããŒãžã§ã³ã¯2017幎7æã«ãªãªãŒã¹ãããŸããã ãã®ãœãªã¥ãŒã·ã§ã³ã䜿çšãããšãã³ã³ãããå®è¡ããã€ã³ãã©ã¹ãã©ã¯ãã£ãèæ ®ããããšãªããå¿ èŠã«å¿ããŠã³ã³ãããåŒã³åºãããšãã§ããŸãã 2ã®ã¬ãã€ãã®ã¡ã¢ãªãåããåäžã®ä»®æ³ããã»ããµã«ã³ã³ããã€ã³ã¹ã¿ã³ã¹ããããã€ãããã§ããïŒ
az container create --name JouniDemo --image myregistry/nginx-based-demo:v2 --cpu 1 --memory 2 --registry
ãžã§ããå®äºããŸããã æ¯æãã«ã¯ãã³ã³ããã³ãŒã«ããã0.0025ãã«ã«å ããŠãã®ã¬ãã€ããšããã»ããµã³ã¢ããã1ç§ããã0.0000125ãã«ãå«ãŸããŸãã ãããã£ãŠã10ç§éå®è¡ãããšã0.002875ãã«ãè«æ±ãããŸãã ããã1æéããšã«1ãæéè¡ããšããµãŒãã¹ã®ã³ã¹ãã¯2.07ãã«ã«ãªããŸãã
ç§ãã¡ããã€ã¯ãããªã³ã°ãå®è¡ããåã«ããã®ãããªæ¯æãã¢ãã«ã¯å®éãéåžžã«å¹æçã§ãã ãããã¿ã¹ã¯çšã«ä»®æ³ãã·ã³ãçšæããå¿ èŠã¯ãããŸããã倧éã®ãªãœãŒã¹ãç·æ¥ã«å¿ èŠãªå Žåãä»®æ³ãã·ã³ã®ã¯ã©ã¹ã¿ãŒãèµ·åããã®ã«æéããããã®ã§ã¯ãªãããµãŒããŒã¬ã¹ã³ã³ãããŒãæ°ç§ã§ãªãœãŒã¹ãæäŸããŸãã
ãããããµãŒããŒã¬ã¹ã³ã³ãããŒã®äŸ¿å©ãªãã¹ãã£ã³ã°ã®å¯èœæ§ãèæ ®ããŠãããµãŒããŒãå«ãã³ã³ãããŒãã€ãŸããããŒã¹ã€ã¡ãŒãžã®OSãæŽæ°ããæ¹æ³ãã«ã€ããŠã®ãžã¬ã³ããæ®ã£ãŠããŸãã
ã³ã³ãããµãŒãã¹ãšèªåå
ãµãŒããŒã¬ã¹ãã¯ãããžãŒã®æèšã®1ã€ã¯ãéçºè ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ã¡ã³ããã³ã¹ã§ã¯ãªãæ©èœã«éäžã§ããããã«ããããšã§ãã ã³ã³ããã¯åªããããŒã«ã§ãããå®çŸ©äžãã³ã³ããåãããç°å¢ããµããŒããããšãã圢ã§è¿œå ã®ã¯ãŒã¯ããŒããä»å±ããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³ãäœæããã«ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®åºæ¬ã€ã¡ãŒãžãéžæãããã®ã€ã¡ãŒãžã«ããŸããŸãªå¿ èŠãªãµãŒãã¹ãæã€ã¬ã€ã€ãŒãè¿œå ããæåŸã«ã¢ããªã±ãŒã·ã§ã³ãã€ã¡ãŒãžã«å°å ¥ããŸãã æ°ããããŒãžã§ã³ããªãªãŒã¹ããããšã«ãããã³ã³ããã€ã¡ãŒãžãåæ§ç¯ããã ãã§ãã ãã ããåé¡ã¯æ®ã£ãŠããŸãã OSãšäŸåé¢ä¿ãã€ã¡ãŒãžã«çµã¿èŸŒãŸããŠããå Žåãã©ã®ããã«æŽæ°ãããŸããïŒ æ°ããWindowsããããŸãã¯æ°ããLinuxã«ãŒãã«ã»ãã¥ãªãã£ãããã¯ãå®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ã«ã©ã®ããã«åã蟌ãŸããŸããïŒ
ãã®ãããªè³ªåãžã®åçã¯ããµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ã®æ§è³ªã«åããŸãã ç°å¢ã®äŸåé¢ä¿ãç¶æããããšã¯ããµãŒããŒã¬ã¹éçºè ãè¡ãã¹ãããšã§ã¯ãªãããããã®ã¿ã¹ã¯ã¯èªååããå¿ èŠããããŸãã
ãã ããç°å¢ãžã®ãµãŒãã¹æäŸãšéèŠãªææ決å®ã®éã®å¢çç·ã¯ææ§ã§ãã ããšãã°ãå žåçãªWebãµã€ãã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æŽæ°ããæ©æµãåããŸããããã®ã¢ã¯ã·ã§ã³ã§å±éºãªãã®ã¯äœãèŠã€ãããªãããã«æãããŸãã ããããèªååãšäººã ãäžã決å®ã®éã®å¢çç·ãã©ãã«åŒãã®ã§ããããïŒ ç¥ããªããã¡ã«WebãµãŒããŒãæŽæ°ãã¹ãã§ããïŒ ããšãã°ãNode.jsã®æ°ããããŒãžã§ã³ãèªåçã«ã€ã³ã¹ããŒã«ããå¿ èŠããããŸããïŒ
ããã¯ããªãããŒãªåé¡ã§ãããç¡èŠã§ããªãåé¡ã®1ã€ã§ãã ãã®è°è«ãç¶ããããã«ãMicrosoftã®Steve Laskerãšã®ã€ã³ã¿ãã¥ãŒãæ°åéèãããšããå§ãããŸãïŒ .NET RocksïŒ1459 ãçŽ37åïŒã
ããã§ã¯éåžžã«é·ãéè°è«ã§ããŸãããããã¯ãã®è³æã®ç¯å²ãè¶ ããŠããŸããã次ã®ãããªæªæ¥ãæ³åããŠã¿ãŠãã ããã
- ã³ã³ããã«ã¯ãã¯ãŒã¯ããŒãã®äž»èŠãªæ©èœãæ€èšŒããèªåãã¹ãã·ã¹ãã ãè£
åãããŠããŸãã
- ã³ã³ãããå®è¡ãããŠãããã©ââãããã©ãŒã ã¯ãåºã«ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æŽæ°ã«é¢ãã詳现ãç¥ã£ãŠããŸãïŒããšãã°ããAlpine Linux 14.1.5ã«ã¯éèŠãªã»ãã¥ãªãã£æŽæ°ããã°ã©ã ããããŸããïŒã
- ãã©ãããã©ãŒã ã¯ãæ°ããããããã€ã³ã¹ããŒã«ããåŸãã³ã³ããã®åäœãåå¥ã«æ€èšŒã§ããŸãã ããŒã¹ã€ã¡ãŒãžãæŽæ°ããããšãäºåã«ã¢ããªã±ãŒã·ã§ã³ã³ã³ããã®åæ§ç¯ãè©Šè¡ããããã¹ãã¹ã€ãŒããå®è¡ãããçµæã«é¢ããã¬ããŒããéä¿¡ãããŸãã
- ã«ãŒã«ããŒã¹ã®èªåæŽæ°ãååŸããããšãã§ããŸãã äŸïŒãéèŠãªOSã®æŽæ°ããªãªãŒã¹ããããšãã«ããã¹ãã倱æããªãå Žåãå®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ã®ã€ã¡ãŒãžãèªåçã«æŽæ°ããŸããã
ãã®ã¢ãããŒãã«ãããã³ã³ããåããããµãŒããŒããµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ã®ãŸã£ããåãã¢ãã«ã«ãªãããšãçªç¶å€æããŸããã ãã®ã¬ãã«ã®ãµãŒãã¹ã«ã¯ãŸã æçããŠããŸãããããããæ¥çã®çºå±æ¹æ³ã§ãã
ã³ã³ããã䜿çšãããšãå°ããªã³ãŒãã§åäœããåçŽãªFaaSãã¬ãŒã ã¯ãŒã¯ãããã¯ããã«è€éãªã¯ãŒã¯ããŒããç·šæã§ããŸãã ã³ã³ããã¯ãäŸåé¢ä¿ãåŠçããå¯äœçšã軜æžããŸãã éçºè ã®ã¿ã¹ã¯ã解決ããããšãç®çãšããä»ã®ãã¯ãããžãŒãããã¯ããã«åŒ·åã§ããããšãå€æããŸããã
ãŸãšã
ãã®è³æã®ã¿ã€ãã«ã«ã¯ãããã€...ããšãã質åããããŸãã æçœãªçãã¯ãä»ã§ã¯ãªããã ãšæããŸãã æ¢åã®ãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ãã©ãããã©ãŒã ã«ã¯ããŸã ååãªæ¬ ç¹ããããŸãã
ããšãã°ãAzure Container Instancesã§24æé幎äžç¡äŒã®ã³ã³ããããŒããå®è¡ãããšãè²»çšãããããããŸãã ä»®æ³ãã·ã³ã¯ããã®ãããªã¿ã¹ã¯ã«æé©ã§ãã ä»®æ³ãã·ã³ã§ã®OSæŽæ°ã®å®å šèªååã¯ããã1ã€ã®å°é£ãªã¿ã¹ã¯ã§ãã ãŸããã³ã³ãããµãŒãã¹ã®èªååããŸã èŠããŠããŸããã ããã«ãFaaS補åã®ãã°ãšç£èŠã¯ãAWSãŸãã¯Azureã䜿çšããéçºè ã«ãšã£ãŠåžžã«é çã®çš®ã§ãã Windowsã³ã³ããã®é©åãªãµããŒãã¯ã©ãã§ããïŒ ãç§ãã¡ã¯ããã«åãçµãã§ããŸãããšããããŸã§ã®ãšãããä»ã«äœãèããŠããªãã
ãã ããããŒã«ã¯éåžžã«è¿ éã«æ¹åãããŸãã æ©èœã«åºã¥ããµãŒããŒã¬ã¹èšç®ãšãããŒãã£ãŒãã«åºã¥ãã·ã¹ãã ã®äž¡æ¹ãããã®1幎éã§å€§ããªé²æ©ãéããŸããã ã³ã³ããæè¡ã¯ãŸã 掻çºã«éçºãããŠããŸããããããã®é¢é£æ§ã¯ãã®åœ¹å²ãæãããŠããŸãã
ããã«ãå°ããªéšåãžã®è² è·åæ£ã®æŠå¿µããã€ã¯ããµãŒãã¹ã®æŠå¿µã¯ããµãŒããŒã¬ã¹ãã¯ãããžãŒã®æŠå¿µãšå¯æ¥ã«é¢é£ããŠããŸãã ãµãŒããŒã¬ã¹ã¯ãŒã¯ããŒã管çãã¬ãŒã ã¯ãŒã¯ã®å©ç¹ãæ倧éã«æŽ»çšããã«ã¯ãæåã«ãããã®ã¯ãŒã¯ããŒããèŠã€ããŠãããšããã§ãããã ããã¯ãéäžçãªéçºãé²è¡äžã®å¥ã®é åã§ãã Azure Event Gridãªã©ã®ãµãŒãã¹ã䜿çšãããšãç°ãªããµãŒããŒã¬ã¹ãã©ãããã©ãŒã éã®æ¥ç¶ãäœæã§ããŸãã
ããšãã°ãAWS LambdaãšAzure Logic Appsããªã³ã¯ããããã€ãã®ã€ãã³ããçºçããããã³ã³ãããŒãéå§ã§ããŸãã äžè¬ã«ããããã¯ãã¹ãŠåããªãã©ããã®ãã®ã§ããç¹å®ã®åé¡ã解決ããããšãç®çãšããå°èŠæš¡ãªã€ãã³ãããŒã¹ã®ã¯ãŒã¯ããŒãã¯ãé£æºããŠå€§ããªåé¡ã解決ããŸãã
ããã§èª¬æããŠããæªæ¥ãæ¥ããšãåã®äžä»£ã®ã¢ããªã±ãŒã·ã§ã³ãæ°ãããã©ãããã©ãŒã ã«é 眮ããããšããå¯èœã«ãªããã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®äŸå床ãã¯ããã«äœããªããŸãã ããã«ããµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ãžã®ç§»è¡ã«ã¯ãã¯ã©ãŠãã§ãåäœããããã«èšèšããããããªãçŸä»£çãªã¢ããªã±ãŒã·ã§ã³ãèšèšããããã®æ°ããã¢ãããŒããå¿ èŠã«ãªãããšã«æ³šæããŠãã ããã
äžè¬ã«ããµãŒããŒã¬ã¹ãã¯ãããžã®æ¥çã¯åçã«çºå±ããŠãããšèšããŸãããå°æ¥çã«ã¯å€ãã®æ°ããèå³æ·±ããã®ãæåŸ ãããŸãã
芪æãªãèªè ïŒ ãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ã䜿çšããŠããŸããïŒ