ããŠã³ã¿ã€ã ãŒãã®ãœãããŠã§ã¢ãªãªãŒã¹ãå®çŸããããã®ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãããã¹ã¿ãŒããŸãããããã®åŒ·åãªæŠç¥ã®ã¡ãªãããå®è£ ããã¹ããã©ã¯ãã£ã¹ãåŠã³ãŸãããã
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãïŒã·ãŒã ã¬ã¹ãªãœãããŠã§ã¢ãªãªãŒã¹ãå®çŸããããã®å æ¬çãªã¬ã€ã
ãœãããŠã§ã¢éçºãæ¥éã«é²ãäžã§ããŠãŒã¶ãŒãäžæãããããšãªãæ°ããããŒãžã§ã³ããããã€ããããšãæãéèŠã§ãããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãïŒã¬ãããã©ãã¯ãããã€ã¡ã³ããšãåŒã°ããŸãïŒã¯ã2ã€ã®åäžã®æ¬çªç°å¢ïŒ1ã€ã¯ã¢ã¯ãã£ãïŒã°ãªãŒã³ïŒããã1ã€ã¯ã¢ã€ãã«ïŒãã«ãŒïŒïŒãç¶æããããšã«ãããããŠã³ã¿ã€ã ãšãªã¹ã¯ãå€§å¹ ã«åæžãããªãªãŒã¹æŠç¥ã§ãããã®ã¬ã€ãã§ã¯ããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®å æ¬çãªæŠèŠãæäŸãããã®ã¡ãªãããå®è£ äžã®èæ ®äºé ãããã³ã°ããŒãã«ãªèŠèŽè åãã®ãã¹ããã©ã¯ãã£ã¹ãæ¢ããŸãã
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ããšã¯ïŒ
åºæ¬çã«ã¯ããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¯ãããããç¬èªã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããµãŒããŒãããŒã¿ããŒã¹ãããã³ãœãããŠã§ã¢ããŒãžã§ã³ãæã€2ã€ã®åäžã®ç°å¢ãå®è¡ããããšãå«ã¿ãŸããã¢ã¯ãã£ããªç°å¢ïŒäŸïŒã°ãªãŒã³ïŒã¯ãã¹ãŠã®æ¬çªãã©ãã£ãã¯ãæäŸããŸããã¢ã€ãã«ç°å¢ïŒäŸïŒãã«ãŒïŒã¯ãæ°ãããªãªãŒã¹ããããã€ããã¹ããããã³æ€èšŒãããå Žæã§ããæ°ãããªãªãŒã¹ããã«ãŒç°å¢ã§å®å®ããŠãããšå€æããããããã©ãã£ãã¯ãã°ãªãŒã³ãããã«ãŒç°å¢ã«åãæ¿ãããã«ãŒç°å¢ãæ°ããã¢ã¯ãã£ãç°å¢ã«ããŸããã°ãªãŒã³ç°å¢ã¯æ°ããã¢ã€ãã«ç°å¢ã«ãªããæ¬¡ã®ãããã€ã¡ã³ãã®æºåãæŽããŸãã
é«ééè·¯ã§è»ç·ãåãæ¿ãããããªãã®ãšèããŠãã ããã亀éã¯æ°ããè»ç·ïŒãã«ãŒç°å¢ïŒã«ã¹ã ãŒãºã«æµã蟌ã¿ãå€ãè»ç·ïŒã°ãªãŒã³ç°å¢ïŒã¯ã¡ã³ããã³ã¹ã®ããã«ééãããŸãïŒæ°ãããããã€ã¡ã³ãïŒãç®æšã¯ãäžæãæå°éã«æããã·ãŒã ã¬ã¹ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããããšã§ãã
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®ã¡ãªãã
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¯ãåŸæ¥ã®ãããã€ã¡ã³ãæ¹æ³ãããããã€ãã®éèŠãªå©ç¹ãæäŸããŸãã
- ããŠã³ã¿ã€ã ãŒãã®ãããã€ã¡ã³ãïŒäž»ãªå©ç¹ã¯ããµãŒãã¹ãäžæããããšãªããã¢ããªã±ãŒã·ã§ã³ã®æ°ããããŒãžã§ã³ããããã€ã§ããããšã§ãããŠãŒã¶ãŒã¯ããã©ãã£ãã¯ãæ°ããç°å¢ã«ã·ãŒã ã¬ã¹ã«åãæ¿ãããããç¶ç¶çãªå¯çšæ§ãäœéšã§ããŸãã
- ãªã¹ã¯ã®è»œæžïŒæ°ããç°å¢ã§åé¡ãçºçããå Žåã以åã®ããŒãžã§ã³ã«ç°¡åã«ããŒã«ããã¯ã§ããããããããã€ã¡ã³ãã®ãªã¹ã¯ã軜æžãããŸãããã«ãŒç°å¢ã§åãæ¿ãåŸã«åé¡ãçºçããå Žåããã©ãã£ãã¯ãã°ãªãŒã³ç°å¢ã«ãã°ãããªãã€ã¬ã¯ãã§ããŸãã
- ããŒã«ããã¯ã®ç°¡çŽ åïŒä»¥åã®ããŒãžã§ã³ãžã®ããŒã«ããã¯ã¯ããã©ãã£ãã¯ãã°ãªãŒã³ç°å¢ã«åãæ¿ããã®ãšåããããç°¡åã§ããããã«ããã倱æãããããã€ã¡ã³ãããå埩ããããã®è¿ éã§ä¿¡é Œæ§ã®é«ãæ¹æ³ãæäŸãããŸãã
- ãã¹ããšæ€èšŒã®æ¹åïŒãã«ãŒç°å¢ã§ã¯ãæ¬çªç°å¢ã«ç§»è¡ããåã«ãæ°ãããªãªãŒã¹ã培åºçã«ãã¹ãããã³æ€èšŒã§ããŸããããã«ãããæ¬çªç°å¢ã§é倧ãªåé¡ãçºçããå¯èœæ§ãäœæžãããŸãã
- ããéããªãªãŒã¹ãµã€ã¯ã«ïŒãªã¹ã¯ã®è»œæžãšããŒã«ããã¯ã®ç°¡çŽ åã«ãããããéããããé »ç¹ãªãªãªãŒã¹ãå¯èœã«ãªããŸããããŒã ã¯ããè¿ éã«å埩ããæ°ããæ©èœãšãã°ä¿®æ£ããŠãŒã¶ãŒã«å¹ççã«æäŸã§ããŸãã
- ãã£ã¶ã¹ã¿ãªã«ããªïŒãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¯ããã£ã¶ã¹ã¿ãªã«ããªã®åœ¢åŒãšããŠã䜿çšã§ããŸããã¢ã¯ãã£ããªç°å¢ã§é害ãçºçããå Žåããã©ãã£ãã¯ãã¹ã¿ã³ãã€ç°å¢ã«åãæ¿ããããšãã§ããŸãã
å®è£ ã«é¢ããèæ ®äºé
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¯å€§ããªã¡ãªãããæäŸããŸãããå®è£ ãæåãããã«ã¯ãããã€ãã®èŠå ãæ éã«èšç»ããèæ ®ããå¿ èŠããããŸãã
Infrastructure as CodeïŒIaCïŒ
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã广çã«å®è£ ããã«ã¯ãInfrastructure as CodeïŒIaCïŒã®ååãäžå¯æ¬ ã§ããIaCã䜿çšãããšãã³ãŒãã䜿çšããŠã€ã³ãã©ã¹ãã©ã¯ãã£ãå®çŸ©ããã³ç®¡çã§ãããããèªååãšåçŸæ§ãå¯èœã«ãªããŸããTerraformãAWS CloudFormationãAzure Resource ManagerãGoogle Cloud Deployment Managerãªã©ã®ããŒã«ã䜿çšããŠã2ã€ã®åäžã®ç°å¢ãããããžã§ãã³ã°ããã³ç®¡çã§ããŸãã
ããšãã°ãTerraformã䜿çšãããšãåäžã®èšå®ãã¡ã€ã«ã§ãã«ãŒç°å¢ãšã°ãªãŒã³ç°å¢ã®äž¡æ¹ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãå®çŸ©ã§ããŸããããã«ãããäž¡æ¹ã®ç°å¢ã®äžè²«æ§ã確ä¿ãããèšå®ã®ããã®ãªã¹ã¯ã軜æžãããŸãã
ããŒã¿ããŒã¹ç§»è¡
ããŒã¿ããŒã¹ç§»è¡ã¯ããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®éèŠãªåŽé¢ã§ããããŒã¿ããŒã¹ã®ã¹ããŒããšããŒã¿ããã¢ããªã±ãŒã·ã§ã³ã®å€ãããŒãžã§ã³ãšæ°ããããŒãžã§ã³ã®äž¡æ¹ãšäºææ§ãããããšã確èªããããšãéèŠã§ããããŒã¿ããŒã¹ç§»è¡ã管çããããã®æŠç¥ã«ã¯ã次ã®ãã®ããããŸãã
- åŸæ¹äºææ§ãšåæ¹äºææ§ïŒããŒã¿ããŒã¹ã®å€æŽããåŸæ¹äºææ§ãšåæ¹äºææ§ã®äž¡ç«ããããã«èšèšããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ã®å€ãããŒãžã§ã³ãšæ°ããããŒãžã§ã³ã®äž¡æ¹ããç§»è¡äžã«åãããŒã¿ããŒã¹ã¹ããŒãã§åäœã§ããŸãã
- ã¹ããŒãé²åããŒã«ïŒFlywayãLiquibaseãªã©ã®ããŒã¿ããŒã¹ã¹ããŒãé²åããŒã«ã䜿çšããŠãããŒã¿ããŒã¹ç§»è¡ãå¶åŸ¡ãããèªååãããæ¹æ³ã§ç®¡çããŸãã
- ãã«ãŒã°ãªãŒã³ããŒã¿ããŒã¹ïŒãã«ãŒã°ãªãŒã³ããŒã¿ããŒã¹ã¢ãããŒãã®äœ¿çšãæ€èšããŸãããã®ã¢ãããŒãã§ã¯ãåç°å¢ã«1ã€ãã€ã2ã€ã®åäžã®ããŒã¿ããŒã¹ããããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ã®å€ãããŒãžã§ã³ãšæ°ããããŒãžã§ã³ã®éã®å®å šãªåé¢ãæäŸãããŸãããã ãããã®ã¢ãããŒãã§ã¯ãããŒã¿ã®åæãè€éã«ãªããŸãã
ããšãã°ã顧客ã®äœæçšã®æ°ãããã£ãŒã«ãã远å ããeã³ããŒã¹ã¢ããªã±ãŒã·ã§ã³ãèããŠã¿ãŸããããç§»è¡ã¹ã¯ãªããã§ã¯ãããã©ã«ãå€ã§æ°ããåã远å ãããã®æ°ãããã£ãŒã«ãã䜿çšããªãå Žåã§ããã¢ããªã±ãŒã·ã§ã³ã®å€ãããŒãžã§ã³ããšã©ãŒãªãã§æ©èœããããã«ããå¿ èŠããããŸãã
ãã©ãã£ãã¯ã®åãæ¿ã
ãã«ãŒãšã°ãªãŒã³ç°å¢éã®ãã©ãã£ãã¯ã®åãæ¿ãã¯ããããã€ã¡ã³ãããã»ã¹ã«ãããéèŠãªã¹ãããã§ãããã©ãã£ãã¯ã®åãæ¿ãã«ã¯ãããã€ãã®æ¹æ³ã䜿çšã§ããŸããããã«ã¯ä»¥äžãå«ãŸããŸãã
- DNSåãæ¿ãïŒDNSã¬ã³ãŒããæŽæ°ããŠãæ°ããç°å¢ã®IPã¢ãã¬ã¹ãæããŸããããã¯ç°¡åãªã¢ãããŒãã§ãããDNSã®äŒæã«æéããããå ŽåããããããããªããŠã³ã¿ã€ã ãçºçããå¯èœæ§ããããŸãã
- ããŒããã©ã³ãµãŒã®åãæ¿ãïŒããŒããã©ã³ãµãŒãæ§æããŠãæ°ããç°å¢ã«ãã©ãã£ãã¯ã転éããŸããããã¯ãããå¹ççãªã¢ãããŒãã§ããããã©ãã£ãã¯ã®å³æåãæ¿ããå¯èœã«ããŸãã
- ãããã·åãæ¿ãïŒãªããŒã¹ãããã·ã䜿çšããŠãæ°ããç°å¢ã«ãã©ãã£ãã¯ããªãã€ã¬ã¯ãããŸããããã«ããããã©ãã£ãã¯ã«ãŒãã£ã³ã°ããã詳现ã«å¶åŸ¡ã§ããããæŽç·Žããããããã€ã¡ã³ãæŠç¥ãå¯èœã«ãªããŸãã
AWS Elastic Load BalancerïŒELBïŒãAzure Load Balancerãªã©ã®ããŒããã©ã³ãµãŒã䜿çšãããšãç°å¢éã®ãã©ãã£ãã¯ããã°ããåãæ¿ããããšãã§ããŸããããŒããã©ã³ãµãŒãæ§æããŠãæ°ããç°å¢ã®æ£åžžæ§ãç£èŠããæºåãã§ãããèªåçã«ãã©ãã£ãã¯ãåãæ¿ããããšãã§ããŸãã
ã»ãã·ã§ã³ç®¡ç
ã»ãã·ã§ã³ç®¡çãéèŠãªèæ ®äºé ã§ãããã©ãã£ãã¯ãæ°ããç°å¢ã«åãæ¿ãã£ããšãã«ããŠãŒã¶ãŒãã»ãã·ã§ã³ããŒã¿ã倱ãããšããã£ãŠã¯ãªããŸãããã»ãã·ã§ã³ã管çããããã®æŠç¥ã«ã¯ã次ã®ãã®ããããŸãã
- ã¹ãã£ãããŒã»ãã·ã§ã³ïŒããŒããã©ã³ãµãŒãæ§æããŠã¹ãã£ãããŒã»ãã·ã§ã³ã䜿çšããŸããããã«ããããŠãŒã¶ãŒã®ãªã¯ãšã¹ããåžžã«åããµãŒããŒã«ã«ãŒãã£ã³ã°ãããããã«ãªããŸããããã«ãããç§»è¡äžã®ã»ãã·ã§ã³æå€±ãæå°éã«æããããšãã§ããŸãã
- å ±æã»ãã·ã§ã³ã¹ãã¢ïŒRedisãMemcachedãªã©ã®å ±æã»ãã·ã§ã³ã¹ãã¢ã䜿çšããŠãã»ãã·ã§ã³ããŒã¿ãä¿åããŸããããã«ãããå€ãç°å¢ãšæ°ããç°å¢ã®äž¡æ¹ãåãã»ãã·ã§ã³ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããåãæ¿ãäžã«ãŠãŒã¶ãŒããã°ã¢ãŠããããªãããã«ããããšãã§ããŸãã
- ã»ãã·ã§ã³ã¬ããªã±ãŒã·ã§ã³ïŒå€ãç°å¢ãšæ°ããç°å¢ã®éã§ã»ãã·ã§ã³ããŒã¿ãã¬ããªã±ãŒãããŸããããã«ããããµãŒããŒã«é害ãçºçããå Žåã§ããã»ãã·ã§ã³ããŒã¿ãåžžã«å©çšå¯èœã«ãªããŸãã
ããšãã°ãã»ãã·ã§ã³ããŒã¿ãRedisã¯ã©ã¹ã¿ãŒã«ä¿åãããšããã«ãŒç°å¢ãšã°ãªãŒã³ç°å¢ã®äž¡æ¹ãåãã»ãã·ã§ã³æ å ±ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããããã«ããããŠãŒã¶ãŒã¯ãåãã°ã€ã³ãæ±ããããããšãªããæ°ããç°å¢ã«ã·ãŒã ã¬ã¹ã«ç§»è¡ã§ããŸãã
ç£èŠãšãã«ã¹ãã§ãã¯
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ããæåãããã«ã¯ãå æ¬çãªç£èŠãšãã«ã¹ãã§ãã¯ãäžå¯æ¬ ã§ããäž¡æ¹ã®ç°å¢ã®ããã©ãŒãã³ã¹ãšæ£åžžæ§ã远跡ããããã«ãå ç¢ãªç£èŠãå®è£ ããŸãããã©ãã£ãã¯ãåãæ¿ããåã«ãæ°ããç°å¢ãæ£ããæ©èœããŠããããšã確èªããããã«ã宿çã«ãã«ã¹ãã§ãã¯ãå®è¡ããå¿ èŠããããŸãã
PrometheusãGrafanaãDatadogãªã©ã®ããŒã«ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããã©ãŒãã³ã¹ãç£èŠã§ããŸããåé¡ãçºçããå Žåã«éç¥ããããã«ã¢ã©ãŒããæ§æã§ããŸãããã«ã¹ãã§ãã¯ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãæ£ããå¿çãããã¹ãŠã®äŸåé¢ä¿ãæ£åžžã«æ©èœããŠããããšã確èªããå¿ èŠããããŸãã
èªåãã¹ã
èªåãã¹ãã¯ãæ°ãããªãªãŒã¹ã®å質ãšå®å®æ§ã確ä¿ããããã«äžå¯æ¬ ã§ããåäœãã¹ããçµ±åãã¹ãããšã³ãããŒãšã³ããã¹ããå«ããå æ¬çãªèªåãã¹ãã¹ã€ãŒããå®è£ ããŸãããã©ãã£ãã¯ãåãæ¿ããåã«ãæ°ãããªãªãŒã¹ãæ£ããæ©èœããŠããããšã確èªããããã«ããããã®ãã¹ãããã«ãŒç°å¢ã§å®è¡ããå¿ èŠããããŸãã
SeleniumãJUnitãpytestãªã©ã®ããŒã«ã䜿çšããŠããã¹ãããã»ã¹ãèªååã§ããŸããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çããªããªãŒïŒCI/CDïŒãã€ãã©ã€ã³ã䜿çšããŠãæ°ãããªãªãŒã¹ããã«ãŒç°å¢ã«ãããã€ããããã³ã«ãããã®ãã¹ããèªåçã«å®è¡ã§ããŸãã
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®ãã¹ããã©ã¯ãã£ã¹
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®ã¡ãªãããæå€§åããåé¡ã®ãªã¹ã¯ãæå°éã«æããã«ã¯ã次ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããã
- ãã¹ãŠãèªååããïŒã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããããžã§ãã³ã°ããã³ãŒãã®ãããã€ããã©ãã£ãã¯ã®åãæ¿ããŸã§ããããã€ã¡ã³ãããã»ã¹å šäœãèªååããŸããããã«ããã人çºçãã¹ã®ãªã¹ã¯ã軜æžãããäžè²«æ§ã確ä¿ãããŸãã
- ç¶ç¶çã«ç£èŠããïŒäž¡æ¹ã®ç°å¢ã®ããã©ãŒãã³ã¹ãšæ£åžžæ§ã远跡ããããã«ãå æ¬çãªç£èŠãå®è£ ããŸããããã«ãããçºçããåé¡ããã°ããç¹å®ããŠè§£æ±ºã§ããŸãã
- 培åºçã«ãã¹ãããïŒæ°ãããªãªãŒã¹ã®å質ãšå®å®æ§ã確ä¿ããããã«ãå æ¬çãªèªåãã¹ãã¹ã€ãŒããå®è£ ããŸãã
- ãã°ããããŒã«ããã¯ããïŒæ°ããç°å¢ã§åé¡ãçºçããå Žåã以åã®ããŒãžã§ã³ã«ããŒã«ããã¯ããæºåãããŠãããŸããããã«ããã倱æãããããã€ã¡ã³ãã®åœ±é¿ãæå°éã«æããããšãã§ããŸãã
- æç¢ºã«ã³ãã¥ãã±ãŒã·ã§ã³ããïŒãããã€ã¡ã³ãèšç»ããã¹ãŠã®é¢ä¿è ã«äŒããçºçããåé¡ã«ã€ããŠåœŒãã«ç¥ãããŠãã ããã
- ãã¹ãŠãææžåããïŒé¢ä¿ããæé ã䜿çšããããŒã«ãæ§æèšå®ãªã©ããããã€ã¡ã³ãããã»ã¹å šäœãææžåããŸããããã«ãããåé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãšã·ã¹ãã ã®é·æçãªä¿å®ã容æã«ãªããŸãã
ããŸããŸãªæ¥çã«ããããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®äŸ
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¯ãé«å¯çšæ§ãšããŠã³ã¿ã€ã ã®æå°åãä¿èšŒããããã«ãããŸããŸãªæ¥çã§äœ¿çšãããŠããŸãã以äžã«ããã€ãã®äŸã瀺ããŸãã
- Eã³ããŒã¹ïŒãªã³ã©ã€ã³å°å£²æ¥è ã¯ã顧客ã®ã·ã§ããã³ã°äœéšãäžæããããšãªããWebãµã€ãã«æ°ããæ©èœãšãã°ä¿®æ£ããªãªãŒã¹ããããã«ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã䜿çšããŠããŸããã·ã§ããã³ã°ã·ãŒãºã³äžã«ã¯ãããŠã³ã¿ã€ã ã«ããåçã®æå€±ãé¿ããããã«ããããäžå¯æ¬ ã§ãããã©ãã¯ãã©ã€ããŒã®ã»ãŒã«ãæ³åããŠã¿ãŠãã ãããããŠã³ã¿ã€ã ãçºçãããšãé倧ãªçµæžçæå€±ã«ã€ãªããå¯èœæ§ããããŸãã
- éèãµãŒãã¹ïŒéè¡ã¯ããªã³ã©ã€ã³ãã³ãã³ã°ãã©ãããã©ãŒã ã®ã¢ããããŒãããããã€ããããã«ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã䜿çšããŠããŸããããã«ããã顧客ã¯åžžã«ã¢ã«ãŠã³ãã«ã¢ã¯ã»ã¹ããäžæããããšãªãååŒãå®è¡ã§ããããã«ãªããŸããèŠå¶éµå®ã¯ããã®åéã§éåžžã«é«ãã¬ãã«ã®å¯çšæ§ãèŠæ±ããããšããããããŸãã
- ãã«ã¹ã±ã¢ïŒç é¢ã¯ãé»åå¥åº·èšé²ïŒEHRïŒã·ã¹ãã ãžã®ã¢ããããŒãããããã€ããããã«ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã䜿çšããŠããŸããããã«ãããå»åž«ãçè·åž«ã¯ãé å»¶ãªãåžžã«æ£è æ å ±ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããæ£è ã®å®å šãæåªå äºé ã§ãããçæéã®ããŠã³ã¿ã€ã ã§ããæ·±å»ãªçµæãããããå¯èœæ§ããããŸãã
- ã²ãŒã ïŒãªã³ã©ã€ã³ã²ãŒã äŒç€Ÿã¯ããã¬ã€ã€ãŒã®ã²ãŒã ã»ãã·ã§ã³ãäžæããããšãªããæ°ããã²ãŒã æ©èœããããããªãªãŒã¹ããããã«ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã䜿çšããŠããŸããç«¶äºã®æ¿ããã²ãŒã åžå Žã§ã¯ãç¶ç¶çã§é åçãªãã¬ã€ã€ãŒãšã¯ã¹ããªãšã³ã¹ãç¶æããããšãéèŠã§ãã
- 黿°éä¿¡ïŒé»æ°éä¿¡ãããã€ããŒã¯ããããã¯ãŒã¯ç®¡çã·ã¹ãã ãæŽæ°ããããã«ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã䜿çšããŠããŸããããã«ããã顧客ã«äžæã®ãªããµãŒãã¹ãä¿èšŒãããæœåšçãªãããã¯ãŒã¯åæ¢ãåé¿ã§ããŸãã
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãããŒã«ãšãã¯ãããžãŒ
ããŸããŸãªããŒã«ãšãã¯ãããžãŒãããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã容æã«ããããšãã§ããŸããäžè¬çãªãªãã·ã§ã³ã«ã¯ã次ã®ãããªãã®ããããŸãã
- ã³ã³ããåïŒDockerãKubernetesïŒïŒã³ã³ããã¯ãã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããã®äžè²«ããããŒã¿ãã«ãªç°å¢ãæäŸãããã«ãŒã°ãªãŒã³ç°å¢ã®ãããã€ãšç®¡çã容æã«ããŸããKubernetesã¯ãã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³ã®ãããã€ãã¹ã±ãŒãªã³ã°ãããã³ç®¡çãèªååããŸãã
- Infrastructure as CodeïŒTerraformãAWS CloudFormationãAzure Resource ManagerãGoogle Cloud Deployment ManagerïŒïŒIaCããŒã«ã䜿çšãããšãã³ãŒãã䜿çšããŠã€ã³ãã©ã¹ãã©ã¯ãã£ãå®çŸ©ããã³ç®¡çã§ãããããèªååãšåçŸæ§ãå¯èœã«ãªããŸãã
- ããŒããã©ã³ãµãŒïŒAWS ELBãAzure Load BalancerãGoogle Cloud Load BalancingãNginxïŒïŒããŒããã©ã³ãµãŒã¯ãè€æ°ã®ãµãŒããŒéã§ãã©ãã£ãã¯ã忣ããé«å¯çšæ§ã確ä¿ãããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãäžã®ã·ãŒã ã¬ã¹ãªãã©ãã£ãã¯åãæ¿ããå¯èœã«ããŸãã
- CI/CDãã€ãã©ã€ã³ïŒJenkinsãGitLab CIãCircleCIãAzure DevOpsïŒïŒCI/CDãã€ãã©ã€ã³ã¯ããã«ãããã¹ããããã³ãããã€ã¡ã³ãããã»ã¹ãèªååããããéããããé »ç¹ãªãªãªãŒã¹ãå¯èœã«ããŸãã
- ç£èŠããŒã«ïŒPrometheusãGrafanaãDatadogãNew RelicïŒïŒç£èŠããŒã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããã©ãŒãã³ã¹ãšæ£åžžæ§ã«é¢ãããªã¢ã«ã¿ã€ã ã®æŽå¯ãæäŸããŸãã
- ããŒã¿ããŒã¹ç§»è¡ããŒã«ïŒFlywayãLiquibaseïŒïŒããŒã¿ããŒã¹ç§»è¡ããŒã«ã¯ãå¶åŸ¡ãããèªååãããæ¹æ³ã§ããŒã¿ããŒã¹ã®ã¹ããŒã倿Žã管çããã®ã«åœ¹ç«ã¡ãŸãã
課é¡ãšè»œæžæŠç¥
倧ããªã¡ãªãããæäŸããäžæ¹ã§ããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¯ãæ éãªèšç»ãšè»œæžæŠç¥ãå¿ èŠãšãªã課é¡ãæç€ºããŸãã
- ã³ã¹ãïŒ2ã€ã®åäžã®æ¬çªç°å¢ãç¶æããã«ã¯è²»çšããããå¯èœæ§ããããŸãã軜æžïŒã¯ã©ãŠããªãœãŒã¹ãå¹ççã«æŽ»çšããèªåã¹ã±ãŒãªã³ã°ã掻çšããã¢ã€ãã«ç°å¢ã«ã¹ãããã€ã³ã¹ã¿ã³ã¹ãæ€èšããŸããã³ã¹ãã®ç£èŠãšæé©åæŠç¥ãå®è£ ããŸãã
- è€éãïŒãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã®èšå®ãšç®¡çã¯è€éã«ãªãå¯èœæ§ããããã€ã³ãã©ã¹ãã©ã¯ãã£ã®èªååãããŒã¿ããŒã¹ç®¡çããã©ãã£ãã¯ã«ãŒãã£ã³ã°ã«é¢ããå°éç¥èãå¿ èŠã§ãã軜æžïŒãã¬ãŒãã³ã°ãšããŒã«ãžã®æè³ãInfrastructure as Codeã®æŽ»çšãæç¢ºãªããã»ã¹ãšããã¥ã¡ã³ãã®ç¢ºç«ã
- ããŒã¿åæïŒ2ã€ã®ç°å¢éã§ããŒã¿ã®äžè²«æ§ã確ä¿ããããšã¯ãç¹ã«ããŒã¿ããŒã¹ã®å Žåãå°é£ãªå ŽåããããŸãã軜æžïŒããŒã¿ããŒã¹ã¬ããªã±ãŒã·ã§ã³ã倿ŽããŒã¿ãã£ããã£ïŒCDCïŒããŸãã¯ãã®ä»ã®ããŒã¿åææè¡ã䜿çšããŸããããŒã¿ããŒã¹ç§»è¡ãæ éã«èšç»ããŠå®è¡ããŸãã
- ãã¹ãïŒãã©ãã£ãã¯ãåãæ¿ããåã«ãæ°ããç°å¢ã培åºçã«ãã¹ãããããšãéèŠã§ãããæéããããå ŽåããããŸãã軜æžïŒåäœãã¹ããçµ±åãã¹ãããšã³ãããŒãšã³ããã¹ããªã©ãå æ¬çãªèªåãã¹ããå®è£ ããŸããæ¬çªç°å¢ã«è¿ããã¹ãç°å¢ã䜿çšããŸãã
- ã¹ããŒããã«ã¢ããªã±ãŒã·ã§ã³ïŒãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã䜿çšããŠã¹ããŒããã«ã¢ããªã±ãŒã·ã§ã³ïŒããŒã¿ãããŒã«ã«ã«ä¿åããã¢ããªã±ãŒã·ã§ã³ïŒããããã€ããã«ã¯ãæ éãªæ€èšãå¿ èŠã§ãã軜æžïŒå ±æããŒã¿ããŒã¹ãŸãã¯ãã®ä»ã®æ°žç¶ã¹ãã¬ãŒãžã䜿çšããŠç¶æ ãå€éšåããŸããåãæ¿ãäžã«ãŠãŒã¶ãŒãããŒã¿ã倱ããªãããã«ãã»ãã·ã§ã³ç®¡çæŠç¥ãå®è£ ããŸãã
çµè«
ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¯ãããŠã³ã¿ã€ã ãŒãã®ãœãããŠã§ã¢ãªãªãŒã¹ãå®çŸãããããã€ã¡ã³ãã«é¢é£ãããªã¹ã¯ã軜æžããããã®åŒ·åãªæŠç¥ã§ãããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ããæ éã«èšç»ããŠå®è£ ããããšã«ãããçµç¹ã¯æ°ããæ©èœãšãã°ä¿®æ£ããŠãŒã¶ãŒã«ãããè¿ éãã€ç¢ºå®ã«é ä¿¡ããåæã«äžæãæå°éã«æããããšãã§ããŸãã課é¡ã¯ãããŸãããé©åãªèšç»ãèªååãããã³ããŒã«ã䜿çšããããšã§ããããã®ãªã¹ã¯ã广çã«è»œæžã§ããŸããäžçäžã®çµç¹ãããéããªãªãŒã¹ãµã€ã¯ã«ãšå¯çšæ§ã®åäžãç®æããŠããããããã«ãŒã°ãªãŒã³ãããã€ã¡ã³ãã¯ãææ°ã®ãœãããŠã§ã¢ããªããªãŒãã€ãã©ã€ã³ã®éèŠãªã³ã³ããŒãã³ãã§ããç¶ããã§ãããã
ãã®ã¬ã€ãã§æŠèª¬ãããŠããååãã¡ãªãããããã³å®è£ ã«é¢ããèæ ®äºé ãçè§£ããããšã«ãããçµç¹ã¯ãã«ãŒã°ãªãŒã³ãããã€ã¡ã³ããæ£åžžã«æ¡çšãã仿¥ã®ã°ããŒãã«åžå Žã®èŠæ±ãæºããã·ãŒã ã¬ã¹ãªãœãããŠã§ã¢ãªãªãŒã¹ãå®çŸã§ããŸãã