ããã«ã¡ã¯
ã¯ã©ãŠããã¯ãããžãŒã«é¢ãããŠãŒã¢ã©ã¹ãªæçš¿ã®ç¿»èš³ïŒ It's The Futureã§ãã ããããçš®é¡ã®ä¿®æ£ãã¢ããã€ã¹ãæè¿ããŸãã
ããïŒ ããã«ã¡ã¯ ç§ã®äžåžã¯ããªãã«è©±ãããã«èšã£ãã 圌ã¯ããªãããŠã§ãã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠå€ããç¥ã£ãŠãããšèšã£ãã
-ã¯ããä»ã§ã¯äºå®ã§ããåæ£ã·ã¹ãã ã«é¢å¿ããããŸãã ContainerCampãšGlueConã§æ»ã£ãŠããã°ããã§ãæ¥é±ã¯DockerConã«ãè¡ããŸãã ããžãã¹ãã©ã®ããã«åããŠãããã«æ¬åœã«æåããŸãã-ãã¹ãŠãã¯ããã«ã·ã³ãã«ã§æé ãªäŸ¡æ Œã«ãªããŸãïŒ ãããæªæ¥ã§ãïŒ
ãããŒ...ããããŸãããç§ã¯ä»ãã·ã³ãã«ãªWebã¢ããªã±ãŒã·ã§ã³ãéçºããŠããŸã-éåžžã®CRUD on RailsãHerokuã«ãããã€ããŸãã æããŠãã ãããHerokuã¯ãŸã é¢é£ããŠããŸããïŒ
-ããªãã¯äœã§ããïŒ ãã ããã¯ãã§ã«å€ãåŠæ ¡ã§ãã Herokuã¯æ»äœã§ãã 誰ããã䜿çšããŠããŸããã ä»ãããªãã¯Dockerãç¥ãå¿
èŠããããŸãã ãããæªæ¥ã§ãïŒ
ãããããã§ãã 倧äžå€«ã ããã¯äœïŒ
-Docker-ã³ã³ããåã®æ°ããæ¹æ³ã LXCã®ãããªãã®ã§ãã³ã³ãããããã³ã°åœ¢åŒã®ã¿ãå«ãŸããŠããŸãããŸããåæ£ãã©ãããã©ãŒã ãšåæ£ã·ã¹ãã ã®æ§ç¯ãéåžžã«ç°¡åã«ããå€æ°ã®ãŠãŒãã£ãªãã£ã§ãã
ä¿åïŒ..-äœã®ããïŒ LXEãšã¯äœã§ããïŒ
-LXCã ã¹ããã€ãã®chrootã®ãããªãã®ã§ãã
cher-ootãšã¯äœã§ããïŒ
-ãªãã»ã©...èŠãã... Docker ...ã³ã³ããå...ããã¯æªæ¥ã ...ä»®æ³åã®ãããªãã®ã§ãããé«éã§å®äŸ¡ãªãã®ã ã
Vagrantã®ããã«ã
-ããããVagrantã¯æ»äœã§ãã ã³ã³ããå
ã§äœ¿çšããããã®æºåããã¹ãŠæŽããŸãããæªæ¥ã§ãïŒ
ããã§ã¯ãä»®æ³åã«ã€ããŠäœãç¥ãå¿
èŠã¯ãããŸãããïŒ
-ããŠ...ããããä»®æ³åãç解ããå¿
èŠããããŸãã çŸæç¹ã§ã¯ãã³ã³ããã¯å®å
šãªã¢ããªã±ãŒã·ã§ã³ããŒã¿ä¿è·ãæäŸããŠããŸããã ãã®ããããã¹ãŠããã«ãããã³ãç°å¢ã§å®è¡ãããå Žåã¯ããŠãŒã¶ãŒããµã³ãããã¯ã¹ããåºãªãããã«ããå¿
èŠããããŸãã
ã ãããäœããè¿·åã«ãªã£ãã å°ãå·»ãæ»ããŸãããã ãã®ãããã³ã³ãããšåŒã°ããä»®æ³åããããŸãã ãããHerokuã§äœ¿çšã§ããŸããïŒ
ããŸããHerokuã¯DockerããµããŒãããŠããŸãããç§ãããªãã«èšã£ãããšãæãåºããŠãã ãããã Herokuã¯æ»äœã§ãã CoreOSã§ã³ã³ãããå®è¡ããå¿
èŠããããŸãã
ããã¯äœã§ãã
-ããã¯ãDockerã§äœ¿çšã§ããæãã¯ãŒã«ãªãã¹ãOSã§ãã ãããŒãDockerãå¿
èŠãããŸããïŒ rktã䜿çšã§ããŸãïŒ
ãã±ãã
-ããããrktã
ããããã±ããã
-ããããä»ã§ã¯rktãšåŒã°ããŠããŸãã å®å
šã«ç°ãªããã®ã ããã¯ãDockerã®ç«¶åãšããŠæäŸãããŠãã代æ¿ã®ã³ã³ããå圢åŒã§ãã
ãã²ãã¯ãã£ãããïŒ
-ãã¡ããã¯ãŒã«ã§ãã æ§æå¯èœæ§ã¯æªæ¥ã§ãïŒ
ãã®RKTã䜿çšããŠããŸããïŒ
ãããããŸãããã 誰ãããã䜿çšããŠãããšã¯æããªãã
ããŒãš...ããã§CoreOSã«ã€ããŠäœãèšã£ãã®ïŒ
-ã¯ã...ã§ããããããã¯Dockerã§äœ¿çšãããã¹ãã§ãã
ãã¹ããšã¯ïŒ
-CoreOSã¯ãã³ã³ããã§æé©ã«åäœããããã«èšèšãããŠããŸãã 圌女ã¯ã³ã³ãããæäœããããã«æ§æãããŠããŸãã
ã³ã³ããã䜿çšããŠ...ïŒ
ãã¯ããã³ã³ããã«äœããããŸããã ãããã£ãŠããAmazon EC2ã®ãããªã€ã³ã¹ã¿ã³ã¹ãçºçãããããšå
¥åããããã§CoreOSãã¹ããçºçãããŠãããDockerãµãŒãã¹ãéå§ããDockerã€ã¡ãŒãžãããã«ãããã€ã§ããŸãã
ãã®ãã¹ãŠã®ã©ã®éšåãã³ã³ããã§ããïŒ
-ãã®ãã¹ãŠã èŠãŠãã¢ããªã±ãŒã·ã§ã³ãååŸããŠãDockerfileãäœæããããŒã«ã«ã€ã¡ãŒãžãäœæããŠãããDockerãã¹ããããã·ã¥ããŸãã
ãããããã¯ã®ããã«ïŒ
-ããã... Herokuã§ã¯ãããŸããã Herokuã¯æ»äœã ãšèšããŸããã Dockerã䜿çšããŠç¬èªã®ã¯ã©ãŠããèµ·åããŸãã
O_oïŒ
-ã¯ããããã¯æ¬åœã«ç°¡åã§ãã #gifeeã«ã€ããŠèªãã§ãã ããã
GifyïŒ
-GIFEEã¯ããã®ä»ãã¹ãŠã®äººã«ãšã£ãŠã®Googleã€ã³ãã©ã¹ãã©ã¯ãã£ã§ãã ã³ã³ããã䜿çšãããããã®ãŠãŒãã£ãªãã£ãšãã¯ãããžãŒã¹ã¿ãã¯ããã¹ãŠäœ¿çšãããšãGoogleãšåãããã«ãã¹ãŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã䜿çšã§ããŸãã
ãªãGoogleãµãŒãã¹ã䜿çšããªãã®ã§ããïŒ
-ãããŠãå幎ã§ãã¹ãŠãå®å
šã«å€ãããšãããïŒ
ããŠã誰ããããããã¹ãŠãã¹ãããŠããŸãããïŒ ããããã¹ãŠãã¹ãããããããŸããã
ããŸããAmazonECSããããããªãã¯ããçš®ã®XMLã§ããããæžããªããã°ãªããªããã
OpenStackã«ã€ããŠäœãèšããŸããïŒ
-ã...
èããŠãç§ã¯äœãèªåã§ãã¹ãããŠãµãŒãã¹ããããããŸããã
-ããããæ¬åœã«ç°¡åã§ãã Kubernetesã¯ã©ã¹ã¿ãŒãã»ããã¢ããããã ãã§ãã
ã¯ã©ã¹ã¿ãŒãå¿
èŠã§ããïŒ
-Kubernetesã¯ã©ã¹ã¿ãŒã 圌ã¯ãã¹ãŠã®ãµãŒãã¹ã®å±éã管çããŸãã
ãµãŒãã¹ã¯1ã€ãããããŸããã
-äœãèšã£ãŠãã®ïŒ èŠãŠãWebã¢ããªã±ãŒã·ã§ã³ãæã£ãŠããŸãããïŒ ãããã£ãŠã8ã12åã®ãµãŒãã¹ãå¿
èŠã§ãã
ãªã«ïŒ ããïŒ 1ã€ã®ã¢ããªã±ãŒã·ã§ã³ããããŸãã ãµãŒãã¹ãpohervis-æ°ã«ããªãã§ãã ããïŒ ãã£ã1ã€ã®ã¯ãœã¢ããªïŒ
-ãããããã€ã¯ããµãŒãã¹ã«æ³šç®ããŠãã ããã ããã¯æªæ¥ã§ãã ãããç§ãã¡å
šå¡ã®ä»ã®ããæ¹ã§ãã è¶
倧åã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠã12ã®ãµãŒãã¹ã«åå²ããŸãã åã¿ã¹ã¯ã«1ã€ã
ãŸããããã¯å€ããã...
ãããã¯ãæ§æãä¿¡é Œã§ããããšã確èªããå¯äžã®æ¹æ³ã§ããã èªèšŒãµãŒãã¹ãã¯ã©ãã·ã¥ããå Žå...
èªèšŒãµãŒãã¹ïŒ ã¯ããe-Mayã以åã«äœåºŠã䜿çšããã®ãšåããã©ã°ã€ã³ã䜿çšããã ãã§ããïŒ
-ã¹ãŒããŒã ããã䜿çšããŸãã å¥ã®ãããžã§ã¯ãã«å
¥ããŠãã ããã 圌ã®RestAPIã®äžã«æããŸãã ãã®åŸãä»ã®ãµãŒãã¹ã¯ãã®APIã䜿çšããé害ãéåžžã«åªé
ã«åŠçããŸãã ã³ã³ããã«å
¥ããŠCI / CDãäœæããŠãã ããïŒ
ããªãã®ããæ¹ã§ã ä»ãç§ã¯æ°åã®ç®¡çãããŠããªããµãŒãã¹ãæã«ããŠããŸããã次ã¯äœã§ããïŒ
-ã¯ããããã§ãç§ã¯Kubernetesã«ã€ããŠè©±ããŸããã ããã«ããããã¹ãŠã®ãµãŒãã¹ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãç°¡åã«è¡ãããšãã§ããŸãã
ãªãŒã±ã¹ãã©ïŒ
-ã¯ãïŒ ãŸããããªãã¯ããªãã®ãããã®ãµãŒãã¹ãæã£ãŠããããããŠãããã¯ãã©ãŒã«ããã¬ã©ã³ãã§ãªããã°ãªããªãã®ã§ãããªãã¯ããªãã®ãµãŒãã¹ã®ããããã«å¯ŸããŠäžåºŠã«ããã€ãã®ã³ããŒãå®è¡ããå¿
èŠãããïŒ ãŸããKubernetesã¯ããããã®ã³ããŒãååã«ãããããªãŒãå
ã®ãã¹ãéã§é
åžãããåžžã«å©çšå¯èœã§ããããšãä¿èšŒããŸãã
ã€ãŸããããªãŒããå¿
èŠã§ããïŒ
-ã¯ãããã©ãŒã«ããã¬ã©ã³ã¹çšã ããããKubernetesã¯ããªãã®ããã«ãã¹ãŠãè¡ããŸãã ããã«ãKubernetesã¯Googleã«ãã£ãŠäœæãããããããŸãetcdã«åºã¥ããŠæ©èœãããããKubernetesãæ£åžžã«æ©èœããããšã確信ããŠããŸãã
etcdãšã¯äœã§ããïŒ
-ãã®ããšã¯RAFTã«åºã¥ããŠè¡ãããŸãã
OKãRAFTãšã¯äœã§ããïŒ
-ãã¯ãœã¹ã®ãããªãã®ã§ãã
äž»ãããã®ãããã®ç©Žã¯ã©ã®ãããæ·±ããªãã®ã§ãããããä»ã©ãã«è¡ããŸããïŒ ãã 1ã€ã®ã¯ãœWebã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããã ãã§ãã ãæ¯ãã!!! ããŠãæ·±åŒåžãããŠãæ¯ãåããŸã... OKããã¯ãœã¹ãšã¯äœã§ããïŒ
-Paxosã¯ã70幎代ããã®åæ£ãããã³ã«ã®å€ããã¡ããªã§ããã誰ãç解ã䜿çšãããŠããŸããã
ãããïŒ ããªããããã«ã€ããŠç§ã«èšã£ãŠãããŠãšãŠãããããã§ãïŒ ã§ã¯ãããã ãšã¯äœã§ããïŒ
-誰ãPaxosãç解ããŠããªãã®ã§...ãããš...ãã£ãšãŽãé€ããŠ...
ããïŒ åœŒãç¥ã£ãŠããŸããïŒ
-ãããããã¡ãããCoreOSã§åäœããŸãã ãããã«ããããã£ãšãŽã¯å士å·ã®ããã«ã©ãããæãã€ããã Paxosã¯è€éãããŸããã ããè³¢ã人ã ãããŠã圌ã¯etcdãå®è£
ãšããŠæžããŠãããããAphyrã¯ããã¯æ¬åœã«ããããšã§ã¯ãªããã¯ãŒã«ã ãšèšã£ãïŒ
ã¢ãã£ãŒã«ãšã¯èª°ã§ããïŒ
-Aphyr-ãŸããããã¯ãCall Me Maybeããæžãã人ã§ãããŸã...圌ãç¥ã£ãŠããŸããïŒ ãåæ£ã·ã¹ãã ãšBDSMç·ãïŒ
ããªãã¯ãã BDSMãšèšããŸãããïŒ
-ã¯ããBDSMã ããã¯ãµã³ãã©ã³ã·ã¹ã³ã§ãã ããã®èª°ãããåæ£ã·ã¹ãã ãšBDSMã«æ
ç±ã泚ãã§ããŸãã
ãããŠåœŒã¯ãã®ã±ã€ãã£ã»ããªãŒã®æãæžããã®ã§ããïŒ
-ãããã圌ã¯åããŒã¿ããŒã¹ãCAPã§å€±æãããšããäºå®ã«é¢ããäžé£ã®èšäºãæžããŸããã
CAPãšã¯äœã§ããïŒ
-CAPã«é¢ããå®çïŒããŒã«éžé ã®å®çãšããŠãç¥ãããŠããŸãïŒã 圌女ã¯ã3ã€ã®ãã€ã³ãã®ãã¡ãäžè²«æ§ãã¢ã¯ã»ã·ããªãã£ãåå²ã«å¯Ÿããæµæã®2ã€ãããã€ã³ããç²åŸã§ããªããšèšããŸãã
ãããŠããã¹ãŠã®ããŒã¿ããŒã¹ããã®CAPããã©ããã£ã³ã°ããŸããïŒ ããã¯äžäœäœãæå³ããã®ã§ããããïŒ
ãã€ãŸããããã¯ãã¹ãŠææªã§ããã MongoDBã«äŒŒãŠããŸãã
MongoDBã¯æ°Žå¹³æ¹åã«æ¡åŒµå¯èœã ãšæããŸããã
-ããªã以å€ã¯èª°ãããŸããã
ããã£ã ã§ã¯ãetcdã¯ã©ããªã£ãŠããŸããïŒ
-ã¯ãããããetcdã¯å€ã®åæ£ã¹ãã¬ãŒãžã§ãã
Redisãšåãã§ãã
ãããããRedisã®ãããªãã®ã§ã¯ãããŸãããã etcdã¯åæ£ã·ã¹ãã ã§ãã ãããã¯ãŒã¯ãäžæçã«å€±æãããšãRedisã¯æ
å ±ã®äžéšã倱ããŸãã
ãŸããããã¯åæ£ããªã¥ãŒã¹ãã¢ã§ãã ãªãããããããªã«äŸ¿å©ãªã®ã§ããïŒ
-Kubernetesã¯ãetcdãã¡ãã»ãŒãžã³ã°ãã¹ãšããŠäœ¿çšããŠãæšæºã®5ããŒãã¯ã©ã¹ã¿ãŒãæ§æããŸãã éåžžã«å®å®ãããªãŒã±ã¹ãã©ã·ã¹ãã ãæäŸããããã«ãç¬èªã®ãµãŒãã¹ã®ãã¢ãšçµã¿åããããŸãã
5ãããïŒ 1ã€ã®ã¢ããªã±ãŒã·ã§ã³ããããŸãã ãã®ããã«äœå°ã®è»ã調éããå¿
èŠããããŸããïŒ
-ããŠã12åã®ãµãŒãã¹ãäœæããŸãããã¡ãããããããã«2ã3åã®ãã©ã³ãµãŒãetcdãããŒã¿ããŒã¹ãKubernetesã¯ã©ã¹ã¿ãŒã®è¿œå ã³ããŒãå¿
èŠã§ãã ãã®ãããçŽ50åã®åæäœæ¥ã³ã³ãããŒã«ãªããŸãã
ChZHïŒ
-ã¯ããæåŸã«ã質åã¯ãããŸããïŒ ã³ã³ããã¯éåžžã«å¹ççã§ããããã8å°ã®ãã·ã³éã§ãã¹ãŠãç°¡åã«é
åžã§ããŸãã ããã¯çŽ æŽãããããšã§ã¯ãããŸãããïŒ
ããã§ããããã¯ããªãã®å°è±¡ã«éããŸããã ãããŠãããããã¹ãŠãåãå
¥ããŠãã¢ããªã±ãŒã·ã§ã³ããããã€ããããšã¯ã§ããŸããïŒ
-ãã¡ããïŒ ç¢ºãã«ãDockerããã³Kubernetesã®å ŽåãããŒã¿ã¹ãã¬ãŒãžã®éã¯æªè§£æ±ºã®åé¡ã§ããããããã¯ãŒã¯ã®è² è·ã¯å¢å ããŸããããããã®åé¡ã¯ããã«è§£æ±ºãããŸãïŒ
ããŒãã倧äžå€«ã ããŠãç§ã¯ä»ãã¹ãŠãç解ããŠãããšæããŸãã
-ã¹ãŒããŒïŒ
詳现ãªè©±ãããããšãã
-ã¯ããåé¡ãããŸããã
ç§ãã¡ããäºããç解ããŠããããšã確èªããããã«ãç§ãã¡ã話ããããšãã¹ãŠãèŠçŽããŠãããŸãããã
-ãã¡ããïŒ
ãããã£ãŠãåçŽãªCRUDã¢ããªã±ãŒã·ã§ã³ã12åã®ãã€ã¯ããµãŒãã¹ã«åå²ããå¿
èŠããããŸããåãã€ã¯ããµãŒãã¹ã¯ç¬èªã®APIã§ã©ãããããããã®APIã«ãã£ãŠçžäºã«åŒã³åºãå¿
èŠããããŸãããåæã«åãšã©ãŒãåŠçããããããã¹ãŠã³ã³ãããŒã«å
¥ããŸãDockerãCoreOSããŒã¹ã®Dockerãã¹ãã§ãã8å°ã®ãã·ã³ã®ããªãŒããèµ·åããå°ããªetcdããŒã¹ã®Kubernetesã¯ã©ã¹ã¿ãŒã䜿çšããŠããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããããããã¯ãŒã¯è² è·ãšæ
å ±ã¹ãã¬ãŒãžã«é¢ãããæªè§£æ±ºã®è³ªåã®ã«ããã«ãã解決ããè€æ°ã®CI / CDãæ§æããŸããã©ã³ãµãŒä»ãã®åãã€ã¯ããµãŒãã¹ èŠéã§vschikamiã ããã§ããïŒ
-ã¯ãïŒ ã·ãã¯ãããªãïŒ
... Herokuã«ãããã€ããŸãã