éçºå宿ã§Dockerã¨Mesosã使ã£ã¦ããæãã«ãªã½ã¼ã¹æä¾ã¨ãããã¤ãããã¤ãä½ã£ã¦ã
3æ¥éã®éçºå宿ã§ãDocker 㨠Mesos ã使ã£ã¦ãªã½ã¼ã¹ç®¡çãããã¹ãã»ãããã¤ç®¡çã¾ã§ãããã¤ã®ãããã¿ã¤ããä½ã£ã¦ãã
4人ãã¼ã ã§3æ¥éã¿ã£ã¡ããã£ã¦ããããªãã«ããæãã«ã¯ã§ããã¨æããid:shiba_yu36 ãæ¢ã«æ¸ãã¦ããã©ãèªåã®è¦ç¹ããææ³ã ãæ¸ãã¦ããã
本番環境のBlue-Green Deploymentの仕組みのプロトタイプを作っていた - $shibayu36->blog;
çµç·¯
- æè¿å¿ããã¦ãã¾ã触ãã¦ãªããImmutable Infrastracture ã¿ãããªã®ãä½ã£ã¦ã¿ããã£ãã
- Docker ãéçºã«ä½¿ãã®ã¯ããæãã ãã©ãå®éã®éç¨ã«çµã¿è¾¼ãã«ã¯ãã¨ããã¤ã¡ã¼ã¸ãã¤ãã¿ããã£ãã
- ã¨ããã®ãã©ã¼ã¡ã³å±ã§è©±ãã¦ãã4人éã¾ã£ãã®ã§é¢¨åæ·ãåºãã¦ã¿ãã
ã©ããªãã®ãä½ã£ãã
- ã¢ããªã±ã¼ã·ã§ã³ã¯ Docker ã³ã³ããã¨ãã¦åããã
- Debian Wheezy ã« 3.10.23 ã®ã«ã¼ãã«ãå ¥ãã¦ä½¿ã£ãã
- ã³ã³ããç°å¢ãæä¾ãããªã½ã¼ã¹ãã¼ã«ã¯ Mesos ä¸ã®ãã¬ã¼ã ã¯ã¼ã¯ Marathon ã§ç®¡çããã
- ç¹å®ãã¼ã¸ã§ã³ã®ç°å¢ã¯ Marathon ä¸ã®ã¸ã§ãã¨ãã¦å®è¡ããããåæ ãåãæ»ãã¯ãã¿ã³ä¸çºã§è¡ããã
- å種ãªã½ã¼ã¹ãã¢ãã¿ãªã³ã°ãã¢ããªã±ã¼ã·ã§ã³ãã¨ã»ã¸ã§ããã¨ã«å¯è¦åãããã
- Docker ã¤ã¡ã¼ã¸ä¸ã« sensu 㨠fluentd ãå ¥ãã¦ãã°ãã¡ããªã¯ã¹ã転éã»ç£è¦ããã
- å¯è¦å㯠Graphite ã§ãããæãã«ã¾ã¨ãã¦ããã·ã¥ãã¼ãã«è¡¨ç¤ºããã
- ã³ã³ããã®ãã¹ãããå¯è¦åã¾ã§ Jenkins ã§è¡ãã
- git ãªãã¸ããªã« push ããã Docker ã¤ã¡ã¼ã¸ã®ãã«ãã¨ãã¹ãã
- å ¨ä½ã®ãã«ãã«ãã»ã¢ããªå¤æ´ã®ã¿ã®å·®åãã«ããç¨æãã¦æ®æ®µã¯å¾è ã®ã¿è¡ãã
- Docker ã¤ã¡ã¼ã¸ã push ããå½¢ã¯é¸ã°ãªãã£ãã
- å
¨ä½ãçµ±æ¬ããããã·ã¥ãã¼ãã¢ããªããåæ æä½ãè¡ãã
- ãã¼ã¸ã§ã³ãã¨ã« Marathon ã«ãªã½ã¼ã¹è¦æ±ãnginx è¨å®ãçæãããã«ã¹ãã§ãã¯ãéã£ããåãæ¿ããã¿ã³ã§ãªãªã¼ã¹ã§ããã
- åå¥ã®ãã¼ã¸ã§ã³ç°å¢ã¸ã®ã¢ã¯ã»ã¹æä¾ãå®éã«ã¢ã¯ã»ã¹ãã¦ç¢ºèªã§ããã
- Jenkinsã§ãã¹ããéã£ããããã«ææ°çãä½ããããæåã§ä½æãã§ããåãã¼ã¸ã§ã³ã¯åé¤ããã¾ã§æ®ããã¦ããã
ææ³
éçºç¨ã«ã¯ããã«ã§ãå°å ¥ããã
- ã³ã³ããåã®èµ·åæéã¨ãªã½ã¼ã¹æ¶è²»ã®å°ãªãã§æ°è»½ã« Immutable ã«ã§ããã
- ãµã¼ãè¨å®å¤æ´ã»åæ å«ãã¦æã£ã以ä¸ã«æ°æ¥½ã«ã§ãããæ¢åã®ç¤¾å ç°å¢ãAWS ã§5-10åãããã®ã¨æ¯è¼ãã¦ãå¿ççãªéå£ãããªãå°ããã
- æ°è»½ã«ç°å¢ä½æã»åé¢ãã§ããã
æ¬çªå°å ¥ã«ã¯èª²é¡ãå¤ã
- Docker èªèº«ãã¾ã çºå±éä¸ã«ãã
- issue ã«ãªã£ã¦ãã¨ããã«ãã£ããã¯ã¾ã£ã¦ã https://github.com/dotcloud/docker/issues?page=1&state=open
- ãããå¢ãã§éçºããã¦ãã®ã§ãããªãã«
- ãªã½ã¼ã¹ç®¡çã¾ããã®ããã«ã¦ã§ã¢ãæã£ã¦ããªãæ°ãããã*1
- Marathon ãåããã¦ãã㨠mesos-slave èªèº«ã®è² è·ãããªãé«ã
- Marathon ã executor ã® mesos-docker ãããã¥ã¡ã³ããè¶³ããªãã¦ããã¼ã ã¡ã³ããã½ã¼ã¹ãèªãã§æåã確èªããæãã«ãªã£ãã*2
- ä½ãããªãåããªã¼ãã¹ã±ã¼ã«é¨åã¯èªåã§ç®¡çããªãã¨ãããªãã
- Flynn ã«ã¯æå¾ ãã¦ãã
- (Fluentd|Sensu) + Graphite ã¨ããçµã¿åããã§å¯è¦åã¨ç£è¦ã¯ããæãã«ã§ããã
- Fluentd, Sensu 両æ¹åããããã¯ãªããã©ãä¸é·ä¸çãã£ã¦ä¸¡æ¹åãããã¨ã«ãªã£ããæ°åããå
¥ã㦠fluentd ã«å¯ããã¨ãããããããªã
- Sensu ã使ã㨠client ä¸è¦§ãã¡ããã¨ç®¡çããªãã¨ç ´æ» ããã®ã§é¢å (ä½ããªãããã³ã«å¢ãã)
- Graphite ã®è¨æ³ãå¼·åã§æ¥½ãã
- Fluentd, Sensu 両æ¹åããããã¯ãªããã©ãä¸é·ä¸çãã£ã¦ä¸¡æ¹åãããã¨ã«ãªã£ããæ°åããå
¥ã㦠fluentd ã«å¯ããã¨ãããããããªã
èªåããã£ããã¨
- Mesos + Docker ãã©ããã£ã¦åãããã¨ããé¨åã
- ãªã½ã¼ã¹ãã¼ã«ã®æºå
- OSã¨ã«ã¼ãã«ãå ¥ãæ¿ã㦠Docker ç°å¢ãä½ã£ã¦ãã
- Dockerfile å©ãå°
- chef ã¯æ¬è³ªçã§ã¯ãªãã®ã§ Dockerfile ã«ã¹ã¯ãªãããæ¸ãé£ããã ãã
- ãã¼ã¿åéã¾ãã
- Fluentd, Sensu ã® client/server ãç¨æãã¦ã¡ããªã¯ã¹ã»ãã°ã®åé
- Graphite ã«æãã¦ã¢ããªåä½ã»ãã¼ã¸ã§ã³åä½ã®ããã·ã¥ãã¼ãã«è¡¨ç¤º
ç·æ¬
- Immutable infrastructure ç°å¢ä½æã¾ããã®ããã«ã¦ã§ã¢ã¨ãã®ä¸ã§åãã¢ããªã±ã¼ã·ã§ã³ã®è¦æ±ã«ã¤ãã¦ãªãã¨ãªãæè¦ãæ´ããã
- åããã®ã3æ¥ã§å¢ãããéçºããã®ã¯ãªããªã楽ããã£ãã3ã¶æã«1åãããããããã
ç²ãã¦ãã®ã§ãããããã«ãã¾ããèªåã触ã£ãé¨åã®è©³ç´°ã«ã¤ãã¦ã¯å¥ã®è¨äºã§ãã£ã¨æ¸ãã¾ãã
*1:ãã®ã¸ãã¯ãµã¼ãã¤ãå°ãè¶³ããªããã
*2:åæã«ä½ã£ãAPIããã¥ã¡ã³ãå ¬éãã¦ã»ãããªã¼