éå» XNUMX 幎éã§ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ (ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãCI) ããã³ç¶ç¶çãããã€ã¡ã³ã (ç¶ç¶çããªããªãŒãCD) ã®ããã®ããŒã«ã®éçºã«ãããŠå€§ããªé²æ©ãèŠãããŸããã ãœãããŠã§ã¢ã®éçºãšéçšãçµ±åããæè¡ïŒDevelopment OperationsãDevOpsïŒã®çºå±ã«ãããCI/CDããŒã«ã®éèŠãæ¥å¢ããŠããŸãã æ¢åã®ãœãªã¥ãŒã·ã§ã³ã¯åžžã«æ¹åãããæä»£ã«è¿œãã€ãããã«æ°ããããŒãžã§ã³ããªãªãŒã¹ãããå質ä¿èšŒãœãããŠã§ã¢ (Quality AssuranceãQA) ã®äžçã§ã¯ãå€ãã®æ°è£œåãçµ¶ããç»å ŽããŠããŸãã ããã»ã©è±å¯ãªéžæè¢ããããããé©åãªããŒã«ãéžæããã®ã¯ç°¡åãªäœæ¥ã§ã¯ãããŸããã
æ¢åã® CI / CD ããŒã«ã®äžã§ããã®åéã§äœããæ¢ããŠãã人ã«ãšã£ãŠééããªã泚ç®ã«å€ãããããžã§ã¯ãã XNUMX ã€ãããŸãã ããã§ã¯ãJenkins ãšãGitLab ãã©ãããã©ãŒã ã®äžéšã§ãã GitLab CI / CD ããŒã«ã«ã€ããŠè©±ããŸãã ãžã§ã³ãã³ã¹ã«ã¯ä»¥äžã®ãã®ããããŸã GitHub ã®ã¹ã¿ãŒã gitlab.com ã® GitLab ãªããžããªã¯ããå°ãã¹ã³ã¢ãé«ãã£ã åºæŒè
ã ãªããžããªã®äººæ°ãæ¯èŒãããšãJenkins 㯠GitLab CI / CD ãå«ããã©ãããã©ãŒã ããã 8 åå€ãã®æãç²åŸããŠããããšãããããŸãã ãã ããCI / CD ããŒã«ãéžæããéã«æ³šæãã¹ãææšã¯ããã ãã§ã¯ãããŸããã ä»ã«ããããããããŸãããããããå€ãã®æ¯èŒã«ãã㊠Jenkins ãš GitLab CI / CD ãäºãã«éåžžã«è¿ãçç±ã説æããŠããŸãã
ããšãã°ãG2 ãã©ãããã©ãŒã ããã®ããŒã¿ãèããŠã¿ãŸããããGXNUMX ãã©ãããã©ãŒã ã«ã¯ãããŸããŸãªè£œåã®ã¬ãã¥ãŒãšãŠãŒã¶ãŒãäžããè©äŸ¡ãèç©ãããŠããŸãã å¹³åè©äŸ¡ã¯ãã¡ã ã288 ä»¶ã®ã¬ãã¥ãŒã«åºã¥ããŠã4,3 ã€æã§ãã ãããã 270 ä»¶ã®ã¬ãã¥ãŒãããããã®ããŒã«ã®å¹³åè©äŸ¡ã¯ 4,4 ã€æã§ãã Jenkins ãš GitLab CI/CD ã¯åçã®æ¡ä»¶ã§ç«¶åããŠãããšèšã£ãŠãééãã§ã¯ãããŸããã è峿·±ãããšã«ãJenkins ãããžã§ã¯ã㯠2011 幎ã«ç»å Žãããã以æ¥ãã¹ã¿ãŒã«ââãšã£ãŠãæ°ã«å
¥ãã®ããŒã«ãšãªã£ãŠããŸãã ãããåæã«ã2014 幎ã«éå§ããã GitLab CI / CD ãããžã§ã¯ãã¯ããã®ãã©ãããã©ãŒã ãæäŸããé«åºŠãªæ©èœã®ãããã§ããã®å°äœãéåžžã«é«ããã®ã«ããŸããã
ä»ã®åæ§ã®ãã©ãããã©ãŒã ãšæ¯èŒãã Jenkins ã®äººæ°ã«ã€ããŠè©±ãå ŽåãTravis CI ãš Jenkins ãã©ãããã©ãŒã ãæ¯èŒããèšäºãå ¬éãã調æ»ã宿œããããšã«æ³šæããŠãã ããã 85åã®ãŠãŒã¶ãŒãåå ããŸããã åçè ã¯ãæãæ°ã«å ¥ã£ãŠãã CI/CD ããŒã«ãéžæããããæ±ããããŸããã 79% ã Jenkins ãéžæãã5% ã Travis CI ãéžæãã16% ãä»ã®ããŒã«ã奜ããšåçããŸããã

