URUS 瀟ã¯ããã¢ã¡ã¿ã«ã Google Cloud ã§ã®ç¬ç«ãããããã€ãªã©ãããŸããŸãªåœ¢åŒã§ Kubernetes ãè©Šãããã®åŸããã®ãã©ãããã©ãŒã ã Mail.ru ã¯ã©ãŠã ãœãªã¥ãŒã·ã§ã³ (MCS) ã¯ã©ãŠãã«ç§»è¡ããŸããã Igor Shishkin ã¯ãæ°ããã¯ã©ãŠã ãããã€ããŒãã©ã®ããã«éžæããã©ã®ããã«ããŠèšé²ç㪠XNUMX æéã§ããã«ç§»è¡ã§ããããèªããŸã (
ãŠã«ã¹ã£ãŠäœãããã®ïŒ
éœåžç°å¢ã®è³ªãæ¹åããã«ã¯å€ãã®æ¹æ³ããããŸããããã® XNUMX ã€ã¯ç°å¢ã«åªããéœåžã«ããããšã§ãã ããã¯ãŸãã« URUS (ã¹ããŒã ããžã¿ã« ãµãŒãã¹äŒç€Ÿ) ãåãçµãã§ããããšã§ãã ããã§ã¯ãäŒæ¥ãéèŠãªç°å¢ææšãç£èŠããç°å¢ãžã®æªåœ±é¿ã軜æžããã®ã«åœ¹ç«ã€ãœãªã¥ãŒã·ã§ã³ãå°å ¥ããŠããŸãã ã»ã³ãµãŒã¯ç©ºæ°ã®çµæãéšé³ã¬ãã«ããã®ä»ã®ãã©ã¡ãŒã¿ãŒã«é¢ããããŒã¿ãåéããããããçµ±åããã URUS-Ekomon ãã©ãããã©ãŒã ã«éä¿¡ããŠåæããæšå¥šäºé ãäœæããŸãã
URUS ã®å éšããã®ä»çµã¿
URUS ã®å žåçãªé¡§å®¢ã¯ãäœå® å°ãŸãã¯ãã®è¿ãã«ããäŒæ¥ã§ãã ããã¯ãå·¥å Žã枯ãééè»äž¡åºå°ããŸãã¯ãã®ä»ã®æœèšã§ããå¯èœæ§ããããŸãã åœç€Ÿã®ã¯ã©ã€ã¢ã³ãããã§ã«èŠåãåããŠããå Žåãç°å¢æ±æã§çœ°éãç§ãããå ŽåããŸãã¯éšé³ãæžãããæ害ãªæåºéãåæžãããå Žåã¯ãåœç€Ÿã«æ¥ãŠãã ãããåœç€Ÿã¯ãã§ã«ç°å¢ã¢ãã¿ãªã³ã°ã®ããã®æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãæäŸããŠããŸãã
H2S æ¿åºŠç£èŠã°ã©ãã¯ãè¿ãã®å·¥å Žããã®å®æçãªå€éæåºéã瀺ããŠããŸã
URUS ã§äœ¿çšããããã€ã¹ã«ã¯ãç°å¢ç¶æ³ãè©äŸ¡ããããã«ç¹å®ã®ã¬ã¹ã®å«æéãéšé³ã¬ãã«ããã®ä»ã®ããŒã¿ã«é¢ããæ å ±ãåéããããã€ãã®ã»ã³ãµãŒãå«ãŸããŠããŸãã ã»ã³ãµãŒã®æ£ç¢ºãªæ°ã¯ãåžžã«ç¹å®ã®ã¿ã¹ã¯ã«ãã£ãŠæ±ºãŸããŸãã
枬å®ã®è©³çŽ°ã«å¿ããŠãã»ã³ãµãŒãåããããã€ã¹ã建ç©ã®å£ãé»æ±ããã®ä»ã®ä»»æã®å Žæã«é
眮ã§ããŸãã ãã®ãããªåããã€ã¹ã¯æ
å ±ãåéããéçŽããŠããŒã¿åä¿¡ã²ãŒããŠã§ã€ã«éä¿¡ããŸãã ããã§ããŒã¿ãé·æä¿åçšã«ä¿åãããã®åŸã®åæã®ããã«ååŠçããŸãã åæã®çµæãšããŠåŸããããã®ã®æãåçŽãªäŸã¯ãAQI ãšãåŒã°ãã倧æ°è³ªææ°ã§ãã
䞊è¡ããŠãä»ã®å€ãã®ãµãŒãã¹ãåœç€Ÿã®ãã©ãããã©ãŒã äžã§åäœããŸããããããã¯äž»ã«ãµãŒãã¹ã®æ§è³ªã®ãã®ã§ãã ããšãã°ãéç¥ãµãŒãã¹ã¯ãç£èŠå¯Ÿè±¡ãã©ã¡ãŒã¿ (CO2 å«æéãªã©) ã®ããããã蚱容å€ãè¶ ããå Žåã«ã¯ã©ã€ã¢ã³ãã«éç¥ãéä¿¡ããŸãã
ããŒã¿ã®ä¿åæ¹æ³ã ãã¢ã¡ã¿ã«äžã® Kubernetes ã®ç©èª
URUS ç°å¢ã¢ãã¿ãªã³ã° ãããžã§ã¯ãã«ã¯ãããã€ãã®ããŒã¿ ãŠã§ã¢ããŠã¹ããããŸãã XNUMX ã€ã¯ãçãããŒã¿ãã€ãŸãããã€ã¹èªäœããçŽæ¥åä¿¡ããããŒã¿ãä¿æããŸãã ãã®ã¹ãã¬ãŒãžã¯å€ãã«ã»ããããŒãã®ãããªãç£æ°ãããŒãã§ããããã¹ãŠã®ã€ã³ãžã±ãŒã¿ãŒã®å±¥æŽãå«ãŸããŠããŸãã XNUMX çªç®ã®ã¿ã€ãã®ã¹ãã¬ãŒãžã¯ãååŠçãããããŒã¿ãã€ãŸãã»ã³ãµãŒéã®æ¥ç¶ãããã€ã¹èªäœã®æž¬å®å€ãçµç¹ãšã®æå±ãå Žæãªã©ã«é¢ããã¡ã¿ããŒã¿ã§åŒ·åãããããã€ã¹ããã®ããŒã¿ã«äœ¿çšãããŸãããã®æ å ±ã«ãããç¹å®ã®ã€ã³ãžã±ãŒã¿ãŒãã©ã®ããã«æ©èœããããåçã«è©äŸ¡ã§ããŸããäžå®æéãçµãŠå€åãããã®ã åœç€Ÿã§ã¯ãç¹ã«ãçãããŒã¿ ã¹ãã¬ãŒãžãããã¯ã¢ãããšããŠããŸãå¿ èŠã«å¿ããŠååŠçãããããŒã¿ã埩å ããããã«äœ¿çšããŸãã
æ°å¹Žåãã¹ãã¬ãŒãžã®åé¡ã解決ããããšãããšãããã©ãããã©ãŒã ã«ã¯ Kubernetes ãš OpenStack ã® XNUMX ã€ã®éžæè¢ããããŸããã ããããåŸè ã¯éåžžã«å·šå€§ã«èŠãããã (ããã¯ãã®ã¢ãŒããã¯ãã£ãèŠãŠç¢ºèªããŠãã ãã)ãç§ãã¡ã¯ Kubernetes ã«èœã¡çããŸããã ãã XNUMX ã€ã®è³ææèŠã¯ãæ¯èŒçã·ã³ãã«ãªãœãããŠã§ã¢å¶åŸ¡ããªãœãŒã¹ã«å¿ããŠããŒããŠã§ã¢ ããŒããããããæè»ã«ã«ããã§ããæ©èœã§ããã
Kubernetes èªäœãç¿åŸããã®ãšäžŠè¡ããŠãç§ãã¡ã¯ããŒã¿ãä¿åããæ¹æ³ãç 究ãããã¹ãŠã®ã¹ãã¬ãŒãžã Kubernetes ã®ç¬èªã®ããŒããŠã§ã¢äžã«ä¿æããåªããå°éç¥èãåŸãŸããã åœæãã¹ããŒããã« ã¹ãã¬ãŒãžãç£èŠã·ã¹ãã ãCI/CD ãªã©ãç§ãã¡ã䜿çšããŠãããã®ã¯ãã¹ãŠ Kubernetes äžã«ãããŸããã Kubernetes ã¯ç§ãã¡ã«ãšã£ãŠãªãŒã«ã€ã³ã¯ã³ã®ãã©ãããã©ãŒã ã«ãªããŸããã
ããããç§ãã¡ã¯ Kubernetes ããµãŒãã¹ãšããŠæ±ããããšèããŠããããã®ãµããŒããéçºã«ã¯æºãããããªãã®ã§ãã ããã«ããã¢ã¡ã¿ã«ã§ç¶æããã®ã«ãããã³ã¹ããæ°ã«å ¥ãããåžžã«éçºãå¿ èŠã§ããã ããšãã°ãæåã®ã¿ã¹ã¯ã® XNUMX ã€ã¯ãKubernetes Ingress ã³ã³ãããŒã©ãŒãçµç¹ã®ãããã¯ãŒã¯ ã€ã³ãã©ã¹ãã©ã¯ãã£ã«çµ±åããããšã§ããã ããã¯ãç¹ã«åœæãDNS ã¬ã³ãŒãã IP ã¢ãã¬ã¹ã®å²ãåœãŠãªã©ã®ããã°ã©ã ã«ãããªãœãŒã¹ç®¡çã®æºåãæŽã£ãŠããªãã£ãããšãèãããšãé¢åãªäœæ¥ã§ãã ãã®åŸãå€éšããŒã¿ ã¹ãã¬ãŒãžã®å®éšãéå§ããŸããã PVC ã³ã³ãããŒã©ãŒã®å®è£ ã«ã¯æ±ºããŠçæã§ããŸããã§ããããããã§ãããããå°ä»»ã®å°é家ãå¿ èŠãšããåºç¯ãªäœæ¥é åã§ããããšãæããã«ãªããŸããã
Google Cloud Platform ãžã®åãæ¿ãã¯äžæçãªè§£æ±ºçã§ã
ç§ãã¡ã¯ãã®ãŸãŸã§ã¯ãããªããšæããããŒã¿ããã¢ã¡ã¿ã«ãã Google Cloud Platform ã«ç§»è¡ããŸããã å®éãåœæããã·ã¢ã®äŒæ¥ã«ãšã£ãŠèå³æ·±ãéžæè¢ã¯ããŸããããŸããã§ãããGoogle Cloud Platform ã®ã»ãã«åæ§ã®ãµãŒãã¹ãæäŸããŠããã®ã¯ Amazon ã ãã§ããããããã§ã Google ã®ãœãªã¥ãŒã·ã§ã³ã«èœã¡çããŸããã ãããŠãGoogle èªäœãæ¬çªç°å¢ã«ãããäžçš®ã® PoC Kubernetes ã§ãããšããäºå®ã¯èšããŸã§ããªããã¢ããã¹ããªãŒã ã«è¿ããããçµæžçã«åçæ§ãé«ãããã«æããŸããã
ç§ãã¡ã®é¡§å®¢ããŒã¹ãæ¡å€§ããã«ã€ããŠãæåã®å€§ããªåé¡ãç®åã«è¿«ã£ãŠããŸããã å人ããŒã¿ãä¿åããå¿ èŠããããšããç§ãã¡ã¯éžæãè¿«ãããŸãããGoogle ãšååããŠãã·ã¢ã®æ³åŸã«éåãããããã·ã¢é£éŠã§ä»£æ¿æ段ãæ¢ããã®ã©ã¡ããã§ãã å šäœãšããŠããã®éžæã¯äºæž¬å¯èœã§ããã ð
ç§ãã¡ãèããçæ³ã®ã¯ã©ãŠããµãŒãã¹
æ€çŽ¢ãéå§ããæç¹ã§ãå°æ¥ã®ã¯ã©ãŠã ãããã€ããŒããäœãååŸããããã¯ãã§ã«ããã£ãŠããŸããã ç§ãã¡ãæ¢ããŠãããµãŒãã¹:
- é«éãã€æè»ã ããã«ããããã€ã§ãæ°ããããŒãããã°ããè¿œå ããããäœãããããã€ãããã§ããŸãã
- å®äŸ¡ãªã ç§ãã¡ã¯ãªãœãŒã¹ãéãããŠããããã財æ¿çãªåé¡ã«ã€ããŠéåžžã«å¿é ããŠããŸããã Kubernetes ã䜿çšãããããšã¯ãã§ã«ããã£ãŠããŸãããããã®ãœãªã¥ãŒã·ã§ã³ã®äœ¿çšå¹çãé«ããããå°ãªããšãç¶æããããã«ã³ã¹ããæå°éã«æããããšã課é¡ãšãªããŸããã
- èªååã ç§ãã¡ã¯ããããŒãžã£ãŒãé»è©±ããããããç·æ¥ã¢ãŒãã§æ°åã®ããŒããæåã§èµ·åããå¿ èŠãããç¶æ³ãå¿ èŠãšããã«ãAPI ãä»ããŠãµãŒãã¹ãæäœããããšãèšç»ããŸããã ç§ãã¡ã®ããã»ã¹ã®ã»ãšãã©ã¯èªååãããŠãããããã¯ã©ãŠã ãµãŒãã¹ã«ãåãããšãæåŸ ããŠããŸããã
- ãã·ã¢é£éŠã«ãµãŒããŒãããã ãã¡ãããç§ãã¡ã¯ãã·ã¢ã®æ³åŸãšåã152-FZã«æºæ ããã€ããã§ããã
åœæããã·ã¢ã«ã¯ Kubernetes aaS ãããã€ããŒãã»ãšãã©ãªãããããã€ããŒãéžæããéã«ã¯åªå é äœã劥åããªãããšãéèŠã§ããã ç§ãã¡ãååãå§ããçŸåšãååããŠãã Mail.ru ã¯ã©ãŠã ãœãªã¥ãŒã·ã§ã³ ããŒã ã¯ãAPI ãµããŒããš Horizoâân ãå«ã䟿å©ãªã³ã³ãããŒã« ããã«ãåããå®å šã«èªååããããµãŒãã¹ãæäŸããŠãããŸãããããã䜿çšãããšãä»»æã®æ°ã®ããŒããããã«å¢ããããšãã§ããŸããã
XNUMX æé㧠MCS ã«ç§»è¡ã§ããæ¹æ³
ããããåãã®äžã§å€ãã®äŒæ¥ã¯å°é£ãæ«æã«çŽé¢ããŸãããåœç€Ÿã®å Žåã¯ãã®ãããªããšã¯ãããŸããã§ããã ç§ãã¡ã¯å¹žéã§ããã移è¡ãå§ãŸãåã«ãã§ã« Kubernetes ã«åãçµãã§ãããããXNUMX ã€ã®ãã¡ã€ã«ãä¿®æ£ããã ãã§ãæ°ããã¯ã©ãŠã ãã©ãããã©ãŒã ã§ãã MCS äžã§ãµãŒãã¹ãéå§ããŸããã æãåºããŠãããããã®ã§ããããã®æãŸã§ã«ç§ãã¡ã¯ã€ãã«ãã¢ã¡ã¿ã«ãåæ¥ããGoogle Cloud Platform äžã§ç掻ããŠããŸããã ãããã£ãŠã移åèªäœã«ã¯ XNUMX æéãããããŸããã§ãããããã«ãããã€ã¹ããããŒã¿ãã³ããŒããã®ã«ããå°ãæéãããããŸãã (çŽ XNUMX æé)ã åœæãç§ãã¡ã¯ãã§ã« Spinnaker (ç¶ç¶çããªããªãŒãæäŸãããã«ãã¯ã©ãŠã CD ãµãŒãã¹) ã䜿çšããŠããŸããã ãŸããããã«ãããæ°ããã¯ã©ã¹ã¿ãŒã«è¿œå ããéåžžã©ããåäœãç¶ããŸããã
éçºããã»ã¹ãš CI/CD ã®èªååã®ãããã§ãURUS ã® Kubernetes 㯠XNUMX 人ã®å°é家 (ãããç§ã§ã) ã«ãã£ãŠåŠçãããŸãã ãã段éã§ã¯ãå¥ã®ã·ã¹ãã 管çè ãç§ãšååããŠãããŸãããããã®åŸãã¡ã€ã³ã«ãŒãã³ã¯ãã¹ãŠèªååãããŠãããã¡ã€ã³è£œåã®åŽã«ãŸããŸãå€ãã®ã¿ã¹ã¯ããããããã«ãªãœãŒã¹ãå²ãåœãŠãããšãçã«ããªã£ãŠããããšãå€æããŸããã
å¹»æ³ãæããã«ååãéå§ããŠä»¥æ¥ãã¯ã©ãŠããããã€ããŒããæåŸ ããŠããéãã®çµæãåŸãããšãã§ããŸããã ã€ã³ã·ãã³ãããã£ããšããŠãããã®ã»ãšãã©ã¯æè¡çãªãã®ã§ããããµãŒãã¹ã®æ¯èŒçæ°ãããã®ã«ãã£ãŠç°¡åã«èª¬æã§ãããã®ã§ããã éèŠãªããšã¯ãMCS ããŒã ãæ¬ ç¹ãããã«è§£æ¶ããã¡ãã»ã³ãžã£ãŒã§ã®è³ªåã«è¿ éã«å¿çããããšã§ãã
ç§ã®çµéšã Google Cloud Platform ãšæ¯èŒãããšãGoogle Cloud Platform ã®å Žåã¯ããã£ãŒããã㯠ãã¿ã³ãã©ãã«ããã®ãããããããŸããã§ããããã®å¿ èŠããŸã£ãããªãã£ãããã§ãã ãããŠãäœãåé¡ãçºçããå Žåã«ã¯ãGoogleèªäœãäžæ¹çã«éç¥ãéããŸããã ããããMCS ã®å Žåãå°ççã«ã粟ç¥çã«ããã·ã¢ã®é¡§å®¢ã«å¯èœãªéãè¿ãããšã倧ããªå©ç¹ã ãšæããŸãã
å°æ¥ã®ã¯ã©ãŠãã®å©çšã«ã€ããŠç§ãã¡ã¯ã©ãèããã
çŸåšãç§ãã¡ã®ä»äºã¯ Kubernetes ãšå¯æ¥ã«çµã³ã€ããŠãããã€ã³ãã©ã¹ãã©ã¯ã㣠ã¿ã¹ã¯ã®èŠ³ç¹ããèŠããš Kubernetes ãå®å šã«é©ããŠããŸãã ãããã£ãŠãããããã©ãã«ã移è¡ããã€ããã¯ãããŸããããæ¥åžžçãªã¿ã¹ã¯ãç°¡çŽ åããæ°ããã¿ã¹ã¯ãèªååãããµãŒãã¹ã®å®å®æ§ãšä¿¡é Œæ§ãé«ããããã«ãåžžã«æ°ãããã©ã¯ãã£ã¹ãšãµãŒãã¹ãå°å ¥ããŠããŸã...çŸåšãChaos Monkey ãµãŒãã¹ (å ·äœçã«ã¯ãChaos Monkey ãµãŒãã¹) ãéå§ããŠããŸãã ãchaoskube ã䜿çšããŸãããã³ã³ã»ããã¯å€ãããŸãã: )ãããã¯ããšããš Netflix ã«ãã£ãŠäœæãããŸããã Chaos Monkey ã¯ãã©ã³ãã ãªæéã«ã©ã³ãã 㪠Kubernetes ããããåé€ãããšããåçŽãªããšã 1 ã€å®è¡ããŸãã ããã¯ããµãŒãã¹ãã€ã³ã¹ã¿ã³ã¹æ° nâXNUMX ã§æ£åžžã«åäœããããã«å¿ èŠãªãããããããåé¡ã«åããŠãã¬ãŒãã³ã°ããŸãã
ä»ã§ã¯ãåãã¯ã©ãŠã ãã©ãããã©ãŒã ã§ãããµãŒãããŒã㣠ãœãªã¥ãŒã·ã§ã³ã䜿çšããããšããè¥ãäŒæ¥ã«ãšã£ãŠå¯äžã®æ£ããããšã ãšèããŠããŸãã éåžžãæ ã®éå§æç¹ã§ã¯äººçã»çµæžçãªãœãŒã¹ãéãããŠãããç¬èªã®ã¯ã©ãŠããããŒã¿ã»ã³ã¿ãŒãæ§ç¯ããŠç¶æããã«ã¯è²»çšãåŽåãããããããŸãã ã¯ã©ãŠã ãããã€ããŒã䜿çšãããšããããã®ã³ã¹ããæå°éã«æããããšãã§ãããµãŒãã¹ã®éçšã«å¿ èŠãªãªãœãŒã¹ããã®å Žã§ããã«ã¯ã©ãŠã ãããã€ããŒããå ¥æããäºåŸçã«ãããã®ãªãœãŒã¹ã®æéãæ¯æãããšãã§ããŸãã URUS 瀟ã«é¢ããŠã¯ãä»ã®ãšããã¯ã©ãŠãã® Kubernetes ã«å¿ å®ã§ããç¶ããŸãã ããããå°ççã«æ¡å€§ããããç¹å®ã®æ©åšã«åºã¥ãããœãªã¥ãŒã·ã§ã³ãå®è£ ãããããå¿ èŠããããããããŸããã ãããã¯ãå€ãè¯ãæ代ã®ããã«ãæ¶è²»ããããªãœãŒã¹ã®éã«ãã£ãŠããã¢ã¡ã¿ã«äžã®ç¬èªã® Kubernetes ãæ£åœåããããããããŸããã ð
ã¯ã©ãŠã ãµãŒãã¹ã®å©çšããåŠãã ããš
ç§ãã¡ã¯ãã¢ã¡ã¿ã«ã§ Kubernetes ã䜿ãå§ããŸããããããã§ãããã¯ããã§è¯ãã£ãã§ãã ãããããã®åŒ·ã¿ã¯ãŸãã«ã¯ã©ãŠãå
ã® aaS ã³ã³ããŒãã³ããšããŠæããã«ãªããŸããã ç®æšãèšå®ããŠãã¹ãŠãå¯èœãªéãèªååããã°ããã³ã㌠ããã¯ã€ã³ãåé¿ã§ããã¯ã©ãŠã ãããã€ããŒéã®ç§»åã«ã¯æ°æéããããŸãããç¥çµçŽ°èã¯æ®ããŸãã ç§ãã¡ã¯ä»ã®äŒæ¥ã«ãã¢ããã€ã¹ã§ããŸãããªãœãŒã¹ãéãããŠããŠéçºé床ãæ倧ã§ç¬èªã® (ã¯ã©ãŠã) ãµãŒãã¹ãç«ã¡äžãããå Žåã¯ãä»ããã¯ã©ãŠã ãªãœãŒã¹ãã¬ã³ã¿ã«ããŠéå§ããForbes ã«èšäºãæ²èŒãããåŸã«ããŒã¿ ã»ã³ã¿ãŒãæ§ç¯ããŠãã ããã
åºæïŒ habr.com