ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒãšç¶ç¶çããªããªãŒïŒCDïŒã®ãã€ãã©ã€ã³ã¯ãéçºè ã®çç£æ§åäžæ¯æŽããŒã«ãããäŒæ¥ã®äžæ žçãªããªããªãŒã·ã¹ãã ãžãšé²åããŸãããå€§èŠæš¡çµç¹ã§ã¯ãCI/CDãã€ãã©ã€ã³ãã倿Žã®äŒæé床ããªãªãŒã¹ãæ¬çªç°å¢ãžç¢ºå®ã«å°éãããã©ããããããŠè€éãªã¢ããªã±ãŒã·ã§ã³ããŒããã©ãªãªå šäœã«ããããªã¹ã¯ç®¡çã®å¹çæ§ãå·Šå³ãã圹å²ãæãããŠããŸããããŒã ããã©ãããã©ãŒã ããããŠç°å¢ããŸããã§ãã€ãã©ã€ã³ãå¢å ããã«ã€ããããªããªãŒã®æåãçè§£ããããšã¯ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãèªäœãçè§£ããããšãããå°é£ã«ãªã£ãŠãããŸãã
ãã®è€éãã¯ç°ç𮿷·åšã«ãã£ãŠå¢å¹ ãããŸããäŒæ¥ãåäžã®CI/CDããŒã«ãã§ãŒã³ãéçšããããšã¯çšã§ããéäžåã®CIãµãŒããŒã¯ãã¯ã©ãŠããã€ãã£ãã®ãã€ãã©ã€ã³ãã»ã«ããã¹ãåã®ã©ã³ããŒããããŒãžããããã€ã¡ã³ããµãŒãã¹ãšå ±åããŠããŸããåã¬ã€ã€ãŒã¯ãç¬èªã®å®è¡ã»ãã³ãã£ã¯ã¹ãé害ã¢ãŒããäŸåé¢ä¿æ§é ãå°å ¥ããŸããæéã®çµéãšãšãã«ãããªããªãŒãã€ãã©ã€ã³ã¯æé»çãªçµåãèç©ããŸããããããã¯ã»ãšãã©ææžåãããŠãããããããåé¡ã®å¢å ã«ã€ãªãã£ãŠããŸãã ãœãããŠã§ã¢ç®¡çã®è€éã é ä¿¡ã©ã€ããµã€ã¯ã«å šäœã«ããã£ãŠã
CI/CD ã·ã¹ãã ã®è¿ä»£å
SMART TS XL CI/CD ãã€ãã©ã€ã³ãå ±æã¹ã¯ãªãããã€ã³ãã©ã¹ãã©ã¯ã㣠ã³ã³ããŒãã³ãéã®é ããäŸåé¢ä¿ãæããã«ããŸãã
ä»ããæ¢çŽ¢ããã¢ããªã±ãŒã·ã§ã³ã³ãŒããšã¯ç°ãªããCI/CDããžãã¯ã¯å®è¡å¯èœãªåäœã§ã¯ãªããæ§æãšããŠæ±ãããããšãå€ãã§ãããã€ãã©ã€ã³å®çŸ©ã¯æå³ãèšè¿°ããŸãããè² è·äžã§ã®ãžã§ãã®çžäºäœçšãã¹ããŒãžéã®éå®³äŒæãããŒã¯ããªããªãŒæéã«ãããå ±æã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããã«ããã¯åã«ã€ããŠã¯èª¬æããŸããããããã®ç²ç¹ã¯ãã¢ããã€ãŒãŒã·ã§ã³ãã¯ã©ãŠãç§»è¡ãå€§èŠæš¡ãªãªãã¡ã¯ã¿ãªã³ã°ãšãã£ããããªããªãŒã·ã¹ãã ãäºæ¥ç¶ç¶æ§ãé»å®³ããããšãªãé©å¿ããªããã°ãªããªãç¶æ³ã«ãããŠãç¹ã«åé¡ãšãªããŸãã
çµæãšããŠãCI/CDããŒã«ãæ©èœã人æ°åºŠã ãã§è©äŸ¡ããã ãã§ã¯ãäŒæ¥ã®æææ±ºå®ã«ã¯äžååã§ããææçŸ©ãªæ¯èŒãè¡ãã«ã¯ãããŸããŸãªããŒã«ãã¢ãŒããã¯ãã£çã«ã©ã®ããã«åäœããããçµç¹ã®ãã¬ãã·ã£ãŒäžã§ã©ã®ããã«æ¡åŒµã§ãããããããŠæéã®çµéãšãšãã«ããªããªãŒãªã¹ã¯ã«ã©ã®ãããªåœ±é¿ãäžããããçè§£ããå¿ èŠããããŸããCI/CDãããŒã«ã®éžæã§ã¯ãªãå®è¡ã·ã¹ãã ãšããŠæããããšã§ãããªããªãŒã®æææ±ºå®ãããåºç¯ãªèŠç¹ããæããããšãã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ã®ã¢ããã€ãŒãŒã·ã§ã³ ç®æšãéæããããæ°žç¶çãªãã€ãã©ã€ã³æŠç¥ã®åºç€ãç¯ããŸãã
SMART TS XL CI/CDãã€ãã©ã€ã³å šäœã®åäœã®å¯èŠæ§
CI/CDãã€ãã©ã€ã³ã¯éåžžã宣èšçã«å®çŸ©ãããŸãããå®è¡ã¯åœä»€åã§ãããã®éããããããšã³ã¿ãŒãã©ã€ãºç°å¢ã«ãããããªããªãŒã®å€±æãäºæž¬ã»èšºæããããšããã°ãã°å°é£ã§ããçç±ã®æ žå¿ã§ãããã€ãã©ã€ã³å®çŸ©ã¯ã¹ããŒãžããžã§ããããªã¬ãŒãèšè¿°ããŸããã䞊åãã«ããå ±æã©ã³ããŒãæ¡ä»¶ä»ãããžãã¯ãéšåçãªé害ãšãã£ãå®éã®ç¶æ³äžã§å®è¡ãã¹ãã©ã®ããã«å€åããããæããã«ãããã®ã§ã¯ãããŸãããããªããªãŒã·ã¹ãã ãæ¡åŒµãããã«ã€ããŠã宣èšãããæå³ãšå®éã®åäœãšã®éã®ãã®ã®ã£ããã¯ãé倧ãªãªã¹ã¯æºãšãªããŸãã
SMART TS XL ãã®ã®ã£ãããåããããã«ãCI/CDãã€ãã©ã€ã³ãéçãªæ§æã§ã¯ãªãå®è¡å¯èœã·ã¹ãã ãšããŠæ±ããŸãããã€ãã©ã€ã³æ§æãããŒã«åºæã®ããã·ã¥ããŒãã«çŠç¹ãåœãŠãã®ã§ã¯ãªãããã«ããµãŒããŒãã©ã³ããŒããããã€ã¡ã³ãã¹ããŒãžããããŠäžæµã®ç°å¢å šäœã«ããã£ãŠããªããªãŒããžãã¯ãã©ã®ããã«åäœããããåæããŸãããã®èŠç¹ã¯ãè€æ°ã®CI/CDããŒã«ãå ±åããããªããªãŒåäœãåäžã®ãã©ãããã©ãŒã ã§ã¯ãªããããã®çžäºäœçšããçããäŒæ¥ã«ãšã£ãŠç¹ã«æçšã§ãã
ãã€ãã©ã€ã³å®è¡ãã¹ãæç€ºçã«ãã
ãšã³ã¿ãŒãã©ã€ãºCI/CDãã€ãã©ã€ã³ã«ã¯ãæ¡ä»¶åå²ãç°å¢åºæã®ããžãã¯ãç¹å®ã®ç¶æ³ã§ã®ã¿ã¢ã¯ãã£ãã«ãªãå ±æã³ã³ããŒãã³ããå«ãŸããããšããããããŸãããããã®å®è¡ãã¹ã¯ããšã³ãããŒãšã³ãã§å¯èŠåãããããšã¯ã»ãšãã©ãããŸãããããŒã ã¯éåžžãåã ã®ãžã§ããåå¥ã«çè§£ããããšã¯ã§ããŸããããããã®ãžã§ãããªããžããªãç°å¢ããªãªãŒã¹ã¹ããŒãžå šäœã«ããã£ãŠã©ã®ããã«ããªããªãŒãããŒã«çµã¿èŸŒãŸããããå æ¬çã«ææ¡ã§ããŠããŸããã
SMART TS XL ãžã§ãã®ã·ãŒã±ã³ã¹ãã¢ãŒãã£ãã¡ã¯ãã®ææ Œãç°å¢ã®é·ç§»ãå¶åŸ¡ããåºç€ããžãã¯ãåæããããšã§ããã€ãã©ã€ã³ã®å®è¡ãã¹ãåæ§ç¯ããŸããããã«ããã以äžã®ããšãå¯èœã«ãªããŸãã
- ãã£ãã«å®è¡ãããªãããã€ã³ã·ãã³ãå埩æã«éèŠãªæ¡ä»¶ä»ããã¹ãç¹å®ãã
- å ±æã©ã³ããŒãŸãã¯ãããã€ã¡ã³ãã¿ãŒã²ãããç«¶åãã䞊åå®è¡ãã©ã³ããæ€åºãã
- ææç©ãã¹ã¯ãªããããŸãã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ãå ±æãããã€ãã©ã€ã³éã®æé»çãªäŸåé¢ä¿ãå ¬éãã
- 鿬çªç°å¢ãããŒãšæ¬çªç°å¢ãããŒã®é ä¿¡åäœã®éããçè§£ãã
ãããã®ãã¹ãæç€ºçã«ããããšã§ãäŒæ¥ã¯ãã€ãã©ã€ã³æ§æãã¡ã€ã«ãããŒã«ã¬ãã«ã®ã¡ããªãã¯ãè¶ ããé ä¿¡ãªã¹ã¯ãè©äŸ¡ããããã®å ·äœçãªåºç€ãç²åŸããŸãã
CI/CD ããŒã«ã®å¢çãè¶ããäŸåé¢ä¿ãã§ãŒã³
å€§èŠæš¡ãªçµç¹ã§ã¯ãCI/CDãã€ãã©ã€ã³ãåäžã®ããŒã«ã§å®çµããããšã¯ã»ãšãã©ãããŸããããã«ãã¯1ã€ã®CIãµãŒããŒã§éå§ããããªããžããªã«ã¢ãŒãã£ãã¡ã¯ããå ¬éããäžæµã®ãããã€ã¡ã³ããã€ãã©ã€ã³ãããªã¬ãŒããå€éšã®ãã¹ãããŒã«ãã»ãã¥ãªãã£ããŒã«ãšé£æºããŸããåã·ã¹ãã ã¯äŸåé¢ä¿ãç¬èªã®èŠç¹ã§ç®¡çããŠããŸããããããã®äŸåé¢ä¿ãå¢çãè¶ããŠã©ã®ããã«çžäºäœçšãããã説æã§ããåäžã®ããŒã«ã¯ååšããŸããã
SMART TS XL 宣èšãããçµ±åã«äŸåããã®ã§ã¯ãªããå®è¡ããžãã¯ãçžé¢ãããããšã§ããŒã«éã®äŸåé¢ä¿ãã§ãŒã³ãæ§ç¯ããŸããããã«ããã以äžãå¯èœã«ãªããŸãã
- 1ã€ã®ãã€ãã©ã€ã³ã®å€æŽãäžæµã®é ä¿¡ã¹ããŒãžã«ã©ã®ããã«åœ±é¿ããããå¯èŠå
- é ããåäžé害ç¹ãçã¿åºãå ±æã³ã³ããŒãã³ãã®ç¹å®
- ãã«ã ã¹ã¯ãªãããå ±æã©ã€ãã©ãªããŸãã¯ãããã€ã¡ã³ã ããžãã¯ã倿Žããéã®åœ±é¿ç¯å²ã®åæ
- é ä¿¡ãé ãããããé害ã®åœ±é¿ãå¢å¹ ããã埪ç°äŸåé¢ä¿ã®æ€åº
ãã®æ©èœã¯ãååž°ãåé¿ããããã«æ¢åã®äŸåé¢ä¿æ§é ãçè§£ããããšãäžå¯æ¬ 㪠CI/CD ããŒã«ã®çµ±åãŸãã¯ææ°åã®åãçµã¿ã«ãããŠç¹ã«éèŠã§ãã
çç£æ®µéã«å ¥ãåã«é éãªã¹ã¯ãäºæž¬ãã
ã»ãšãã©ã®CI/CDç£èŠã¯ããžã§ãã®æåçããããã€é »åºŠãšãã£ãææã«çŠç¹ãåœãŠãŠããŸãããããã®ã·ã°ãã«ã¯äºåŸå¯Ÿå¿çãªãã®ã§ãããäœããæ¢ã«å€±æããŠããããé床ãäœäžããŠããããšã瀺ããŸãã SMART TS XL ç®ã«èŠããæ éã«å ç«ã€æ§é ææšã«çŠç¹ãç§»ããŸãã
ãããã®ææšã®äŸãšããŠã¯æ¬¡ã®ãããªãã®ããããŸãã
- ãã€ãã©ã€ã³ã®æ·±ããšåå²ã®è€éãã®å¢å
- æææš©ã®æç¢ºåãªãã«å ±æã¹ã¯ãªããã®åå©çšãå¢å
- é ä¿¡ã¯ãŒã¯ãããŒã«çµã¿èŸŒãŸããç°å¢åºæã®ããžãã¯ã®æ¡åŒµ
- ãã€ãã©ã€ã³ããžãã¯ã«ãããå詊è¡ãšäŸå€åŠçãã¹ã®èç©
ãããã®çç¶ãæ©æã«çºèŠããããšã§ã SMART TS XL ããŒã ã¯ã忢ãããŒã«ãã㯠ã€ãã³ãããŸãã¯é·æéã®ãªãªãŒã¹ ããªãŒãºãšããŠçŸããåã«ãé ä¿¡ã®è匱æ§ã«å¯ŸåŠã§ããããã«ãªããŸãã
ãšã³ã¿ãŒãã©ã€ãº CI/CD ã®è¿ä»£åããµããŒã
CI/CDã®ã¢ããã€ãŒãŒã·ã§ã³ã¯ãã¯ã©ãŠãç§»è¡ããªããžããªçµ±åãã³ã³ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®å°å ¥ãšãã£ããããåºç¯ãªãã©ãããã©ãŒã ã®åãçµã¿ã«ä»éããããšããããããŸããããããç§»è¡ã«ãããŠã¯ãããªããªãŒãã€ãã©ã€ã³ã段éçã«ãªãã¡ã¯ã¿ãªã³ã°ãããããšãå€ããæå³ããªãå¯äœçšã®ãªã¹ã¯ãé«ãŸããŸãã
SMART TS XL ãã€ãã©ã€ã³ã®å€æŽãããªããªãŒè¡åã«ã©ã®ãããªå€åããããããã«ã€ããŠãå®è¡ãèæ ®ããã€ã³ãµã€ããæäŸããããšã§ãã¢ããã€ãŒãŒã·ã§ã³ããµããŒãããŸããããã«ãããçµç¹ã¯ä»¥äžã®ããšãå¯èœã«ãªããŸãã
- åäœã¬ãã«ã§ã¬ã¬ã·ãŒãã€ãã©ã€ã³ãšææ°ãã€ãã©ã€ã³ãæ¯èŒãã
- ãªãã¡ã¯ã¿ãªã³ã°ããããã€ãã©ã€ã³ãéèŠãªå®è¡ãã¹ãä¿æããŠããããšãæ€èšŒãã
- çŸèгããããªã¹ã¯ã«åºã¥ããŠãã€ãã©ã€ã³ã®ç°¡çŽ åãåªå ãã
- æ¢åã®ã·ã¹ãã ãšäžŠè¡ããŠæ°ãã CI/CD ããŒã«ãå°å ¥ããéã®äžç¢ºå®æ§ã軜æž
CI/CDãã©ãããã©ãŒã ã眮ãæããã®ã§ã¯ãªãã SMART TS XL ãããã®ãã©ãããã©ãŒã ãå®éã®ãšã³ã¿ãŒãã©ã€ãºããªããªãŒã·ã¹ãã å ã§ã©ã®ããã«åäœãããã説æããåæã¬ã€ã€ãŒãšããŠæ©èœããŸããè€éã§è€æ°ã®ããŒã«ãæ··åšããCI/CDç°å¢ã管çããçµç¹ã«ãšã£ãŠããã®åäœã®å¯èŠåã¯ãå¶åŸ¡æ§ãç ç²ã«ããããšãªãããªããªãŒé床ãåäžããããã®åææ¡ä»¶ãšãªããŸãã
ãšã³ã¿ãŒãã©ã€ãºããªããªãŒç®æšã«ããCI/CDããŒã«ã®æ¯èŒ
CI/CDããŒã«ã¯ãåãåé¡ã解決ãããã®ããã«æ¯èŒãããããšããããããŸããããšã³ã¿ãŒãã©ã€ãºç°å¢ã§ã¯ãããããå šãç°ãªãããªããªãŒç®æšã®éæã®ããã«å°å ¥ãããŠããŸãããã©ãããã©ãŒã ã«ãã£ãŠã¯ãå€§èŠæš¡ãªãã«ãèªååã«æé©åãããŠãããã®ãããã°ãã¯ã©ãŠããã€ãã£ããªãããã€ã¡ã³ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã«æé©åãããŠãããã®ãã¬ããã³ã¹éèŠã®ãªãªãŒã¹ç®¡çã«æé©åãããŠãããã®ããããŸããããªããªãŒç®æšãæç¢ºã«ããã«ããŒã«ãæ¯èŒãããšããã€ãã©ã€ã³ã¯æè¡çã«ã¯æ©èœãããã®ã®ãé·æçãªããªããªãŒãªã¹ã¯ãçãããšãã£ããã¹ããããçããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãäŒæ¥ãç¹°ãè¿ãæé©åãå³ãäž»èŠãªç®æšïŒã¹ã±ãŒã©ããªãã£ãã¯ã©ãŠããžã®å¯Ÿå¿ãã³ã³ãã©ã€ã¢ã³ã¹ããã€ããªããéçšãªã©ïŒãäžå¿ã«ãCI/CDããŒã«ãæŠèª¬ããŸããããŒã«ãæ®éçã«ã©ã³ã¯ä»ãããããšã§ã¯ãªããå€§èŠæš¡çµç¹ãããŒããã©ãªãªãããŒã ãç°å¢å šäœã«ããã£ãŠCI/CDãã©ãããã©ãŒã ãå®éã«ã©ã®ããã«å±éããŠããããåæ ããã劥åœãªéžæè¢ã確ç«ããããšãç®æããŸãã
ãžã§ã³ãã³ãº
å ¬åŒãµã€ãïŒ ãžã§ã³ãã³ãº
Jenkinsã¯ããã®é·å¯¿åœæ§ãæ¡åŒµæ§ããããŠç¹å®ã®ãã³ããŒãšã³ã·ã¹ãã ããã®ç¬ç«æ§ã«ããããšã³ã¿ãŒãã©ã€ãºç°å¢ã§æãåºãæ¡çšãããŠããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒãµãŒããŒã®äžã€ã§ããã¢ãŒããã¯ãã£çã«ã¯ãJenkinsã¯åæ£ãšãŒãžã§ã³ãã«ãã£ãŠå®è¡ããããã«ãããã¹ããããã±ãŒãžã³ã°ã®ã¯ãŒã¯ãããŒã調æŽããéäžåCIãµãŒããŒã§ãããã®èšèšã¯ãå¶åŸ¡ãã«ã¹ã¿ãã€ãºããªã³ãã¬ãã¹å±éãäž»èŠãªæžå¿µäºé ã§ãã£ãåæã®ãšã³ã¿ãŒãã©ã€ãºCIã®ããŒãºãåæ ããŠããŸãã
å€§èŠæš¡ç°å¢ã«ãããŠã¯ãJenkins ã¯ã¿ãŒã³ããŒããŒã«ãšããããã¯çµ±åãã¬ãŒã ã¯ãŒã¯ã®ãããªåäœãããŸããã³ã¢æ©èœã¯æå³çã«æå°éã«æããããŠãããã»ãšãã©ã®æ©èœã¯ãã©ã°ã€ã³ãéããŠæäŸãããŸããããã«ãããäŒæ¥ã¯ Jenkins ããã¬ã¬ã·ãŒãã«ãã·ã¹ãã ãç¬èªããŒã«ãéæšæºã®ãããã€ã¡ã³ãã¿ãŒã²ãããªã©ãéåžžã«ç¹æ®ãªããªããªãŒã¯ãŒã¯ãããŒã«é©å¿ãããããšãã§ããŸãããããããã®æè»æ§ããã«ããã©ã°ã€ã³ã®çžäºäœçšãå®è¡ãµãŒãã§ã¹ã®äžéšãšãªããããè€éããçããŸãã
äŸ¡æ Œã¢ãã«ã®ç¹åŸŽ:
- ã©ã€ã»ã³ã¹è²»çšãããããªããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢
- ã€ã³ãã©ãã¡ã³ããã³ã¹ãéçšã¹ã¿ããã¯äž»ãªã³ã¹ãèŠå ã§ã
- åçšé åžãšãµããŒãã®æäŸã«ã¯ãµãã¹ã¯ãªãã·ã§ã³è²»çšãããã
- ç·ææã³ã¹ãã¯èŠæš¡ãšã«ã¹ã¿ãã€ãºã«å¿ããŠå¢å ãã
ã³ã¢æ©èœ:
- ãã«ããšãã¹ãã®ãã€ãã©ã€ã³ã®éäžãªãŒã±ã¹ãã¬ãŒã·ã§ã³
- éçãŸãã¯äžæçãªãšãŒãžã§ã³ãã«ãã忣å®è¡
- 宣èšåããã³ã¹ã¯ãªããåã¢ãã«ã䜿çšããã³ãŒããšããŠã®ãã€ãã©ã€ã³ã®ãµããŒã
- SCMããã«ãããŒã«ããã¹ããã¬ãŒã ã¯ãŒã¯ãã¢ãŒãã£ãã¡ã¯ããªããžããªãã«ããŒããåºç¯ãªãã©ã°ã€ã³ãšã³ã·ã¹ãã
å®è¡ã®èгç¹ããèŠããšãJenkins ãã€ãã©ã€ã³ã¯éåžžã«æç€ºçã§ããåã¹ããŒãžãšã¹ãããã¯åœä»€åã§å®çŸ©ããããããããŒã ã¯è€éãªããžãã¯ããã€ãã©ã€ã³å®çŸ©ã«çŽæ¥èšè¿°ã§ããŸããããã«ãããå°èŠæš¡ãªå®è¡åäœã¯éæã«ãªããŸããããã€ãã©ã€ã³ãæ·±ããªããå ±æã©ã€ãã©ãªãåå©çšãããããã«ãªããšãåäœã¯èªæã§ã¯ãªããåµçºçãªãã®ã«ãªããŸããå ±æ Jenkins ãã¡ã€ã«ãã°ããŒãã«ã©ã€ãã©ãªãããã³èªèšŒæ å ±ãã€ã³ãã£ã³ã°ã¯ã远å ã®åæãªãã«ã¯çè§£ãå°é£ãªæé»çãªäŸåé¢ä¿ãçã¿åºããŸãã
Jenkinsç°å¢ã«ãããéçšã®ä¿¡é Œæ§ã¯ãèŠåŸã«å€§ããäŸåããŸããã³ã³ãããŒã©ãŒã®å¯çšæ§ããšãŒãžã§ã³ãã®ã©ã€ããµã€ã¯ã«ç®¡çããã©ã°ã€ã³ã®äºææ§ã¯ãã¹ãŠããã€ãã©ã€ã³ã®å®å®æ§ã«åœ±é¿ããŸããå€§èŠæš¡äŒæ¥ã§ã¯ãã¯ãŒã¯ããŒããåé¢ããããã«è€æ°ã®Jenkinsã€ã³ã¹ã¿ã³ã¹ãéçšããããšãå€ããããã«ãã調æŽã®ãªãŒããŒããããšæçåãçºçããŸããJenkinsãæ°Žå¹³æ¹åã«ã¹ã±ãŒãªã³ã°ããã«ã¯ãã³ã³ãããŒã©ãŒã®ããã«ããã¯ãšãã¥ãŒã®ç«¶åãåé¿ããããã®æ éãªèšèšãå¿ èŠã§ãã
æ§é äžã®å¶éãšãªã¹ã¯:
- ãã©ã°ã€ã³ã®æ¡æ£ã«ããäŸåé¢ä¿ã®è€éããšã¢ããã°ã¬ãŒãã®ãªã¹ã¯ãå¢å€§
- ã³ã³ãããŒã©äžå¿ã®ã¢ãŒããã¯ãã£ã¯ã¹ã±ãŒãªã³ã°ã®å¶çŽãšãªãå¯èœæ§ããã
- ãã€ãã©ã€ã³éã®äŸåé¢ä¿ã«å¯Ÿãããã€ãã£ãã®å¯èŠæ§ãå¶éãããŠãã
- ã¬ããã³ã¹ãšã¢ã¯ã»ã¹å¶åŸ¡ã«ã¯å€§å¹ ãªã«ã¹ã¿ãã€ãºãå¿ èŠ
Jenkinsã¯ãé«åºŠãªã«ã¹ã¿ãã€ãºãã»ã«ããã¹ãã£ã³ã°ããããŠç°æ©ç𮿷·åšã·ã¹ãã ãšã®ç·å¯ãªçµ±åãå¿ èŠãšããäŒæ¥ã«ãšã£ãŠãäŸç¶ãšããŠåŒ·åãªéžæè¢ã§ããç¹ã«ãã¯ã©ãŠããã€ãã£ãã®CIãµãŒãã¹ã§ã¯åŸæ¥ã®ãã«ãèŠä»¶ãã»ãã¥ãªãã£èŠä»¶ã«å®å šã«å¯Ÿå¿ã§ããªããã€ããªããç°å¢ã§ã¯ãJenkinsã¯å¹æçã§ããããããçµç¹ã峿 ŒãªèŠçŽã匷å¶ããããšãªããå€§èŠæš¡ãªããŒããã©ãªãªå šäœã«ããã£ãŠããªããªãŒåäœãæšæºåããããšãããšãJenkinsã®éçãçŸããŸãã
çŸä»£ã®CI/CDç°å¢ã§ã¯ãJenkinsãåç¬ã§äœ¿çšãããããšã¯ã»ãšãã©ãããŸãããå€ãã®å ŽåããããŒãžãCIãµãŒãã¹ãGitOpsãããã€ã¡ã³ãããŒã«ãšå ±åãããã«ãèªååãæ ããªãããäžæµã®ã·ã¹ãã ãããã¢ãŒã·ã§ã³ãšãªãªãŒã¹ã管çããŸããJenkinsãããŒã«ãšããŠã ãã§ãªããå®è¡ãã©ãããã©ãŒã ãšããŠçè§£ããããšã¯ãé ããããªããªãŒãªã¹ã¯ãèç©ããããšãªã广çã«æŽ»çšããããã«äžå¯æ¬ ã§ãã
GitLab CI / CD
å ¬åŒãµã€ãïŒ GitLab CI / CD
GitLab CI/CDã¯ããœãŒã¹ã³ãŒã管çãã©ãããã©ãŒã ã«çŽæ¥çµã¿èŸŒãŸããçµ±åé ä¿¡ã·ã¹ãã ãšããŠèšèšãããŠããŸããã¹ã¿ã³ãã¢ãã³ã®CIãµãŒããŒãšã¯ç°ãªããGitLab CI/CDã¯ãã€ãã©ã€ã³ãããªããžããªãããŒãžãªã¯ãšã¹ãããªãªãŒã¹ã¯ãŒã¯ãããŒãšäžŠè¡ããŠé²åãã第äžçŽã®ã¢ãŒãã£ãã¡ã¯ããšããŠæ±ããŸãããã®ç·å¯ãªé£æºãããšã³ã¿ãŒãã©ã€ãºç°å¢ã«ããã匷ã¿ãšéçã®äž¡æ¹ã圢æããŠããŸãã
ã¢ãŒããã¯ãã£ã¬ãã«ã§ã¯ãGitLab CI/CDã¯ã忣ã©ã³ããŒãéããŠãã€ãã©ã€ã³å®è¡ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããéäžåã³ã³ãããŒã«ãã¬ãŒã³ãäžå¿ã«æ§ç¯ãããŠããŸãããã€ãã©ã€ã³å®çŸ©ã¯YAMLã§å®£èšçã«èšè¿°ãããã¢ããªã±ãŒã·ã§ã³ã³ãŒããšå ±ã«ããŒãžã§ã³ç®¡çãããããã倿ŽãšããªããªãŒåäœéã®ãã¬ãŒãµããªãã£ã匷åãããŸãããã®ã¢ãã«ã¯ããã€ãã©ã€ã³ããžãã¯ãšã¢ããªã±ãŒã·ã§ã³ã©ã€ããµã€ã¯ã«ç®¡çã®éã®ä¹é¢ãäœæžãããããå€§èŠæš¡ãªããŒããã©ãªãªå šäœã§æšæºåãããããªããªãŒãã¿ãŒã³ã远æ±ããçµç¹ã«é©ããŠããŸãã
äŸ¡æ Œã¢ãã«ã®ç¹åŸŽ:
- ç¡æçãããšã³ã¿ãŒãã©ã€ãºçãŸã§ã段éçãªãµãã¹ã¯ãªãã·ã§ã³ ã¢ãã«
- ã©ã€ã»ã³ã¹ãŠãŒã¶ãŒãšæå¹ãªãšã³ã¿ãŒãã©ã€ãºæ©èœã«å¿ããŠäŸ¡æ Œã決å®ãããŸã
- ç°ãªãã³ã¹ã ãããã¡ã€ã«ãåããã»ã«ã管çåããã³ SaaS å±éãªãã·ã§ã³
- äžäœå±€ã§ã¯ãã³ã³ãã©ã€ã¢ã³ã¹ãã»ãã¥ãªãã£ã¹ãã£ã³ãã¬ããã³ã¹æ©èœãå©çšå¯èœã«ãªããŸã
ã³ã¢æ©èœ:
- ãœãŒã¹ç®¡çãšç·å¯ã«çµ±åããããã€ãã£ãã®ãã€ãã©ã€ã³ã»ã¢ãºã»ã³ãŒã
- è€éãªå€æ®µãã€ãã©ã€ã³ãšäžŠåå®è¡ã®ãµããŒã
- çµã¿èŸŒã¿ã®ã¢ãŒãã£ãã¡ã¯ã管çããã£ãã·ã¥ãäŸåé¢ä¿ã®åŠç
- äžäœå±€ã«çµ±åãããã»ãã¥ãªãã£ããã¹ããã³ã³ãã©ã€ã¢ã³ã¹æ©èœ
å®è¡ã®èгç¹ããèŠããšãGitLab CI/CDã¯äžè²«æ§ãšåçŸæ§ãéèŠããŠããŸããã©ã³ããŒã¯ãå€ãã®å Žåã³ã³ããã䜿çšããŠåé¢ãããç°å¢ã§ãžã§ããå®è¡ãããããç°å¢éã®äºæž¬å¯èœæ§ãåäžããŸããå ±æã©ã³ããŒã¯ãªã³ããŒãã£ã³ã°ãç°¡çŽ åããã»ã«ããã¹ãã©ã³ããŒã¯äŒæ¥ããããã¯ãŒã¯åé¢ãã³ã³ãã©ã€ã¢ã³ã¹å¶åŸ¡ãããã©ãŒãã³ã¹ä¿èšŒã匷åã§ããããã«ããŸãã
ãããããã®çµ±åãã¡ãŒã¹ãã®èšèšã¯ãçµåãšããåé¡ãçã¿åºããŸãããã€ãã©ã€ã³ã®åäœã¯ãGitLabã®ããŒã¿ã¢ãã«ãæš©éãã¢ããã°ã¬ãŒãã®é »åºŠãšå¯æ¥ã«çµã³ã€ããŠããŸãããªããžããªæ§é ããã©ã³ãæŠç¥ãã¢ã¯ã»ã¹å¶åŸ¡ã®å€æŽã¯ããã€ãã©ã€ã³ã®å®è¡ã«å³åº§ã«åœ±é¿ãäžããå¯èœæ§ããããŸããå€§èŠæš¡ãªçµç¹ã§ã¯ããã®çµåãæ éã«ç®¡çããæå³ããªãããªããªãŒã®äžæãåé¿ããå¿ èŠããããŸãã
éçšé¢ã§ã¯ãGitLab CI/CD ã¯ã©ã³ããŒã€ã³ãã©ã¹ãã©ã¯ãã£ãé©åã«ç®¡çãããŠããå Žåãè¯å¥œãªã¹ã±ãŒã©ããªãã£ãå®çŸããŸããããã«ããã¯ã¯éåžžããã€ãã©ã€ã³ãšã³ãžã³èªäœã§ã¯ãªããå ±æã©ã³ããŒãã¢ãŒãã£ãã¡ã¯ãã¹ãã¬ãŒãžããŸãã¯å€éšäŸåé¢ä¿ã«çºçããŸããããžãã¯ãé床ã«ãã³ãã¬ãŒãåãããŠããããå ±æã€ã³ã¯ã«ãŒãã«æœè±¡åãããŠããããããšãå®è¡ãã¹ã®ããŒã«ã«å¯èŠæ§ãäœäžãããããžã§ã¯ãéã®ãã€ãã©ã€ã³åäœã®ãããã°ãå°é£ã«ãªãå¯èœæ§ããããŸãã
æ§é äžã®å¶éãšãªã¹ã¯:
- GitLabãšã³ã·ã¹ãã ãšã®å¯çµåã«ããç§»æ€æ§ãå¶éããã
- è€éãªãã€ãã©ã€ã³ã¯ããã³ãã¬ãŒãåãå€ããããšçè§£ãé£ãããªãå¯èœæ§ããã
- ã©ã³ããŒã®é£œåã«ãããåŸ ã¡æéãäºæž¬äžèœã«ãªãå¯èœæ§ããã
- ãããžã§ã¯ãéã®äŸåé¢ä¿ã®å¯èŠæ§ã¯å€éšåæãªãã§ã¯å¶éãããŸã
GitLab CI/CDã¯ãããŒã«ã®çµ±åãšã³ãŒã管çãšããªããªãŒã®é£æºåŒ·åãæ±ããäŒæ¥ã«ãšã£ãŠç¹ã«å¹æçã§ããè€æ°ã®ããŒã«ã䜿çšããCI/CDç°å¢ã«èŠãããæçåã軜æžããªãããå€§èŠæš¡ãªæšæºåãããã¯ãŒã¯ãããŒããµããŒãããŸããè€æ°ã®SCMããããã€ã¡ã³ããšã³ãžã³ããŸãã¯åŸæ¥ã®ããªããªãŒããã»ã¹ãå ±åããå¿ èŠãããç°æ©ç𮿷·åšç°å¢ã§ã¯ããã®éçãããé¡èã«ãªããŸãã
æçãããšã³ã¿ãŒãã©ã€ãºããªããªãŒã·ã¹ãã ã§ã¯ãGitLab CI/CD ã¯å€ãã®å Žåãå°çšã®ãããã€ã¡ã³ãããŒã«ããªãªãŒã¹ããŒã«ãè£å®ããäžå€®èª¿æŽã¬ã€ã€ãŒãšããŠæ©èœããŸããçµç¹ã®è€éæ§ãå¢å€§ããäžã§ããªããªãŒã®ä¿¡é Œæ§ãç¶æããã«ã¯ãGitLab CI/CD ãåãªãå©äŸ¿æ§ã®é«ãæ©èœã§ã¯ãªããå®è¡ãã©ãããã©ãŒã ãšããŠæ±ãããšãäžå¯æ¬ ã§ãã
GitHubã¢ã¯ã·ã§ã³
å ¬åŒãµã€ãïŒ GitHubã¢ã¯ã·ã§ã³
GitHub Actionsã¯ãGitHubãšã³ã·ã¹ãã ã«çŽæ¥çµã¿èŸŒãŸããCI/CDãã©ãããã©ãŒã ã§ãããåŸæ¥ã®ãã«ããµãŒããŒãã©ãã€ã ã§ã¯ãªããã€ãã³ãé§ååã®èªååãåºç€ãšããŠèšèšãããŠããŸãããã®ã¢ãŒããã¯ãã£ã¯ãããã·ã¥ããã«ãªã¯ãšã¹ãããªãªãŒã¹ã課é¡ã®æŽæ°ãšãã£ããªããžããªã€ãã³ãã«ãã£ãŠããªããªãŒã¯ãŒã¯ãããŒãããªã¬ãŒãããã¹ãã§ãããšãããGitHubã®æ žãšãªãåæãåæ ããŠããŸãããœãŒã¹ç®¡çãšã®ç·å¯ãªé£æºã¯ããšã³ã¿ãŒãã©ã€ãºããªããªãŒç°å¢ã«ãããGitHub Actionsã®åäœãæ ¹æ¬çã«èŠå®ããŠããŸãã
ã¢ãŒããã¯ãã£ã®èгç¹ããèŠããšãGitHub Actions 㯠CI/CD ã¯ãŒã¯ãããŒããªã¢ã¯ãã£ãã·ã¹ãã ãšããŠæ±ããŸããã¯ãŒã¯ãããŒã¯ YAML ã§å®£èšçã«å®çŸ©ãããGitHub ãã©ãããã©ãŒã ããçºè¡ãããã€ãã³ãã«ãã£ãŠèµ·åãããŸããå®è¡ã¯ãã¹ãåãŸãã¯ã»ã«ããããŒãžãåã®ã©ã³ããŒã«ãã£ãŠè¡ãããåãžã§ãã¯äžæçãªç°å¢ã§å®è¡ãããŸãããã®ã¢ãã«ã¯ã»ããã¢ãããç°¡çŽ åããæ°žç¶çãªç¶æ ãåæžããŸãããå®è¡åäœã¯çåœã§ã¹ããŒãã¬ã¹ãªå®è¡ãžãšç§»è¡ããã¢ãŒãã£ãã¡ã¯ããšã³ã³ããã¹ããæç€ºçã«å€éšåããå¿ èŠããããŸãã
äŸ¡æ Œã¢ãã«ã®ç¹åŸŽ:
- ãã¹ãã©ã³ããŒã®æ¶è²»éããŒã¹ã®äŸ¡æ Œèšå®ïŒå®è¡æéã§æž¬å®ïŒ
- å«ãŸãã䜿çšéã®å²ãåœãŠã¯GitHubãã©ã³ã«ãã£ãŠç°ãªããŸã
- ã»ã«ããã¹ãã©ã³ããŒã¯å®è¡ã³ã¹ããåæžããŸãããéçšãªãŒããŒããããå¢å ããŸãã
- ã¹ãã¬ãŒãžãšã¢ãŒãã£ãã¡ã¯ãã®ä¿æå¶éã«ãããäºæ¬¡çãªã³ã¹ãã®èæ ®ãå¿ èŠã«ãªããŸãã
ã³ã¢æ©èœ:
- GitHub ãªããžããªããã« ãªã¯ãšã¹ãããªãªãŒã¹ãšã®ãã€ãã£ãçµ±å
- ã³ãŒããšãã©ãããã©ãŒã ã®ã¢ã¯ãã£ããã£å šäœã§ããªã¬ãŒãããã€ãã³ãé§ååã¯ãŒã¯ãããŒ
- ãã«ãããã¹ãããããã€ã¡ã³ãã¿ã¹ã¯ã®ããã®åå©çšå¯èœãªã¢ã¯ã·ã§ã³ã®å¹ åºãããŒã±ãããã¬ã€ã¹
- ãããªãã¯ã¹ãã«ããšäžŠåãžã§ãå®è¡ã®ãµããŒã
ãšã³ã¿ãŒãã©ã€ãºç°å¢ã«ãããŠãGitHub Actionsã¯ã³ãŒã倿ŽãšããªããªãŒèªååã®éã®æ©æŠã軜æžããã®ã«åªããŠããŸããéçºè ã¯ããŒãžã§ã³ç®¡çãã¬ãã¥ãŒããã€ãã©ã€ã³å®è¡ãåäžã®ãã©ãããã©ãŒã ã§è¡ãããšãã§ããããããã¬ãŒãµããªãã£ãšãªã³ããŒãã£ã³ã°ã®ã¹ããŒããåäžããŸããã¯ãŒã¯ãããŒã¯ã¢ããªã±ãŒã·ã§ã³ã³ãŒããšå ±ã«èªç¶ã«é²åããããªããªãŒããžãã¯ãšéçºãã©ã¯ãã£ã¹ã®æŽåæ§ã匷åããŸãã
ãããããã®å©äŸ¿æ§ã¯ãèŠæš¡ã倧ãããªãã«ã€ããŠé¡èã«ãªãçµåããããããŸããã¯ãŒã¯ãããŒã®åäœã¯ããªããžããªæ§é ããã©ã³ãã¢ãã«ãæš©éã¹ããŒã ã®åœ±é¿ãåããŸããçµç¹å šäœã®ããªã·ãŒããªããžããªãã³ãã¬ãŒãã®å€æŽã¯ããã€ãã©ã€ã³å šäœã«é£éçãªåœ±é¿ãåãŒãå¯èœæ§ããããŸããããã«ããµãŒãããŒãã£ã®ã¢ã¯ã·ã§ã³ãåºç¯ã«åå©çšãããšããµãã©ã€ãã§ãŒã³ã«é¢ããèæ ®äºé ãäŸåé¢ä¿ã®ãªã¹ã¯ãçããããããæç¢ºã«ç®¡çããå¿ èŠããããŸãã
éçšã®å¯èŠæ§ããŸã課é¡ã§ããGitHub Actionsã¯ãžã§ãã¬ãã«ã®ãã°ãšã¹ããŒã¿ã¹ãæäŸããŸãããã¯ãŒã¯ãããŒéã®äŸåé¢ä¿ãå ±æã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç«¶åãææ¡ããããšã¯å°é£ã§ããæ°çŸãæ°åãã®ã¯ãŒã¯ãããŒãéçšããäŒæ¥ã¯ãç¹ã«ã¯ãŒã¯ãããŒãå ±æç°å¢ãå€éšã·ã¹ãã ãä»ããŠéæ¥çã«é£æºããå Žåãã·ã¹ãã å šäœã®ããªããªãŒãªã¹ã¯ã®è©äŸ¡ã«èŠåŽããããšããããããŸãã
æ§é äžã®å¶éãšãªã¹ã¯:
- GitHubãšã³ã·ã¹ãã ãžã®åŒ·ãäŸåãç§»æ€æ§ãå¶é
- ã€ãã³ãé§ååã¢ãã«ã¯ãé·æã«ãããé ä¿¡ã®äŸåé¢ä¿ãäžæçã«ããå¯èœæ§ããã
- ãªããžããªéã®ãã€ãã©ã€ã³ã®çžäºäœçšã«é¢ãããã€ãã£ãã®æŽå¯ãéãããŠãã
- ãµãŒãããŒãã£ã®ã¢ã¯ã·ã§ã³ã®ã¬ããã³ã¹ã«ã¯è¿œå ã®å¶åŸ¡ãå¿ èŠ
GitHub Actionsã¯ãGitHubãæšæºåããè¿ éãªã€ãã¬ãŒã·ã§ã³ãšç·å¯ãªéçºè ãã£ãŒãããã¯ã«ãŒããéèŠããçµç¹ã«æé©ã§ããæå°éã®ã»ããã¢ããã§ææ°ã®ã¯ã©ãŠããã€ãã£ããªããªããªãŒãã©ã¯ãã£ã¹ããµããŒããã忣åããŒã ã«ã广çã«æ¡åŒµã§ããŸãããã ããèŠå¶ã®å³ããç°å¢ããããªããªãŒã¯ãŒã¯ãããŒãè€æ°ã®ãã©ãããã©ãŒã ã«ãŸãããããªãªãŒã¹ããã»ã¹ãé·æã«ãããå Žåã«ã¯ãéçãé¡åšåããŸãã
å€§èŠæš¡äŒæ¥ã§ã¯ãGitHub Actions ã¯äžæµã®ãããã€ã¡ã³ãããªãªãŒã¹ã·ã¹ãã ã«ãã£ãŒããã CI ã¬ã€ã€ãŒãšããŠæ©èœããããšããããããŸããã¯ãŒã¯ãããŒã軜éãªèªååã§ã¯ãªãå®è¡ããžãã¯ãšããŠæ±ãããšã¯ãé ããçµåãåé¿ããè€éæ§ãå¢ããŠãããªããªãŒãã€ãã©ã€ã³ã®çè§£å¯èœæ§ãç¶æããããã«äžå¯æ¬ ã§ãã
Azure DevOps ãã€ãã©ã€ã³
å ¬åŒãµã€ãïŒ Azure DevOps ãã€ãã©ã€ã³
Azure DevOps Pipelines ã¯ãç¹ã« Microsoft ãšã³ã·ã¹ãã ãšé£æºããçµç¹ã«ãããå€§èŠæš¡ãªãšã³ã¿ãŒãã©ã€ãºããªããªãŒããµããŒãããããã«èšèšããã CI/CD ãã©ãããã©ãŒã ã§ããã¢ãŒããã¯ãã£çã«ã¯ãéäžåã®ãã€ãã©ã€ã³ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãšæè»ãªå®è¡ã¢ãã«ãçµã¿åãããã¯ã©ãŠããã¹ãåãšãŒãžã§ã³ããšã»ã«ããããŒãžãåãšãŒãžã§ã³ãã®äž¡æ¹ããµããŒãããŸãããã®äºéæ§ã«ãããäŒæ¥ã¯æšæºåãšç°å¢å¶åŸ¡ã®ãã©ã³ã¹ããšãããšãã§ããŸããããã¯ãèŠå¶å¯Ÿè±¡ç°å¢ããã€ããªããç°å¢ã«ãããŠç¹°ãè¿ãæ±ããããèŠä»¶ã§ãã
Azure DevOps ã«ããããã€ãã©ã€ã³å®çŸ©ã¯ãYAML ãçšããŠå®£èšçã«èšè¿°ããããåŸæ¥ã®ããžã¥ã¢ã« ãã€ãã©ã€ã³ãçšããŠæ§æããŸãããã®äºéã¢ãã«ã¯ããã©ãããã©ãŒã ãéäžåãã«ãã·ã¹ãã ãããã€ãã©ã€ã³ã»ã¢ãºã»ã³ãŒããžãšé²åããŠããããšãåæ ããŠããŸããYAML ãã€ãã©ã€ã³ã¯ããŒãžã§ã³ç®¡çãšãã¬ãŒãµããªãã£ãä¿é²ããŸãããèèäŒæ¥ã§ã¯åŸæ¥ã®ããžã¥ã¢ã« ãã€ãã©ã€ã³ãäŸç¶ãšããŠäžè¬çã§ãããæ éãªç®¡çãå¿ èŠãªæ··åå®è¡ã¢ãã«ãçã¿åºããŠããŸãã
äŸ¡æ Œã¢ãã«ã®ç¹åŸŽ:
- Azure DevOps ãµãŒãã¹ã«ãã³ãã«ããããµãã¹ã¯ãªãã·ã§ã³ããŒã¹ã®ã¢ã¯ã»ã¹
- 䞊åãžã§ããšäœ¿çšéãå¶éãããç¡ææ
- 䞊åãã€ãã©ã€ã³å®è¡ãšãã¹ããšãŒãžã§ã³ãã®è¿œå ã³ã¹ã
- ã»ã«ããã¹ãåãšãŒãžã§ã³ãã¯å®è¡ã³ã¹ããåæžããŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®è²¬ä»»ã¯å¢å ããŸãã
ã³ã¢æ©èœ:
- Azure ReposãããŒããã¢ãŒãã£ãã¡ã¯ããšã®ãã€ãã£ã CI/CD çµ±å
- ãã«ãããã¹ãããããã€ã¡ã³ãã«ããããã«ãã¹ããŒãžãã€ãã©ã€ã³ã®ãµããŒã
- æ¿èªã²ãŒããç°å¢å¶åŸ¡ããªãªãŒã¹ç®¡çãçµã¿èŸŒãŸããŠããŸã
- Azure ãµãŒãã¹ããã³ ID 管çãšã®åŒ·åãªçµ±å
å®è¡ã®èгç¹ããèŠããšãAzure DevOps Pipelines ã¯ç°å¢éã®å¶åŸ¡ãããé²è¡ãéèŠããŠããŸãããããã€æ®µéã¯ãæ¿èªãèªåãã§ãã¯ãããªã·ãŒè©äŸ¡ã«ãã£ãŠå¶åŸ¡ã§ãããããæ£åŒãªãªãªãŒã¹ããã»ã¹ãæã€äŒæ¥ã«æé©ãªãã©ãããã©ãŒã ãšãªã£ãŠããŸãããããã®å¶åŸ¡ã«ããç£æ»å¯èœæ§ã¯åäžããŸããããã€ãã©ã€ã³ãè€éã«ãªããšã¬ã€ãã³ã·ãšèª¿æŽã®ãªãŒããŒããããçºçããŸãã
éçšé¢ã§ã¯ãAzure DevOps Pipelines ã¯ãšãŒãžã§ã³ãã®ãã£ãã·ãã£ãæå³çã«ç®¡çããããšã§å¹æçã«ã¹ã±ãŒãªã³ã°ã§ããŸãããã¹ãåãšãŒãžã§ã³ãã¯å©äŸ¿æ§ãæäŸããŸãããæç¶çãªè² è·ãããããšã³ã¹ããå¢å€§ããå¯èœæ§ããããŸããã»ã«ããã¹ãåãšãŒãžã§ã³ãã¯ãç¹ã«ãªã³ãã¬ãã¹ã·ã¹ãã ãå¶éãããç°å¢ã«ã¢ã¯ã»ã¹ããå¿ èŠãããã¯ãŒã¯ããŒãã«ãããŠãããã©ãŒãã³ã¹ããããã¯ãŒã¯ãã³ã³ãã©ã€ã¢ã³ã¹ãããå³å¯ã«å¶åŸ¡ã§ããŸãã
äŒæ¥ã«å ±éãã課é¡ã®äžã€ã«ããã€ãã©ã€ã³ã®ç¡ç§©åºãªåºããããããŸããå€§èŠæš¡ãªçµç¹ã§ã¯ããããžã§ã¯ãããšã«æ°çŸãã®ãã€ãã©ã€ã³ãèç©ãããããšãå€ããããããããããã«ç°ãªãããªããªãŒããžãã¯ããšã³ã³ãŒãããŠããŸããçµ±åãæšæºåãè¡ãããŠããªããšããã®ç¡ç§©åºãªåºããã«ãã£ãŠããªããªãŒåäœã®å¯èŠæ§ãäœäžããã¡ã³ããã³ã¹ã®è² æ ãå¢å€§ããŸããåŸæ¥ã®ãã€ãã©ã€ã³ãšYAMLãã€ãã©ã€ã³ãæ··åšããããšãäŸåé¢ä¿ã®åæãããã«è€éã«ãªããŸãã
æ§é äžã®å¶éãšãªã¹ã¯:
- Microsoft ããŒã«ãšã®ç·å¯ãªé£æºã«ãããã¯ãã¹ãã©ãããã©ãŒã ã®ç§»æ€æ§ãå¶éãããå¯èœæ§ããã
- æ··åãã€ãã©ã€ã³ã¢ãã«ã¯ã¬ããã³ã¹ãšè¿ä»£åãè€éåããã
- ãšãŒãžã§ã³ã管çã¯èŠæš¡ã倧ãããªããšè€éã«ãªã
- ãããžã§ã¯ãéã®ãã€ãã©ã€ã³äŸåé¢ä¿ã«é¢ãããã€ãã£ãã®æŽå¯ãéãããŠãã
Azure DevOps Pipelinesã¯ã匷åãªã¬ããã³ã¹ãšMicrosoftãšã³ã·ã¹ãã ãšã®çµ±åã«ããæ§é åãããããªããªãŒãæ±ããäŒæ¥ã«ãšã£ãŠç¹ã«å¹æçã§ããè€éãªãªãªãŒã¹ã¯ãŒã¯ãããŒããµããŒãããªãããã³ãŒããšããŠã®ãã€ãã©ã€ã³ã®å°å ¥ãžã®éçãæäŸããŸãããã ããçµç¹ãéåžžã«ç°ç𮿷·åšã®ããŒã«ãã§ãŒã³ãéçšããããšããå Žåããè€æ°ã®CI/CDãã©ãããã©ãŒã ã«ãŸãããããªããªãŒåäœãåæããå¿ èŠãããå Žåã«ã¯ããã®éçãé¡åšåããŸãã
æçããããªããªãŒç°å¢ã§ã¯ãAzure DevOps Pipelines ã¯ãä»ã® CI ããŒã«ã GitOps ã·ã¹ãã ãšé£æºããŠãäžå€®ã®ãªãªãŒã¹ããã³ãããã€ã¡ã³ã ãšã³ãžã³ãšããŠæ©èœããããšããããããŸããèŠæš¡ã®æ¡å€§ã«åãããŠããªããªãŒã®éææ§ãšå¶åŸ¡æ§ãç¶æããã«ã¯ããããžã§ã¯ãã¬ãã«ã®ãŠãŒãã£ãªãã£ã§ã¯ãªããé·æçãªå®è¡ãã©ãããã©ãŒã ãšããŠæ±ãããšãäžå¯æ¬ ã§ãã
ãµãŒã¯ã«CI
å ¬åŒãµã€ãïŒ ãµãŒã¯ã«CI
CircleCIã¯ãã¹ããŒãã䞊ååŠçããããŠéçºè äžå¿ã®ã¯ãŒã¯ãããŒèªååã念é ã«èšèšãããã¯ã©ãŠããã€ãã£ãã®CI/CDãã©ãããã©ãŒã ã§ãããã®ã¢ãŒããã¯ãã£ã¯ãäžæçãªå®è¡ç°å¢ãšèšå®äž»å°ã®ãã€ãã©ã€ã³ãéèŠããŠãããåºç€ãšãªãã€ã³ãã©ã¹ãã©ã¯ãã£ã管çããã«é«éãªãã£ãŒãããã¯ã«ãŒããšæè»ãªã¹ã±ãŒãªã³ã°ãéèŠããçµç¹ã«ãšã£ãŠç¹ã«é åçã§ãã
æ§é ã¬ãã«ã§ã¯ãCircleCI ã¯ãäžæçãªã³ã³ãããä»®æ³ãã·ã³éã§ãã€ãã©ã€ã³ã®å®è¡ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãããããŒãžã ã³ã³ãããŒã« ãã¬ãŒã³ãšããŠæ©èœããŸãããã€ãã©ã€ã³ã¯ YAML ã§å®£èšçã«å®çŸ©ããããªã³ããã³ãã§äœæãããå®äºåŸã«ç Žæ£ãããåé¢ãããç°å¢ã§å®è¡ãããŸãããã®ã¢ãã«ã¯ãæ°žç¶çãªç¶æ ãæå°éã«æãããã£ãã·ã㣠ãã©ã³ãã³ã°ãç°¡çŽ åããäžæ¹ã§ãã¢ãŒãã£ãã¡ã¯ãã®æ°žç¶æ§ãšãžã§ãéã®ã³ã³ããã¹ã管çã®è²¬ä»»ãå€éšåããŸãã
äŸ¡æ Œã¢ãã«ã®ç¹åŸŽ:
- æ¶è²»ãããã³ã³ãã¥ãŒãã£ã³ã° ã¯ã¬ãžããã«åºã¥ããŠæ±ºãŸã䜿çšéããŒã¹ã®äŸ¡æ Œèšå®
- ã³ã¹ãã¯ãã€ãã©ã€ã³ã®é »åºŠããžã§ãã®æéããªãœãŒã¹ ã¯ã©ã¹ã«å¿ããŠå¢æžããŸãã
- ãã¹ãå®è¡ã«ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ç®¡çã³ã¹ãã¯ããããŸãã
- å°èŠæš¡ã§ã¯äºæž¬å¯èœã ããåæå®è¡æ§ãé«ãå Žåã¯å€åãã
ã³ã¢æ©èœ:
- 匷åãªäžŠååãµããŒããåãã髿§èœãã€ãã©ã€ã³å®è¡
- ãã€ãã£ãã³ã³ããããŒã¹ã®å®è¡ç°å¢
- ææç©å ±æã®ããã®æè»ãªãã£ãã·ã¥ãšã¯ãŒã¯ã¹ããŒã¹ã®ã¡ã«ããºã
- ãªãŒããä»ããåå©çšå¯èœãªæ§æã³ã³ããŒãã³ã
CircleCI ã®å®è¡åäœã¯ãã¹ã«ãŒããããšå¿çæ§ã«æé©åãããŠããŸãããã€ãã©ã€ã³ã¯ç©æ¥µçã«å±éã§ãããããå€§èŠæš¡ãªãã¹ããããªãã¯ã¹ãåæãã«ããå¯èœã«ãªããå šäœçãªããªããªãŒæéãççž®ã§ããŸãããã®ãããCircleCI ã¯ãè¿ éãªã€ãã¬ãŒã·ã§ã³ãç«¶äºäžã®åªäœæ§ãšãªãã¯ã©ãŠããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ããã€ã¯ããµãŒãã¹ç°å¢ã«æé©ã§ãã
ããããåãå®è¡ã¢ãã«ã§ã¯ããšã³ã¿ãŒãã©ã€ãºèŠæš¡ã§ã®ã¢ãŒããã¯ãã£äžã®èæ ®äºé ãçããŸãããã€ãã©ã€ã³ã¯å ±ææ§æãšåå©çšå¯èœãªOrbã«å€§ããäŸåããŠãããããæœè±¡åã¬ã€ã€ãŒãå¢ããã«ã€ããŠå®è¡åäœãäžéæã«ãªãå¯èœæ§ããããŸããå ±æOrbãžã®å€æŽãäžæµã®ãã€ãã©ã€ã³ã«ã©ã®ãããªåœ±é¿ãäžããããçè§£ããã«ã¯ãç¹ã«ãã€ãã©ã€ã³ãè€æ°ã®ããŒã ããªããžããªã«ãŸããã£ãŠããå Žåã¯ãèŠåŸããããŒãžã§ã³ç®¡çãšåœ±é¿åæãå¿ èŠã§ãã
éçšäžã®å¯èŠæ§ã¯ãäž»ã«åã ã®ãã€ãã©ã€ã³ãšãžã§ãã«çŠç¹ãåœãŠãŠããŸããããã¯ããŒã ã¬ãã«ã§ã®è¿ éãªãããã°ããµããŒãããŸãããå ±æãªãœãŒã¹ã®ç«¶åããã€ãã©ã€ã³éã®äŸåé¢ä¿ã环ç©çãªå®è¡ãªã¹ã¯ãšãã£ãã·ã¹ãã å šäœã®ããªããªãŒåäœã«é¢ããæŽå¯ã¯éå®çã§ããCircleCIãå€§èŠæš¡ã«éçšããäŒæ¥ã§ã¯ããããã®ããåºç¯ãªãã¿ãŒã³ãçè§£ããããã«ããã€ãã£ãã®å¯èŠæ§ã«å ããŠå€éšåæã掻çšããããšããããããŸãã
æ§é äžã®å¶éãšãªã¹ã¯:
- ã¯ã©ãŠãã®ã¿ã®å®è¡ã¯ãå¶éãããç°å¢ããšã¢ã®ã£ããç°å¢ã§ã®äœ¿çšãå¶éããŸãã
- 䜿çšéããŒã¹ã®æéèšå®ã§ã¯ãè² è·ãé«ãå Žåã«ã³ã¹ãã®å€åãçããå¯èœæ§ããã
- éå®çãªãã€ãã£ãã¬ããã³ã¹ãšæ¿èªã¡ã«ããºã
- ãã€ãã©ã€ã³éã®äŸåé¢ä¿ã®å¯èŠæ§ã¯æå°éã§ã
CircleCIã¯ãæšæºåãããã¯ã©ãŠããã€ãã£ããªããªããªãŒãéèŠããçµç¹ããé«åºŠãªã«ã¹ã¿ãã€ãºãããå®è¡é床ãéèŠããçµç¹ã«ç¹ã«å¹æçã§ããCI/CDãã€ãã©ã€ã³ã®æå¹æéãçããé«åºŠãªäžŠååŠçãè¡ãããã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³éçºãšå¯æ¥ã«é£æºããç°å¢ã§åªããããã©ãŒãã³ã¹ãçºæ®ããŸãã
ãšã³ã¿ãŒãã©ã€ãºããªããªãŒãšã³ã·ã¹ãã ã«ãããŠãCircleCIã¯é«ã¹ã«ãŒãããã®CIã¬ã€ã€ãŒãšããŠãã䜿çšãããã¢ãŒãã£ãã¡ã¯ããå¥ã ã®ãããã€ã¡ã³ãã·ã¹ãã ããªãªãŒã¹ã·ã¹ãã ã«éã蟌ã¿ãŸããCircleCIã®åŒ·ã¿ã¯ãããªããªãŒããžãã¯ãæ¯èŒçã·ã³ãã«ã§ãããŒã ãæç¢ºãªæææš©ã®å¢çãç¶æããŠããå Žåã«æãé¡èã«ãªããŸããè€éããå¢ãã«ã€ããŠããã€ãã©ã€ã³å šäœã®å®è¡åäœãçè§£ããããšã¯ãé ããçµåãã³ã¹ãã®å¢å€§ãåé¿ããããã«ãŸããŸãéèŠã«ãªããŸãã
竹
å ¬åŒãµã€ãïŒ ã¢ãã©ã·ã¢ã³ ãã³ããŒ
Bamboo ã¯ãAtlassian ãšã³ã·ã¹ãã ãç¹ã« Jira ãš Bitbucket ãšç·å¯ã«é£æºããããã«èšèšããã CI/CD ãµãŒããŒã§ãããã®ã¢ãŒããã¯ãã£ã¯ããã¬ãŒãµããªãã£ãå®è¡å¶åŸ¡ãéçºã¯ãŒã¯ãããŒãšãªãªãŒã¹ç®¡çããã»ã¹ã®é£æºãéèŠãããšã³ã¿ãŒãã©ã€ãºããªããªãŒã¢ãã«ãåæ ããŠããŸããBamboo ã¯ãè¿ éãªå®éšãããã¬ããã³ã¹ãšäžè²«æ§ãéèŠããçµç¹ã§æãå€ãæ¡çšãããŠããŸãã
ã¢ãŒããã¯ãã£çã«ã¯ãBamboo ã¯éäžåãµãŒããŒã¢ãã«ãæ¡çšãã忣ãšãŒãžã§ã³ãããã«ãããã³ãããã€ã¡ã³ãã¿ã¹ã¯ãå®è¡ããŸãããã€ãã©ã€ã³ã¯ãã©ã³ãã¹ããŒãžããžã§ããäžå¿ã«æ§æããããã«ããããžã§ã¯ããšãããã€ã¡ã³ããããžã§ã¯ãã¯æç¢ºã«åé¢ãããŠããŸãããã®åé¢ã«ãããã¢ãŒãã£ãã¡ã¯ãã®äœæãšç°å¢ã®ããã¢ãŒã·ã§ã³ãæç¢ºã«åºå¥ãããæ£åŒãªãªãªãŒã¹ã©ã€ããµã€ã¯ã«ã匷å¶ããäŒæ¥ã«é©ããŠããŸãã
äŸ¡æ Œã¢ãã«ã®ç¹åŸŽ:
- ãšãŒãžã§ã³ãæ°ã«å¿ããŠæ®µéçã«äŸ¡æ Œã決ãŸãæ°žä¹ ã©ã€ã»ã³ã¹
- 1åéãã®ã©ã€ã»ã³ã¹è²»çšãšå®æçãªã¡ã³ããã³ã¹ããã³ãµããŒãæé
- ã»ã«ããã¹ãã®ã¿ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããããžã§ãã³ã°ãšç®¡çãå¿ èŠ
- ã³ã¹ãã®äºæž¬å¯èœæ§ã¯é«ãããæ¡åŒµã«ã¯å è¡æè³ãå¿ èŠ
ã³ã¢æ©èœ:
- åé¡è¿œè·¡ãšãªãªãŒã¹ã®è¿œè·¡å¯èœæ§ã®ããã® Jira ãšã®ãã€ãã£ãçµ±å
- Bitbucket ãªããžããªãšãã©ã³ã ã¢ãã«ãšã®ç·å¯ãªçµå
- ç°å¢ããã¢ãŒã·ã§ã³ããžãã¯ãåããçµã¿èŸŒã¿ã®ãããã€ã¡ã³ããããžã§ã¯ã
- æåããã³èªåæ¿èªã²ãŒãã®ãµããŒã
å®è¡ã®èгç¹ããèŠããšãBamboo ã¯ããªããªãŒã¹ããŒãžã«ãããå¶åŸ¡ãããé²è¡ãéèŠããŠããŸãããžã§ãã¯æç¢ºã«å®çŸ©ãããã·ãŒã±ã³ã¹ã§å®è¡ãããç°å¢éã®ææ Œã¯æé»çã§ã¯ãªãæç€ºçã«è¡ãããŸããããã«ããããªãªãŒã¹åäœã®ææ§ãã軜æžãããç£æ»å¯èœæ§ãåäžããŸããç¹ã«ããããã€ã¡ã³ãã®æå³ãæç¢ºã«ææžåããå¿ èŠãããèŠå¶ç°å¢ã«ãããŠæå¹ã§ãã
éçšé¢ã§ã¯ãBamboo ã¯ãã®ç¬èªã®æ§é ããã¡ãªãããåŸãŠããŸãããã®ãã©ãããã©ãŒã ã¯ãç¹å®ã®åœ¢åŒã®ã¢ãããã¯ã«ã¹ã¿ãã€ãºãå¶éããŠããããã€ãã©ã€ã³å šäœã®å¯å€æ§ãäœæžã§ããŸãããããããã®ç¡¬çŽæ§ã¯æè»æ§ãå¶éããŸããBamboo ãé«åºŠã«åçãªããªããªãŒã¢ãã«ãã¯ã©ãŠããã€ãã£ããªããªããªãŒã¢ãã«ã«é©å¿ãããã«ã¯ããã©ãããã©ãŒã ãæ¬æ¥æäŸããã¯ãã®æçæ§ãæãªããããªåé¿çãå¿ èŠã«ãªãããšããããããŸãã
ã¹ã±ãŒã©ããªãã£ã¯äž»ã«BambooãµãŒããŒãšãšãŒãžã§ã³ãã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«ãã£ãŠå¶éãããŸããå€§èŠæš¡äŒæ¥ã§ã¯ãã¯ãŒã¯ããŒããåé¢ããããã«è€æ°ã®Bambooã€ã³ã¹ã¿ã³ã¹ãé »ç¹ã«å°å ¥ããããã調æŽã®ãªãŒããŒããããçºçããŸããã¯ã©ãŠããã€ãã£ãã®CIãã©ãããã©ãŒã ãšã¯ç°ãªããåŒŸåæ§ã¯æåã§èšç»ããå¿ èŠãããããããã£ãã·ãã£ç®¡çã¯åžžã«éçšäžã®æžå¿µäºé ãšãªããŸãã
æ§é äžã®å¶éãšãªã¹ã¯:
- ã³ã³ãããã€ãã£ãããã³äžæå®è¡ã¢ãã«ãžã®é©åæ§ãéãããŠãã
- ã¯ã©ãŠããã€ãã£ã CI ãµãŒãã¹ãšæ¯èŒããŠå埩åŠçãé ã
- ã»ã«ããã¹ãã¢ãŒããã¯ãã£ã¯éçšäžã®è² æ ãå¢å€§ããã
- æ°ãã CI/CD ãã©ãããã©ãŒã ã«æ¯ã¹ãŠãšã³ã·ã¹ãã ãããŸãã¢ã¯ãã£ãã§ã¯ãªã
Bamboo ã¯ãAtlassian ããŒã«ãšã®çµ±åãéèŠããã³ãŒã倿Žã課é¡ããªãªãŒã¹éã®åŒ·åãªãã¬ãŒãµããªãã£ãå¿ èŠãšããäŒæ¥ã«ãšã£ãŠç¹ã«å¹æçã§ããæ¥éãªãã€ãã©ã€ã³ã®é²åããããå®å®æ§ãšã³ã³ãã©ã€ã¢ã³ã¹ãéèŠãããããªããªãŒããã»ã¹ããµããŒãããŸãã
çŸä»£ã®ããªããªãŒç°å¢ã«ãããŠãBamboo ã¯ä»ã® CI/CD ããŒã«ãšé£æºããŠéçšãããããšãå€ããå¶åŸ¡ããããªãªãŒã¹ãåŠçããäžæ¹ã§ãããã¢ãžã£ã€ã«ãªãã©ãããã©ãŒã ã¯é«é »åºŠã®ã€ã³ãã°ã¬ãŒã·ã§ã³ã管çããŸããBamboo ã®é·æçãªåç¶ã¯ãèŠåŸãããã€ãã©ã€ã³ã¬ããã³ã¹ãšãæ§é åãããããªããªãŒãä»å 䟡å€ãããããé åãšäžèŠãªæ©æŠãçã¿åºãé åãæç¢ºã«çè§£ããããšã«ããã£ãŠããŸãã
ã¢ã«ãŽCD
å ¬åŒãµã€ãïŒ ã¢ã«ãŽCD
Argo CDã¯ãKubernetesç°å¢åãã«ç¹å¥ã«èšèšãããGitOpsããŒã¹ã®ç¶ç¶çããªããªãŒãã©ãããã©ãŒã ã§ãããã«ãããã¹ãããããã€ã¡ã³ããçµ±åããåŸæ¥ã®CI/CDããŒã«ãšã¯ç°ãªããArgo CDã¯ãããã€ã¡ã³ãç¶æ ã®èª¿æŽã«ç¹åããŠããŸãããã®ã¢ãŒããã¯ãã£ã¯ãã¢ããªã±ãŒã·ã§ã³ã®æãŸããç¶æ ãGitã§å®£èšããã©ã³ã¿ã€ã ç°å¢ã§ç¶ç¶çã«é©çšãããšããååã«åºã¥ããŠæ§ç¯ãããŠããŸãã
ã¢ãŒããã¯ãã£ã®èгç¹ããèŠããšãArgo CDã¯ãã€ãã©ã€ã³ãšã³ãžã³ã§ã¯ãªãå¶åŸ¡ã«ãŒããšããŠåäœããŸããGitãªããžããªã§å®çŸ©ãããæãŸããç¶æ ãšKubernetesã¯ã©ã¹ã¿ãŒã§å®è¡ãããŠããå®éã®ç¶æ ãç¶ç¶çã«æ¯èŒããããªãããæ€åºããããšä¿®æ£ã¢ã¯ã·ã§ã³ãé©çšããŸãããã®ã¢ãã«ã¯ãããªããªãŒã®æ¯ãèãã®è¡šçŸãšç£èŠã®æ¹æ³ãæ ¹æ¬çã«å€é©ããŸããããªããªãŒã¯ãã·ãŒã±ã³ã·ã£ã«ãªå®è¡ã§ã¯ãªãã宣èšçãã€åæé§ååã«ãªããŸãã
äŸ¡æ Œã¢ãã«ã®ç¹åŸŽ:
- ã©ã€ã»ã³ã¹è²»çšãããããªããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢
- ã¯ã©ã¹ã¿ãŒã®èŠæš¡ãšå¯çšæ§ã®èŠä»¶ã«é¢é£ããã€ã³ãã©ã¹ãã©ã¯ãã£ãšéçšã³ã¹ã
- åçšãµããŒããšãšã³ã¿ãŒãã©ã€ãºãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯ãµãã¹ã¯ãªãã·ã§ã³äŸ¡æ Œãå°å ¥
- ã³ã¹ãã¯ç®¡çããã¯ã©ã¹ã¿ãã¢ããªã±ãŒã·ã§ã³ãç°å¢ã®æ°ã«å¿ããŠå¢å ããŸã
ã³ã¢æ©èœ:
- Git ã䜿çšãã宣èšçãªãããã€ã¡ã³ããšç°å¢ç¶æ 管ç
- Git ç¶æ ãšã¯ã©ã¹ã¿ãŒç¶æ éã®ç¶ç¶çãªèª¿æŽ
- ãã«ãã¯ã©ã¹ã¿ããã³ãã«ãããã³ãKubernetesç°å¢ã®ãã€ãã£ããµããŒã
- å·®åãããŒã«ããã¯ãããªããæ€åºã¡ã«ããºã ãå èµ
Argo CD ã®å®è¡åäœã¯ãã€ãã³ãããªã¬ãŒã§ã¯ãªãæ°žç¶çã§ããäžåºŠèšå®ãããšãArgo CD ã¯ãªããžããªãšã¯ã©ã¹ã¿ãç¶ç¶çã«ç£èŠãã倿Žãã©ã®ããã«å°å ¥ããããã«é¢ä¿ãªãç¶æ ãç¶æããŸããããã«ãããç¹ã«è€æ°ã®ããŒã ãèªååã·ã¹ãã ãåäžã®ã¯ã©ã¹ã¿ãæäœããç°å¢ã«ãããŠãå埩åãåäžããèšå®ã®ããªãããæžå°ããŸãã
ãããããã®æ°žç¶æ§ã¯æ°ããªéçšäžã®èæ ®äºé ãçã¿åºããŸããGitã®ç¶æ ãå€åãããã³ã«å€æŽãé©çšãããããããªããžããªã®ã¬ããã³ã¹ãã¢ã¯ã»ã¹å¶åŸ¡ããããŠã¬ãã¥ãŒã®èŠåŸã®éèŠæ§ãé«ãŸããŸããå®å šå¯Ÿçãè¬ããããŠããªãå Žåããããã§ã¹ãã®èšå®ãã¹ãæå³ããªãããŒãžããç°å¢å šäœã«æ¥éã«äŒæããå¯èœæ§ããããŸãã
Argo CDã®çãç¯å²ãžã®å¯Ÿå¿ã¯ããã®åŒ·ã¿ã§ãããšåæã«éçã§ããããŸãããã«ãèªååãã¢ãŒãã£ãã¡ã¯ãäœæãè€éãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããžãã¯ã¯åŠçããŸãããã¢ãŒãã£ãã¡ã¯ãã¯äžæµã§çæãããGitããããã€ã¡ã³ãã®ç®çãæ±ºå®ã¥ããå¯äžã®æ å ±æºã§ãããšæ³å®ããŠããŸãããã®ãããArgo CDã¯ã³ã³ãããã€ãã£ãç°å¢ã§ã¯éåžžã«å¹æçã§ãããã¹ã¿ã³ãã¢ãã³ã®CI/CDãœãªã¥ãŒã·ã§ã³ãšããŠã¯é©ããŠããŸããã
æ§é äžã®å¶éãšãªã¹ã¯:
- KubernetesããŒã¹ã®ãããã€ã¡ã³ãã¿ãŒã²ããã«éå®
- ãã€ãã£ããã«ãããã¹ããã€ãã©ã€ã³æ©èœããªã
- Gitã®èŠåŸãšãªããžããªæ§é ãžã®åŒ·ãäŸå
- éå±€åããããããã§ã¹ããšãªãŒããŒã¬ã€ããè€éãªãããã€ã¡ã³ãåäœãçãŸããå¯èœæ§ããã
ãšã³ã¿ãŒãã©ã€ãºããªããªãŒã·ã¹ãã ã§ã¯ãArgo CDã¯ãã«ããšãã¹ãã®èªååãæ±ãCIãã©ãããã©ãŒã ãšçµã¿åãããããããšãå€ãããããã€ã¡ã³ãç¶æ ã®æçµçãªç®¡çæš©éãæã¡ãã¯ã©ã¹ã¿ãç°å¢éã®äžè²«æ§ã確ä¿ããŸãããã®é¢å¿ã®åé¢ã«ããããªããªãŒãªã¹ã¯ãå€§å¹ ã«è»œæžã§ããŸãããå®è¡å¢çãæç¢ºã«å®çŸ©ãããŠããå Žåã«éãããŸãã
Argo CDã¯ãGitOpsãããªããªãŒã¢ãã«ãšããŠæ¡çšããè€æ°ã®Kubernetesã¯ã©ã¹ã¿ãŒã«ãŸãããå€§èŠæš¡ãªéçšãè¡ã£ãŠããçµç¹ã«ç¹ã«é©ããŠããŸããç°å¢æ°ãå¢ããæåã«ããä»å ¥ãè² æ ã«ãªãã«ã€ããŠããã®äŸ¡å€ã¯é«ãŸããŸããArgo CDããã€ãã©ã€ã³ããŒã«ã§ã¯ãªãããªã³ã³ã·ãªãšãŒã·ã§ã³ãšã³ãžã³ãšããŠçè§£ããããšãããšã³ã¿ãŒãã©ã€ãºCI/CDã¢ãŒããã¯ãã£ã«å¹æçã«é©çšããããã«äžå¯æ¬ ã§ãã
è©äŸ¡ãã䟡å€ã®ãããã®ä»ã®æ³šç®ãã¹ãCI/CDããŒã«ã®ä»£æ¿å
äŒæ¥ã®ããªããªãŒèŠä»¶ã®ãã¹ãŠããäžèšã§èª¬æããäž»èŠãªCI/CDãã©ãããã©ãŒã ãšå®å šã«äžèŽããããã§ã¯ãããŸãããçµç¹ã«ãã£ãŠã¯ã極ããŠå€§èŠæš¡ãªã·ã¹ãã ãç¹æ®ãªã¯ã©ãŠãç°å¢ãã¬ã¬ã·ãŒã·ã¹ãã ãšã®çµ±åããŒãºããã©ãããã©ãŒã åºæã®ããªããªãŒã¢ãã«ãšãã£ãããããªå¶çŽäžã§æ¥åãéè¡ããŠããã±ãŒã¹ããããŸãããã®ãããªå Žåã代æ¿ããŒã«ãæå³çã«é©çšããæç¢ºãªã¢ãŒããã¯ãã£äžã®å¢çãèšããã°ãäž»æµã®CI/CDãœãªã¥ãŒã·ã§ã³ãè£å®ããããå Žåã«ãã£ãŠã¯ä»£æ¿ãããããããšãå¯èœã«ãªããŸãã
以äžã«æããããŒã«ã¯ãæ±çšçãªä»£æ¿ããŒã«ãšããŠäœçœ®ä»ããããŠããããã§ã¯ãããŸãããããããç¹å®ã®ããªããªãŒèª²é¡ã«å¯Ÿå¿ããããŒã«ã§ããããã®èª²é¡ã«ãããŠã¯ãæ©èœã®éäžåããã©ãããã©ãŒã ã®æŽåæ§ããããã¯éçšã®ç°¡çŽ åãæž¬å®å¯èœãªäŸ¡å€ãããããããšãæ±ããããŸãããããã®ä»£æ¿ããŒã«ãè©äŸ¡ããéã¯ãæ©èœã®é¡äŒŒæ§ã ãã§ãªããå®è¡åäœãããªããªãŒã®ã³ã³ããã¹ãã«åºã¥ããŠè©äŸ¡ããããšãæã广çã§ãã
TeamCity
匷åãªãã«ãæ§æã¢ããªã³ã°ãšè©³çްãªå®è¡èšºææ©èœãåããã»ã«ããã¹ãåCIãµãŒããŒãTeamCityã¯ããã«ãã®äŸåé¢ä¿ãšå®è¡ã¿ã€ãã³ã°ã®å¯èŠæ§ãéèŠãªè€éãªãã«ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ããªãªã«ãããŠåªããæ§èœãçºæ®ããŸãã
ãã©ãã¹CI
ã·ã³ãã«ãªãã€ãã©ã€ã³èªååãšè¿
éãªãªã³ããŒãã£ã³ã°ã«æé©åãããã¯ã©ãŠãããŒã¹ã®CIãµãŒãã¹ã§ããTravis CIã¯ãæå°éã®æ§æãšè¿
éãªãã£ãŒãããã¯ãé«åºŠãªã¬ããã³ã¹èŠä»¶ãããéèŠããããå°èŠæš¡ãªããŒã ãç¬ç«ããã¯ãŒã¯ããŒãã«é©ããŠããŸãã
GoCD
ãã«ããšãããã€ã¡ã³ããããŒã®æç€ºçãªã¢ããªã³ã°ãåºç€ãšããŠèšèšãããããã€ãã©ã€ã³äžå¿ã®CI/CDãã©ãããã©ãŒã ã§ããGoCDã¯ããã€ãã©ã€ã³ã®é²è¡ãšã¢ãŒãã£ãã¡ã¯ãã®ããã¢ãŒã·ã§ã³ã®å¯èŠæ§ãéèŠãããã«ãã¹ããŒãžç°å¢ã«ãããããªããªãŒåäœã®çè§£ã容æã«ããŸãã
ã¹ãããŒã«ãŒ
è€éãªãã«ãã¯ã©ãŠãå±éæŠç¥ã«ç¹åããç¶ç¶çããªããªãŒãã©ãããã©ãŒã ã§ããSpinnakerã¯ãã«ããªã¢ãªãªãŒã¹ãç°æ©ç𮿷·åšã€ã³ãã©ã¹ãã©ã¯ãã£ã«ããããã«ãŒã°ãªãŒã³å±éãšãã£ãããã°ã¬ãã·ãããªããªãŒææ³ã«ç¹ã«å¹æçã§ãã
å
šããŒã¿ã®çµåãå®çŸ
èªååæã«ãããããã€ã¡ã³ãæ€èšŒãšãªã¹ã¯è»œæžãéèŠãããããŒãžãCI/CDãã©ãããã©ãŒã ãHarnessã¯ããããã€ã¡ã³ãåŸã®åäœãšããŒã«ããã¯ã®ä¿¡é Œæ§ãäž»ãªæžå¿µäºé
ãšãªãç°å¢ã§äžè¬çã«è©äŸ¡ãããŸãã
ãã«ãã«ã€ã
ã³ã³ãããŒã«ãã¬ãŒã³ç®¡çãšå®è¡ã€ã³ãã©ã¹ãã©ã¯ãã£ãåé¢ãããã€ããªããCIãã©ãããã©ãŒã ãBuildkiteã¯ãäŒæ¥ããã¹ãåãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã¬ã€ã€ãŒã掻çšããªããèªç€Ÿã€ã³ãã©ã¹ãã©ã¯ãã£äžã§ãã«ããå®è¡ã§ããããã«ããããšã§ãå¶åŸ¡æ§ãšéçšã®ã·ã³ãã«ããäž¡ç«ããŸãã
Tekton
Kubernetesãã€ãã£ãã®ãã€ãã©ã€ã³ãã¬ãŒã ã¯ãŒã¯ã§ãKubernetesãªãœãŒã¹ãšããŠè¡šçŸãããé«åºŠã«ã«ã¹ã¿ãã€ãºãããCI/CDã¯ãŒã¯ãããŒãå®çŸããŸããTektonã¯ãKubernetesã«æ·±ãæè³ãããã©ãããã©ãŒã ãšã³ãžãã¢ãªã³ã°æ¥åã®äžç°ãšããŠãã€ãã©ã€ã³ã®è€éãã管çããææ¬²ã®ããçµç¹ã«æé©ã§ãã
ãããã®ããŒã«ã¯ãCI/CDãšã³ã·ã¹ãã ã«ãããã¢ãŒããã¯ãã£ã¢ãããŒãã®å¹ åºãã瀺ããŠããŸãããããã®ããŒã«ã®äŸ¡å€ã¯ãæ¢åã®ãã©ãããã©ãŒã ãäžžããšçœ®ãæããããšã§ã¯ãªããç¹å®ã®ã®ã£ãããåããããšããäž»æµã®ããŒã«ãæé©åããããã«èšèšãããŠããªãããªããªãŒãã¿ãŒã³ããµããŒãããããšã«ãããŸãã
ãšã³ã¿ãŒãã©ã€ãºãŠãŒã¹ã±ãŒã¹å¥ã®CI/CDããŒã«ã®æšå¥šäºé
CI/CDããŒã«ã人æ°ããã³ããŒã®é£æºã§éžæãããšãããªããªãŒãã€ãã©ã€ã³ãäŒæ¥å šäœã§æ ¹æ¬çã«ç°ãªãç®çãæãããŠãããšããäºå®ãèŠãã«ãããªããŸãããã€ãã©ã€ã³ã®äžã«ã¯ããã«ãã¹ã«ãŒããããæå€§åããããã®ãã®ããªãªãŒã¹ç®¡çã匷åãããã®ãå€§èŠæš¡ãªã¯ã©ãŠããã€ãã£ãå±éããµããŒããããã®ãªã©ããããŸããåäžã®ããŒã«ã§ããããã¹ãŠã®ç®çãæºããããšãæåŸ ããããšãããªããªãŒã·ã¹ãã ã«ã¯æ¡ä»¶ä»ãããžãã¯ãæåã«ãããªãŒããŒã©ã€ãããããŠä¿¡é Œæ§ãæãªãé ããäŸåé¢ä¿ãèç©ãããã¡ã§ãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãå ·äœçãªãšã³ã¿ãŒãã©ã€ãºãŠãŒã¹ã±ãŒã¹ã«åºã¥ããŠCI/CDããŒã«ã®éžå®ãåèããŸããåäžã®æé©ãªãã©ãããã©ãŒã ãèŠå®ããã®ã§ã¯ãªããç¹å®ã®ããªããªãŒç®æšã«æ§é çã«é©åããããŒã«ãšãã®çç±ãæŠèª¬ããŸãããã®ã¢ãããŒãã¯ãæçããçµç¹ããç¹ã«ãã€ãã©ã€ã³ã®æåãçŽæ¥åœ±é¿ãäžããç°å¢ã«ãããŠãã¯ãŒã¯ããŒãç¹æ§ããªã¹ã¯èš±å®¹åºŠãéçšäžã®å¶çŽã«åºã¥ããŠããªããªãŒã·ã¹ãã ãèšèšããæ¹æ³ãåæ ããŠããŸãã ããã©ãŒãã³ã¹ååž°ãã¹ããã€ãã©ã€ã³.
å€§èŠæš¡ãã«ãã®èªååãšãã¹ãã¹ã«ãŒããããå®çŸãã CI/CD ããŒã«
å€§èŠæš¡ãã«ãã®èªååã¯ããšã³ã¿ãŒãã©ã€ãºç°å¢ã«ãããŠæãèŠæ±ã®å³ããCI/CDãŠãŒã¹ã±ãŒã¹ã®äžã€ã§ãããããã®ãã€ãã©ã€ã³ã¯ãå€§èŠæš¡ãªã³ãŒãããŒã¹ãåºç¯ãªãã¹ãã¹ã€ãŒãããããŠäžŠè¡éçºæŽ»åã«ããé »ç¹ãªå®è¡ãç¹åŸŽãšããŠããŸããã¢ãŒããã¯ãã£ã«ãããäž»èŠãªèŠä»¶ã¯ãæ§æã®å®¹æãã§ã¯ãªããéå°ãªãã¥ãŒæéãäžå®å®ãªå®è¡æåãæãããšãªããåæè² è·äžã§ãå®å®ããã¹ã«ãŒããããå®çŸããããšã§ãã
ãã®ãŠãŒã¹ã±ãŒã¹ã«æé©ãªããŒã«ã¯ã忣å®è¡ãšãšãŒãžã§ã³ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã现ããªå¶åŸ¡ããµããŒãããããŒã«ã§ããJenkinsãšGitLab CI/CDã¯ãäŒæ¥ãã»ã«ããã¹ãåã®ã©ã³ããŒããšãŒãžã§ã³ãã䜿çšããŠãã«ããã£ãã·ãã£ãæ°Žå¹³æ¹åã«æ¡åŒµã§ãããããããéžã°ããŸããããã«ãããå®è¡ç°å¢ããããã¯ãŒã¯ã¢ã¯ã»ã¹ãããã©ãŒãã³ã¹ã®åé¢ãå³å¯ã«å¶åŸ¡ã§ããŸããããã¯ããã«ããç¬èªã®ããŒã«ã瀟å ã·ã¹ãã ã«äŸåããŠããå Žåã«éåžžã«éèŠã§ãã
ãã®ãããªç°å¢ã§ã¯ããã€ãã©ã€ã³ã®è€éãã¯ææ©çã«å¢å€§ããåŸåããããŸããå ±æã©ã€ãã©ãªãåå©çšå¯èœãªãã³ãã¬ãŒããæ¡ä»¶ä»ãã¹ããŒãžã¯éè€ãåæžããããã«å°å ¥ãããŸãããåæã«ãã€ãã©ã€ã³éã®æé»çãªçµåãçã¿åºããŸããæéã®çµéãšãšãã«ãå ±æã³ã³ããŒãã³ããžã®å°ããªå€æŽããã«ãã®å®å®æ§ã«é床ã®åœ±é¿ãäžããå¯èœæ§ããããŸãããã®ãªã¹ã¯ã管çããã«ã¯ããã«ãããžãã¯ãã©ã®ããã«åå©çšãããŠãããããããŠå®è¡ãã¹ããããžã§ã¯ãéã§ã©ã®ããã«åå²ããŠããããå¯èŠåããå¿ èŠããããŸãã
CircleCIãGitHub Actionsãªã©ã®ã¯ã©ãŠããã€ãã£ããã©ãããã©ãŒã ããç¹ã«ã³ã³ããåãããã¯ãŒã¯ããŒãã«ãããŠãé«ã¹ã«ãŒãããã®ãã«ãèªååããµããŒãã§ããŸãããããã®ãã©ãããã©ãŒã ã¯æè»æ§ãé«ããããŒã¯æã«ãè¿ éãªã¹ã±ãŒãªã³ã°ãå¯èœã§ããã䜿çšéããŒã¹ã®æéäœç³»ãšå®è¡å éšã®å¶åŸ¡ãéå®çã§ãããããç°ãªããã¬ãŒããªããçããŸããå€ãã®äŒæ¥ã¯ãæšæºçãªã¯ãŒã¯ããŒãã«ã¯ãããŒãžãCIãµãŒãã¹ããããã©ãŒãã³ã¹ãéèŠããããã«ããèŠå¶å¯Ÿè±¡ã®ãã«ãã«ã¯ã»ã«ããã¹ãåã€ã³ãã©ã¹ãã©ã¯ãã£ã掻çšãããšãããã€ããªãããªã¢ãããŒããæ¡çšããŠããŸãã
ãã®ãŠãŒã¹ã±ãŒã¹ã«ãããéèŠãªå¶çŽã¯äºæž¬å¯èœæ§ã§ãããã«ããã€ãã©ã€ã³ã®æèŠæéãå€åããããæç¶çã«å€±æããããããšãéçºè ã®ä¿¡é ŒãæãªãããããªããªãŒãé ããŠããŸããŸããå®è¡åäœããªãœãŒã¹ç«¶åãã¿ãŒã³ãæããã«ããããŒã«ã¯ãåæã»ããã¢ããé床ã®ã¿ãæé©åããããŒã«ããããé·æã«ããã£ãŠã¹ã«ãŒããããç¶æããã®ã«é©ããŠããŸãã
ã¯ã©ãŠããã€ãã£ãããã³ Kubernetes äžå¿ã®é ä¿¡ã®ããã® CI/CD ããŒã«
ã¯ã©ãŠããã€ãã£ãããªããªãŒã«ã¯ãç°ãªãå¶çŽã䌎ããŸãããã€ãã©ã€ã³ã¯ãäžæçãªç°å¢ãé »ç¹ãªãããã€ããããŠå®£ââèšçãªã€ã³ãã©ã¹ãã©ã¯ãã£å®çŸ©ãåŠçããå¿ èŠããããŸããããããç¶æ³ã§ã¯ãCIãšCDã®å¢çãããæç¢ºã«ãªããããŒã«ãããã«å¿ããŠç¹åãããããšãå€ããªããŸãã
GitHub ActionsãšGitLab CI/CDã¯ãã¯ã©ãŠããã€ãã£ãç°å¢ã«ãããCIã¬ã€ã€ãŒãšããŠé »ç¹ã«å©çšãããã³ã³ããã€ã¡ãŒãžã®äœæãæ€èšŒã¯ãŒã¯ãããŒã®å®è¡ã«å©çšãããŠããŸãããœãŒã¹ç®¡çãšã®ç·å¯ãªçµ±åã«ãããããªã¬ãŒç®¡çãç°¡çŽ åãããããªããªãŒèªååãšææ°ã®ãã©ã³ãæŠç¥ãšã®æŽåæ§ã確ä¿ãããŸããããã«ã¯ãé·æã«ãããå·®ç°ãåæžãããã©ã³ã¯ããŒã¹ã®éçºã¢ãã«ãå«ãŸããŸããããã¯ããã°ãã°æ€èšãããæžå¿µäºé ã§ãã åå²ã¢ãã«ã®ãªã¹ã¯åæ.
ãããã€ã¡ã³ãã«ãããŠã¯ãArgo CDãæš©åšããããªããªãŒã¡ã«ããºã ãšããŠãŸããŸãæ¡çšãããŠããŸããGitOpsã¢ãã«ã¯ãåœä»€åãã€ãã©ã€ã³ãã宣èšåã®ç¶æ 調æŽãžãšè²¬ä»»ãç§»è¡ããã¯ã©ã¹ã¿éã®èšå®ã®ããã軜æžããŸãããã®åé¢ã«ãããCIãã€ãã©ã€ã³ã¯ã¢ãŒãã£ãã¡ã¯ãã®äœæã«éäžã§ããArgo CDã¯ç°å¢éã§ã®ãããã€ã¡ã³ãã®äžè²«æ§ã確ä¿ã§ããŸãããã®çµæããã€ãã©ã€ã³ã®è€éãã§ã¯ãªãã¯ã©ã¹ã¿æ°ã«å¿ããŠã¹ã±ãŒã«ããããªããªãŒã·ã¹ãã ãå®çŸããŸãã
Azure DevOps Pipelines ã¯ãç¹ã« Azure ãæšæºåããçµç¹ã«ãããŠãã¯ã©ãŠããã€ãã£ããªããªããªãŒã«ãããŠãéèŠãªåœ¹å²ãæãããŸããç°å¢ã®æœè±¡åãæ¿èªã²ãŒããããªã·ãŒçµ±åã«ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã»ã¢ãºã»ã³ãŒã (IACS) ã¯ãŒã¯ãããŒã«å¯Ÿå¿ããªãããã¹ããŒãžéã®å¶åŸ¡ãããããã¢ãŒã·ã§ã³ããµããŒãããŸãã
ã¯ã©ãŠããã€ãã£ãããªããªãŒã«ãããäž»ãªãªã¹ã¯ã¯ãããŒã«ã®æ©èœã§ã¯ãªããå¢çã®æç¢ºãã§ããCIãã€ãã©ã€ã³ã«ãããã€ã¡ã³ãããžãã¯ãçµã¿èŸŒãŸããããCDããŒã«ã«ãã«ãã®è²¬ä»»ãéå°ã«èª²ãããããããšãå®è¡ãã¹ã®å€æãå°é£ã«ãªããŸããæžå¿µäºé ãæç¢ºã«åé¢ããããªããªãŒã®å段éã«é©ããããŒã«ãéžæããŠããäŒæ¥ã¯ãé ããçµåãçããããããšãªããããæè»ã«æ¡åŒµã§ããŸãã
ç®ã«èŠããªãããªããªãŒãªã¹ã¯ãèç©ããã«CI/CDãã€ãã©ã€ã³ãæ§ç¯ãã
ãšã³ã¿ãŒãã©ã€ãºCI/CDã·ã¹ãã ã¯ãå°å ¥åœåãã倧ããªé害ãèµ·ããããšã¯ã»ãšãã©ãããŸããããªã¹ã¯ã¯ããã€ãã©ã€ã³ã®æ¡å€§ãå ±æã³ã³ããŒãã³ãããããŠã©ã®ããŒã ãå®å šã«ã¯ææ¡ããŠããªãæé»ã®äŸåé¢ä¿ãéããŠãéãã«èç©ãããŠãããŸãããã®èšäºã§ç޹ä»ããCI/CDããŒã«ã®æ¯èŒã¯ãäžè²«ãããã¿ãŒã³ãæµ®ã圫ãã«ããŠããŸããããã¯ãããªããªãŒãã©ãããã©ãŒã ã¯ãå°å ¥åŸãé·æéã«ããã£ãŠç¶æãããã¢ãŒããã¯ãã£äžã®åæãèŠå®ããŠãããšããããšã§ãããããã®åæããšã³ã¿ãŒãã©ã€ãºã®ããªããªãŒç®æšãšåèŽããå Žåããã€ãã©ã€ã³ã¯äºæž¬éãã«æ¡åŒµãããŸããåèŽããªãå Žåãè€éããå¢å€§ããããªããªãŒé床ãšä¿¡é Œæ§ãåæã«äœäžããŸãã
éèŠãªæŽå¯ã¯ãCI/CDããŒã«ã¯äºææ§ã®ããå®è¡ãšã³ãžã³ã§ã¯ãªããšããããšã§ããJenkinsã¯ã«ã¹ã¿ãã€ãºãšå¶åŸ¡ã«æé©åãããGitLab CI/CDãšGitHub Actionsã¯ç·å¯ãªSCM飿ºã«æé©åãããAzure DevOps Pipelinesã¯ã¬ããã³ã¹ã«åºã¥ãããªãªãŒã¹é²è¡ãéèŠããCircleCIã¯æè»ãªã¹ã«ãŒããããåªå ããBambooã¯æ§é åããããã¬ãŒãµããªãã£ã匷åããArgo CDã¯å®£èšçãªç¶æ åæãäžå¿ãšããããªããªãŒãåå®çŸ©ããŸããåããŒã«ã¯ç¹å®ã®éçšç°å¢å ã§ã¯åªããŠããŸããããããè¶ ãããšè匱ã«ãªããŸãã
æçããäŒæ¥ã¯ãããªããªãŒèªäœãåäžã®åé¡ã§ã¯ãªããããåäžã®CI/CDãã©ãããã©ãŒã ã«éçŽããããšã¯ã»ãšãã©ãããŸããããã«ãèªååãã¯ã©ãŠããã€ãã£ããªãããã€ã¡ã³ããèŠå¶ããããªãªãŒã¹ããããŠãã«ãç°å¢ãžã®ããã¢ãŒã·ã§ã³ã¯ãçžåããå¶çŽã課ããŸãã广çãªããªããªãŒã¢ãŒããã¯ãã£ã¯ããã®çŸå®ãèæ ®ããæ®éçãªæšæºåã匷å¶ããã®ã§ã¯ãªããæç¢ºã«å¢çãå®ãããã責任ã«ããŒã«ãå²ãåœãŠãŸãããã®ããŒãã£ã·ã§ãã³ã°ã«ãããæ¡ä»¶ä»ãããžãã¯ãåæžããã圱é¿ç¯å²ãå¶éãããããªããªãŒã·ã¹ãã ãæ®µéçã«é²åãããèœåãç¶æãããŸãã
é·æçãªèª²é¡ã¯ãããŒã«ã®éžæã ãã§ãªããåäœã®å¯èŠæ§ã§ããCI/CDç°å¢ãæ¡å€§ããã«ã€ããŠããã€ãã©ã€ã³ãã©ã®ããã«æ§æãããŠããããç¥ãããšããããå®éã«ã©ã®ããã«å®è¡ãããããçè§£ããããšã®æ¹ãéèŠã«ãªããŸããããªããªãŒãªã¹ã¯ã¯ãåã ã®ãžã§ãã®å€±æã§ã¯ãªããããŒã«ãããŒã ãã€ã³ãã©ã¹ãã©ã¯ãã£éã®çžäºäœçšããçããŸããã¢ãŒããã¯ãã£ã®æç¢ºããšå®è¡ã«é¢ããæŽå¯ã«æè³ããäŒæ¥ã¯ãå¶åŸ¡æ§ãç ç²ã«ããããšãªãããªããªãŒèœåãæ¡åŒµã§ããŸãã
究極çã«ã¯ãå埩åã®ããCI/CDã·ã¹ãã ã¯èšèšããããã®ã§ãããçµã¿ç«ãŠããããã®ã§ã¯ãããŸããããã€ãã©ã€ã³ãéçºè åããŠãŒãã£ãªãã£ã§ã¯ãªãããšã³ã¿ãŒãã©ã€ãºå®è¡ã·ã¹ãã ãšããŠæ±ãããšã§ãããªããªãŒã®æææ±ºå®ãèä¹ æ§ãéææ§ããããŠé©å¿æ§ãäžå¿ã«åæ§ç¯ã§ããŸãããã®å€åã«ãããçµç¹ã¯å°æ¥ã®ããªããªãŒã®å¶çŽã仿¥ã®ããŒã«ã®éžæã«çžãããããšãªããç¶ç¶çã«ã¢ããã€ãºããããšãå¯èœã«ãªããŸãã