ã¢ã³ã±ãŒãçµæ
ä»ã® CI/CD ããŒã«ã®äžã§ããGitLab CI/CD ãæãé »ç¹ã«èšåãããŸããã
DevOps ã«çå£ã«åãçµãã§ããå Žåã¯ããããžã§ã¯ãã®è©³çްãäºç®ããã®ä»ã®èŠä»¶ãèæ ®ããŠãé©åãªããŒã«ãæ éã«éžæããå¿ èŠããããŸãã æ£ããéžæãã§ããããã«ãJenkins ãš GitLab CI/CD ã確èªããŸãã ããã¯ãæ£ããéžæãããã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
ãžã§ã³ãã³ã¹ã®ç޹ä»

Jenkinsã¯ããœãããŠã§ã¢ãããžã§ã¯ãã«é¢é£ããããŸããŸãªã¿ã¹ã¯ãèªååããããã«èšèšããããåºãç¥ãããŠããæè»ãªCI/CDããŒã«ã§ããJenkinsã¯å®å
šã«Javaã§èšè¿°ãããŠãããMITã©ã€ã»ã³ã¹ã®äžã§ãªãªãŒã¹ãããŠããŸãããœãããŠã§ã¢ã®ãã«ãããã¹ãããããã€ãçµ±åããªãªãŒã¹ã«é¢é£ããã¿ã¹ã¯ãèªååããããšãç®çãšãã匷åãªæ©èœã»ãããæäŸããŸãããã®ããŒã«ã¯ãããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§äœ¿çšã§ããŸããããã«ã¯ä»¥äžãå«ãŸããŸãã macOS, Windows ãããŠå€ãã®ååž LinuxäŸãã°ãOpenSUSEã Ubuntu ããã³ Red HatãJenkins ã®ã€ã³ã¹ããŒã« ããã±ãŒãžã¯ããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã åãã«æäŸãããŠããããã®ããŒã«ã¯ Docker å
ããã³ JRE (Java Runtime Environment) ãã€ã³ã¹ããŒã«ãããŠããä»»æã®ã·ã¹ãã ã«ã€ã³ã¹ããŒã«ã§ããŸãã
Jenkins éçºè ã¯ãKubernetes ç°å¢ã§åäœããããã«èšèšãããå¥ã®ãããžã§ã¯ã Jenkins X ãäœæããŸããã Jenkins X ã¯ãHelmãJenkins CI/CD ãµãŒããŒãKubernetesããã®ä»ã®ããŒã«ãçµ±åããŠãDevOps ã®ãã¹ã ãã©ã¯ãã£ã¹ã«åŸã£ã CI/CD ãã€ãã©ã€ã³ãæ§ç¯ããŸãã ããšãã°ãããã§ã¯ GitOps ã䜿çšãããŠããŸãã
Jenkins ã®å©ç¹ã®å®åº«ã«ããã®ã¹ã¯ãªãããéåžžã«ããæ§é åãããŠãããçè§£ãããããèªã¿ããããšããäºå®ãå ããããšãã§ããŸãã Jenkins ããŒã ã¯ãJenkins ãšããŸããŸãªãã¯ãããžãŒãšã®çžäºäœçšãæŽçããããšãç®çãšããçŽ 1000 åã®ãã©ã°ã€ã³ãäœæããŸããã ã¹ã¯ãªããã§ã¯èªèšŒã·ã¹ãã ã䜿çšã§ããŸããããã«ãããããšãã°ãããŸããŸãªã¯ããŒãºã ã·ã¹ãã ãžã®æ¥ç¶ãå¯èœã«ãªããŸãã
Jenkins ãã€ãã©ã€ã³ã®æäœäžã«ãäœæ¥ã®ç¹å®ã®æ®µéãæ£åžžã«å®äºãããã©ãããåã¹ãããã§äœãèµ·ãã£ããã芳å¯ã§ããŸãã ãã ããç¹å®ã®ã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããã«ã端æ«ã®æ©èœã䜿çšããŠãããããã¹ãŠãèŠèŽã§ããŸãã
ãžã§ã³ãã³ã¹ã®ç¹åŸŽ
Jenkins ã®ããç¥ãããæ©èœãšããŠã¯ãã»ããã¢ããã®å®¹æããããŸããŸãªæäœã®é«åºŠãªèªååãåªããããã¥ã¡ã³ããæããããŸãã DevOpsã¿ã¹ã¯ã®è§£æ±ºã«ã€ããŠè©±ãå Žåãããã§ã¯Jenkinsãéåžžã«ä¿¡é Œã§ããããŒã«ã§ãããšèããããŠãããååãšããŠããããžã§ã¯ãåŠçã®ããã»ã¹å šäœãæ³šææ·±ãç£èŠããããšã¯æå³ããããŸããã ããã¯ãä»ã® CI/CD ããŒã«ã«ã¯åœãŠã¯ãŸããŸããã Jenkins ã®æãéèŠãªæ©èœã®ããã€ãã«ã€ããŠè©±ããŸãããã
â1. ç¡æããªãŒãã³ãœãŒã¹ããã«ããã©ãããã©ãŒã ã®ãµããŒã
Jenkinsã¯ãã©ãããã©ãŒã äžã§å®è¡ã§ããŸã macOS, Windows О LinuxDockerç°å¢ã§ãåäœãããããèªååãããã¿ã¹ã¯ãå®å®ãã€è¿ éã«å®è¡ã§ããŸãããŸããApache TomcatãGlassFishãªã©ã®Java察å¿ã³ã³ããå ã§ãµãŒãã¬ãããšããŠå®è¡ããããšãå¯èœã§ããJenkinsã®ã€ã³ã¹ããŒã«ã¯é«å質ãªããã»ã¹ã§ãã .
â2. éçºããããã©ã°ã€ã³ãšã³ã·ã¹ãã
Jenkins ãã©ã°ã€ã³ ãšã³ã·ã¹ãã ã¯ãä»ã® CI/CD ããŒã«ã®ãã©ã°ã€ã³ ãšã³ã·ã¹ãã ãããã¯ããã«æçããŠããããã§ãã çŸåšãJenkins ã«ã¯ 1500 ãè¶ ãããã©ã°ã€ã³ããããŸãã ãããã®ãã©ã°ã€ã³ã¯å¹ åºãã¿ã¹ã¯ã解決ããããšãç®çãšããŠããããã®å©ããåããŠããŸããŸãªãããžã§ã¯ããèªååã§ããŸãã ç¡æã®ãã©ã°ã€ã³ãè±å¯ã«ãããããJenkins ã䜿çšããŠããå Žåã¯é«äŸ¡ãªææãã©ã°ã€ã³ãè³Œå ¥ããå¿ èŠããããŸããã å¯èœæ§ã¯ãããŸã å€ãã® DevOps ããŒã«ãåãã Jenkinsã
â3. ç°¡åãªã€ã³ã¹ããŒã«ãšã»ããã¢ãã
Jenkins ã¯ã€ã³ã¹ããŒã«ãšæ§æãéåžžã«ç°¡åã§ãã åæã«ãã·ã¹ãã ãæŽæ°ããããã»ã¹ãéåžžã«äŸ¿å©ã§ãã ããã§ããããã¥ã¡ã³ãã®å質ã«ã€ããŠèšåãã䟡å€ããããŸããããã¥ã¡ã³ãã«ã¯ãJenkins ã®ã€ã³ã¹ããŒã«ãšæ§æã«é¢ããããŸããŸãªè³ªåãžã®åçãèšèŒãããŠããŸãã
â4. ãã¬ã³ããªãŒãªã³ãã¥ããã£
ãã§ã«è¿°ã¹ãããã«ãJenkins ã¯ãªãŒãã³ãœãŒã¹ ãããžã§ã¯ãã§ããããã®ãšã³ã·ã¹ãã ã«ã¯èšå€§ãªæ°ã®ãã©ã°ã€ã³ãå«ãŸããŠããŸãã ãŠãŒã¶ãŒãšéçºè ã®å€§èŠæš¡ãªã³ãã¥ããã£ã Jenkins ãäžå¿ã«çºå±ãããããžã§ã¯ãã®éçºãæ¯æŽããŠããŸããã ã³ãã¥ããã£ã¯ãJenkins ã®éçºãæšé²ããèŠå ã® XNUMX ã€ã§ãã
â5. REST APIã®å©çšå¯èœæ§
Jenkins ã䜿çšããå Žåãã·ã¹ãã ã®æ©èœãæ¡åŒµãã REST API ã䜿çšã§ããŸãã ã·ã¹ãã ãžã®ãªã¢ãŒã ã¢ã¯ã»ã¹çšã® API ã¯ãXMLãJSONP ãµããŒãä»ãã® JSONãPython ã® XNUMX ã€ã®ããŒãžã§ã³ã§æäŸãããŸãã Jenkins REST API ã®æäœã®è©³çްã説æããããã¥ã¡ã³ã ããŒãžã
â6. ã¿ã¹ã¯ã®äžŠåå®è¡ã®ãµããŒã
Jenkins ã¯ãDevOps ã¿ã¹ã¯ã®äžŠååããµããŒãããŠããŸãã é¢é£ããŒã«ãšç°¡åã«çµ±åã§ããã¿ã¹ã¯ã®çµæã«é¢ããéç¥ãåãåãããšãã§ããŸãã ããŸããŸãªä»®æ³ãã·ã³ã䜿çšããŠãããžã§ã¯ãã®äžŠåãã«ããçµç¹ããããšã§ãã³ãŒãã®ãã¹ããé«éåã§ããŸãã
â7. 忣ç°å¢ã§ã®äœæ¥ã®ãµããŒã
Jenkins ã䜿çšãããšãè€æ°ã®ã³ã³ãã¥ãŒã¿ãŒã䜿çšããŠåæ£ãã«ããæŽçã§ããŸãã ãã®æ©èœã¯å€§èŠæš¡ãªãããžã§ã¯ãã«é©çšã§ããXNUMX ã€ã®ãã¹ã¿ãŒ Jenkins ãµãŒããŒãšè€æ°ã®ã¹ã¬ãŒã ãã·ã³ãååšãããšããäœæ¥ã¹ããŒã ã䜿çšããŸãã ã¹ã¬ãŒã ãã·ã³ã¯ãããŸããŸãªç°å¢ã§ãããžã§ã¯ãã®ãã¹ããçµç¹ããå¿ èŠãããç¶æ³ã§ã䜿çšã§ããŸãã ãããã®æ©èœã«ãããJenkins ã¯ä»ã®åæ§ã®ãããžã§ã¯ããšã¯ç°ãªããŸãã
GitLab ã®æŠèŠ

