Kubernetesã¯ããããžã§ã¯ãã®ãã©ãŒã«ããã¬ã©ã³ã¹ãã¹ã±ãŒã©ããªãã£ãããã³å質ãµãŒãã¹ã®å³ããèŠä»¶ãæºããããšãå®å šã«å¯èœã«ãããã¯ãããžã«ãªããŸããã ä»æ¥ãK8ã¯å€§èŠæš¡ãªçµç¹ããããžã§ã¯ãã§ããäžè¬çã§ãããšããäºå®ã«ãããããããå°ããªã¢ããªã±ãŒã·ã§ã³ã«é©çšããããšãåŠã³ãŸããã ã»ãŒãã¹ãŠã®ã¯ã©ã€ã¢ã³ãã«èŠããããã¹ãŠã®ã³ã³ããŒãã³ãã®çµ±äžãšäžè¬åã«ãããã¡ã³ããã³ã¹ã®ã³ã¹ããåæžããããšãå¯èœã«ãªããŸããã ãã®èšäºã§ã¯ãããžãã¹ããŒãºãšãã®æè¡çãªå®è£ ããåŸãããçµéšã玹ä»ããŸããããã«ãããæé ãªäŸ¡æ Œã§é«å質ã®ãœãªã¥ãŒã·ã§ã³ãšãµããŒããæäŸã§ããŸãã
æšæºãšããŠã®ãã±ããç§åŠ
ãŸããããã«ã©ã®ããã«å°éãããã«ã€ããŠã®äžè¬çãªèšèããå§ãã以äžã«ææ¡ããã€ã³ãã©ã¹ãã©ã¯ãã£ã®æè¡çãªè©³çŽ°ã®æŠèŠãèªã¿ãŸãã
å ¬åŒã®çŽ10幎éãFlantã¯GNU / Linuxããã³ç¡æ°ã®é¢é£æè¡ãšãœãããŠã§ã¢ã®ã·ã¹ãã 管çã«æºãã£ãŠããŸããã ãã®éãã£ãšãäœæ¥ããã»ã¹ãæ¹åããŸãããå€ãã®å ŽåãäŒç€Ÿãæäœæ¥ïŒå€ãã®å調ãªåé¡ãçºçãããšãã«ãæåã§ããµãŒããŒã«è¡ãå¿ èŠãããïŒããçç£ãã¹ããªãŒã ããïŒéåžžã®æ§æãéäžç®¡çãèªåå±éãªã©ïŒ å·¥å Žãšæ¯èŒããŸãã ãïŒã ç§ãã¡ããµãŒãã¹ãæäŸãããããžã§ã¯ãã®å€ãã¯éåžžã«ç°ãªã£ãŠããŸããïŒé©çšãããæè¡ã®ã¹ã¿ãã¯ãããã©ãŒãã³ã¹ãã¹ã±ãŒãªã³ã°èŠä»¶ãªã©ïŒããããã¯äœç³»åããå¿ èŠã®ããåºç€ãæã£ãŠããŸãã ãã®äºå®ã«ãããé«å質ã®ãµãŒãã¹ãæšæºçãªãµãŒãã¹ã«å€ããããšãã§ãããªãŒãºããã«ãªäŸ¡æ Œã§è¿œå ã®ã¡ãªããã顧客ã«æäŸã§ããŸãã
ããŸããŸãªãããžã§ã¯ãã®çµéšã«åºã¥ããŠç€Ÿå ã®ãã¹ããã©ã¯ãã£ã¹ãæ¡å€§ããããããèŠçŽããå Žåã«ãã£ãŠã¯ãããã°ã©ãã³ã°ãããŠããããã®çµæãä»ã®å©çšå¯èœãªã€ã³ã¹ããŒã«ã«æ¡åŒµããŸãã 以åã¯ãæ§æ管çã·ã¹ãã ïŒChefãæšå¥šïŒããã®ããã®éèŠãªããŒã«ã§ããã ã€ã³ãã©ã¹ãã©ã¯ãã£ã«åŸã ã«Dockerã³ã³ãããå°å ¥ãããããã®èšå®ãChefæ©èœãšçµ±åããããã®è«ççãªäžæ©ãèžã¿åºããŸããïŒãããdappããŒã«ã®äžéšãšããŠå®è£ ããŸããïŒ...
ããããKubernetesã®åºçŸã«ãããå€ãã®ããšãå€ãããŸããã 次ã«ãKubernetesã®æ§æã«ã€ããŠèª¬æãã以äžã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãååŸããŸãïŒé¡§å®¢ã«æäŸããŸãïŒ ã
- äžå 管ç
- ããã«åããå€ãã
- æ°ãããµãŒãã¹ã«ãã£ãŠç°¡åã«è£å®ããã
- ãªãœãŒã¹ãããã€ããŒïŒã¯ã©ãŠããããã€ããŒãããŒã¿ã»ã³ã¿ãŒïŒã«äŸåããã
- ãããžã§ã¯ãã®è€éããã¯ãŒã¯ããŒãã®å¢å ã®å Žåã«æ¡åŒµå¯èœã
- ç¶ç¶çãªçµ±åãšã¢ããªã±ãŒã·ã§ã³é ä¿¡ïŒCI / CDïŒã®ããã«ãææ°ã®ããã»ã¹ãšãã¯ãããžãŒãšç°¡åã«çµ±åããŸãã
ãã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®ã¢ãããŒãã¯ãæé«ã®ãœãªã¥ãŒã·ã§ã³ãç¡æ°ã®è©Šè¡é¯èª€ãããã³ITã·ã¹ãã ã®ãµãŒãã¹ã«ãããçã«å€é¢çãªçµéšãç¶ç¶çã«æ€çŽ¢ããçµæã§ãã ããã¯ãããŸããŸãªèŠæš¡ã®ãããžã§ã¯ãã«å¯ŸããåççãªãèŠç¯ãã®çŸåšã®ããžã§ã³ã§ãã
ãã®åŸãããžãã¹ãªãŒããŒã«é »ç¹ã«çããæèŠïŒãããã¯ã¯ãŒã«ã«èãããŸãããããã¯ããçš®ã®ãã±ããç§åŠã§ãããè€éãããŠé«äŸ¡ã§ãããããç§ãã¡ã«ãšã£ãŠã¯ããã§ã¯ãããŸãããã ããããç§ãã¡ã®çµéšã§ã¯ããã®ããã±ããç§åŠãã¯ãKubernetesã®å®è£ ã«ã€ããŠã¯ããã®ã¬ãã«ã§ã¯ãªãããšèãã人ã«ãšã£ãŠãçæ³çã§ããããšã瀺ãããŠããŸãã
- å©ç¹ã¯ãæ©èœããã ãã§ãªããäºæ ãçºçããå Žåã«ä¿®çãããåŸã ã«ïŒèŠæ±ã«å¿ããŠïŒæ¹åãããã€ã³ãã©ã¹ãã©ã¯ãã£ã§ã...ããã¯ããã®ãæ§è³ªãã«ãããèé害æ§ãã¹ã±ãŒã©ããªãã£ãéçºãµããŒãïŒãã¹ãã«ãŒããå±éãCIïŒã®ãã¹ãŠã®ããŒãºãã«ããŒããã€ã³ãã©ã¹ãã©ã¯ãã£ã§ã/ CDïŒã DevOpsã®ãã¹ããã©ã¯ãã£ã¹ãšæ¥çæšæºã®ãªãŒãã³ãœãŒã¹ã³ã³ããŒãã³ãã«åºã¥ããŠããŸãã
- è€éãã¯ç§ãã¡ã®è²¬ä»»ã®é åã§ãããéã«ããŠãŒã¶ãŒã«ãšã£ãŠçµæãå¯èœãªéãåçŽã«ããããšãã€ãŸã éçºè ã
- ã³ã¹ã -å°èŠæš¡ãããžã§ã¯ãã®ãã®ãããªå žåçãªã€ã³ãã©ã¹ãã©ã¯ãã£ãä¿å®ããããã®éåžžã®æé¡ãµãã¹ã¯ãªãã·ã§ã³æéã¯80ã120åã«ãŒãã«ã§ãããã¯ãæ¡ä»¶ä»ãå¹³åãLinuxãšã³ãžãã¢ãéãããšã«å¹æµããŸãã
å°ããªãããžã§ã¯ããæå³ããããšãšãã®ããŒãºã¯ã次ã®æ®µèœã§èª¬æããŸãã次ã®æ®µèœãããå žåçãªã€ã³ãã©ã¹ãã©ã¯ãã£ã®æ§é ã«ã€ããŠã®è©±ãå§ãŸããŸãã
æè¡çãªè©³çŽ°
ãå°ããªãããžã§ã¯ãããšã¯äœã§ããïŒ
ãã®èšäºã§æ€èšããã¢ãŒããã¯ãã£ã¯ãããŸããŸãªæ¹åã®å€ãã®ãããžã§ã¯ãã§æ¢ã«å®è£ ãããŠããŸãããããã¯ããã¹ã¡ãã£ã¢ããªã³ã©ã€ã³ã¹ãã¢ããªã³ã©ã€ã³ã²ãŒã ããœãŒã·ã£ã«ãããã¯ãŒã¯ããããã¯ãã§ãŒã³ãã©ãããã©ãŒã ãªã©ã§ãã
ãããèšèšãããŠããå°ããªãããžã§ã¯ããšã¯äœã§ããïŒ åºæºã¯ããã»ã©å³å¯ã§ã¯ãããŸããããäž»ãªåŸåãšèŠä»¶ã瀺ããŠããŸãã
- ããã¯ãã§ã«è€æ°ã®ãµãŒããŒããããããžã§ã¯ãã§ãïŒã¢ãŒããã¯ãã£ã¯å€ãã®ãµãŒããŒã«å±éã§ãããããååã®äžéã¯æ£ãããããŸããïŒã
- ãããžã§ã¯ãã¯ããžãã¹ããŒã«ã§ãããå©çãäžããããããã§ã«ãã©ãŒã«ããã¬ã©ã³ã¹ãå¿ èŠã§ãã
- ãããžã§ã¯ãã¯é«è² è·ã«å¯Ÿå¿ããå¿ èŠããããè¿ éã«æ¡åŒµã§ããæ©èœãæ¬åœã«å¿ èŠã§ãïŒããšãã°ããªã³ã©ã€ã³ã¹ãã¢ã¯ãã©ãã¯ãã©ã€ããŒã®åã«äžæçã«ãµãŒããŒå®¹éãå¢ããå¿ èŠããããŸãïŒã
- ãããžã§ã¯ãã«ã¯ã·ã¹ãã 管çè ãå¿ èŠã§ããããããªããšäœãèµ·ãããªãããã§ãã
ã¢ãŒããã¯ãã£å šäœãç°¡åã«èª¬æãããšãããã¯ãKubernetesã«ãã£ãŠç®¡çãããDockerã³ã³ããã®ãã©ãŒã«ããã¬ã©ã³ãã§ã¹ã±ãŒã©ãã«ãªã¯ã©ãŠãããšèšããŸãã ãããŠãããã«å«ãŸãããã®ã¯...
Kubernetesã¢ããª
以äžã§ã¯ãå žåçãªãªã³ã©ã€ã³ã¹ãã¢ãäŸãšããŠåãäžããŸãã Kubernetesã¯ã©ã¹ã¿ãŒãå±éãããŠãã3ã€ã®ãµãŒããŒããããšæ³åããŠãã ããã Kubernetesã¯ã¢ãŒããã¯ãã£ã®äž»èŠã³ã³ããŒãã³ãã§ãããDockerã³ã³ããã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãšãã®ç®¡çã«é¢äžããã³ã³ããŒãã³ãã§ãã 圌ã¯ãã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããã³ã³ããã®ä¿¡é Œæ§ãé«ãããã©ãŒã«ããã¬ã©ã³ãã§ã¹ã±ãŒã©ãã«ãªæäœãæ åœããŠããŸãã ããªãã¡ å®éã3ã€ã®ãµãŒããŒã§å®è¡ãããŠããã³ã³ãããŒã®ã¯ã©ãŠãã§ãã ã¯ã©ãŠããå®è¡ãããŠãããµãŒããŒã®1ã€ã«é害ãçºçããå ŽåãKubernetesã¯ãããããããã³ã³ãããŒïŒèœäžãããµãŒããŒäžã§å®è¡ïŒãæ®ãã®2ã€ã®ãµãŒããŒã«èªåçã«ã¹ããŒããŸããããã¯æ°ç§ä»¥å ã«éåžžã«é«éã«çºçããŸãã
ç§ãã¡ã®ç®æš-ã¯ã©ãŠãå ã®1å°ã®ãµãŒããŒãŸãã¯2å°ã®ãµãŒããŒã®èœäžã¯ç®ç«ããªãã€ãã³ãã§ããå¿ èŠããããŸãã ããã¯ãåã³ã³ããŒãã³ããå°ãªããšã1åè€è£œããã1ã€ã®ã³ã³ããŒãã³ãã®ã€ã³ã¹ã¿ã³ã¹ãã¯ã©ãŠãå ã®ç°ãªããµãŒããŒã«é 眮ããããšããäºå®ã«ããå®çŸãããŸãã åæã«ãããã¯ã¢ããã³ã³ããŒãã³ãã¯ããã«èªèº«ã®è² æ ãè² ãæºåãã§ããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ããµããŒãããŠããå Žåãã³ã³ããŒãã³ãã®ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ãåæã«åäœãããã¡ã€ã³äºçŽãã¢ãŒãã§ã¯ãªãå¯èœæ§ããããŸãã ãã¹ã±ãŒã«ããã¿ã³ãã¯ãªãã¯ããŠããã®ã³ã³ããŒãã³ãã®å¥ã®1ã€ã2ã€ã3ã€ããŸãã¯ãã以äžã®è¿œå ã€ã³ã¹ã¿ã³ã¹ãååŸããããšãã§ããŸãã
ãªã³ã©ã€ã³ã¹ãã¢ãPHPã§èšè¿°ãããŠããã次ã®ã³ã³ããŒãã³ããå«ãŸããŠãããšããŸã*ïŒ
- MySQLããŒã¿ããŒã¹
- PHPããã¯ãšã³ã
- memcachedãã£ãã·ã³ã°
- RabbitMQãã¥ãŒ
- Redisã§ã®æ³šæã®ä¿ç®¡ã
- æ¶è²»è
- cronã¿ã¹ã¯ã
*å®éã«ã¯ãããããªã³ã©ã€ã³ã¹ãã¢ã§ãããã¡ãã£ã¢ãµã€ãã§ãããã¯ããã»ã©éèŠã§ã¯ãªããã³ã³ããŒãã³ãèªäœããŸã£ããç°ãªãå ŽåããããŸãããæ¬è³ªã¯åããŸãŸã§ãã
ãæ³åã®ãšãããç§ãã¡ã®ä»äºã®äžéšã¯ãã¢ããªã±ãŒã·ã§ã³ïŒãã®å Žåã¯ãªã³ã©ã€ã³ã¹ãã¢ïŒãDockerã³ã³ãããŒã«ããã¯ããŠããããããã®ã³ã³ãããŒãKubernetesã¯ã©ãŠãã§èµ·åããããšã§ãã ã¢ããªã±ãŒã·ã§ã³èªäœïŒPHPããã¯ãšã³ãïŒã«å ããŠãã¯ã©ãŠãã§æ©èœããä»ã®ã³ã³ããŒãã³ãïŒmemcachedãRabbitMQãªã©ïŒ
泚 ïŒæè¡çãªçç±ã«ãããKubernetesã¯ã©ãŠãå ã«æ¬çªç°å¢ã§RDBMSãã€ã³ã¹ããŒã«ããããšã¯ãŸã ãããŸããã ãããã圌ãã¯ãæ¬çªç°å¢ã§ã¯ãªãå°ããªãããžã§ã¯ããã¢ããªã±ãŒã·ã§ã³ïŒdev-contoursãªã©ïŒåãã«ããã®ãããªã€ã³ã¹ããŒã«ãæåã«è¡ãå§ããŸããã
å€ãã®å Žåããã¹ãŠã®ãããžã§ã¯ãã«ã¯ã»ãŒåãã³ã³ããŒãã³ãã®ã¹ã¿ãã¯ããããããã°ã©ãã³ã°èšèªãšããŒã¿ããŒã¹ã«éããããå¯èœæ§ãé«ããªããŸãã Kubernetesã®å°å ¥ã«ããããããã®åã³ã³ããŒãã³ãã®å žåçãªæ§æãå®è£ ããè¯ãæ©äŒãäžããããŸãããããã¯ããããããããžã§ã¯ãã«é©ããŠããŸãã åæã«ããã®ãããªå žåçãªã³ã³ããŒãã³ãã¯ããèªäœã§ãã©ãŒã«ããã¬ã©ã³ãã§ããã容æã«æ¡åŒµã§ãã5å以å ã«Kubernetesã¯ã©ã¹ã¿ãŒã«ãã€ã³ã¹ããŒã«ãããŸãã äŸãšããŠãåã³ã³ããŒãã³ããåå¥ã«æ€èšããŸãã
ããŒã¿ããŒã¹
ã»ãšãã©ã®å ŽåãDBMSã¯Kubernetesã®å€éšã«ãããéåžžããã¹ã¿ãŒã¹ã¬ãŒãã¢ãŒãïŒMySQLãPostgreSQLãªã©ïŒãŸãã¯ãã¹ã¿ãŒãã¹ã¿ãŒïŒPercona XtraDBïŒã§åäœãã2ã€ãŸãã¯3ã€ã®ãµãŒããŒã§æ§æãããŠãããããDBMSã¯å¥ã®ãšã³ãã£ãã£ãšããŠå²ãåœãŠãããŸããç·æ¥æã®èªåãŸãã¯æåãã§ãŒã«ãªãŒããŒã
PHPããã¯ãšã³ã
ããã¯ãšã³ãã¯ãDockerã³ã³ããã«ããã±ãŒãžåãããã¢ããªã±ãŒã·ã§ã³ã³ãŒãã§ãã ã¢ããªã±ãŒã·ã§ã³ã«å¿ èŠãªã©ã€ãã©ãªãšãœãããŠã§ã¢ã¯ããã®ã³ã³ããã«ã€ã³ã¹ããŒã«ãããŸãïŒããšãã°ãPHP 7ïŒã åãã³ã³ããã䜿çšããŠãã³ã³ã·ã¥ãŒãã¿ã¹ã¯ãšcronã¿ã¹ã¯ãå®è¡ããŸãã Kubernetesã§ã¯ãè€æ°ã®ããã¯ãšã³ãã€ã³ã¹ã¿ã³ã¹ã1ã€ã®ã¯ã©ãŠã³ãããã³è€æ°ã®ã³ã³ã·ã¥ãŒããŒãèµ·åããŠããŸãã
Memcached
memcachedã䜿çšããŠãããŸããŸãªç¶æ³ã§äœ¿çšããã2ã€ã®å®è£ ãªãã·ã§ã³ãæŽå²çã«éçºããŠããŸããã
- Nåã®åå¥ã®memcachedã€ã³ã¹ã¿ã³ã¹ïŒéåžž3ïŒã ã¢ããªã±ãŒã·ã§ã³ã¯ã3ã€ãã¹ãŠã®memcachedãèªèãã3ã€ãã¹ãŠã«æžã蟌ã¿ããã§ã€ã«ãªãŒããŒèªäœãæäŸããŸãã
- Mcrouterã¯ãããããã¢ããªã±ãŒã·ã§ã³ã«é©åããæ±çšãªãã·ã§ã³ã§ãã åæ£æžã蟌ã¿ããã³ãã§ãŒã«ãªãŒããŒããžãã¯ã¯ããã¯ãã¿ãŒåŽã®ã¢ããªã±ãŒã·ã§ã³ããåãåºãããŸãã
ããã
Kubernetesã¬ãã«ã§èªåãã§ãŒã«ãªãŒããŒãè¡ã3ã€ä»¥äžã®ããŒãã®éåžžã®RabbitMQã¯ã©ã¹ã¿ãŒã䜿çšããŸãã
ã¬ãã£ã¹
ãã®ã³ã³ããŒãã³ãã®äžå¿ã§ãéåžžã®Redis Sentinelã¯ã©ã¹ã¿ãŒã䜿çšããŸããããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãã»ã³ããã«ãããã³ã«ãå®è£ ããå¿ èŠæ§ãæé€ãããã€ã³ãã£ã³ã°ããããŸãã
ãã®ä»ã®ã¢ããªã±ãŒã·ã§ã³ãµãŒãã¹
åæ§ã«ãminioãsphinxsearchãelasticsearchããã®ä»å€ãã®æ¢è£œããã³ãã¹ãæžã¿ã®ã³ã³ããŒãã³ããä¿æããŠããŸãã ã»ãšãã©ãã¹ãŠã®ãœãããŠã§ã¢ãKuberneteså ã«ã€ã³ã¹ããŒã«ã§ããŸããäž»ãªããšã¯ããã®ããã»ã¹ã«è³¢æã«ã¢ãããŒãããããšã§ãã
ãµãŒãã¹éšå
åãããžã§ã¯ãã«ã¯ã次ã®KubernetesãŠãŒãã£ãªãã£ã³ã³ããŒãã³ãããããŸãã
- éçºè ãã³ã³ããŒãã³ãã管çã§ããããã«ããã³ã³ãããŒã«ããã«ïŒããã·ã¥ããŒãïŒã ãŸãããããä»ããŠã³ã³ããå ã«å ¥ãããšãã§ããŸã-SSHã®ããã«ã
- éäžãã°ã¹ãã¬ãŒãžã ãã°ã¯ãã¹ãŠã®åè·¯ã®ãã¹ãŠã®ã³ã³ããŒãã³ããããªã¢ã«ã¿ã€ã ã§åéããããã°ã¯åäžã®ããŒã¿ããŒã¹ã«æžã蟌ãŸããŸãã ãã¹ãŠã®ãã°ããªã¢ã«ã¿ã€ã ã§è¡šç€ºããããŸããŸãªãã©ã¡ãŒã¿ãŒã§æ€çŽ¢ããã³ãã£ã«ã¿ãŒããæ©èœãåããWebã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšã§ããŸãã ãã®ããã«ã ãã®çºè¡šã§èªã詳现ã«ã€ããŠã¯ãç¬èªã®ãªãŒãã³ãœãŒã¹ãœãªã¥ãŒã·ã§ã³ãã°ããŠã¹ã䜿çšããŸãã
- Prometheus + Okmeterã§ç£èŠããŸãã Prometheusã¯Kuberneteså ã«ã€ã³ã¹ããŒã«ããããã¹ãŠã®ã³ã³ããŒãã³ãããçµ±èšãåéããŸãã æšæºãã©ã¡ãŒã¿ãŒïŒã¡ã¢ãªããã£ã¹ã¯ãCPUïŒã«å ããŠãã¡ããªãã¯ã¯Apache / php-fpmãRabbitMQãRedisãªã©ãããååŸãããŸãã -åã³ã³ããŒãã³ãã¯åå¥ã«ç£èŠãããŸãã Okmeterã¯Kubernetesã®å€ã«ç«ã¡ããµãŒããŒèªäœãå€éšããç£èŠããŸãã
ã¢ãŒããã¯ãã£ã³ã³ãµã«ãã£ã³ã°ãšã¹ããŒãã¬ã¹
ååãšããŠãæåã«ç§ãã¡ã«å±ããããžã§ã¯ãã«ã¯ãã¢ãŒããã¯ãã£ã«é¢ããåé¡ããããŸããäž»ã«ããã£ã¹ã¯äžã®ãã¡ã€ã«ãŸãã¯äžéããŒã¿ã®ä¿åãã»ãã·ã§ã³ã®ããŒã«ã«ã¹ãã¬ãŒãžãããã³ä»ã®å€ãã®çç±ã«ããã¹ã±ãŒãªã³ã°ã§ãã ä»äºã®æ倧ãã€æãé£ããéšåã¯ãéçºè ãã¢ããªã±ãŒã·ã§ã³ãäœãçŽããŠã¹ããŒãã¬ã¹ã«ãªãããã«ããããšã§ãã
ãããå®å šã«æå ã«ããå Žåãããã¯ã¢ããªã±ãŒã·ã§ã³ã®åã³ã³ããŒãã³ããäžéããŒã¿ãä¿åããªãããšããŸãã¯ãã®ããŒã¿ã¯ã»ãšãã©éèŠã§ã¯ãªããå®å šã«å€±ãããå¯èœæ§ãããããšãæå³ããŸãã ããã¯ãè€æ°ã®ããã¯ãšã³ããèµ·åãããã®ãã¡ã®1ã€ãçªç¶å€±æããå Žåã«äœãå£ããããŠãŒã¶ãŒãããŠã³ããŒããããã¡ã€ã«ãåé€ãããªãããã«ããããã«å¿ èŠã§ãã
ã¹ããŒãã¬ã¹ã¢ããªã±ãŒã·ã§ã³ãå°é£ã«ããæãäžè¬çãªçç±ã¯æ¬¡ã®ãšããã§ãã
- ããã¯ãšã³ãã§ã®ã»ãã·ã§ã³ã®ããŒã«ã«ã¹ãã¬ãŒãžïŒãã¡ã€ã«å ïŒã ãã®åé¡ã¯ãã»ãšãã©ã®å Žåãã»ãã·ã§ã³ããã©ãŒã«ããã¬ã©ã³ãmemcachedã«å ¥ããã ãã§è§£æ±ºãããŸãïŒPHPèšå®ãŸãã¯ã¢ããªã±ãŒã·ã§ã³èšå®ïŒã
- ããã¯ãšã³ãã®ããŠã³ããŒããã¡ã€ã«ã®ããŒã«ã«ã¹ãã¬ãŒãžã ãã®åé¡ã¯ãå°çšã®ãã¡ã€ã«ã¹ãã¬ãŒãžïŒããšãã°ãAmazon S3ãŸãã¯Selectelã®ãã¡ã€ã«ã¹ãã¬ãŒãžïŒãŸãã¯minioãŸãã¯CephïŒS3 / Swift APIïŒã«å®è£ ãããã¯ã©ã€ã¢ã³ããµãŒããŒäžã®ã¹ãã¬ãŒãžã®ãªãã·ã§ã³ã䜿çšããããšã§è§£æ±ºãããŸãã
ãã®ãããªã¹ããŒãã¬ã¹ãªæªæ¥ã«é¢ããæžå¿µãžã®çãã¯ïŒãããããªãã¯æ¬åœã«ã¢ããªã±ãŒã·ã§ã³ã®å€æŽã«éçºè ã®ãªãœãŒã¹ãè²»ããå¿ èŠããããŸãïŒãããã¯ãšã«ããé¿ããããªãããšã§ãïŒã¹ã±ãŒãªã³ã°ãå¿ èŠãªã¢ããªã±ãŒã·ã§ã³ã®å ŽåïŒã段éçã«ã¢ãããŒãããããšãã§ããŸãã
ãã®ä»ã®åé¡ãšæ©èœ
CI / CD
æåŸã«ããã®ãããªã€ã³ãã©ã¹ãã©ã¯ãã£ã«ã¢ããªã±ãŒã·ã§ã³ã³ãŒããã©ã®ããã«å±éãããã«ã€ããŠãè«ççãªçåãçããŸãã 次ã®ããã«é 眮ãããŸãã
- ã³ãŒãã¯ããŒãžã§ã³ç®¡çã·ã¹ãã ïŒGitïŒã«ãã£ãŠç®¡çãããŸãã
- GitLab *ã䜿çšããŠãã³ãŒãã®ã³ãããåŸã«Dockerã³ã³ãããŒã®ã¢ã»ã³ããªãåŒã³åºããŸãã
- GitLabã®ãã«ããã§ãŒãºã®åŸããå®çšŒåç°å¢ã«ããŒã«ã¢ãŠãããã¿ã³ã衚瀺ãããŸãã
- ãã®ãã¿ã³ãæŒããŸã-ã¢ããªã±ãŒã·ã§ã³ã®æ°ããããŒãžã§ã³ãããŒã«ã¢ãŠãããŠèµ·åããå€ãããŒãžã§ã³ãåæ¢ããããŒã«ã¢ãŠãããµã€ããŠãŒã¶ãŒã«å¯ŸããŠã·ãŒã ã¬ã¹ãã€ç®ã«èŠããªãããã«è¡ãããŸãã ãŸããããŒã«ã¢ãŠãäžã«ãããŒã¿ããŒã¹ã®ç§»è¡ãå®è¡ãããŸãã
Kubernetesã«ã¯åå空éããããŸãã ãããã¯ãåãã¯ã©ã¹ã¿ãŒã§å®è¡ãããåå¥ã®åé¢ãããåè·¯ãŸãã¯ç°å¢ãšèããããšãã§ããŸãã ã€ãŸããã¹ããŒãžã³ã°çšããã¹ã¿ãŒãã©ã³ãçšããŸãã¯ãã©ã³ãããšã«åå¥ã®ãã¹ãäœæããæ©äŒããããŸãã 茪éã¯çç£ã®å®å šãªã³ããŒã§ãããã¹ãŠã®åãã³ã³ããŒãã³ãïŒMySQLãããã¯ãšã³ããRedisãRabbitMQãªã©ïŒããããŸãã ããã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£èšå®å šäœïŒãã¹ãŠã®ã³ã³ããŒãã³ãã®èšå®ïŒãç¹å¥ãªYAMLãã¡ã€ã«ã§èšè¿°ããããªããžããªã«ãããšããäºå®ã«ããå®çŸãããŸããã€ãŸããä»ã®ããŒã ã¹ããŒã¹ã§æ¬çªç°å¢ãè¿ éãã€å®å šã«åäœæããæ©äŒãåŸãŸãã
* GitLab CIã®ãã€ãã©ã€ã³ã®äŸãšãã®å®è£ ã®æè¡çãªè©³çŽ°ã«ã€ããŠã¯ã ãã®èšäºãã芧ãã ãã ã
ãµãŒããŒ
æãäžè¬çãªã€ã³ã¹ããŒã«ã¯ãE5-1650v4ã128G RAMã2Ã500 GB SSDã®æ§æãåãã3ã€ã®ãã€ããŒãã€ã¶ãŒãµãŒããŒã§ãã ãµãŒããŒã¯ããŒã«ã«ãããã¯ãŒã¯ã«ãã£ãŠçžäºæ¥ç¶ãããŸãã åãµãŒããŒã®ãªãœãŒã¹ã¯ãä»®æ³ãã·ã³ïŒLinux KVM + QEMUïŒã䜿çšããŠæ¬¡ã®éšåã«åå²ãããŸãã
- çç£åè·¯;
- éçºåè·¯
- KubernetesãµãŒãã¹ãµãŒãã¹ïŒãã¹ã¿ãŒãšããã³ãïŒ;
- ããŒã¿ããŒã¹ã
ããã¯ã¢ãã
ããŒã¿ããŒã¹ãã¢ããããŒããã¡ã€ã«ãªã©ããããžã§ã¯ãã«å¿ èŠãªãã¹ãŠãããã¯ã¢ããããŸãã ããã¯ã¢ããäžã«ããŠã³ã¿ã€ã ã¯çºçããŸããïŒDBMSã®å ŽåãããŒã¿ã¯ã¹ã¬ãŒããµãŒããŒããåé€ãããŸãïŒã ããã¯ã¢ããèšç»ãšãã®æ次ãã¹ãã¯ã¯ã©ã€ã¢ã³ããšåæãããŠããŸã-å人ã®ãããžã§ã¯ããããŒãžã£ãŒããããæ åœããŸãã
ç£èŠãšçžäºäœçš
ãããã¯åžžã«æè¡çãªåé¡ã§ã¯ãããŸããããç¶ç¶çãªãµããŒãã®å šäœåãç解ããããã«éèŠã§ãã
- ç§ãã¡ãå©çšã§ããç£èŠããŒã«ã®ãããã§ããã¹ãŠã®ã¢ã©ãŒãã¯å€åãšã³ãžãã¢åãã®éäžç®¡çãããã€ã³ã¿ãŒãã§ãŒã¹ã«æµããŸãã åã€ã³ã·ãã³ããåŠçããå¿ èŠããããããããã«èŠçŽãå¿ èŠã§ãã ã¢ã©ãŒããžã®å¹³åå¿çæéã¯1åïŒããªã¢ãŒãžã®å Žåã¯10åïŒã§ãããã¢ã©ãŒããžã®å¿çã¯15å以å ã«ä¿èšŒãããŸãã é»è©±ãã¹ã©ãã¯ãéµäŸ¿ããã±ããã·ã¹ãã ïŒRedmineïŒã§24æéäœå¶ã§å€åãããšã³ãžãã¢ã
- åãããžã§ã¯ãã«ã¯ãå°ä»»ã®ãããŒãžã£ãŒãšãäžæµã®ãšã³ãžãã¢ãæ®éã®ãšã³ãžãã¢ããžã¥ãã¢ãšã³ãžãã¢ãå«ããšã³ãžãã¢ã®å°ä»»ããŒã ãããŸãã ãããã®äººã ã¯å€ãããŸããã圌ãã¯ãããžã§ã¯ãã®æåãããçããŠãããããã®ä»çµã¿ãå®å šã«ç解ããŠããŸãã
- ã·ã³ãã«ãªããžãã¹ã¯ãªãã£ã«ã«ãªã€ã³ãã©ã¹ãã©ã¯ãã£ã«å¯Ÿãã眰éãå«ãSLAä¿èšŒãæäŸããŠããŸãã
èŠçŽãã
çŸä»£ã®ã¯ã©ãŠããã€ãã£ãã€ã³ãã©ã¹ãã©ã¯ãã£ãœãªã¥ãŒã·ã§ã³ã¯ãä»ããã¹ãŠã®äººã«ãšã£ãŠæå¹ã§ããããã®äœ¿çšã³ã¹ãã¯å®å®è¹ã®äŸ¡æ Œã«å¹æµãã¹ãã§ã¯ãªããšèããŠããŸãã ã¢ãã€ã«éä¿¡ãšã®é¡äŒŒæ§ãåŒãåºãããšãã§ããŸããã¢ãã€ã«éä¿¡ããšãªãŒãã®ã¿ãå©çšã§ããããã«ãªãåã§ããã°ãä»æ¥ã§ã¯åœããåã®ããšã§ãããéä¿¡ã®äŸ¡æ Œã¯å®ãã§ãã
ãLinuxã§ã®ãã¹ãŠãã®ãæåã管çããKubernetesã«åºã¥ãææ°ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãµããŒãã«ç§»è¡ããŠãåççãªãèŠç¯ããšèŠãªããããµãŒãã¹ããäºç®ãåãã顧客ã«ã¢ã¯ã»ã¹ã§ããããã«åªããŠããŸãã ãããã£ãŠãã¹ã¿ãããéçšããã·ã¹ãã 管çè / DevOpsãšã³ãžãã¢ã®çµŠäžã¬ãã«ã®äºç®å ã§ã24æéäœå¶ã®ãµããŒããšSLAä¿èšŒãåããDevOpsã®ååã«åŸã£ãŠïŒéçºè ãšç·å¯ã«ååããŠïŒãã®ãããªã€ã³ãã©ã¹ãã©ã¯ãã£ãå®è£ /ä¿å®ããå°é家ã®å°éããŒã ãæäŸããŸãã
ããã§ç°¡åã«èª¬æããã€ã³ãã©ã¹ãã©ã¯ãã£ã®å€ãã®æè¡çåŽé¢ïŒããã³é¢é£ãããã¹ããã©ã¯ãã£ã¹ïŒã«ã¯ããªãã®è©³çŽ°ããããŸãããããã¯åã ã®èšäºã®è©±ã§ãïŒãããã®äžéšãæ¢ã«ããã°ã§å ¬éãããŠããå Žåãã³ã¡ã³ãã§æ°ãããã®ã®ãªã¯ãšã¹ããæè¿ããŸãã æè¡ã«é¢é£ããåé¡ã§ã¯ãªããä»äºã§äœ¿çšããããã»ã¹ãããµãŒãã¹ã®äžéšãšããŠã¯ã©ã€ã¢ã³ãã«æäŸããããã»ã¹ã«é¢é£ããåé¡ã«åãã§å¯ŸåŠããŸãã
PS
ããã°ãã芧ãã ããã
- ã å°èŠæš¡ãããžã§ã¯ãã§ã®Kubernetesã§ã®çµéš ã ïŒKubernetesã®æè¡ããã€ã¹ã®çŽ¹ä»ãå«ããããªã¬ããŒãïŒ;
- å¶äœã«ãããKubernetesã®ãµã¯ã»ã¹ã¹ããŒãªãŒã«é¢ããã·ãªãŒãºïŒã No. 1ïŒeBayã«ãã4,200ããããšTessMaster ããã Noã2ïŒConcurãšSAP ããã Noã3ïŒGitHub ããã Noã4ïŒSoundCloudïŒèè PrometheusïŒ ã
- ã Kubernetesã®å®è£ ã®é£ããã«é¢ããæ°ããã¹ã¿ãã¯çµ±èš ã;
- ã Kubernetesãå¿ èŠãªçç±ãšPaaSããã倧ããçç± ã