åå¿è
åãã® XNUMX ã€ã®ã¹ãããã§æåã® DevOps ãã§ãŒã³ãæ§ç¯ããŸãã
DevOps ã¯ãé ããããæ¥ç¶ãåæãããŠããããã®ä»åé¡ã®ããéçºããã»ã¹ã«å¯Ÿããäžèœè¬ãšãªã£ãŠããŸãã ãã ããDevOps ã«é¢ããæå°éã®ç¥èã¯å¿ èŠã§ãã DevOps ãã§ãŒã³ãªã©ã®æŠå¿µãšãXNUMX ã€ã®ã¹ããã㧠DevOps ãã§ãŒã³ãäœæããæ¹æ³ã«ã€ããŠèª¬æããŸãã ããã¯å®å šãªã¬ã€ãã§ã¯ãªããæ¡åŒµå¯èœãªãéãã«ãããŸããã æŽå²ããå§ããŸãããã
DevOps ã«ã€ããŠã®ç§ã®çŽ¹ä»
ç§ã¯ä»¥å Citi Group ã§ã¯ã©ãŠãã«æºãã£ãŠãããCiti ã®ã¯ã©ãŠã ã€ã³ãã©ã¹ãã©ã¯ãã£ã管çããããã® IaaS Web ã¢ããªã±ãŒã·ã§ã³ãéçºããŠããŸããããéçºãã§ãŒã³ãæé©åããéçºè
éã®æåãæ¹åããæ¹æ³ã«åžžã«èå³ãæã£ãŠããŸããã åŒç€Ÿã®ã¯ã©ãŠã ã¢ãŒããã¯ãã£ããã³ã€ã³ãã©ã¹ãã©ã¯ãã£æ
åœ CTO ã§ãã Greg Lavender ãããã®æ¬ãç§ã«å§ããŠãããŸããã
è£é¢ã®è¡šã¯ãäŒæ¥ãæ°ããããŒãžã§ã³ãå ¬éããé »åºŠã瀺ããŠããŸãã
AmazonãGoogleãNetflix ã¯ã©ã®ããã«ããŠããã»ã©å€ãã®ãµãŒãã¹ãå±éã§ããã®ã§ãããã? ããã¯ç°¡åã§ãã圌ãã¯ãã»ãŒå®ç§ãª DevOps ãã§ãŒã³ãäœæããæ¹æ³ãèŠã€ãåºããã®ã§ãã
DevOps ã«åãæ¿ãããŸã§ãCiti ã§ã¯ç¶æ³ã倧ããç°ãªããŸããã ãã®åŸãç§ã®ããŒã ã«ã¯ããŸããŸãªç°å¢ããããŸããããéçºãµãŒããŒãžã®é ä¿¡ã¯æåã§è¡ããŸããã ãã¹ãŠã®éçºè ã¯ãIBM WebSphere Application Server Community Edition ã«åºã¥ã XNUMX ã€ã®éçºãµãŒããŒã®ã¿ã«ã¢ã¯ã»ã¹ã§ããŸããã åæã«é ä¿¡ããããšãããšãµãŒããŒããèœã¡ãŠãããŸãããã®ãã³ã«ç§ãã¡ã¯èªåãã¡ã§ãèŠåŽããŠã亀æžããªããã°ãªããŸããã§ããã ãŸãããã¹ãã«ããã³ãŒã ã«ãã¬ããžãäžååã§ãæåé ä¿¡ããã»ã¹ã«æéãããããã¿ã¹ã¯ãã¯ã©ã€ã¢ã³ãã®èŠä»¶ãå©çšããŠã³ãŒãã®é ä¿¡ã远跡ããæ¹æ³ããããŸããã§ããã
äœããæ©æ¥ã«è¡ãå¿ èŠãããããšã¯æããã§ãç§ã¯åãèããæã€ååãèŠã€ããŸããã ç§ãã¡ã¯æåã® DevOps ãã§ãŒã³ãäžç·ã«äœæããããšã«ããŸããã圌ã¯ä»®æ³ãã·ã³ãš Tomcat ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒãã»ããã¢ããããç§ã¯ JenkinsãAtlassian Jira ããã³ BitBucket ãšã®çµ±åããã¹ãã«ããã³ãŒã ã«ãã¬ããžãæ åœããŸããã ãããžã§ã¯ãã¯æåããŸãããéçºãã§ãŒã³ãå®å šã«èªååããéçºãµãŒããŒã§ã»ãŒ 100% ã®çšŒåæéãéæãããã¹ãã§ã³ãŒã ã«ãã¬ããžãç£èŠããã³æ¹åããããšãã§ããGit ãã©ã³ãã Jira ã®é ä¿¡ãšèª²é¡ã«çµã³ä»ããããšãã§ããŸããã ãããŠãDevOps ãã§ãŒã³ã®æ§ç¯ã«äœ¿çšããããŒã«ã®ã»ãŒãã¹ãŠããªãŒãã³ãœãŒã¹ã§ããã
å®éãJenkins ã Ansible ã䜿çšããé«åºŠãªæ§æããé©çšããªãã£ãããããã§ãŒã³ã¯ç°¡çŽ åãããŸããã ããããç§ãã¡ã¯æåããŸããã ããããããã¯åçã®çµæã§ã
DevOps ãš CI/CD ãã§ãŒã³ã®ç°¡åãªèª¬æ
DevOps ã«ã¯ããŸããŸãªå®çŸ©ããããŸãã DevOps ã«ã¯ãã¢ãžã£ã€ã«ãšåæ§ã«ãããŸããŸãªåéãå«ãŸããŸãã ããããã»ãšãã©ã®äººã¯æ¬¡ã®å®çŸ©ã«åæããã§ããããDevOps ã¯ãœãããŠã§ã¢éçºã®æ¹æ³ãŸãã¯ã©ã€ããµã€ã¯ã«ã§ããããã®äž»ãªååã¯ãéçºè ãšä»ã®åŸæ¥å¡ããåãæ³¢é·ãåããããæäœæ¥ãèªååããã誰ããèªåã®åŸæãªããšãè¡ãããã«ãªããé éã®é »åºŠãå¢å ããä»äºã®çç£æ§ãåäžããæè»æ§ãåäžããŸãã
ããŒã«ã ãã§ã¯ DevOps ç°å¢ãæ§ç¯ããã«ã¯ååã§ã¯ãããŸããããäžå¯æ¬ ãªãã®ã§ãã ãããã®äžã§æãéèŠãªã®ã¯ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãšç¶ç¶çããªããªãŒ (CI/CD) ã§ãã åç°å¢ã®ãã§ãŒã³ã«ã¯ããŸããŸãªæ®µéããããŸã (äŸ: DEV (éçº)ãINT (çµ±å)ãTST (ãã¹ã)ãQA (å質ä¿èšŒ)ãUAT (ãŠãŒã¶ãŒåãå ¥ããã¹ã)ãSTG (æºå)ãPROD (䜿çš)) ãæåã¿ã¹ã¯ãèªååãããéçºè ã¯é«å質ã®ã³ãŒããäœæããŠé ä¿¡ããç°¡åã«åæ§ç¯ã§ããŸãã
ãã®ããŒãã§ã¯ã以äžã®å³ã«ç€ºãããã«ããªãŒãã³ãœãŒã¹ ããŒã«ã䜿çšã㊠DevOps ãã§ãŒã³ã XNUMX ã€ã®ã¹ãããã§äœæããæ¹æ³ã«ã€ããŠèª¬æããŸãã
æ¬é¡ã«å ¥ããŸãããã
ã¹ããã 1: CI/CD ãã©ãããã©ãŒã
ãŸããCI/CD ããŒã«ãå¿ èŠã§ãã Jenkins ã¯ãMIT ã©ã€ã»ã³ã¹ã® Java ã§æžããããªãŒãã³ãœãŒã¹ CI/CD ããŒã«ã§ãDevOps éåãæ®åãããCICD ã®äºå®äžã®æšæºãšãªã£ãŠããŸãã
ãžã§ã³ãã³ã¹ãšã¯äœã§ãã? ããŸããŸãªãµãŒãã¹ãããŒã«ãæäœã§ããéæ³ã®ã³ã³ãããŒã« ããã«ããããšæ³åããŠãã ããã Jenkins ã®ãã㪠CI/CD ããŒã«ã¯ãããèªäœã§ã¯åœ¹ã«ç«ã¡ãŸããããããŸããŸãªããŒã«ããµãŒãã¹ã䜿çšãããšäžèœã«ãªããŸãã
Jenkins ã«å ããŠãä»ã«ãå€ãã®ãªãŒãã³ãœãŒã¹ ããŒã«ãããã®ã§ãã©ãããéžæããŠãã ããã
CI/CD ããŒã«ã䜿çšãã DevOps ããã»ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
localhost ã«ã¯ CI/CD ããŒã«ããããŸãããããã¹ãããšã¯ãŸã å€ããããŸããã 次ã®ã¹ãããã«é²ã¿ãŸãããã
ã¹ããã 2: ããŒãžã§ã³ç®¡ç
CI/CD ããŒã«ã®é åããã¹ãããæè¯ã® (ãããŠããããæãç°¡åãª) æ¹æ³ã¯ãCI/CD ããŒã«ããœãŒã¹ç®¡ç管ç (SCM) ããŒã«ãšçµ±åããããšã§ãã ãªãããŒãžã§ã³ç®¡çãå¿ èŠãªã®ã§ãããã? ã¢ããªã±ãŒã·ã§ã³ãäœæããŠãããšããŸãã JavaãPythonãC++ãGoãRubyãJavaScriptããŸãã¯ãã®ä»ã®ã¯ãŽã³ãå°ããªã«ãŒãã«çžåœããèšèªã§äœæããŸãã æžãããã®ããœãŒã¹ã³ãŒããšãããŸãã æåã¯ãç¹ã«äžäººã§äœæ¥ããŠããå Žåã¯ããã¹ãŠãããŒã«ã« ãã£ã¬ã¯ããªã«ä¿åã§ããŸãã ãããããããžã§ã¯ããæé·ããåå ãã人ãå¢ãããšãã³ãŒãã®å€æŽãå ±æããªãããå€æŽãããŒãžããéã®ç«¶åãåé¿ããæ¹æ³ãå¿ èŠã«ãªããŸãã ãŸããããã¯ã¢ããã䜿çšããããã³ãŒã ãã¡ã€ã«ã®ã³ã㌠ã¢ã³ã ããŒã¹ãã䜿çšãããããã«ãäœããã®æ¹æ³ã§ä»¥åã®ããŒãžã§ã³ã埩å ããå¿ èŠããããŸãã
ãããŠããã«ã¯SCMãã©ãã«ããããŸããã SCM ã¯ã³ãŒãããªããžããªã«ä¿åãããã®ããŒãžã§ã³ã管çããéçºè éã§ã³ãŒãã調æŽããŸãã
SCM ããŒã«ã¯æ°å€ããããŸãããGit ã¯åœç¶ã®ããšãªããäºå®äžã®æšæºã«ãªã£ãŠããŸãã ããã䜿çšããããšããå§ãããŸãããä»ã®ãªãã·ã§ã³ããããŸãã
SCM ãè¿œå ããåŸã® DevOps ãã€ãã©ã€ã³ã¯æ¬¡ã®ããã«ãªããŸãã
CI/CD ããŒã«ã¯ããœãŒã¹ ã³ãŒãã®ã¢ããããŒããšããŠã³ããŒããããã³ããŒã ã³ã©ãã¬ãŒã·ã§ã³ãèªååã§ããŸãã æªããªãïŒ ãããããããããäœååãã®ãŠãŒã¶ãŒã«æãããå®çšçãªã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«äœæããã®ã§ãããã?
ã¹ããã 3: ãã«ãèªååããŒã«
ãã¹ãŠãé 調ã«é²ãã§ããŸãã ã³ãŒããã¢ããããŒãããŠãœãŒã¹ç®¡çã«å€æŽãã³ãããããå人ãæåŸ ããŠäžç·ã«äœæ¥ããããšãã§ããŸãã ããããããªãã¯ãŸã ã¢ããªãæã£ãŠããŸããã ããã Web ã¢ããªã±ãŒã·ã§ã³ã«ããã«ã¯ãé åžçšã«ã³ã³ãã€ã«ããã³ããã±ãŒãžåããããå®è¡å¯èœãã¡ã€ã«ãšããŠå®è¡ããå¿ èŠããããŸãã (JavaScript ã PHP ãªã©ã®ã€ã³ã¿ãŒããªã¿åããã°ã©ãã³ã°èšèªã¯ã³ã³ãã€ã«ããå¿ èŠã¯ãããŸããã)
ãã«ãèªååããŒã«ã䜿çšããŸãã ã©ã®ããŒã«ãéžæããŠããã³ãŒããé©åãªåœ¢åŒã§ã¢ã»ã³ãã«ãããã¯ãªãŒã³ã¢ãããã³ã³ãã€ã«ããã¹ããé ä¿¡ãèªååãããŸãã ãã«ã ããŒã«ã¯èšèªã«ãã£ãŠç°ãªããŸããã次ã®ãªãŒãã³ ãœãŒã¹ ãªãã·ã§ã³ãäžè¬çã«äœ¿çšãããŸãã
å®å šïŒ ããã§ããã«ãèªååããŒã«æ§æãã¡ã€ã«ããœãŒã¹ç®¡çã«æ¿å ¥ããŠãCI/CD ããŒã«ããããããã«ãã§ããããã«ããŸãããã
æ°æã¡ããã§ããã ãããããããã©ãã«å±éããã°ããã®ã§ãããã?
ã¹ããã 4: Web ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒ
ããã§ãå®è¡ãŸãã¯ããŒã«ã¢ãŠãã§ããããã±ãŒãžåããããã¡ã€ã«ãå®æããŸããã ã¢ããªã±ãŒã·ã§ã³ãæ¬åœã«åœ¹ç«ã€ããã«ã¯ãäœããã®ãµãŒãã¹ãŸãã¯ã€ã³ã¿ãŒãã§ã€ã¹ãå¿ èŠã§ãããããããã¹ãŠã©ããã«é 眮ããå¿ èŠããããŸãã
Web ã¢ããªã±ãŒã·ã§ã³ã¯ Web ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒäžã§ãã¹ãã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒã¯ãããã±ãŒãžåãããããžãã¯ãå®è¡ããã€ã³ã¿ãŒãã§ã€ã¹ãã¬ã³ããªã³ã°ãããœã±ããçµç±ã§ Web ãµãŒãã¹ãå ¬éã§ããç°å¢ãæäŸããŸãã ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒãã€ã³ã¹ããŒã«ããã«ã¯ãHTTP ãµãŒããŒãšãã®ä»ã®ããã€ãã®ç°å¢ (ä»®æ³ãã·ã³ãªã©) ãå¿ èŠã§ãã çŸæç¹ã§ã¯ããã®ãã¹ãŠãé²è¡äžã«åŠçããŠãããšä»®å®ããŸããã (ãã ããã³ã³ãããŒã«ã€ããŠã¯ä»¥äžã§èª¬æããŸã)ã
ãªãŒãã³ãª Web ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒãããã€ããããŸãã
ç§ãã¡ã¯ãã§ã«ã»ãŒæ©èœãã DevOps ãã§ãŒã³ãæã£ãŠããŸãã ãããã£ãïŒ
ååãšããŠãããã§åæ¢ããŠããã®åŸã¯èªåã§åŠçã§ããŸãããã³ãŒãã®å質ã«ã€ããŠè©±ããŠãã䟡å€ã¯ãããŸãã
ã¹ããã 5: ã«ãã¬ããžããã¹ããã
ãã¹ãã«ã¯å€ãã®æéãšåŽåãããããŸããããã°ãããã«èŠã€ããŠã³ãŒããæ¹åããŠãšã³ã ãŠãŒã¶ãŒãæºè¶³ãããæ¹ãè¯ãã§ãããã ãã®ç®çã®ããã«ãã³ãŒãããã¹ãããã ãã§ãªããã³ãŒããæ¹åããæ¹æ³ã«ã€ããŠã¢ããã€ã¹ãããªãŒãã³ ããŒã«ãå€æ°ãããŸãã ã»ãšãã©ã® CI/CD ããŒã«ã¯ãããã®ããŒã«ã«ãã©ã°ã€ã³ããŠããã»ã¹ãèªååã§ããŸãã
ãã¹ãã¯ããã¹ãã®äœæãšå®è¡ã®ããã®ãã¹ã ãã¬ãŒã ã¯ãŒã¯ãšãã³ãŒãã®å質ãåäžãããããã®ãã³ããåããããŒã«ã® XNUMX ã€ã®éšåã«åãããŠããŸãã
ãã¹ããã¬ãŒã ã¯ãŒã¯
質ã®é«ããã³ããåããããŒã«
C++ ãš C# ã¯ç¬èªä»æ§ã§ãããã (GCC ã¯ãªãŒãã³ ãœãŒã¹ã§ãã)ããããã®ããŒã«ãšãã¬ãŒã ã¯ãŒã¯ã®ã»ãšãã©ã¯ JavaãPythonãJavaScript çšã«äœæãããŠããŸãã
ãã¹ã ã«ãã¬ããž ããŒã«ãé©çšããŸãããDevOps ãã€ãã©ã€ã³ã¯ãã¥ãŒããªã¢ã«ã®åé ã®å³ã®ããã«ãªããŸãã
è¿œå ã®æé
ã³ã³ãã
åã«è¿°ã¹ãããã«ãã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒã¯ä»®æ³ãã·ã³ãŸãã¯ãµãŒããŒã§ãã¹ãã§ããŸãããã³ã³ãããŒã®æ¹ãäžè¬çã§ãã
ã³ã³ãããŒã®å Žåãé垞㯠Docker ãš Kubernetes ã䜿çšãããŸãããä»ã®ãªãã·ã§ã³ããããŸãã
Docker ãš Kubernetes ã«é¢ããèšäºãèªãã«ã¯ã次㮠URL ãåç
§ããŠãã ããã
ããã«ãŒãšã¯äœã§ãã? Docker ã®æŠèŠ Kubernetesãšã¯äœã§ãã? KubernetesããŒãããäœã
ããã«ãŠã§ã¢èªååããŒã«
åœç€Ÿã® DevOps ãã§ãŒã³ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å ±åæ§ç¯ãšé ä¿¡ã«éç¹ã眮ããŠããŸãããDevOps ããŒã«ã䜿çšããŠå®è¡ã§ããèå³æ·±ãããšã¯ä»ã«ããããŸãã ããšãã°ãããã«ãŠã§ã¢èªååããŒã«ãšããŠãç¥ããã Infrastructure as Code (IaC) ããŒã«ã䜿çšããŸãã ãããã®ããŒã«ã¯ãããã«ãŠã§ã¢ã®ã€ã³ã¹ããŒã«ã管çããã®ä»ã®ã¿ã¹ã¯ãèªååããã®ã«åœ¹ç«ã¡ãŸãã ããšãã°ãèªååããŒã«ã¯ãæ£ããæ§æã®ã¢ããªã±ãŒã·ã§ã³ (Web ã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒãããŒã¿ããŒã¹ãç£èŠããŒã«) ãååŸããã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒã«ããã·ã¥ã§ããŸãã
ãªãŒãã³ããã«ãŠã§ã¢èªååããŒã«ã®ãªãã·ã§ã³ãããã€ã瀺ããŸãã
詳现ã¯èšäºã«ãŠ
Ansible ã¹ã¿ãŒãã¬ã€ã Ansible ã䜿çšãããããã€èªååæŠç¥ ããã 5 ã®æ§æ管çããŒã«
ãããŠä»äœïŒ
ããã¯æ°·å±±ã®äžè§ã«ãããŸããã DevOps ãã§ãŒã³ã¯ããã«å€ãã®ããšãè¡ãããšãã§ããŸãã CI/CD ããŒã«ããå§ããŠãä»äºã容æã«ããããã«ä»ã«äœãèªååã§ãããã確èªããŠãã ããã å¿ããªãã§ãã ãã
åå¿è åãã®ãã®ä»ã®åªãã DevOps èšäºã¯æ¬¡ã®ãšããã§ãã
DevOpsãšã¯ DevOps éçºè ã® 5 ã€ã®ã¹ã㫠誰ã«ãšã£ãŠã DevOps DevOps ã«ãããäºæž¬åæã®æŠèŠ
DevOps ããªãŒãã³ ã¢ãžã£ã€ã« ããŒã«ãšçµ±åããããšãã§ããŸãã
ã¢ãžã£ã€ã«ãšã¯äœã§ãã? ã¢ãžã£ã€ã«ããã¹ã¿ãŒããããã® 4 ã€ã®ã¹ããã
åºæïŒ habr.com