ãã¯ã©ãŠããã³ã³ããããã€ã¯ããµãŒãã¹âŠæ°ããæè¡ãèšèãæ¬¡ã ãšåºãŠããŠãæ£çŽã€ããŠãããªãâŠð°ã
ãããªæ©ã¿ããæã¡ã®ããªãã倧äžå€«ïŒ
Twelve-Factor Appã¯ãã¯ã©ãŠããã€ãã£ãéçºã®è€éããçŽè§£ãã誰ã«ã§ãåããããããå®è·µçãªæéãæäŸããŸãã
ãªãªãŒã¹ã«æéãããã£ãããç°å¢äŸåã®ãã°ã«æ©ãŸããããããŠãŒã¶ãŒãå¢ããŠãã¹ã±ãŒã«ã§ããªãã£ããâŠð° ãããªæ©ã¿ãšã¯ãããããã°ïŒð
Twelve-Factor Appã¯ãã¯ã©ãŠãæä»£ã®ã¢ããªéçºã«ããã12åã®é»éåŸã§ãããããã«åŸãããšã§éçºãã¹ã ãŒãºã«é²ã¿ãã¹ã±ãŒã©ãã«ã§å ç¢ãªã¢ããªãæ§ç¯ã§ããããã«ãªããŸãã
ð€ Twelve-Factor Appã£ãŠã©ããªãã®ïŒ
Twelve-Factor Appã¯ãHerokuã®ãšã³ãžãã¢ãã¡ãé·å¹Žã®çµéšããå°ãåºãããã¯ã©ãŠããã€ãã£ããªã¢ããªéçºã«ããããã¹ããã©ã¯ãã£ã¹éã§ãã
çŸå³ããæçãäœãããã®ã¬ã·ãéã®ããã«ãTwelve-Factor Appã¯ãéçºè ãæåã«å°ãããã®éæšãšãªããŸããðšâð³
ð Twelve-Factor Appã®12ã®ç§èš£ïŒ
1. ã³ãŒãããŒã¹: ãœãŒã¹ã³ãŒãã¯äžç®æã«éçŽïŒ
GitHubãGitLabãªã©ã®ããŒãžã§ã³ç®¡çã·ã¹ãã ã䜿ããã³ãŒãã¯åžžã«äžå 管çããŸããããŒã å šå¡ãåãå Žæã«éãŸããã³ãŒããå ±æããããšã§ãéçºã®æ··ä¹±ãé²ããã¹ã ãŒãºãªé£æºãå®çŸããŸãã
äŸãã°: 5人ã®éçºããŒã ã§ECãµã€ããäœããšããŸããTwelve-Factor Appã«åŸãã°ãå šå¡ãGitHubã®ãªããžããªã«ã³ãŒããããã·ã¥ãã倿Žå±¥æŽãå ±æããªããéçºãé²ããŸãã
2. äŸåé¢ä¿: ã©ã€ãã©ãªã¯æç¢ºã«ç®¡çïŒ
å€éšã©ã€ãã©ãªã䜿ãå Žåã¯ãã©ã®ã©ã€ãã©ãªãã©ã®ããŒãžã§ã³ã§äœ¿ã£ãŠããããæç¢ºã«å®çŸ©ããŸããPythonãªãrequirements.txtãNode.jsãªãpackage.jsonãªã©ã䜿ããŸãã
ã¡ãªãã: äŸåé¢ä¿ãæŽçãããã®ã§ãç°å¢æ§ç¯ã楜ã«ãªããããŒãžã§ã³ã®éãã«ããåé¡ãé²ããŸããæ°ããã¡ã³ããŒãå ãã£ãŠããããã«éçºç°å¢ãæŽããããŸãã
3. èšå®: ç°å¢ããšã«ç°ãªãèšå®ã¯åé¢ïŒ
ããŒã¿ããŒã¹æ¥ç¶æ å ±ãAPIããŒãªã©ãç°å¢ã«ãã£ãŠå€ããèšå®ã¯ãã³ãŒãã«çŽæ¥æžã蟌ãŸããç°å¢å€æ°ãšããŠç®¡çããŸãã
ã¡ãªãã: ç°å¢ããšã«èšå®ãã¡ã€ã«ãçšæããå¿ èŠããªããªãããããã€ãã¹ã ãŒãºã«ãªããŸãããŸããæ©å¯æ å ±æŒæŽ©ã®ãªã¹ã¯ãæžãããŸãã
äŸãã°: ECãµã€ãã®éçºç°å¢ã§ã¯ãã¹ãçšã®ããŒã¿ããŒã¹ãæ¬çªç°å¢ã§ã¯æ¬çªçšã®ããŒã¿ããŒã¹ã䜿ãå ŽåãããŒã¿ããŒã¹ã®æ¥ç¶æ å ±ã¯ç°å¢å€æ°ãšããŠèšå®ããŸãã
4. ããã¯ãšã³ããµãŒãã¹: å€éšãµãŒãã¹ã¯èªç±ã«æ¥ç¶ïŒ
ããŒã¿ããŒã¹ãã¡ãã»ãŒãžãã¥ãŒãªã©ãå€éšãµãŒãã¹ã¯ã¢ããªã«å¯çµåããããå€éšããèªç±ã«æ¥ç¶ã§ããããã«ããŸãã
ã¡ãªãã: ç¹å®ã®ãµãŒãã¹ã«çžãããããšãªããèªç±ã«ãµãŒãã¹ãéžæã»å€æŽã§ããŸãã
äŸãã°: ECãµã€ãã§ã¡ãŒã«éä¿¡æ©èœã䜿ãéã«ãSendGridãªã©ã®ã¡ãŒã«é ä¿¡ãµãŒãã¹ãšé£æºããŸãããµãŒãã¹ã倿Žããå Žåã¯ãç°å¢å€æ°ãæžãæããã ãã§å¯Ÿå¿ã§ããŸãã
5. ãã«ãããªãªãŒã¹ãå®è¡: éçºããã»ã¹ãå¹çåïŒ
ã³ãŒãã®ãã«ãããªãªãŒã¹ãå®è¡ãããããç¬ç«ããããã»ã¹ãšããŠå®çŸ©ããŸãã
ã¡ãªãã: èªååãããããªããéçºã®å¹çãé£èºçã«åäžããŸããCI/CDããŒã«ãšã®é£æºãã¹ã ãŒãºã§ãã
äŸãã°: GitHubã«ããã·ã¥ãããã³ãŒãã¯ãèªåçã«ãã¹ãããã«ãããããã€ãããããã«èšå®ã§ããŸãã
6. ããã»ã¹: ã¢ããªã¯ã¹ããŒãã¬ã¹ã«èšèšïŒ
ã¢ããªã®ç¶æ ãä¿æããããªã¯ãšã¹ãããšã«å¿ èŠãªæ å ±ãå€éšããååŸããããã«èšèšããŸãã
ã¡ãªãã: ã¹ã±ãŒã«ã¢ãŠãã容æã«ãªããé«è² è·æã«ãå®å®ããããã©ãŒãã³ã¹ãçºæ®ã§ããŸãã
äŸãã°: ãŠãŒã¶ãŒã®ã«ãŒãæ å ±ã¯ãã¢ããªãµãŒããŒã®ã¡ã¢ãªã§ã¯ãªããããŒã¿ããŒã¹ã«ä¿åããŸãã
7. ããŒããã€ã³ãã£ã³ã°: ãµãŒãã¹ã¯ããŒãã§å ¬éïŒ
ã¢ããªã¯ç¹å®ã®ããŒãã§åŸ ã¡åããå€éšããã®ã¢ã¯ã»ã¹ãåãä»ããŸãã
ã¡ãªãã: WebãµãŒããŒãªã©ãå¥éçšæããããšãªããã¢ããªåäœã§åäœãããããšãã§ããŸãã
äŸãã°: ECãµã€ãã¯ãããŒã80ã§HTTPãªã¯ãšã¹ããåãä»ããŸãã
8. äžŠè¡æ§: è€æ°ã®ããã»ã¹ã§åŠçã忣ïŒ
è€æ°ã®ããã»ã¹ã§åŠçã䞊ååããããšã§ãããã©ãŒãã³ã¹ãåäžãããŸãã
ã¡ãªãã: ããå€ãã®ãªã¯ãšã¹ããåŠçã§ããããã«ãªããã¹ã±ãŒã©ããªãã£ãåäžããŸãã
äŸãã°: ECãµã€ããžã®ã¢ã¯ã»ã¹éäžæãè€æ°ã®ããã»ã¹ã§ãªã¯ãšã¹ããåŠçããããšã§ãããŠã³ã¿ã€ã ãé²ããŸãã
9. 廿£å®¹ææ§: ã¢ããªã¯ãã€ã§ã忢ã»èµ·åå¯èœã«ïŒ
ã¢ããªã¯ãã€ã§ã忢ã»èµ·åã§ããããã«èšèšããŸãã
ã¡ãªãã: ãããã€ãããŒã«ããã¯ãè¿ éã«è¡ããããã«ãªããã·ã¹ãã ã®å¯çšæ§ãåäžããŸãã
äŸãã°: ECãµã€ãã®ããŒãžã§ã³ã¢ããæãããŠã³ã¿ã€ã ãæå°éã«æããªãããæ°ããããŒãžã§ã³ããããã€ã§ããŸãã
10. éçº/æ¬çªäžèŽ: ç°å¢ã®å·®ç°ãæå°éã«ïŒ
éçºç°å¢ãšæ¬çªç°å¢ã®å·®ç°ãæå°éã«æããããšã§ãäºæãã¬åé¡çºçãé²ããŸãã
ã¡ãªãã: Dockerãªã©ã®ä»®æ³åæè¡ã䜿ãããšã§ãç°å¢ã®å·®ç°ãåžåãããããªããŸãã
äŸãã°: ECãµã€ãã®éçºç°å¢ãšæ¬çªç°å¢ã§ãåãDockerã€ã¡ãŒãžã䜿ãããšã§ãç°å¢å·®ç°ã«ããåé¡ãæžãããŸãã
11. ãã°: ãã°ã¯ã€ãã³ãã¹ããªãŒã ãšããŠåŠçïŒ
ãã°ã¯ãã¡ã€ã«ã§ã¯ãªããã€ãã³ãã¹ããªãŒã ãšããŠåºåããŸãã
ã¡ãªãã: ãã°ã®ç®¡çã»åæã容æã«ãªããåé¡çºçæã®åå ç©¶æã«åœ¹ç«ã¡ãŸãã
äŸãã°: ECãµã€ãã®ã¢ã¯ã»ã¹ãã°ããšã©ãŒãã°ã¯ããªã¢ã«ã¿ã€ã ã«åéã»åæããããšã§ãåé¡çºçæã®è¿ éãªå¯Ÿå¿ãå¯èœã«ããŸãã
12. 管çããã»ã¹: 管çã¿ã¹ã¯ãã³ãŒãã§ç®¡çïŒ
ããŒã¿ããŒã¹ã®ãã€ã°ã¬ãŒã·ã§ã³ãªã©ã®ç®¡çã¿ã¹ã¯ããã³ãŒãã§ç®¡çããŸãã
ã¡ãªãã: 管çã¿ã¹ã¯ã®èªååã容æã«ãªãããã¥ãŒãã³ãšã©ãŒãé²ãããšãã§ããŸãã
äŸãã°: ECãµã€ãã®ããŒã¿ããŒã¹ã¹ããŒãã®å€æŽã¯ããã€ã°ã¬ãŒã·ã§ã³ã¹ã¯ãªãããããŒãžã§ã³ç®¡çã·ã¹ãã ã§ç®¡çããèªåå®è¡ããŸãã
ð ãŸãšã
Twelve-Factor Appã¯ãã¯ã©ãŠããã€ãã£ããªã¢ããªéçºã®æåã«æ¬ ãããªãååã§ãããããã®ååãçè§£ããå®è·µããããšã§ãããé«å質ãªã¢ããªãããå¹ççã«éçºã§ããããã«ãªããŸãã
ããªããTwelve-Factor Appããã¹ã¿ãŒããŠãã¯ã©ãŠãã®äœäººã«ãªããŸããã ð