ãã®èšäºã«ã¯ããšã³ãžãã¢ãäœçŸäžãã®ãŠãŒã¶ãŒãã¢ã¯ã»ã¹ãã倧èŠæš¡ãªãµãŒãã¹ãæ±ãã®ã«åœ¹ç«ã€äžè¬çãªãã¿ãŒã³ãããã€ãå«ãŸããŠããŸãã
èè ã®çµéšã§ã¯ãããã¯å®å šãªãªã¹ãã§ã¯ãããŸãããã確ãã« å¹æç㪠ã¢ããã€ã¹ã ããã§ã¯ãå§ããŸãããã
ãµããŒãä»ãã§ç¿»èš³ããŸãã
ãšã³ããªãŒã¬ãã«
以äžã«æãã察çã¯æ¯èŒçç°¡åã«å®æœã§ããŸããã倧ããªå¹æããããŸãã ãããŸã§ã«è©Šããããšããªãå Žåã¯ãå€§å¹ ãªæ¹åã«é©ãããã§ãããã
ã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£
ã¢ããã€ã¹ã®æåã®éšåã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãã³ãŒããšããŠå®è£ ããããšã§ãã ããã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£å šäœãããã°ã©ã ã§ãããã€ããæ¹æ³ãå¿ èŠã§ããããšãæå³ããŸãã è€éã«èãããŸãããå®éã«ã¯æ¬¡ã®ã³ãŒãã«ã€ããŠè©±ããŠããŸãã
100 å°ã®ä»®æ³ãã·ã³ã®å°å ¥
- Ubuntuã䜿çšããå Žå
- ãããã 2 GB RAM
- 次ã®ã³ãŒãããããŸã
- ãããã®ãã©ã¡ãŒã¿ã䜿çšããŠ
ããŒãžã§ã³ç®¡çã䜿çšããŠãã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®å€æŽã远跡ããããã«å ã®ç¶æ ã«æ»ãããšãã§ããŸãã
ç§ã®äžã«ããçŸä»£äž»çŸ©è ã¯ãKubernetes/Docker ã䜿çšããŠäžèšã®ãã¹ãŠãå®è¡ã§ãããšèšã£ãŠããŸãããããã¯æ£ããã§ãã
ããã«ãChefãPuppetããŸã㯠Terraform ã䜿çšããŠèªååãæäŸã§ããŸãã
ç¶ç¶çãªçµ±åãšããªããªãŒ
ã¹ã±ãŒã©ãã«ãªãµãŒãã¹ãäœæããã«ã¯ããã« ãªã¯ãšã¹ãããšã«ãã«ãããã³ãã¹ã ãã€ãã©ã€ã³ãçšæããããšãéèŠã§ãã ãã¹ããéåžžã«åçŽã§ãã£ãŠããå°ãªããšãããããã€ããã³ãŒããã³ã³ãã€ã«ãããããšãä¿èšŒããŸãã
ãã®æ®µéã§ã¯æ¯å次ã®è³ªåã«çããŸãã ç§ã®ã¢ã»ã³ããªã¯ã³ã³ãã€ã«ãããŠãã¹ãã«åæ ŒããŸãã? ããã¯æå¹ã§ãã? ããã¯ããŒãã«ãäœãããã«æãããããããŸããããå€ãã®åé¡ã解決ããŸãã
ãã®ãããèŠãããšã»ã©çŸããããšã¯ãããŸãã
ãã®ãã¯ãããžãŒã«ã€ããŠã¯ãGithubãCircleCIããŸã㯠Jenkins ãè©äŸ¡ã§ããŸãã
ããŒããã©ã³ãµ
ãããã£ãŠãããŒã ãã©ã³ãµãŒãå®è¡ããŠãã©ãã£ãã¯ããªãã€ã¬ã¯ããããã¹ãŠã®ããŒãã«åçãªè² è·ããããããã«ããããé害ãçºçããå Žåã§ããµãŒãã¹ãç¶ç¶ãããããã«ããŸãã
éåžžãããŒã ãã©ã³ãµãŒã¯ãã©ãã£ãã¯ãé©åã«åæ£ããŸãã ãã¹ã ãã©ã¯ãã£ã¹ã¯ãåäžé害ç¹ãäœããªãããã«ãªãŒããŒãã©ã³ã¹ã«ããããšã§ãã
éåžžãããŒã ãã©ã³ãµãŒã¯äœ¿çšããã¯ã©ãŠãã§æ§æãããŸãã
ãªã¯ãšã¹ãã® RayIDãçžé¢ IDããŸã㯠UUID
次ã®ãããªã¡ãã»ãŒãžã衚瀺ãããã¢ããªã±ãŒã·ã§ã³ ãšã©ãŒã«ééããããšã¯ãããŸãããã ãäœãåé¡ãçºçããŸããã ãã® ID ãä¿åããŠãµããŒã ããŒã ã«éä¿¡ããŠãã ãããã?
äžæã®èå¥åãçžé¢ IDãRayIDããŸãã¯ãã®ããªãšãŒã·ã§ã³ã¯ãã©ã€ããµã€ã¯ã«å
šäœã«ããã£ãŠãªã¯ãšã¹ãã远跡ã§ããããã«ããäžæã®èå¥åã§ãã ããã«ããããã°å
ã®ãªã¯ãšã¹ã ãã¹å
šäœã远跡ã§ããããã«ãªããŸãã
ãŠãŒã¶ãŒãã·ã¹ãã A ã«ãªã¯ãšã¹ããéä¿¡ãã次㫠A ã B ã«é£çµ¡ããB ã C ã«é£çµ¡ããŠããã X ã«ä¿åãããã®åŸãªã¯ãšã¹ãã A ã«è¿ãããŸãã
ä»®æ³ãã·ã³ã«ãªã¢ãŒãæ¥ç¶ããŠãªã¯ãšã¹ã ãã¹ããã¬ãŒã¹ããããšãããš (ãããŠãã©ã®åŒã³åºããè¡ãããŠããããæåã§é¢é£ä»ããããšãããš)ãæ°ãçã£ãŠããŸãã§ãããã äžæã®èå¥åãæã€ãšäœæ¥ãã¯ããã«æ¥œã«ãªããŸãã ããã¯ããµãŒãã¹ãæé·ããã«ã€ããŠæéãç¯çŽããããã«ã§ããæãç°¡åãªæ¹æ³ã® XNUMX ã€ã§ãã
å¹³åã¬ãã«
ããã§ã®ã¢ããã€ã¹ã¯ä»¥åã®ã¢ããã€ã¹ãããè€éã§ãããé©åãªããŒã«ã䜿çšãããšäœæ¥ã容æã«ãªããäžå°äŒæ¥ã§ãæè³åççãåŸãããŸãã
éäžãã°
ããã§ãšãïŒ 100 å°ã®ä»®æ³ãã·ã³ããããã€ããŸããã ç¿æ¥ãCEO ããã£ãŠæ¥ãŠããµãŒãã¹ã®ãã¹ãäžã«çºçãããšã©ãŒã«ã€ããŠèŠæ ãèšããŸããã äžã§èª¬æãã察å¿ãã ID ãå ±åãããŸãããã¯ã©ãã·ã¥ã®åå ãšãªã£ããã·ã³ãèŠã€ããã«ã¯ 100 å°ã®ãã·ã³ã®ãã°ã調ã¹ãå¿ èŠããããŸãã ãããŠããã¯ææ¥ã®ãã¬ãŒã³ããŒã·ã§ã³ãŸã§ã«èŠã€ããªããã°ãªããŸããã
ããã¯æ¥œããåéºã®ããã«èãããŸããããã¹ãŠã®éèªã XNUMX ãæã§æ€çŽ¢ã§ããããšã確èªããã®ãæåã§ãã ç§ã¯ãELK ã¹ã¿ãã¯ã®çµã¿èŸŒã¿æ©èœã䜿çšããŠããã°ã®äžå åã®åé¡ã解決ããŸãããELK ã¹ã¿ãã¯ã¯ãæ€çŽ¢å¯èœãªãã°åéããµããŒãããŠããŸãã ããã¯ãç¹å®ã®ãžã£ãŒãã«ãèŠã€ããåé¡ã解決ããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã ããŒãã¹ãšããŠãã°ã©ãããã®ä»ã®æ¥œãããã®ãäœæããããšãã§ããŸãã
ELKã¹ã¿ãã¯æ©èœ
ç£èŠãšãŒãžã§ã³ã
ãµãŒãã¹ãèµ·åããŠå®è¡ãããããã«ãªã£ãã®ã§ããµãŒãã¹ãã¹ã ãŒãºã«å®è¡ãããããšã確èªããå¿ èŠããããŸãã ãããè¡ãããã®æè¯ã®æ¹æ³ã¯ãè€æ°åå®è¡ããããšã§ã ãšãŒãžã§ã³ãã䞊è¡ããŠåäœããåäœããããšãšåºæ¬çãªæäœãå®è¡ãããããšã確èªããŸãã
ãã®æç¹ã§æ¬¡ã®ããšã確èªããŸã å®è¡äžã®ãã«ãã¯å¿«é©ã§ãæ£åžžã«åäœããŸã.
å°èŠæš¡ããäžèŠæš¡ã®ãããžã§ã¯ãã®å ŽåãAPI ã®ç£èŠãšææžåã«ã¯ Postman ããå§ãããŸãã ããããäžè¬çã«ã¯ãé害ããã€çºçããããç¥ããã¿ã€ã ãªãŒã«éç¥ãåãåãæ¹æ³ã確ä¿ãããã ãã§ãã
è² è·ã«å¿ããèªåã¹ã±ãŒãªã³ã°
ãšãŠãã·ã³ãã«ã§ãã ãªã¯ãšã¹ããåŠçããŠãã VM ããããã¡ã¢ãªäœ¿çšéã 80% ã«è¿ã¥ããŠããå Žåã¯ããªãœãŒã¹ãå¢ããããã¯ã©ã¹ã¿ãŒã« VM ãè¿œå ã§ããŸãã ãããã®æäœã®èªåå®è¡ã¯ãè² è·æã®åŒŸæ§åã®å€åã«åªããŠããŸãã ãã ããè²»ããéé¡ã«ã¯åžžã«æ³šæããé©åãªå¶éãèšå®ããå¿ èŠããããŸãã
ã»ãšãã©ã®ã¯ã©ãŠã ãµãŒãã¹ã§ã¯ãããå€ãã®ãµãŒããŒãŸãã¯ãã匷åãªãµãŒããŒã䜿çšããŠèªåã¹ã±ãŒã«ããããã«æ§æã§ããŸãã
å®éšã·ã¹ãã
ã¢ããããŒããå®å šã«ããŒã«ã¢ãŠãããããã®è¯ãæ¹æ³ã¯ã1% ã®ãŠãŒã¶ãŒã«å¯Ÿã㊠XNUMX æéäœãããã¹ãã§ããããã«ããããšã§ãã ãã¡ããããã®ãããªã¡ã«ããºã ãå®éã«åäœããŠããã®ãèŠãããšãããã§ãããã ããšãã°ãFacebook ã¯ãèŠèŽè ã®äžéšãç°ãªãè²ã§è¡šç€ºãããããã©ã³ã ãµã€ãºãå€æŽãããããŠããŠãŒã¶ãŒãå€åãã©ã®ããã«èªèãããã確èªããŸãã ãããA/Bãã¹ããšåŒã³ãŸãã
æ°ããæ©èœããªãªãŒã¹ããå Žåã§ããå®éšãšããŠéå§ããŠãããã©ã®ããã«ãªãªãŒã¹ãããã決å®ããããšãã§ããŸãã ãŸãããµãŒãã¹ã®äœäžãåŒãèµ·ãããŠããæ©èœã«åºã¥ããŠæ§æããèšæ¶ããããããã®å Žã§å€æŽãããããããšãã§ããŸãã
äžçŽã¬ãã«
ããã§ã¯ãå®è¡ããã®ãéåžžã«é£ãããã³ãã玹ä»ããŸãã ããããããå°ããªãœãŒã¹ãå¿ èŠã«ãªããããäžå°äŒæ¥ã¯ããã管çããã®ãé£ããã§ãããã
ãã«ãŒã°ãªãŒã³å±é
ãããç§ã¯ãErlangãå±éæ¹æ³ãšåŒãã§ããŸãã Erlang ã¯ãé»è©±äŒç€Ÿãç»å Žãããšãã«åºã䜿çšãããããã«ãªããŸããã é»è©±ã®ã«ãŒãã£ã³ã°ã«ãœããã¹ã€ããã䜿çšããå§ããŸããã ãããã®ã¹ã€ããäžã®ãœãããŠã§ã¢ã®äž»ãªç®çã¯ãã·ã¹ãã ã®ã¢ããã°ã¬ãŒãäžã«é話ãåæãããªãããã«ããããšã§ããã Erlang ã«ã¯ãåã®ã¢ãžã¥ãŒã«ãã¯ã©ãã·ã¥ãããããšãªãæ°ããã¢ãžã¥ãŒã«ãããŒãããåªããæ¹æ³ããããŸãã
ãã®æé ã¯ãããŒã ãã©ã³ãµãŒã®ååšã«äŸåããŸãã ãœãããŠã§ã¢ã®ããŒãžã§ã³ N ããããããŒãžã§ã³ N+1 ãå±éãããšããŸãã
ããªã ã§ãã ãµãŒãã¹ãåæ¢ãããŠãŒã¶ãŒã«ãšã£ãŠé©åãªã¿ã€ãã³ã°ã§æ¬¡ã®ããŒãžã§ã³ãããŒã«ã¢ãŠãããããŠã³ã¿ã€ã ãçºçãããŸãã ããããããªããæã£ãŠãããšä»®å®ããŠãã ãã æ¬åœã« å³æ Œãª SLA æ¡ä»¶ã ã€ãŸããSLA 99,99% ã¯ãªãã©ã€ã³ã«ã§ããããšãæå³ããŸã ã®ã¿ 幎éã§52åççž®ãããŸãã
ãã®ãããªææšãæ¬åœã«éæãããå Žåã¯ãåæã« XNUMX ã€ã®ãããã€ã¡ã³ããå¿ èŠã§ãã
- ä»ãããã®ïŒNïŒã
- 次ã®ããŒãžã§ã³ (N+1)ã
ååž°ãç©æ¥µçã«ç£èŠããªããããã©ãã£ãã¯ã®äžéšãæ°ããããŒãžã§ã³ (N+1) ã«ãªãã€ã¬ã¯ãããããã«ããŒã ãã©ã³ãµãŒã«æ瀺ããŸãã
ããã§ã¯ãæ£åžžã«åäœãã Green N ãããã€ã¡ã³ãã瀺ããŸãã ãã®ãããã€ã¡ã³ãã®æ¬¡ã®ããŒãžã§ã³ã«ç§»è¡ããããšããŠããŸã
ãŸããéåžžã«å°ããªãã¹ããéä¿¡ããŠãN+1 ãããã€ã¡ã³ããå°éã®ãã©ãã£ãã¯ã§ãæ©èœãããã©ããã確èªããŸãã
æåŸã«ããããã€ãå®äºãããŸã§æçµçã«å®è¡ãããäžé£ã®èªåãã§ãã¯ããããŸãã ããããããã ãšãŠããšãŠã 泚æããŠãã ãããæªããªã°ã¬ãã·ã§ã³ãçºçããå Žåã«è¿
éã«ããŒã«ããã¯ã§ããããã«ãN ãããã€ã¡ã³ããæ°žä¹
ã«ä¿åããããšãã§ããŸãã
ããã«é«åºŠãªã¬ãã«ã«é²ã¿ããå Žåã¯ãBlue-Green ãããã€ã¡ã³ãã®ãã¹ãŠãèªåçã«å®è¡ãããŸãã
ç°åžžã®æ€åºãšèªå軜æž
ãã°ãäžå åãããã°ãé©åã«åéããŠããå Žåã¯ããã§ã«ããé«ãç®æšãèšå®ã§ããŸãã ããšãã°ãé害ãç©æ¥µçã«äºæž¬ããŸãã é¢æ°ã¯ã¢ãã¿ãŒããã°ã§è¿œè·¡ãããããŸããŸãªå³ãäœæãããŸããäœãåé¡ã«ãªãããäºåã«äºæž¬ã§ããŸãã
ç°åžžãæ€åºããããšããµãŒãã¹ãæäŸããããã€ãã®æãããã®èª¿æ»ãéå§ããŸãã ããšãã°ãCPU è² è·ã®æ¥å¢ã¯ããŒã ãã©ã€ãã®æ
éã瀺ããŠããå¯èœæ§ãããããªã¯ãšã¹ãã®æ¥å¢ã¯ã¹ã±ãŒã«ã¢ãããå¿
èŠã§ããããšã瀺ããŠããå¯èœæ§ããããŸãã ãã®çš®ã®çµ±èšããŒã¿ã«ããããµãŒãã¹ãããã¢ã¯ãã£ãã«è¡ãããšãã§ããŸãã
ãããã®æŽå¯ãå©çšãããšããããã次å ã§ã¹ã±ãŒã«ãããã·ã³ãããŒã¿ããŒã¹ãæ¥ç¶ããã®ä»ã®ãªãœãŒã¹ã®ç¹æ§ãç©æ¥µçãã€äºåŸçã«å€æŽã§ããŸãã
ããã ãã§ãïŒ
ãã®åªå é äœã®ãªã¹ãã¯ãã¯ã©ãŠã ãµãŒãã¹ãæ§ç¯ããå Žåã«å€ãã®åé¡ãåé¿ããŸãã
å
ã®èšäºã®èè
ã¯ãèªè
ã«ã³ã¡ã³ããæ®ããŠå€æŽãå ããããåŒã³ãããŠããŸãã èšäºã¯ãªãŒãã³ãœãŒã¹ãšããŠé
åžãããèè
ã«ãããã«ãªã¯ãšã¹ããè¡ãããŸãã
ãã®ãããã¯ã«é¢ããŠä»ã«èªãã¹ããã®:
Go ãš CPU ãã£ãã·ã¥ èäœæš©äŸµå®³ã®ç²Ÿç¥ãåãã Kubernetes ãšå®è£ çšã®ãã³ãã¬ãŒã Telegram ã® Kubernetes ã«é¢ããç§ãã¡ã®ãã£ã³ãã«
åºæïŒ habr.com