content
"}},Qt={element:"span",mutate:function(e){e.setAttribute("style","display: -webkit-flex; display: -ms-flexbox; display: flex;"),e.innerHTML='hello'}},Yt={element:"form",mutate:function(e){e.setAttribute("tabindex",0),e.setAttribute("disabled","disabled")}},en={element:"a",mutate:function(e){return e.href="#void",e.innerHTML='content
",e.firstElementChild}},xn=function(e){if(!e.ownerSVGElement&&"svg"!==e.nodeName.toLowerCase())return!1;var t=s();e.appendChild(t);var n=t.querySelector("input");return n.focus(),n.disabled=!0,e.removeChild(t),!0},yn={element:"div",mutate:function(e){return e.innerHTML=c('GitLab UltimateãããŒã ã«ããããã¡ãªããã«ã€ããŠã芧ãã ãã
The Zebra瀟ã¯ããœãŒã¹ã³ãŒã管çãCI/CDãã»ãã¥ãªãã£ã®ããã«ãGitHubãšJenkinsã®ä»£ãããšããŠGitLabãæ¡çšããŸããã
ãªã³ã©ã€ã³ä¿éºæ¯èŒãµã€ããéå¶ããThe Zebra瀟ã¯ãSCMãCI/CDãSASTãDASTãè¡ãããã«GitLabãæ¡çšããŸããã
ïŒGitLabã®ïŒæå€§ã®äŸ¡å€ã¯ãéçºããŒã ããããã€ããã»ã¹ã«ãããŠããã倧ããªåœ¹å²ãæãããããã«ãªãããšã§ãã以åã¯ãå šäœåãå®éã«ææ¡ããŠãã人ã¯ã»ãã®ãããã§ããããä»ã§ã¯éçºçµç¹å šäœãCIãã€ãã©ã€ã³ã®ä»çµã¿ãçè§£ããäžã§ããã䜿çšããããæ°ãããµãŒãã¹ã远å ãããããã»ããã€ã³ãã©ã¹ãã©ã¯ãã£ãããã«ããã¯ã«ãªãããšãªãæ¬çªç°å¢ã«ç§»è¡ããããšãã§ããŠããŸãã
The Zebra瀟ã¯ãä¿éºäŒç€Ÿãç°¡åã«æ¯èŒã§ããããã«ããããšãç®çã«èšç«ãããŸããã2012幎åµç«ã®å瀟ã¯ãèªåè»ä¿éºã®ãªãã·ã§ã³ã調æ»ããå©çšå¯èœãªæè¯ã®æéãæç€ºãããªã³ã©ã€ã³ã®ä¿éºæ¯èŒã·ã§ããã§ããThe Zebraç€Ÿã¯æè¿ãäœå® ææè ä¿éºãšè³è²žä¿éºã«ããã®æ¥åãæ¡å€§ããŸããã
The Zebra瀟ã¯ãGitHubããªããžããªãšããŠãJenkinsããããã€ã®ããã«äœ¿çšããŠããŸãããå瀟ããŒã ã¯ãŸããTerraformã䜿çšããŠAWSã«ãããã€ããŠããŸãããJenkinsã®ãã©ã°ã€ã³ã®æ°ã«ãããå§åçãªéã®ç®¡çäœæ¥ãçããŠããŸããããã®äžãããŸããŸãªãã©ã°ã€ã³ã®ååšã¯ãäžéšã®ããŒã«ããµããŒããããªããªã£ããããããã€ç°å¢ã§æŽæ°ã§ããªããªã£ãããããªã©ãã»ãã¥ãªãã£äžã®è匱æ§ãåŒãèµ·ãããŠããŸããã
ãç§ãã¡ãæ±ããŠããæå€§ã®åé¡ã¯ãGitLabã®å°å ¥åã«Jenkinsã䜿çšããŠãããã€ããŠããããšã§ããããã©ã°ã€ã³ã®æ°ãéåžžã«å€ããéåžžã«å£ããããã£ãããã誰ãè§ŠããããšããŸããã§ããããšèªãã®ã¯ãã·ãã¢ãœãããŠã§ã¢ãããŒãžã£ãŒã®Dan Bereczkiæ°ãããããŠè§Šãã人ã ããããšç Žæãã忥ïœ1æ¥ãä¿®æ£ãã¢ããã°ã¬ãŒããè¡ãå¿ èŠããã£ããããäžæçã«ãããã€ãä¿çã«ããããåŸãŸããã§ããã
ããŒã ã¯æ¢åã®CI/CDããã»ã¹ãæ¹åããããšèããŠããŸããããããã¯Jenkinsã«ãã©ã°ã€ã³ã远å ããããšãæå³ãããããŸã§è¡ã£ãŠããã¡ã³ããã³ã¹äœæ¥ãããã«è€éã«ãªããããããããŸãããThe Zebra瀟ã¯ããã¹ããšã»ãã¥ãªãã£ãçµ±åããŠããŸããŸãªç°ãªããã©ãããã©ãŒã ãžã®ãããã€ãå¯èœã«ããæ°ãããœãªã¥ãŒã·ã§ã³ãå¿ èŠãšããŠããŸããã
é±ã«1åãããé±ã«2åãŸã§ãããã€é »åºŠãå¢ãããŸãããä»ã¯ããã¹ãã®æ€èšŒã«æ £ããŠãããšããã§ãã幎æ«ãŸã§ã«ã¯ç¶ç¶çãªãããã€ãè¡ããããã«ãªãããšããããŠèªç±ã«ãããã€ã§ããããã«ãªãããšãé¡ã£ãŠããŸãã
The Zebra瀟ã¯ãæ¢åã®ãã©ã°ã€ã³ã眮ãæãã管çã®ã¹ãã¬ã¹ã軜æžããããã«ãããŸããŸãªãã©ãããã©ãŒã ãæ€èšããŸããããã®çµæããã©ã°ã€ã³ã管çããå¿ èŠããªãã匷åããããªããžããªãæäŸããGitLabãæ¡çšããŸãããCI/CDæ©èœããã£ãã®ãé åã§ããã
ããã ãã§ãªããçµã¿èŸŒã¿ã®ã»ãã¥ãªãã£ãªã©ãä»ã®ãœãªã¥ãŒã·ã§ã³ã«ã¯ãªãæ©èœãæäŸãããŠããããšãããããŒã ã¯GitLabã®æ¡çšã«ç±ãæåŸ ãæ±ããŠããŸããããããŒã ã¯ããã»ã¹ãå¶åŸ¡ã§ããç¯å²ãå¢ãããšãã宿ãåŸãã ãã§ãªããç§»è¡ãéåžžã«ç°¡åã§ãã£ããšæããŸãããç§»è¡ã¯3ãæä»¥å ã§å®äºããããšãã§ããŸããããšBereczkiæ°ãJenkinsã®ã³ãŒãã®95%ã3ãæä»¥å ã«ç§»è¡ãããçŸåšã§ã¯JenkinsãšGitHubããã®å®å šãªç§»è¡ãå®çŸããŸããã
6ã€ããã¢ããªã±ãŒã·ã§ã³éçºããŒã ã®ãã¹ãŠããããŠéçºä»¥å€ã®è€æ°ã®ããŒã ãGitLabã䜿çšããŠããŸãããJenkinsã®è€éããçè§£ããåé¡ãä¿®æ£ã§ããã®ã¯ããã1ïœ2人ã§ããããGitLabãã€ãã©ã€ã³ã®äœ¿ç𿹿³ã¯èª°ããç¥ã£ãŠããŸãããšBereczkiæ°ãGitHubãCodeship CIãJenkins Deployã®3ã€ã®ããŒã«ã䜿çšããŠããããŒã ã¯ãå®å šã«çµ±åã»èªååãããGitLab CI/CDã ãã䜿çšããããã«ãªããŸããã
GitLabã䜿çšãããšãããŒã ã¯ä»ã®ã¹ã±ãžã¥ãŒã«ãåŸ ããã«èªç±ã«ãããã€ã§ãããããThe Zebra瀟ã¯ç¶ç¶çãªãããã€ãžã®ç§»è¡ã«éäžã§ããããã«ãªããŸããããã¹ãŠã®éçºããŒã ã¯CIãã€ãã©ã€ã³ã®ä»çµã¿ãææ¡ããŠããããã€ãã©ã€ã³å ã§äœæ¥ã§ããããããããã€ããã»ã¹ã«ãããŠãã倧ããªåœ¹å²ãæ ãããã«ãªã£ãŠããŸãããã®äžãã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãã¯ããããã€ã«ãããããã«ããã¯ã§ã¯ãããŸããã
ã¯ãŒã¯ãããŒã¯éåžžãããŒã±ãã£ã³ã°ããŒã ã®ãªã¯ãšã¹ãããå§ãŸããŸãããã®åŸãæè¡çãªæŠèŠãäœæãããJiraãã±ããã«åå²ãããŠãããé©åãªããŒã ã«å²ãåœãŠãããŸãããããŠäœæ¥ãè¡ãããŠã³ãŒããçæãããGitLabã®ãªããžããªã«å ¥ããŸãããã®åŸãããŒã ã¯GitLab CI/CDãã€ãã©ã€ã³ã䜿çšããŠéçºç°å¢ã«ãããã€ããŸãããã¹ãããã³ãããã€ããã»ã¹äžã«æ§æã®å€æŽã確å®ã«ç¶æãããããã«ããããã«ãInfrastructure as Codeã®å®è£ ã«ã¯Terraformã䜿çšããŠããŸãã
ããŒã ã¯RDSãšãšãã«Amazon EKSã䜿çšããŠããŸãããã©ãã£ãã¯ã®ã«ãŒãã£ã³ã°ã¯ããŸãã¯Cloudflareã«ãã£ãŠåŠçãããåŸãå éšã®Elastic Load Balancingã«ãã£ãŠåŠçãããŸããããããããŒãThe Zebra瀟ã®ãµãŒãã¹ãå€éšã«æ¥ç¶ããå¿ èŠãããå ŽåããµãŒãããŒãã£ã®ãµãŒãã¹ã§ããAmazon Virtual Private Cloudã䜿çšããŸãããç§ãã¡ã¯ã誰ãã©ã®ããã«æ©èœããããç¥ããªããã©ãã¯ããã¯ã¹ã®ãããªã·ã¹ãã ã¯æãã§ããŸãããä»ããããã£ãç¶æ ããåŸã ã«è±åŽããŠãããšããã§ãããšBereczkiæ°ã
GitLabã«ããæ¬çªç°å¢ãŸã§ç¬èªã®ã³ãŒãã管çã§ããããã«ãªã£ããããéçºããŒã éã®éšé暪æçãªé¢ä¿ãå®çŸããŸãããããããããŒã¯ãããã€ã®åã¹ããããçè§£ããã¯ãŒã¯ãããŒã®ä»ã®éšåãäžæãããŠããŸãããšãå¿é ãããããããåé¡ã解決ããŠå€æŽãå ããããšãã§ããŸãã
GitLabã®SASTãšDASTã䜿çšãããšãSOC2ã¿ã€ã1èªèšŒã®ã³ã³ãã©ã€ã¢ã³ã¹ã容æã«å®çŸã§ããŸããçŸåšãå瀟ããŒã ã¯SOC2ã¿ã€ã2èªèšŒã®æäžã«ãããŸããããã«ããªã¹ã¯ã軜æžãã远å ã®ãã¹ããšã»ãã¥ãªãã£å¯ŸçãæäŸãããŸãããæã倧ããªåœ±é¿ã¯ãããŸãã«ãå€ãã®è匱æ§ãæœãã§ãããããã«å¯ŸåŠã§ããããã«ãªã£ãããšã§ããçŸåšä¿®æ£ãè¡ã£ãŠãããšããã§ãããšBereczkiæ°ããããŸã§ã«ã4ã€ã®ãããžã§ã¯ãã§èŠã€ãã£ããæ·±å»ãããã³ãé«ãã®é倧床ã®åé¡ããã¹ãŠä¿®æ£ããŸããããå¬ããããšã«ãä»ã§ã¯ãã®ããã»ã¹ã¯ãã€ãã©ã€ã³ã®äžéšãšãªã£ãŠãããããäŸµå ¥ãã¹ãããååæã幎2åããšã®ãã¹ãã®å®æœæã«ãªã£ãŠããæ ãŠãŠä¿®æ£ããå¿ èŠããªããªããŸããããšBereczkiæ°ã¯ä»ãå ããŠããŸãã
ã±ãŒã¹ã¹ã¿ãã£ã«èšèŒãããŠããæ å ±ãé¢ä¿è ã¯ãã¹ãŠãçºè¡šæç¹ã®ãã®ã§ãã