ã¯ãææ°ãã€æãæãããŠãã DevOps ããŒã«ã® XNUMX ã€ãšèšããŸãã ãã®ç¡æã®ãªãŒãã³ãœãŒã¹ ããŒã«ã¯ãGitLab ããŒãžã§ã³ç®¡çã·ã¹ãã ã«çµã¿èŸŒãŸããŠããŸãã GitLab ãã©ãããã©ãŒã ã«ã¯ã³ãã¥ãã㣠ããŒãžã§ã³ãããããªããžããªç®¡çãåé¡è¿œè·¡ããŒã«ãã³ãŒã ã¬ãã¥ãŒçµç¹ãããã¥ã¡ã³ãæåã®ã¡ã«ããºã ããµããŒãããŠããŸãã äŒæ¥ã¯ãGitLab ãããŒã«ã«ã«ã€ã³ã¹ããŒã«ããActive Directory ããã³ LDAP ãµãŒããŒã«ãªã³ã¯ããŠãå®å
šãªãŠãŒã¶ãŒã®æ¿èªãšèªèšŒãè¡ãããšãã§ããŸãã
GitLab CI/CD æ©èœã䜿çšã㊠CI/CD ãã€ãã©ã€ã³ãäœæããæ¹æ³ãåŠç¿ããã®ã«åœ¹ç«ã€ãã㪠ãã¥ãŒããªã¢ã«ã
GitLab CI/CD ã¯åœåã¹ã¿ã³ãã¢ãã³ ãããžã§ã¯ããšããŠãªãªãŒã¹ãããŸãããã2015 幎ã«ãã®ããŒã« ã»ãã㯠GitLab 8.0 ã«çµ±åãããŸããã åäžã® GitLab CI/CD ãµãŒããŒã¯ 25000 ãè¶ ãããŠãŒã¶ãŒããµããŒãã§ããŸãã ãã®ãããªãµãŒããŒã«åºã¥ããŠãå¯çšæ§ã®é«ãã·ã¹ãã ãæ§ç¯ã§ããŸãã
GitLab CI/CD ãšã¡ã€ã³ã® GitLab ãããžã§ã¯ã㯠Ruby ãš Go ã§æžãããŠããŸãã ããã㯠MIT ã©ã€ã»ã³ã¹ã«åºã¥ããŠãªãªãŒã¹ãããŠããŸãã GitLab CI/CD ã¯ãCI/CD ããŒã«ã®éåžžã®æ©èœã«å ããŠãäœæ¥ã¹ã±ãžã¥ãŒã«ãªã©ã«é¢é£ããè¿œå æ©èœããµããŒãããŠããŸãã
GitLab CI/CD ããããžã§ã¯ãã«çµ±åããã®ã¯éåžžã«ç°¡åã§ãã GitLab CI/CD ã䜿çšããå Žåããããžã§ã¯ã ã³ãŒãã®åŠçããã»ã¹ã¯ããã€ãã®æ®µéã«åå²ãããåæ®µéã¯ç¹å®ã®é åºã§å®è¡ãããè€æ°ã®ã¿ã¹ã¯ã§æ§æãããŸãã ã¿ã¹ã¯ã¯çްãã調æŽã§ããŸãã
ã¿ã¹ã¯ã¯äžŠè¡ããŠå®è¡ã§ããŸãã äžé£ã®ã¹ããŒãžãšã¿ã¹ã¯ãèšå®ããããCI/CD ãã€ãã©ã€ã³ãéå§ããæºåãæŽããŸãã ã¿ã¹ã¯ã®ã¹ããŒã¿ã¹ãç£èŠããããšã§ããã®é²è¡ç¶æ³ãç£èŠã§ããŸãã çµæãšããŠãGitLab CI / CD ã®äœ¿çšã¯éåžžã«äŸ¿å©ã§ãããããããä»ã®åæ§ã®ããŒã«ããã䟿å©ã§ãã
GitLab CI/CD ãš GitLab ã®ç¹åŸŽ
GitLab CI/CD ã¯ãæã人æ°ã®ãã DevOps ããŒã«ã® XNUMX ã€ã§ãã ãã®ãããžã§ã¯ãã¯é«å質ã®ããã¥ã¡ã³ãã«ãã£ãŠåºå¥ããããã®æ©èœã¯äœ¿ãããããŠäŸ¿å©ã§ãã GitLab CI/CD ã«ãŸã æ £ããŠããªãå Žåã¯ããã®ããŒã«ã®æ©èœã®æ¬¡ã®ãªã¹ããåç §ãããšããã®ããŒã«ããäœãæåŸ ã§ãããã«ã€ããŠã®äžè¬çãªã¢ã€ãã¢ãåŸãããŸãã ãããã®æ©èœã®å€ãã¯ãGitLab CI / CD ãçµ±åãããŠãã GitLab ãã©ãããã©ãŒã èªäœã«é¢é£ããŠããããšã«æ³šæããŠãã ããã
â1. 人æ°
GitLab CI/CD ã¯ãåºã䜿çšãããŠããæ¯èŒçæ°ããããŒã«ã§ãã GitLab CI/CD ã¯ãèªåãã¹ããšãœãããŠã§ã¢ ãããã€ã¡ã³ãã«äœ¿çšããã CI/CD ããŒã«ãšããŠåŸã ã«äººæ°ãé«ãŸã£ãŠããŸãã ã»ããã¢ããã¯ç°¡åã§ãã ããã¯ãGitLab ãã©ãããã©ãŒã ã«çµã¿èŸŒãŸããŠããç¡æã® CI/CD ããŒã«ã§ããããŸãã
â2. GitLab Pages ãš Jekyll ã®ãµããŒã
Jekyll ã¯ãGitLab ãªããžããªã«åºã¥ããŠãµã€ããäœæããããã« GitLab Pages ã·ã¹ãã å
ã§äœ¿çšã§ããéçãµã€ã ãžã§ãã¬ãŒã¿ãŒã§ãã ã·ã¹ãã ã¯ãœãŒã¹çŽ æãååŸãããããã«åºã¥ããŠæ¢è£œã®éçãµã€ããçæããŸãã ãã¡ã€ã«ãç·šéããããšã§ããã®ãããªãµã€ãã®å€èŠ³ãšæ©èœãå¶åŸ¡ã§ããŸãã _config.ymlããžãã«ã䜿çšã
â3. ãããžã§ã¯ãèšç»èœå
ãããžã§ã¯ãã®æ®µéãèšç»ã§ãããããåé¡ãšãã®ã°ã«ãŒãã远跡ããå©äŸ¿æ§ãé«ãŸããŸãã ããã«ããããããžã§ã¯ãã®äœæ¥ã®çµç¹ã管çããç¹å®ã®æ¥ä»ã§ã®å®è£ ãèšç»ããããšãã§ããŸãã
â4. CI ã©ã³ããŒã®èªåã¹ã±ãŒãªã³ã°
ç¹å®ã®ã¿ã¹ã¯ã®å®è¡ãæ åœããã©ã³ããŒã®èªåã¹ã±ãŒãªã³ã°ã®ãããã§ããµãŒããŒå®¹éã®ã¬ã³ã¿ã«ã«ãããã³ã¹ããå€§å¹ ã«ç¯çŽã§ããŸãã ããã¯ãç¹ã«ãããžã§ã¯ãã䞊è¡ããŠãã¹ããããç°å¢ã§ã¯éåžžã«éèŠã§ãã ããã«ãããã¯è€æ°ã®ãªããžããªã§æ§æãããå€§èŠæš¡ãªãããžã§ã¯ãã«ãšã£ãŠéèŠã§ãã
â5. åé¡è¿œè·¡ããŒã«
GitLab ã®åŒ·åãªåé¡è¿œè·¡æ©èœã«ãããå€ãã®ãªãŒãã³ãœãŒã¹ ãããžã§ã¯ãããã®ãã©ãããã©ãŒã ã䜿çšããããã«ãªããŸããã GitLab CI/CD ã䜿çšãããšãããŸããŸãªã³ãŒã ãã©ã³ãã䞊è¡ããŠãã¹ãã§ããŸãã ãã¹ãçµæã¯ã·ã¹ãã ã€ã³ã¿ãŒãã§ã€ã¹ã§ç°¡åã«åæã§ããŸãã ããã«ãããGitLab CI/CD 㯠Jenkins ãšã¯ç°ãªããŸãã
â6. ãªããžããªãžã®ã¢ã¯ã»ã¹ãå¶éãã
GitLab ãã©ãããã©ãŒã ã¯ããªããžããªãžã®ã¢ã¯ã»ã¹ã®å¶éããµããŒãããŠããŸãã ããšãã°ããªããžããªå ã®ãããžã§ã¯ãã§å ±åäœæ¥ãããŠãŒã¶ãŒã«ã¯ããã®åœ¹å²ã«å¿ããæš©éãå²ãåœãŠãããšãã§ããŸãã ããã¯ç¹ã«äŒæ¥ãããžã§ã¯ãã«åœãŠã¯ãŸããŸãã
â7. ç©æ¥µçãªã³ãã¥ããã£ãµããŒã
GitLab ãäžå¿ã«æŽ»çºãªã³ãã¥ããã£ãçºå±ãããã®ãã©ãããã©ãŒã ãšãã®ããŒã«ãç¹ã« GitLab CI / CD ã®éçºã«è²¢ç®ããŠããŸãã ç¹ã«ãGitLab CI/CD ãš GitLab ãç·å¯ã«çµ±åãããŠãããããGitLab CI/CD ã䜿çšãããšãã«çºçãã質åã«å¯Ÿããçããç°¡åã«èŠã€ããããšãã§ããŸãã
â8. ããŸããŸãªããŒãžã§ã³ç®¡çã·ã¹ãã ã®ãµããŒã
GitLab CI/CD ã¯ãGitLab ãªããžããªã§ãã¹ããããŠããã³ãŒã以äžã®ãã®ãæäœã§ããã·ã¹ãã ã§ãã ããšãã°ãã³ãŒãã GitHub ãªããžããªã«ä¿åããGitLab CI / CD ã䜿çšã㊠GitLab ã«åºã¥ã㊠CI / CD ãã€ãã©ã€ã³ãç·šæã§ããŸãã
Jenkins ãš GitLab CI/CD ã®æ¯èŒ
Jenkins ãš GitLab CI/CD ã¯éåžžã«åªããããŒã«ã§ãããã©ã¡ãã CI/CD ãã€ãã©ã€ã³ãã¹ã ãŒãºã«å®è¡ã§ããŸãã ããããããããæ¯èŒããŠã¿ããšãå€ãã®ç¹ã§äŒŒãŠããŸãããããã€ãã®ç¹ã§ç°ãªã£ãŠããããšãããããŸãã
ç¹æ§è©äŸ¡
ãžã§ã³ãã³ãº
GitLab CI / CD
ãªãŒãã³ãœãŒã¹ãã¯ããŒãºããœãŒã¹ã
ãªãŒãã³ãœãŒã¹
ãªãŒãã³ãœãŒã¹
ã€ã³ã¹ããŒã«
å¿
é ã
ãã㯠GitLab ãã©ãããã©ãŒã ã®çµã¿èŸŒã¿æ©èœã§ãããããå¿
èŠãããŸããã
ãŠããŒã¯ãªæ©èœ
ãã©ã°ã€ã³ã®ãµããŒãã
ããŒãžã§ã³ç®¡çã·ã¹ãã ãžã®ç·å¯ãªçµ±åã
ãµããŒã
è¡æ¹äžæã§ãã
å©çšå¯èœã
ã€ã³ã¹ããŒã«ãšæ§æ
å°é£ã¯åŒãèµ·ãããªã
å°é£ã¯åŒãèµ·ãããªã
ã·ã¹ãã ã®èªå·±å±é
ãããã·ã¹ãã ã䜿çšããå¯äžã®æ¹æ³ã§ãã
ãµããŒããããŠããŸãã
CI/CD ãã€ãã©ã€ã³ã®äœæ
Jenkins Pipeline ã䜿çšããŠãµããŒããããŸãã
ãµããŒããããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ç£èŠ
è¡æ¹äžæã§ãã
å©çšå¯èœã
çæ
ç³»
ãã©ã°ã€ã³ã¯1000以äžãããŸãã
ãã®ã·ã¹ãã 㯠GitLab å
ã§éçºãããŠããŸãã
API
é«åºŠãªAPIã·ã¹ãã ããµããŒãããŸãã
ãããžã§ã¯ããžã®ããæ·±ãçµ±åã®ããã® API ãæäŸããŸãã
JavaScriptã®ãµããŒã
å©çšå¯èœã
å©çšå¯èœã
ä»ã®ããŒã«ãšã®çµ±å
ä»ã®ããŒã«ããã©ãããã©ãŒã ãšã®çµ±åããµããŒããããŠããŸã (SlackãGitHub)ã
ãµãŒãããŒã㣠ã·ã¹ãã ãç¹ã« GitHub ã Kubernetes ãšçµ±åããããã®ããŒã«ã倿°ãããŸãã
ã³ãŒãã®å質管ç
ãµããŒããããŠããŸã - SonarQube ãã©ã°ã€ã³ããã³ãã®ä»ã®ãã©ã°ã€ã³ã䜿çšããŸãã
ãµããŒããããŠããŸãã
Jenkins ãš GitLab CI/CD ã®éã
Jenkins ãš GitLab CI/CD ã«ã€ããŠèª¬æãæ¯èŒããŸãããæ¬¡ã«ããããã® DevOps ããŒã«ã®éãã«çŠç¹ãåœãŠãŸãããã ãããã®éããçè§£ãããšããããã®ããŒã«ã®äžæ¹ã仿¹ããã奜ã人ãçè§£ããã®ã«åœ¹ç«ã¡ãŸãã
- GitLab CI/CD 㯠Git ãªããžããªãå®å šã«å¶åŸ¡ã§ããŸãã ããã§ã¯ããªããžã㪠ãã©ã³ããšãã®ä»ã®æ©èœã®ç®¡çã«ã€ããŠèª¬æããŸãã ãã ããJenkins ã¯ãªããžããªãæäœã§ããŸãããGitLab CI/CD ãšåãã¬ãã«ã§ãªããžããªãå¶åŸ¡ããããšã¯ã§ããŸããã
- Jenkins ã¯ç¡æã®ãªãŒãã³ãœãŒã¹ ãããžã§ã¯ãã§ãã ãããéžæãã人ãç¬èªã«å±éããŸãã GitLab CI / CD 㯠GitLab ãã©ãããã©ãŒã ã«å«ãŸããŠãããã¿ãŒã³ã㌠ãœãªã¥ãŒã·ã§ã³ã§ãã
- GitLab CI/CD ã¯ããããžã§ã¯ã ã¬ãã«ã§æ©èœããé«åºŠãªã¿ã¹ã¯ç®¡çããŒã«ããµããŒãããŠããŸãã ãžã§ã³ãã³ã¹ã®ãã®åŽé¢ã¯ããŸãéçºãããŠããŸããã
Jenkins ãš GitLab CI/CD: é·æãšçæ
ããã§ãJenkins ãš GitLab CI/CD ã«ã€ããŠããçšåºŠçè§£ã§ããŸããã ããã§ããããã®ããŒã«ã«ã€ããŠããã«è©³ããç¥ãããã«ããã®é·æãšçæãèŠãŠã¿ãŸãããã å¿ èŠãªããŒã«ããã§ã«æ±ºãŸã£ãŠããããšãåæãšããŠããŸãã ãã®ã»ã¯ã·ã§ã³ãããªãèªèº«ã®ãã¹ãã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
âãžã§ã³ãã³ã¹ã®åŒ·ã¿
- ãã©ã°ã€ã³ã®æ°ãè±å¯ã
- ããŒã«ã®ã€ã³ã¹ããŒã«ãå®å šã«å¶åŸ¡ããŸãã
- ã©ã³ããŒã®ç°¡åãªãããã°ã
- ããŒãã®ã»ããã¢ãããç°¡åã
- ã³ãŒãã®å±éãç°¡åã
- éåžžã«åªããèªèšŒæ å ±ç®¡çã·ã¹ãã ã
- æè»æ§ãšå€çšéæ§ã
- ããŸããŸãªããã°ã©ãã³ã°èšèªã®ãµããŒãã
- ãã®ã·ã¹ãã ã¯çŽæçãªã¬ãã«ã§çè§£ã§ããŸãã
âãžã§ã³ãã³ã¹ã®åŒ±ç¹
- ãã©ã°ã€ã³ã¯äœ¿ãæ¹ãé£ããå ŽåããããŸãã
- å°èŠæš¡ãããžã§ã¯ãã§ Jenkins ã䜿çšããå Žåãèªåã§æ§æããã®ã«å¿ èŠãªæéãäžåœã«é·ããªãå¯èœæ§ããããŸãã
- CI/CD ãã§ãŒã³ã«é¢ããäžè¬çãªåææ å ±ãäžè¶³ããŠããŸãã
âGitLab CI/CDã®åŒ·ã¿
- Dockerãšã®åªããçµ±åã
- ã©ã³ããŒã®ç°¡åãªã¹ã±ãŒãªã³ã°ã
- CI/CD ãã€ãã©ã€ã³ã®ã¹ããŒãžã®äžéšã§ããã¿ã¹ã¯ã®äžŠåå®è¡ã
- ã¿ã¹ã¯é¢ä¿ãèšå®ãããšãã«æåéå·¡åã°ã©ã ã¢ãã«ã䜿çšããŸãã
- ã©ã³ããŒã®äžŠåå®è¡ãå¯èœãªãããé«ãã¬ãã«ã®ã¹ã±ãŒã©ããªãã£ãå®çŸããŸãã
- ã¿ã¹ã¯ã®è¿œå ãç°¡åã
- ã·ã³ãã«ãªç«¶å解決ã
- å®å¿ã®ã»ãã¥ãªãã£ã·ã¹ãã ã
âGitLab CI/CDã®åŒ±ç¹
- ã¿ã¹ã¯ããšã«ãã¢ãŒãã£ãã¡ã¯ãã説æããã¢ããããŒã/ããŠã³ããŒãããå¿ èŠããããŸãã
- ãã©ã³ããå®éã«ããŒãžããåã«ããã©ã³ãã®ããŒãžçµæããã¹ãããããšã¯ã§ããŸããã
- CI / CD ãã€ãã©ã€ã³ã®ã¹ããŒãžã説æããå Žåããã®äžã®åã ã®ã¹ããŒãžãç¹å®ããããšã¯ãŸã ã§ããŸããã
çµæ
Jenkins ãš GitLab CI/CD ã«ã¯ã©ã¡ãã«ãé·æãšçæããããŸãã äœãéžæããããšãã質åã«å¯Ÿããçãã¯ãç¹å®ã®ãããžã§ã¯ãã®ããŒãºãšç¹æ§ã«ãã£ãŠç°ãªããŸãã ä»åã¬ãã¥ãŒããå CI/CD ããŒã«ã«ã¯ç¹å®ã®æ©èœããããŸããããããã®ããŒã«ã¯åãåé¡ã解決ããããã«äœæãããŸããã åæã«ãJenkins ã¯ã¹ã¿ã³ãã¢ãã³ ããŒã«ã§ãããGitLab CI / CD ã¯ã³ãŒãäžã§å ±åäœæ¥ããããã«èšèšããããã©ãããã©ãŒã ã®äžéšã§ãã
CI / CD ã·ã¹ãã ãéžæãããšãã¯ããã®æ©èœã«å ããŠãããã«é¢é£ããå¯èœæ§ã®ããã³ã¹ããããã³ãããžã§ã¯ãããµããŒããã DevOps ãšã³ãžãã¢ãã©ã®ãããªäœæ¥ã«æ £ããŠããããèæ ®ãã䟡å€ããããŸãã
ã©ã®ãã㪠CI/CD ããŒã«ã䜿çšããŠããŸãã?
åºæïŒ habr.com
