Kubernetes ã§ã®ãã«ãŒ ã°ãªãŒã³ ãããã€ã®å®è£ : ãªãã·ã§ã³ãšå©ç¹
Blue-Green ããã〠ãã¿ãŒã³ããã®å©ç¹ãããã³ Kubernetes ç°å¢ã§ãã®æ¹æ³ãå®è£ ããããã®ãªãã·ã§ã³ã調ã¹ãŠãã ããã

Blue-Green ãããã€ã¡ã³ãã¯ãåºã䜿çšãããŠãããœãããŠã§ã¢ ãªãªãŒã¹ç®¡çæŠç¥ã§ããããã«ã¯ã2 ã€ã®åäžã®ããŒããŠã§ã¢ç°å¢ãå«ãŸããŸãã1 ã€ã¯ã¢ã¯ãã£ãã§ãŠãŒã¶ãŒã«ãµãŒãã¹ãæäŸãããã 1 ã€ã¯ã¹ã¿ã³ãã€ã®ãŸãŸã§ãããã®ã¢ãããŒãã«ããããœãããŠã§ã¢æŽæ°ã®åæ»ãªç®¡çã容æã«ãªããã·ã¹ãã ã®ããŠã³ã¿ã€ã ã®ãªã¹ã¯ã軜æžãããŸãã
æ°ããã³ãŒãã¯æåã«ã¹ããŒãžã³ã°ç°å¢ã«ãªãªãŒã¹ãããããã§å³æ Œãªãã¹ããåããŸããããŒã ãæŽæ°ãããã³ãŒããæ¿èªãããšãã«ãŒã¿ãŒæ§æã調æŽãããã¢ããªã±ãŒã·ã§ã³ ãã©ãã£ãã¯ãçŸåšã®éçšç°å¢ã«åãæ¿ããããŸããåé¡ãçºçããå Žåã¯ã以åã®æ¬çªç°å¢ã«æ»ããå ã®ãœãããŠã§ã¢ ããŒãžã§ã³ãåŒãç¶ã䜿çšããŸãã
Blue-Green ãããã€ã¡ã³ãã®æ³šç®ãã¹ãå©ç¹ã«ã¯ã次ã®ãããªãã®ããããŸãã
Kubernetes ã¯ãéçºããã¹ããããã³éçšå±éã®ããã®ç°å¢ãšããŠäººæ°ãé«ãŸã£ãŠããŸããã¢ããªã±ãŒã·ã§ã³ã®å±éã¯ç°¡çŽ åãããŸãããKubernetes ã¯ããã«äœ¿çšã§ãããã€ãã£ãã® Blue-Green å±éæ©èœãæäŸããŸããã代ããã«ãããŒãªã³ã°æŽæ°ãæå¹ã«ãã Deployment ãªããžã§ã¯ããæäŸããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ã®ããããããŠã³ã¿ã€ã ãªãã§ææ°ããŒãžã§ã³ã«ããçšåºŠçœ®ãæããããšãã§ããŸãã
ããŒãªã³ã° ãããã€ã«ã¯äžå®ã®å¶éããããŸããããŒã«ããã¯ãå°é£ã«ãªãå¯èœæ§ãããããããã€å ã®ãããã®ã¹ããŒã¿ã¹ã枬å®ããããã« Kubernetes ãã«ã¹ ãã§ãã¯ãå¿ èŠã«ãªãå ŽåããããŸããããã«ãããŒãªã³ã° ãããã€ã¯ãæ°ããããŒãžã§ã³ãžã®åãæ¿ããå³åº§ã«è¡ãããçŽç²ãªãã«ãŒ ã°ãªãŒã³ ãã¿ãŒã³ãšæ¯èŒããŠãæéããããå¯èœæ§ããããŸãã
Kubernetes ã䜿çšããŠãã«ãŒ ã°ãªãŒã³ ãããã€ã广çã«å®è£ ããã«ã¯ã次ã®ããŒã«ãæ€èšããŠãã ããã
Argo Rollouts ã¯ããªãŒãã³ãœãŒã¹ã® Kubernetes ã³ã³ãããŒã©ãŒãšã«ã¹ã¿ã ãªãœãŒã¹å®çŸ© (CRD) ã®ã»ããã§ãããBlue-Green ãããã€ãã«ããªã¢ ãããã€ãå®éšããã®ä»ã®ããã°ã¬ãã·ã ããªããªãŒæ©èœãªã©ã®é«åºŠãªãããã€æ©èœã远å ããŸãããªãã·ã§ã³ã§ãKubernetes ã€ã³ã°ã¬ã¹ ã³ã³ãããŒã©ãŒããã³ãµãŒãã¹ ã¡ãã·ã¥ãšçµ±åããŠãæŽæ°äžã®ãã©ãã£ãã¯ã管çããŸããäž»èŠæ¥çžŸè©äŸ¡ææš (KPI) ãæ€èšŒãããªãªãŒã¹ãèªåçã«ææ ŒãŸãã¯ããŒã«ããã¯ããããã«ãä»ã®ã·ã¹ãã ããã®ã¡ããªãã¯ãã¯ãšãªããŠè§£éããããšãã§ããŸãã
Flagger ã¯ãKubernetes ã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ã®ãªãªãŒã¹ ããã»ã¹ãèªååããããã°ã¬ãã·ã ããªããªãŒ ããŒã«ã§ããã¡ããªãã¯ãè©äŸ¡ããé©åæ§ãã¹ããå®è¡ããªããããã©ãã£ãã¯ãæŽæ°ãããããŒãžã§ã³ã«åŸã ã«è¿åãããããšã«ãããæ°ãããœãããŠã§ã¢ ããŒãžã§ã³ãæ¬çªç°å¢ã«å°å ¥ãããªã¹ã¯ã軜æžããŸãã Flagger ã¯ãã«ããªã¢ ãªãªãŒã¹ãA/B ãã¹ãããã«ãŒ ã°ãªãŒã³ ãããã€ãªã©ã®è€æ°ã®ãããã€æŠç¥ããµããŒãããããŸããŸãª Kubernetes ã€ã³ã°ã¬ã¹ ã³ã³ãããŒã©ãŒããµãŒãã¹ ã¡ãã·ã¥ãç£èŠã·ã¹ãã ãšçµ±åããŸãã
GitLab CI/CD ã¯ã å€§èŠæš¡ãªãœãããŠã§ã¢éçºãããžã§ã¯ããåçåããæ©èœæºèŒã® DevOps ãã©ãããã©ãŒã ã§ããã³ãŒã ãªããžããªãšåé¡è¿œè·¡æ©èœã«å ããŠãGitLab 㯠CI/CD èªååãæäŸããŸããããã¯ããã«ãŒ ã°ãªãŒã³ ãããã€ãªã©ã®ããã°ã¬ãã·ã ãããã€æŠç¥ãå«ããæåã§ããªã¬ãŒããããããã€ãš Kubernetes æ¬çªã·ã¹ãã ãžã®ã¹ã±ãžã¥ãŒã«ããããããã€ã®äž¡æ¹ããµããŒãããŸãã
CircleCI ã¯ããšã³ãžãã¢ãªã³ã° ããŒã ããœãããŠã§ã¢ããã«ãããã¹ãããããã€ããã®ã«åœ¹ç«ã€ CI/CD ãã©ãããã©ãŒã ã§ãããããã·ã¥ããŒã UI ãä»ããŠã³ãŒãã®å€æŽããªã¢ã«ã¿ã€ã ã§è¿œè·¡ããŸãã CircleCI 㯠Kubernetes ã¯ã©ã¹ã¿ãŒãžã®ãããã€ããµããŒããããã£ãŒãã£ãŒ ãã©ã°ããã«ãŒ ã°ãªãŒã³ãã«ããªã¢ ãããã€ãªã©ã®ãããã€æŠç¥ã®ããã«ä»ã®ãµãŒãã¹ãšçµ±åããŸãã
ãã®èšäºã§ã¯ãBlue-Green ããã〠ãã¿ãŒã³ããã®ããŸããŸãªå©ç¹ãããã³ãã®ææ³ã Kubernetes ç°å¢å ã«å®è£ ããããã®ãªãã·ã§ã³ã玹ä»ããŸããã Argo RolloutsãFlagerãGitLab CI/CDãCircleCI ãªã©ã®ããŒã«ãæ€èšããããšã§ãããã¹ã ãŒãºãªãœãããŠã§ã¢ ãªãªãŒã¹ãå®çŸããããŠã³ã¿ã€ã ãæå°éã«æããKubernetes ç°å¢ã§ã®éçºè ãšãšã³ã ãŠãŒã¶ãŒã®äž¡æ¹ã®å šäœçãªãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸãããããã®ããŒã«ãæ€èšãããšãã¯ããœãããŠã§ã¢éçºãã€ãã©ã€ã³ã®åºæã®èŠä»¶ãèæ ®ããŠãããŒã ã®ããŒãºã«æé©ãªãœãªã¥ãŒã·ã§ã³ãç¹å®ããŠãã ããã


