GitLabã§ããŒãžã§ã³ç®¡çãå®è£ ããæ¹æ³
GitLabã¯ææ°ã®ãœãŒã¹ã³ãŒã管çãã·ã³ãã«ã«ãããœãããŠã§ã¢éçºããŒã ãããéããå¹ççã«ããªããªãŒãéæã§ããããæ¯æŽããŸãã
ããŸããŸãªèª²é¡ãæœåšçãªãœãªã¥ãŒã·ã§ã³ã«çŽé¢ãããšãããŒãžã§ã³ç®¡çã®å®è£ ã¯å°é£ã«ãªãå ŽåããããŸãããœãããŠã§ã¢éçºãããžã§ã¯ããæåãããã«ã¯ã匷åãªãœãŒã¹ç®¡çã·ã¹ãã ãåããè€æ°ã®éçºè ãåæã«ã³ã©ãã¬ãŒã·ã§ã³ã§ããããã«ããå¿ èŠããããŸããçŸä»£ã®éçºããŒã ã®ããŒãºãæºããããããœãªã¥ãŒã·ã§ã³ã«ã¯åæã®ã¢ã€ãã¢æ®µéããæ¬çªç°å¢ãŸã§ããããžã§ã¯ãå šäœããµããŒãããããã«èšèšãããå¹ åºãæ©èœãå¿ èŠã§ããGitLabã¯ãåäžã®ãã©ãããã©ãŒã ã§åªãããœãããŠã§ã¢ãããéãæäŸããããã®å æ¬çãªããŒãžã§ã³ç®¡çãœãªã¥ãŒã·ã§ã³ãæäŸããããŒãžã§ã³ç®¡çã®å®è£ æ¹æ³ãããã·ã³ãã«ãªãã®ã«ããŸãã
ã³ã©ãã¬ãŒã·ã§ã³ãã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãã³ã³ãã©ã€ã¢ã³ã¹ãšã»ãã¥ãªãã£ã¯ãå ç¢ãªãœãŒã¹ã³ãŒã管çã·ã¹ãã ã®3ã€ã®åºç€ã§ããããŒã ã¡ã³ããŒãååããŠé©æ°çãªãœãªã¥ãŒã·ã§ã³ãè¿ éã«äœæããç°å¢ã§ã¯ãé·ã䜿ããé«å質ãªã³ãŒãéçºãçãã«ãªããŸãã
次ã®ã»ã¯ã·ã§ã³ã§ã¯ããã®3ã€ã®èŠçŽ ããã詳现ã«èŠãŠãããŸãã
ããŒãžã§ã³ç®¡çãå®è£ ããæ¹æ³ã§ããããæãéèŠãªèŠçŽ ã¯ããœãããŠã§ã¢éçºããŒã ãååããŠäŸ¡å€ãæäŸããæ¹æ³ã§ãããã匷åãªã³ã©ãã¬ãŒã·ã§ã³ã«ãããã³ãŒãéçºã«ãœãªã¥ãŒã·ã§ã³ã«çŠç¹ãåœãŠãã¢ãããŒãã確ä¿ãããŸããGitLabã«ã¯ãçµç¹å šäœã®ã³ã©ãã¬ãŒã·ã§ã³ã匷åããããã®è€æ°ã®æ©èœããããŸãã
ã³ãŒãã¬ãã¥ãŒïŒé¡§å®¢äŸ¡å€ãšããžãã¹äŸ¡å€ã®åµåºã«ã¯ãé«å質ã®ã³ãŒããäžå¯æ¬ ã§ããã³ãŒãã¬ãã¥ãŒããã»ã¹ã確ç«ãããšãããŒã ã¯ã³ãŒããæ¹åããã³ã©ãã¬ãŒã·ã§ã³ã§ããããã«ãªããŸããGitLabã®ã€ã³ã©ã€ã³ã³ã¡ã³ãã¯éåæã®ã³ãŒãã¬ãã¥ãŒãšãã£ãŒãããã¯ãä¿é²ããŸããããŒã ã¡ã³ããŒã¯ããã§æå·®ãè¶ ããŠèããå ±æãããã£ã¹ã«ãã·ã§ã³ãææžåãããœãªã¥ãŒã·ã§ã³ãã©ã®ããã«å®çŸãããã説æã§ããŸãããã£ã¹ã«ãã·ã§ã³ãè¡ããå·®åå ã®ç¹å®ã®ã³ãŒãè¡ã«ãªã³ã¯ããã¹ã¬ãããçŽ æ©ã解決ã§ããããŒãžãªã¯ãšã¹ãã§ã®ã³ãŒãã¬ãã¥ãŒã¯ãGitLabã§æã䟿å©ãªæ©èœã®äžã€ã§ããããŒãžãªã¯ãšã¹ãã¬ãã¥ã¢ãŒã䜿çšãããšã¬ãã¥ãŒããã»ã¹ãããã·ã³ãã«ã«ãªããããŒã ã¡ã³ããŒã¯æ°åã®ã¯ãªãã¯ã§ã¬ãã¥ãŒããªã¯ãšã¹ãã§ããããã«ãªããŸããã³ãŒãã¬ãã¥ã¢ãŒã¯ãå·®åã§åçŽãªããŒã¯ããŠã³æ§æã䜿çšããŠã³ãŒãã®å€æŽãææ¡ã§ããŸãã
ã€ã³ããŒãœãŒã¹ïŒããŒã ã¯çµç¹å ã«ãªãŒãã³ãœãŒã¹ã®æåã確ç«ããŠãµã€ãåãè§£æ¶ããã³ãŒãã¬ãã¥ãŒã®æ©æŠãæžãããªããã³ãŒãã®ææžåã匷åã§ããŸããGitLabãªããããŒã ã¯ã³ã³ããªãã¥ãŒãã管çãããœãŒã¹ã³ãŒããä¿è·ããã¡ã³ãããŒããŒã«ãèšå®ã§ããŸããGitLabã¯ãœãããŠã§ã¢éçºã©ã€ããµã€ã¯ã«å šäœãç¶²çŸ ããåäžã¢ããªã±ãŒã·ã§ã³ã§ããçµç¹å šäœã®ã¡ã³ããŒãåå ã§ãããªã©ãããŒã ã¯ãããã¯ãŒã¯å¹æã®æ©æµãåããããšãã§ããŸããReview Appsã䜿ããšæ¬çªç°å¢ãžã®ãããã€åã®ã©ã€ã倿Žã確èªã§ããã³ã³ããªãã¥ãŒã¿ãŒãšã¬ãã¥ã¢ãŒã¯ãŠãŒã¶ãŒã«å€æŽãã©ã®ããã«è¡šç€ºãããããææ¡ã§ããŸãã
ãã¡ã€ã«ã®ããã¯ïŒãã¡ã€ã«ã®ããã¯ã¯ããŒã ããã€ããªãã¡ã€ã«ã管çããããŒãžã®ç«¶åãé²ãã®ã«åœ¹ç«ã¡ãŸããGitLabã®äœ¿çšã§ããªããžããªã®ãã¡ã€ã«ããã£ã¬ã¯ããªãžã®ããã·ã¥ã¢ã¯ã»ã¹æš©ãæã€ããŒã ã¡ã³ããŒã¯ã倿Žãã³ãããããã¬ãã¥ã¢ãŒãä»ã®ã³ã³ããªãã¥ãŒã¿ãŒã®ããã«ããã¯ãè§£é€ã§ããŸãã誰ããããã¯ãã¡ã€ã«ã«å€æŽãããã·ã¥ããããšãããšãã³ãããããããã¯ããäºååä¿¡ããã¯ã衚瀺ãããŸãããã¡ã€ã«ãããã¯ãããŠããã誰ãã倿Žãããã·ã¥ããå ŽåããGitLabãªãUIãšããŒãžããéã®ç«¶åã®è§£æ±ºã¯ç°¡åã§ããããŒã ã¡ã³ããŒã¯äž¡æ¹ã®ããŒãžã§ã³ã衚瀺ããä¿æãããªãã·ã§ã³ãéžæã§ããŸãã
Web IDEïŒGitLabã®Web IDEãšãã£ã¿ãŒã䜿çšãããšãããŒã ã¡ã³ããŒã¯ã³ãããã¹ããŒãžãåããé«åºŠãªãšãã£ã¿ãŒã䜿çšããŠãããžã§ã¯ãã«ç°¡åã«å€æŽãæçš¿ã§ããŸããã³ã³ããªãã¥ãŒã¿ãŒã¯ããã¡ã€ã«ãããŒãžãªã¯ãšã¹ãããŸãã¯ãªããžããªãã¡ã€ã«ãªã¹ãã衚瀺ããéã«Web IDEã«ã¢ã¯ã»ã¹ã§ããŸããWeb IDEã¯ãã¿ãŒããã«ã«å€æŽãå ããããšã«æµæãæããããŒã ã¡ã³ããŒã®åå ¥éå£ãäžãã广ããããŸããWeb IDEã䜿çšããã°ãã¹ãã«ã¬ãã«ã«é¢ä¿ãªãGitLabã§èª°ããã³ã©ãã¬ãŒã·ã§ã³ã«åå ã§ããããã«ãªããŸãã
GitLabã®Web IDEã§å°ããªå€æŽã远å ããæ¹æ³ãèŠã â
é«åºŠãªããŒãžã§ã³ç®¡çã¯ããœãããŠã§ã¢éçºããŒã ã驿°çãªãœãªã¥ãŒã·ã§ã³ãäœæããããã®è¿ éãªéçºç°å¢ãä¿é²ããŸããéçºè ãã³ãŒãã£ã³ã°ãè¡ããå¶äœç©ãè¿ éã«ç¢ºèªã§ããããã«ãªãã°æ©èœã®åŒ·åã«éäžã§ããäœè£ãçãŸãããŠãŒã¶ãŒã«é«å質ã®ãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããããã«ãªããŸããGitLabã«ã¯ãéçºãšããªããªãŒãå éããŠé¡§å®¢ã®ããŒãºãæºããããã«å¿ èŠãªæ©èœããã¹ãŠæã£ãŠããŸãã
GitããŒã¹ã®ãªããžããªïŒGitLabã¯ãGitãªããžããªãšããŠéçºè ãããŒã«ã«ã³ããŒããäœæ¥ããããšãå¯èœã«ããè¿ éãªãã©ã³ããšã³ãŒãéçºãå®çŸããŸããGitã¯é«éãªåæ£ãœãŒã¹ã³ãŒãã·ã¹ãã ã§ãããããéçºè ã¯ãµãŒããŒãšéä¿¡ããŠå€æŽãå ããã®ãåŸ ã€å¿ èŠã¯ãããŸãããGitLabã¯å€éšãœãŒã¹ãšã®ãªããžããªã®ãã©ãŒãªã³ã°ãå¯èœã«ãããããéçºè ã¯ãªããžããªéã§ã¿ã°ããã©ã³ããã³ããããèªåçã«ãã©ãŒãªã³ã°ã§ããŸããGitLabã¯ããã©ãŒã¯ã®Gitãªããžã§ã¯ãéè€æé€ã䜿çšããŠãªããžããªã¹ãã¬ãŒãžãã£ã¹ã¯ã®äœ¿çšãæå°éã«æããã®ã«åœ¹ç«ã¡ãŸãã
Git Partial Cloneã§å€§ããªãã¡ã€ã«ãäžåºŠã«ååŸããæ¹æ³ãèŠã â
ãã©ã³ãæ©èœïŒGitLabã䜿ããšãããŒã ã¡ã³ããŒã¯ã³ãŒãããã©ã³ããã倿Žãã¡ã€ã³ãã©ã³ãã«ããŒãžã§ããŸããGitLabã¯ããã®ã¯ãŒã¯ãããŒã®æè»æ§ã«ãããããŒã ã®èŠæš¡ã«é¢ãããã³ãŒãéçºã®å éã«äœ¿ãã¹ããã©ã³ãæŠç¥ã®æ±ºå®ã«åœ¹ç«ã¡ãŸããã³ãŒãéçºãããã«é«éåã§ãããããGitLabã§ã¯ã€ã·ã¥ãŒããã®ãã©ã³ãäœæãå¯èœã§ããã³ã³ããªãã¥ãŒã¿ãŒãè¿ éã«è¡åã§ããããã«ããããããªããžããªãšãã©ã³ãã®èªã¿åããŸãã¯æžã蟌ã¿ãã§ãããŠãŒã¶ãŒãå¶éããããã®æš©éãäœæããŸãããå¶éã¯ç¹å®ã®ãã©ã³ããä¿è·ããããã«é©çšã§ããŸãã
æå€§éã®ããªããªãŒãå®çŸããããã®æé©ãªãã©ã³ãæŠç¥ãèŠæ¥µãã â
ãã«ãã€ã³CI/CDïŒGitLab CI/CDã¯3ã€ã®ç¶ç¶çææ³(ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãããªããªãŒããããã€)ãããµãŒãããŒãã£ã®ã¢ããªã±ãŒã·ã§ã³ãã€ã³ãã°ã¬ãŒã·ã§ã³ãå¿ èŠãšãããœãããŠã§ã¢ã«é©çšããŸãããã«ãã€ã³CI/CDæ©èœã¯ãèªååãããã¹ã¯ãªãããå®è¡ããReview Appsã«ãã倿Žã®ãã¬ãã¥ãŒãã¢ããªã±ãŒã·ã§ã³ã®ãã«ããšãã¹ããç°ãªãç°å¢ãžã®ã¢ããªã±ãŒã·ã§ã³ã®ãããã€ããã€ãã©ã€ã³ã®ã¹ã±ãžã¥ãŒã«ãRunnerã®ã€ã³ã¹ããŒã«ãã»ãã¥ãªãã£ãã¹ãã¬ããŒãã«ããè匱æ§ã®ãã§ãã¯ãè¡ããŸãã
è€æ°ã®éçºè ããããžã§ã¯ãã«ã³ã³ããªãã¥ãŒããã倿§ãªãœãããŠã§ã¢éçºããŒã ã®å©ç¹ãšããŠãã³ãŒãã«ããŸããŸãªçµéšãæã€éçºè ã®ã€ã³ããããå ãããããããã€ãããŒã·ã§ã³ãä¿é²ãããããšããããŸããåµé æ§ã¯éçºäžã§éèŠã§ãããå®å®æ§ã確ä¿ããããã®å®å šè£ 眮ã確ç«ããå¿ èŠããããŸããè€æ°ã®éçºè ããããžã§ã¯ãã«ã³ã³ããªãã¥ãŒãããå ŽåããGitLabã¯ãœãŒã¹ã³ãŒããšãããžã§ã¯ãã¢ã¯ã»ã¹ãä¿è·ããå æ¬çãªã»ãã¥ãªãã£æ©èœãæäŸããŸãã
ããŒãžãªã¯ãšã¹ãïŒããŒãžãªã¯ãšã¹ãã䜿çšãããšãã³ãŒã倿Žã®è¿œè·¡ãã¬ãã¥ãŒãæ¿èªãå¯èœã«ãªããããŒã ããœãŒã¹ã³ãŒããä¿è·ã§ããããã«ãªããŸããGitLabã¯ãããŒã ãå¿ èŠãªããŒãžãªã¯ãšã¹ãã®æ¿èªãèšå®ããããã·ã¥ãããŒãžãã§ãããŠãŒã¶ãŒã®æš©éãå¶éã§ããŸããä¿è·ãã©ã³ãã«å ããGitLabã«ã¯Gitã¿ã°ã®åé€ããããã¯ããããã³ãããã¡ãã»ãŒãžã®åœ¢åŒãèŠæ±ããããããªã©ãç¹å®ã®ã«ãŒã«ãèšå®ããæ©èœããããŸããã³ãŒãããŒã¹ã第äžè ã®ç®ããä¿è·ãããããGitLabã¯ç§å¯ãå«ãå¯èœæ§ã®ãããã¡ã€ã«ãæåŠããŸãã
ã»ãã¥ãªãã£ãšã³ã³ãã©ã€ã¢ã³ã¹ã®ç®¡çïŒGitLabã®ã³ã³ãã©ã€ã¢ã³ã¹ç®¡çã«ã¯ãã³ã³ãã©ã€ã¢ã³ã¹ãã¬ãŒã ã¯ãŒã¯ã«åŸãã«ãŒã«ã決å®ããããã®ããªã·ãŒç®¡çãããŒã ã¡ã³ããŒãåºæºã«æºæ ã§ããããã«ããããã®èªåã³ã³ãã©ã€ã¢ã³ã¹ã¯ãŒã¯ãããŒãã€ã³ã·ãã³ããšç¢ºç«ãããããªã·ãŒã®éµå®ãèšé²ããããã®ç£æ»ç®¡çããããŸããGitLabã䜿çšããã»ãã¥ãªãã£ç®¡çã«ããããã¹ãŠã®ã³ãããã§å質ãšã»ãã¥ãªãã£ã®ã³ãŒããèªåçã«ã¹ãã£ã³ã§ããããŒã ã¯ã»ãã¥ãªãã£ã¹ãã£ã³ãšã©ã€ã»ã³ã¹ã³ã³ãã©ã€ã¢ã³ã¹ãç°¡åã«éµå®ã§ããŸããéçºè ã¯ã³ãŒãã®äœæ¥äžã«çŽã¡ã«è匱æ§ãä¿®æ£ããããã¯ã³ã¯ãªãã¯ã§åé¡ãäœæãããã§ããŸãããã»ãã¥ãªãã£å°éå®¶ã¯ããã·ã¥ããŒãã䜿çšããŠéçºè ãç¬èªã«è§£æ±ºã§ããªãã£ãè匱æ§ã確èªã§ããŸããããã«ãGitLabã¯SSHããŒã䜿çšããŠGitãšãµãŒããŒéã®å®å šãªéä¿¡ãäœæããŸãã
GitLabã§éçºè ãå®å šãªã³ãŒããæžãããã®4ã€ã®æ¹æ³ãèŠã â
ã¢ã¯ã»ã¹å¶åŸ¡ïŒGitLabã¯ããã现ããªã¢ã¯ã»ã¹å¶åŸ¡ãšã¬ããŒãæ©èœã«ãããç£æ»ãšã³ã³ãã©ã€ã¢ã³ã¹ãã·ã³ãã«ã«ããŸããGitLabã®é«åºŠãªã¢ã¯ã»ã¹å¶åŸ¡æ©èœã䜿çšãããšããããžã§ã¯ãã®äœæ/åé€ãä¿è·ãããããžã§ã¯ããã°ã«ãŒããã¹ããããã®è¡šç€ºã¬ãã«ãå¶éã§ããŸããGitLabã³ãŒããªãŒããŒã¯ãããŒã ãç¹å®ã®ãªããžããªãã¡ã€ã«ããã¹ã®ææè ãèå¥ããã®ã«åœ¹ç«ã¡ãŸããããã«ãããã³ã³ããªãã¥ãŒã¿ãŒã¯ãªãŒããŒãšå€æŽå 容ãå ±æããŠå質ã確ä¿ã§ããŸãã
ããŒãžã§ã³ç®¡çã®å®è£ ã¯ããœãããŠã§ã¢éçºã«ãããéèŠãªé²æ©ã象城ãããã®ã§ããããŒãžã§ã³ç®¡çã®å©ç¹ãšDevOpsã®ä¿ææ§ãèåããããœãããŠã§ã¢ããŒã ãæå€§éã«æŽ»èºã§ããç°å¢ãäœãåºããŸãããœãããŠã§ã¢éçºç°å¢ãé²åãç¶ããã®ãšåæã«GitLabã®å æ¬çãªããŒãžã§ã³ç®¡çãœãªã¥ãŒã·ã§ã³ãæ¡çšããããšã§ãçµç¹ã¯å°æ¥ã®èª²é¡ã«å¯Ÿå¿ããæ°ããæ©äŒãã€ããããã«å¿ èŠãªããŒã«ãæã«å ¥ããããŸãã
GitLabã®ãã©ãããã©ãŒã ã¯ããœãããŠã§ã¢ããŒã ãšDevOpsããŒã éã®ã³ã©ãã¬ãŒã·ã§ã³ã匷åããªãããåªããã³ãŒãå質ãšå¹ççãªãããžã§ã¯ã管çãä¿èšŒããŸããããŒãžã§ã³ç®¡çãœãããŠã§ã¢ãšå æ¬çãªDevOpsæ £è¡ãçµ±åããããšã§ãGitLabã¯ãœãããŠã§ã¢ããŒã ã®éèŠãªããŒãºã«å¯Ÿå¿ããçµ±åãœãªã¥ãŒã·ã§ã³ãæäŸãæ¯é¡ã®ãªãé床ã§åªãããœãããŠã§ã¢ãããªããªãŒããéãåãéããŸãã
GitLabãå æ¬çãªããŒãžã§ã³ç®¡çãœãªã¥ãŒã·ã§ã³ã§ã³ã©ãã¬ãŒã·ã§ã³ãä¿é²ããæ¹æ³
ããŒãžã§ã³ç®¡çã«ã€ããŠè©³ããèŠã
ãã©ãŒãã¥ã³100äŒæ¥ã®50%以äžãGitLabãä¿¡é Œ
ããåªãããœãããŠã§ã¢ãããéãæäŸ
ã€ã³ããªãžã§ã³ããªDevSecOpsãã©ãããã©ãŒã ã§
ããŒã ã®å¯èœæ§ãåºããŸãããã

