+
GitLab UltimateãããŒã ã«ããããã¡ãªããã«ã€ããŠã芧ãã ãã
ãšã¢ãã¹ç€Ÿã¯å°çç©ºéæ¥çã®ã°ããŒãã«ãªãŒããŒã§ããã广çãªã³ã©ãã¬ãŒã·ã§ã³ã®ããã®ãã©ãããã©ãŒã ãå¿ èŠãšããŠããŸããã
GitLabã®åäžã¢ããªã±ãŒã·ã§ã³ã«ããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒãæ¡çšããå瀟ã¯ã¯ãŒã¯ãããŒãšã³ãŒãåè³ªã®æ¹åã«æåããŸããã
å°å ¥ã¯éåžžã«ã·ã³ãã«ã§ããããã¹ãŠã®ããŒã ã®æ¥åããã®1ã€ã®ããŒã«ã ãã§æžã¿ãã³ãã¥ãã±ãŒã·ã§ã³ãå³åº§ã«å®¹æã«ãªããŸãããGitLabãå°å ¥ããªããã°ãä»ã®ç¶æ³ã¯å®çŸããŠããªãã£ãã§ãããã
ãšã¢ãã¹ç€Ÿã¯ãåçšè¡æç»åããã¬ãã¢ã å°ç空éããŒã¿ãµãŒãã¹ã驿°çãªé²è¡ãœãªã¥ãŒã·ã§ã³ã®å€§æãããã€ããŒã§ããå瀟ã®è£œåãšãµãŒãã¹ã¯äžçäžã®æææ±ºå®è ã«éžã°ããŠãããã»ãã¥ãªãã£ãåäžãããããã·ã§ã³ãã©ã³ãã³ã°ãæé©åããããã©ãŒãã³ã¹ãåäžããã倩ç¶è³æºã®ç®¡çãæ¹åããç°å¢ãä¿è·ããŸãã
å€åœç±äŒæ¥ã§ãããšã¢ãã¹ç€Ÿã¯ãããŒã ãã³ã©ãã¬ãŒã·ã§ã³ãè¡ããäžçäžã§ããå¹ççã«äœæ¥ãè¡ãã®ã«åœ¹ç«ã€ããŒã«ãå¿ èŠãšããŠããŸããã€ã³ããªãžã§ã³ã¹ããžãã¹ã§ããå瀟ã¯ãã¯ãŒã¯ãããŒã®éå¹çæ§ãšçç£æ§ã®äœäžãåŒãèµ·ãã忣ããŒã ãåæãããããŒã«ãã§ãŒã³ãªã©ãå€ãã®ã°ããŒãã«äŒæ¥ãæ±ããå ±éã®èª²é¡ãåé¿ããããšèããŠããŸããããããã®èª²é¡ãå æããŠããŒã ãå¹çåããã³ãã¥ãã±ãŒã·ã§ã³ãä¿é²ã§ããã¯ãŒã¯ãããŒãæ¹åããããšãåªå äºé ã§ãããLogan Weberæ°ã¯ãWeb Factoryã®ãœãããŠã§ã¢ãªãŒãã¡ãŒã·ã§ã³ãšã³ãžãã¢ã§ããããè¯ãéçºè ã®ã¯ãŒã¯ãããŒãèŠã€ããããšã¯åæ°ã®ã³ã¢ããã·ã§ã³ã®1ã€ã§ãããWeb Factoryã®ä¿ææ§ã«ãããããŒã ã¯æ°ããããŒã«ãæè¡ã®çæ³çãªå®éšå ŽãšãªããŸãããWeberæ°ã«ãšã£ãŠãæ¡çšããããŒã«ã®ãã¹ãŠãã€ãããŒã·ã§ã³ã«å¯Ÿããåæ§ã®ç±æãå ±æããŠããããšãéèŠã§ããããç§ãã¡ã¯ããžã¿ã«ãã©ã³ã¹ãã©ãŒã¡ãŒã·ã§ã³ã®çã£åªäžã«ããŸãããšLoganæ°ããé²è·¯ãæç¢ºã«çè§£ããŠãããç§ãã¡ãšåãããŒã¹ã§æ©ãããšãã§ããããŒãããŒãšã¿ãã°ãçµããããšãçæ³ã§ãã
Web FactoryããŒã ã®å€§ããªèª²é¡ã®1ã€ã¯ãããã»ã¹ãååã«å¹ççã§ãªãã£ããããªãªãŒã¹ãé ããéçºã«ãããæéãççž®ãããŠããããšã§ãããããããããŒã¯æ¬çªç°å¢ã®ã»ããã¢ããã«å°ãªããšã1æ¥ãè²»ãããªã©ãèªååãããã¹ãã§ãã£ãåçŽäœæ¥ã«ããŸãã«ãå€ãã®æéãè²»ãããŠããŸãããããããé·æéã®æäœæ¥ã«ããããã»ã¹ã®èç©ã«ããã³ãŒãã«ååãªæéãå²ãããšãã§ãããå€ãã®ããããããŒã¯äžæºãæããŠãããšãããŸããWeb FactoryããŒã ã¯ãæ°ããããŒã«ã䜿çšããŠããŒã éã®ã³ãã¥ãã±ãŒã·ã§ã³ã®é害ãåé¿ããããšãæåŸ ããŠããŸãããæ¬çªç°å¢ã®ã»ããã¢ããã«æéãè²»ãããåŸã«æçµè£œåãæåã®ãªã¯ãšã¹ãã«å¯Ÿå¿ããŠããªãããšã«æ°ä»ããããã远å ã®äœæ¥ã«ã€ãªããããšããã£ãããã§ããããããããšã©ãŒãä¿®æ£ããã«ã¯ãã°ãšããŠå ±åããå¿ èŠããããŸãããå®éã«ã¯ãã°ã§ã¯ãªããã³ãã¥ãã±ãŒã·ã§ã³ã®æ¬ åŠãåå ãšãªã£ãŠçºçããåé¡ã ã£ãã®ã§ãããšWeberæ°ã¯ä»ãå ããŸããã
é©åãªããããããŒã¯ãŒã¯ãããŒãæ¢ããããWeb FactoryããŒã ã¯è€æ°ã®ããŒã«ããã¹ãããŸããã ãã§ã«Jiraã䜿çšããŠããããããã¹ãããããšã決å®ããã®ã¯ããŒãžã§ã³ç®¡ççšã®BitbucketãCIçšã®Bambooãªã©ãä»ã®Atlassian補åã§ãããæ®å¿µãªããšã«BitBucketãšBambooã¯ãŠãŒã¶ãŒãã¬ã³ããªãŒãªãšã¯ã¹ããªãšã³ã¹ãæäŸããŠããããã©ã¡ãã®ããŒã«ãããŒãºã«åã£ãæ©èœãåããŠããŸããã§ãããWeb FactoryããŒã ã¯å€ããããžã§ã¯ãã«Jenkinsã䜿çšããŠããŸããããã¡ã³ããã³ã¹ãè€éãããããšã倿ããŸããããŸãããããã€ã¹ã¯ãªããããã»ã¹ãã³ãŒããšããŠä¿åã§ããããã«ããããšèããŠããŸããã
ãããããæ€èšããŸããããæ±ããŠãããã®ãèŠã€ãããŸããã§ããããšLoganæ°ãããã«ä»ã®ããŒã«ã詊ããåŸãããã€ãã®å©ç¹ããã£ããããWeb FactoryããŒã ã¯GitLabãéžæããŸãããGitLabã¯ããŒãžã§ã³ç®¡çãšãããžã§ã¯ãç®¡çæ©èœã ãã§ãªããã¯ã©ã¹æé«ã®CIãåäžã®ã¢ããªã±ãŒã·ã§ã³ã§æäŸããŸããWeb Factoryã¯ã2é±éã®ã¹ããªã³ãã®ã¹ã¯ã©ã éçºææ³ãæ¡çšããŠããŸãã ããããããŒã¯Jiraã§ãŠãŒã¶ãŒã¹ããŒãªãŒãäœæããäœæ¥ã®æºåãæŽã£ããGitLabã§ã€ã·ã¥ãŒãäœæããŸããããŒã ãæ
å ±ã®åéãšã€ã·ã¥ãŒã®ã³ã©ãã¬ãŒã·ã§ã³ãå®äºãããšãããŒãžãªã¯ãšã¹ãïŒMRïŒãäœæãããéçºãã©ã³ããããªã¬ãŒãããŸããæºåãã§ããããããããããŒã¯ä»ã®ããããããŒã«ã³ãŒãã®ã¬ãã¥ãŒãäŸé Œã§ããŸããã³ãŒãã«CIãã¹ãã宿œããããã¹ãŠã®ãã¹ãã«åæ Œãããšãã¬ãã¥ã¢ãŒã¯ãã®éçºãã©ã³ããã¡ã€ã³ãã©ã³ãã«ããŒãžã§ããããã«ãªããŸããããããã¹ãŠã¯MRãéããŠè¡ããã誰ããæåããæåŸãŸã§ã®ããã»ã¹å
šäœã確èªã§ããŸãããŸããGitLabã¯ããŒã ã®å¿
é æ©èœã®1ã€ã§ãã.gitlab-ci.ymlãã¡ã€ã«ã䜿çšãããããã€ã¹ã¯ãªãããã³ãŒããšããŠä¿åããæ¹æ³ãããŒã ã«æäŸããŸããã
çµ±åãã¹ãã«çµã¿èŸŒãŸããŠããã»ãã¥ãªãã£ãšè匱æ§ã®ã¹ãã£ã³ããããããããŒã«ã¯éåžžã«åœ¹ç«ã¡ãŸãããã以åã¯ã³ãŒãã®äžéšã«è§Šãããšå¥ã®éšåãå£ããŠããŸããšããç¶æ³ãç¶ããŠããŸããããããããããŒãã³ãŒããããã·ã¥ãããã³ã«ããã«åé¡ãç¹å®ã§ããããã«ãªããŸããããšLoganæ°ãã€ã·ã¥ãŒãããŒãžãªã¯ãšã¹ãããããšãããŒã å šäœã®ã¡ã³ããŒãã³ã©ãã¬ãŒã·ã§ã³ããå Žã確ä¿ãããŸããCIãå«ãŸããŠãããããããŒã ã«ãã¹ãŠã®ãããžã§ã¯ããæåããæåŸãŸã§è¡šç€ºã§ãããšããå¯èŠæ§ãåŸããããããã€ããåœãŠæšéãæé€ãããŸãããç¹å®ã®ãããžã§ã¯ãã«æ·±ãé¢ãã£ãŠããããç¥èãè±å¯ã ã£ãããããããšãã£ãŠèª°ãäžäººã«ãããã€ã®ç®¡çãä»»ããå¿ èŠã¯ãªããªããŸãããããŒã å šå¡ã«åãå¯èŠæ§ãæäŸãããŠããããã誰ãããããã€ã«åå ã§ããŸãã
GitLabãæ¡çšããåŸã«Web Factoryãæåã«æ°ã¥ããæåã¯ãã³ãŒãå質ã®åäžã§ãããGitLab CIã«çµã¿èŸŒãŸããã»ãã¥ãªãã£ãã¹ãã«ãããããããããŒã¯æ¬çªç°å¢ã«å°éããåã«ãã°ãè匱æ§ãç¹å®ã§ããããã«ãªããŸãããGitLab CIã䜿çšããããšã§ãWeb FactoryããŒã ã¯èªä¿¡ãæã£ãŠããé »ç¹ã«ãããã€ããããšãã§ããããã«ãªããŸãããæ¬çªç°å¢ã®ã»ããã¢ãããæäœæ¥ã«ãããã¹ãã«1æ¥ãè²»ãã代ããã«ãã·ã³ãã«ãªã¿ã¹ã¯ãèªååãããŸãããããã«ããããªãªãŒã¹æéã24æéããããã10åã«ãŸã§ççž®ãããŸãããçŸåšããªãªãŒã¹ã®98%ãæééããæ®ãã®2%ã¯æ°æé以å ã®é å»¶ã§è¡ãããŠãããšWeberæ°ã¯æšå®ããŠããã以åã®ç¶æ³ããå€§å¹ ã«æ¹åããŠããŸãã
å šå¡ã1ãæã§ã³ãã¥ãã±ãŒã·ã§ã³ãåãããããã³ã©ãã¬ãŒã·ã§ã³ãæ¹åãããŸãããæè¡çãªã¹ããŒã¯ãã«ããŒã¯èª°ã§ãçŸåšã®äœæ¥å 容ãããã»ã¹ã®ã©ã®æç¹ã«ããã®ããç¥ãããšãã§ããããããããŒã¯äœæ¥ã«å¿ èŠãªæ å ±ãããã«èŠã€ããããããã«ãªããŸãããããããããŒããã¶ã€ããŒãã»ãã¥ãªãã£ããªãã¬ãŒã·ã§ã³ããŒã å šå¡ãããŒã«ã«åå ããŸããGitLabã®æ¡çšã«äŒŽããæåŸ ãããŠããã³ãŒãå質ããµã€ã¯ã«ã¿ã€ã ãã³ãã¥ãã±ãŒã·ã§ã³ã®æ¹å以å€ã«ããããããããŒã®å¹žçŠåºŠã®åäžãšããWeberæ°ãšWeb FactoryããŒã ãäºæããŠããªãã£ãå¬ãããµãã©ã€ãºããããŸãããããšãã°ãGitLab CIã¯ãããã€ã®ã¹ãã¬ã¹ã軜æžããŸãããã誰ããäŒã¿ãåããšããŸãã«å°çã®ãããªç¶æ³ã«è¿œã蟌ãŸããããšããããŸããããšç¬ã£ãŠè©±ãWeberæ°ãèªååã®åäžã«ãããããããããŒã¯ã¢ããã°ã¬ãŒããæè¡çã«èŠæ±ã®å³ããã¿ã¹ã¯ãã¢ããããŒãã«éäžã§ããããã«ãªããŸãããæ°ããçãŸããèªç±æéãå©çšããããããããŒã¯ä»ã«ã©ããªããšãã§ããããã«ãªã£ãã®ã§ããããããæ©èœã®äœæã«æéã䜿ããããã«ãªããŸããïŒã ãšWeberæ°ãããã€ãŠã¯æéã®äœè£ããããŸããã§ããããä»ã¯ã¢ããªã±ãŒã·ã§ã³ã®æ©èœã®äœæãæ¹åãè¡ããããã«ãªã£ãŠããŸããåœç€Ÿã«ã¯17ã®ã¢ããªã±ãŒã·ã§ã³ããããããããããŒã¯éèŠãªäœæ¥ã«éäžã§ããããã«ãªããŸããã
ãŸããããããããŒã®æºè¶³åºŠåäžã¯äººæã®æ¡çšã«ããã©ã¹ã®åœ±é¿ãäžããŠããŸãã ãThe Web Factoryã¯ä»¥åã¯ããããããŒã®åéã«èŠåŽããŠããŸããããGitLabããã¯ãããžãŒã¹ã¿ãã¯ã®äžéšã«ãªã£ããããçµéšè±å¯ãªããããããŒããã®å¿åãå¢ããŠããŸãã ãšLoganæ°ãããããããŒãèªåã®ä»äºã«éäžã§ããããã«ãªããšãä»ã®æèœã®ããããããããŒãèªç¶ãšåŒãä»ããããŸããWeberæ°ã¯GitLabã®æ¡çšã«ããéçºããã»ã¹å šäœã®æ¹åã宿ããŠããŸããWeb FactoryããŒã ãGitLabã®äœ¿çšãéå§ããŠãã3幎ãWeberæ°ã¯GitLabããŒããŒãšããŠãèªèº«ã®çµéšãšå°éç¥èã宿çã«ä»è ãšå ±æããŠããŸããããŒã ãGitLabãæ¡çšããŠããªãã£ããããŒã ã®çŸåšã®å¹çæ§ã¯å®çŸãåŸãªãã£ãããšWeberæ°ã¯èããŠããŸãããããã»ã¹ãéçºæéãé·æåããç¶æ³ãç¶ãããããžã§ã¯ãã«ããããããŠéè·ããããããããŒã®æ°ãå¢ããŠããã§ãããã
ã±ãŒã¹ã¹ã¿ãã£ã«èšèŒãããŠããæ å ±ãé¢ä¿è ã¯ãã¹ãŠãçºè¡šæç¹ã®ãã®ã§ãã