Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã³ã
ãã®ã³ã³ãã³ãã¯ãAzure çšã®ã¯ã©ãŠã ãã€ãã£ã .NET ã¢ããªã±ãŒã·ã§ã³ã®èšèšã«é¢ããé»åããã¯ããã®æç²ã§ããã.NET Docs ãŸãã¯ãªãã©ã€ã³ã§èªã¿åãããšãã§ããç¡æã®ããŠã³ããŒãå¯èœãª PDF ãšããŠå ¥æã§ããŸãã
äœæ¥ã忢ããååã« "Cloud Native" ãšããçšèªãå®çŸ©ããããäŸé ŒããŸãã è€æ°ã®ç°ãªãåçãåŸãããå¯èœæ§ã¯ååã«ãããŸãã
åçŽãªå®çŸ©ããå§ããŸãããã
ã¯ã©ãŠããã€ãã£ãã®ã¢ãŒããã¯ãã£ãšãã¯ãããžã¯ãã¯ã©ãŠãã«æ§ç¯ãããã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã° ã¢ãã«ãæå€§éã«æŽ»çšããã¯ãŒã¯ããŒããèšèšãæ§ç¯ãéçšããããã®ã¢ãããŒãã§ãã
Cloud Native Computing Foundation ã«ã¯ãå ¬åŒã®å®çŸ©ãçšæãããŠããŸãã
ã¯ã©ãŠããã€ãã£ã ãã¯ãããžã«ãããçµç¹ã¯ããããªãã¯ããã©ã€ããŒãããã€ããªãã ã¯ã©ãŠããªã©ã®ææ°ã®åçç°å¢ã§ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŠå®è¡ã§ããŸãã ã³ã³ãããŒããµãŒãã¹ ã¡ãã·ã¥ããã€ã¯ããµãŒãã¹ãäžå€ã€ã³ãã©ã¹ãã©ã¯ãã£ã宣èšå API ã¯ããã®ã¢ãããŒããäŸç€ºããŸãã
ãããã®ææ³ã«ãããå埩æ§ãç®¡çæ§ãç£èŠæ§ã«åªããççµåã·ã¹ãã ãå¯èœã«ãªããŸãã å ç¢ãªèªååãšçµã¿åãããããšã§ããšã³ãžãã¢ã¯æå°éã®æéã§é »ç¹ãã€äºæž¬å¯èœã«åœ±é¿ã®å€§ãã倿Žãè¡ãããšãã§ããŸãã
ã¯ã©ãŠã ãã€ãã£ã㯠ãé床 ãš æ©ææ§ã«é¢ããæ å ±ã§ãã ããžãã¹ ã·ã¹ãã ã¯ãããžãã¹æ©èœã®æå¹åãããããžãã¹ã®éåºŠãšæé·ãå éãããæŠç¥çå€é©ã®æŠåšãžãšé²åããŠããŸãã æ°ããã¢ã€ãã¢ãããã«åžå Žã«æå ¥ããããšãäžå¯æ¬ ã§ãã
åæã«ãããžãã¹ ã·ã¹ãã ããŸããŸãè€éã«ãªãããŠãŒã¶ãŒã¯ããå€ããèŠæ±ããŠããŸãã è¿ éãªå¿çæ§ã驿°çãªæ©èœãããŠã³ã¿ã€ã ãŒããæåŸ ãããŸãã ããã©ãŒãã³ã¹ã®åé¡ãç¹°ãè¿ãçºçãããšã©ãŒãé«éã«ç§»åã§ããªãåé¡ã¯èš±å®¹ãããªããªããŸããã ãŠãŒã¶ãŒã¯ç«¶åä»ç€Ÿã蚪åããŸãã ã¯ã©ãŠããã€ãã£ã ã·ã¹ãã ã¯ãæ¥éãªå€åãå€§èŠæš¡ãå埩æ§ãåãå ¥ããããã«èšèšãããŠããŸãã
ã¯ã©ãŠããã€ãã£ãææ³ãå®è£ ããäŒæ¥ãããã€ã玹ä»ããŸãã éæããéåºŠãæ©ææ§ãã¹ã±ãŒã©ããªãã£ã«ã€ããŠèããŠãã ããã
| [äŒç€Ÿ] | ãšã¯ã¹ããªãšã³ã¹ |
|---|---|
| Netflix | éçšç°å¢ã«ã¯ 600 以äžã®ãµãŒãã¹ããããŸãã 1 æ¥ããã 100 åãããã€ããŸãã |
| Uber | ãµãŒãã¹ãéçšäžã®ãã®ã ãã§ã 1,000 ãè¶ ããŠããŸãã æ¯é±æ°ååãããã€ããŸãã |
| ãŠã£ãŒãã£ãã | 3,000 ãè¶ ãããµãŒãã¹ãéçšç°å¢ã§æäŸããŠããŸãã 1 æ¥ã« 1,000 åãããã€ããŸãã |
ã芧ã®ããã«ãNetflixãUberãWeChat ã§ã¯ã倿°ã®ç¬ç«ãããµãŒãã¹ã§æ§æãããã¯ã©ãŠããã€ãã£ã ã·ã¹ãã ãå ¬éãããŠããŸãã ãã®ã¢ãŒããã¯ã㣠ã¹ã¿ã€ã«ã«ãããåžå Žã®ç¶æ³ã«è¿ éã«å¯Ÿå¿ã§ããŸãã å®å šã«åãããã€ããããšãªããã©ã€ãã§è€éãªã¢ããªã±ãŒã·ã§ã³ã®å°ããªé åãç¬æã«æŽæ°ããŸãã å¿ èŠã«å¿ããŠãµãŒãã¹ãåå¥ã«ã¹ã±ãŒãªã³ã°ããŸãã
ã¯ã©ãŠã ãã€ãã£ãã®æ±
ã¯ã©ãŠã ãã€ãã£ãã®éåºŠãšæ©ææ§ã¯ãå€ãã®èŠå ããçãŸããŠããŸãã æãéèŠãªã®ã¯ ãã¯ã©ãŠã ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ãã ãã ããä»ã«ããå³ 1-3 ã«ç€ºã 5 ã€ã®åºæ¬çãªæ±ããã¯ã©ãŠããã€ãã£ã ã·ã¹ãã ã®åºç€ãšãªããŸãã

å³ 1-3 ã¯ã©ãŠããã€ãã£ãã®åºæ¬çãªæ±
åæ±ã®éèŠæ§ãããæ·±ãçè§£ããããã«å°ãæéãåããŸãããã
ã¯ã©ãŠã
ã¯ã©ãŠããã€ãã£ã ã·ã¹ãã ã¯ãã¯ã©ãŠã ãµãŒãã¹ ã¢ãã«ãæå€§éã«æŽ»çšããŸãã
åçã§ä»®æ³åãããã¯ã©ãŠãç°å¢ã§æåããããã«èšèšããããããã®ã·ã¹ãã ã¯ã ãµãŒãã¹ãšããŠã®ãã©ãããã©ãŒã (PaaS) ã³ã³ãã¥ãŒãã£ã³ã° ã€ã³ãã©ã¹ãã©ã¯ãã£ãšãããŒãžã ãµãŒãã¹ãå¹ åºã䜿çšããŸãã åºã«ãªãã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãèªååã«ãã£ãŠãååäœã§ããããžã§ãã³ã°ãããå¿ èŠã«å¿ããŠãµã€ãºå€æŽãã¹ã±ãŒãªã³ã°ããŸãã¯ç Žæ£ããã ç Žæ£å¯èœ ãªã€ã³ãã©ã¹ãã©ã¯ãã£ãšããŠæ±ãããŸãã
ããããšååã®æ±ãæ¹ã®éããèããŠã¿ãŸãããã åŸæ¥ã®ããŒã¿ã»ã³ã¿ãŒã§ã¯ããµãŒããŒã¯ãããã®ããã«æ±ãããŸããç©ççãªæ©åšã«ã¯æå³ã®ããååãäžããããäžå¯§ã«ç®¡çãããŸãã ã¹ã±ãŒãªã³ã°ããã«ã¯ãåããã·ã³ã«ãªãœãŒã¹ã远å ããŸã (ã¹ã±ãŒã«ã¢ãã)ã ãµãŒããŒãç æ°ã«ãªã£ãå Žåã¯ãæ£åžžæ§ã«æ»ããŸãã ãµãŒããŒã䜿çšã§ããªããªã£ãå Žåã¯ãå šå¡ãæ°ä»ããŸãã
ã³ã¢ãã£ã㣠ãµãŒãã¹ ã¢ãã«ã¯ç°ãªããŸãã åã€ã³ã¹ã¿ã³ã¹ã¯ãä»®æ³ãã·ã³ãŸãã¯ã³ã³ãããŒãšããŠããããžã§ãã³ã°ããŸãã ãããã¯åäžã§ãããService-01ãService-02 ãªã©ã®ã·ã¹ãã èå¥åãå²ãåœãŠãããŸãã ããå€ãã®ã€ã³ã¹ã¿ã³ã¹ãäœæããŠã¹ã±ãŒãªã³ã°ããŸã (ã¹ã±ãŒã«ã¢ãŠã)ã ã€ã³ã¹ã¿ã³ã¹ã䜿çšã§ããªããªã£ããšããèª°ãæ°ä»ããªãã
ã³ã¢ãã£ã㣠ã¢ãã«ã«ã¯ãäžå€ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãæ¡çšãããŠããŸãã ãµãŒããŒã¯ä¿®åŸ©ãŸãã¯å€æŽãããŸããã 倱æããå ŽåããŸãã¯æŽæ°ãå¿ èŠãªå Žåã¯ç Žæ£ãããæ°ãããã®ãããããžã§ãã³ã°ãããŸãããã¹ãŠèªååã«ãã£ãŠè¡ãããŸãã
ã¯ã©ãŠããã€ãã£ã ã·ã¹ãã ã§ã¯ãã³ã¢ãã£ã㣠ãµãŒãã¹ ã¢ãã«ãæ¡çšãããŠããŸãã å®è¡ãç¶ããéã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ã¹ã±ãŒã«ã€ã³ãŸãã¯ã¹ã±ãŒã«ã¢ãŠãããŸãããã©ã®ãã·ã³ã§å®è¡ããŠãããã¯é¢ä¿ãããŸããã
Azure ã¯ã©ãŠã ãã©ãããã©ãŒã ã§ã¯ãèªåã¹ã±ãŒãªã³ã°ãèªå·±åŸ©æ§ãç£èŠæ©èœãåããããã®çš®ã®éåžžã«æè»ãªã€ã³ãã©ã¹ãã©ã¯ãã£ããµããŒããããŠããŸãã
ã¢ãã³ ãã¶ã€ã³
ã¯ã©ãŠããã€ãã£ã ã¢ããªãã©ã®ããã«èšèšããŸãã? ã¢ãŒããã¯ãã£ã¯ã©ã®ãããªãã®ã§ãã? ã©ã®ãããªååããã¿ãŒã³ããã¹ã ãã©ã¯ãã£ã¹ã«åŸããŸãã? ã©ã®ãããªã€ã³ãã©ã¹ãã©ã¯ãã£ãšéçšäžã®æžå¿µäºé ãéèŠã§ããããã
Twelve-Factor ã¢ããªã±ãŒã·ã§ã³
ã¯ã©ãŠãããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®åºãåãå ¥ããããŠããææ³ã¯ ãTwelve-Factor ã¢ããªã±ãŒã·ã§ã³ã§ãã ææ°ã®ã¯ã©ãŠãç°å¢åãã«æé©åãããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«éçºè ãåŸãäžé£ã®ååãšãã©ã¯ãã£ã¹ã«ã€ããŠèª¬æããŸãã ç°å¢å šäœã®ç§»æ€æ§ãšå®£èšåã®èªååã«ã¯ç¹ã«æ³šæãå¿ èŠã§ãã
Web ããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã«é©çšã§ããäžæ¹ã§ãå€ãã®å®åå®¶ Twelve-Factor ã¯ã©ãŠã ãã€ãã£ã ã¢ããªãæ§ç¯ããããã®åŒ·åºãªåºç€ã§ãããšèããŸãã ãããã®ååã«åºã¥ããŠæ§ç¯ãããã·ã¹ãã ã¯ãè¿ éã«ãããã€ããã³ã¹ã±ãŒãªã³ã°ã§ããåžå Žã®å€åã«è¿ éã«å¯Ÿå¿ããæ©èœã远å ã§ããŸãã
次ã®è¡šã¯ãTwelve-Factor ææ³ã瀺ããŠããŸãã
| èŠå | 説æ |
|---|---|
| 1 - ã³ãŒã ããŒã¹ | ãã€ã¯ããµãŒãã¹ããšã« 1 ã€ã®ã³ãŒã ããŒã¹ãç¬èªã®ãªããžããªã«æ ŒçŽãããŸãã ããŒãžã§ã³ç®¡çã«ãã£ãŠè¿œè·¡ãããè€æ°ã®ç°å¢ (QAãã¹ããŒãžã³ã°ãéçš) ã«ãããã€ã§ããŸãã |
| 2 - äŸåé¢ä¿ | åãã€ã¯ããµãŒãã¹ã¯ç¬èªã®äŸåé¢ä¿ãåé¢ããŠããã±ãŒãžåããã·ã¹ãã å šäœã«åœ±é¿ãäžããã«å€æŽãåæ ããŸãã |
| 3 - æ§æ | æ§ææ å ±ã¯ãã€ã¯ããµãŒãã¹ããç§»åãããã³ãŒãã®å€éšã«ããæ§æç®¡çããŒã«ã䜿çšããŠå€éšåãããŸãã åããããã€ã¯ãæ£ããæ§æãé©çšãããç°å¢éã§äŒéã§ããŸãã |
| ããã¯ãšã³ã ãµãŒãã¹ | è£å©ãªãœãŒã¹ (ããŒã¿ ã¹ãã¢ããã£ãã·ã¥ãã¡ãã»ãŒãž ãããŒã«ãŒ) ã¯ãã¢ãã¬ã¹æå®å¯èœãª URL ãä»ããŠå ¬éããå¿ èŠããããŸãã ããã«ããããªãœãŒã¹ãã¢ããªã±ãŒã·ã§ã³ããåãé¢ããã亀æå¯èœã«ãªããŸãã |
| 5 - ãã«ãããªãªãŒã¹ãå®è¡ | åãªãªãŒã¹ã§ã¯ããã«ãããªãªãŒã¹ãããã³å®è¡ã®åã¹ããŒãžã§å³å¯ãªåé¢ãé©çšããå¿ èŠããããŸãã ããããã«äžæã® ID ã§ã¿ã°ä»ãããããŒã«ããã¯æ©èœããµããŒãããå¿ èŠããããŸãã ææ°ã® CI/CD ã·ã¹ãã ã¯ããã®ååãæºããã®ã«åœ¹ç«ã¡ãŸãã |
| 6 - ããã»ã¹ | åãã€ã¯ããµãŒãã¹ã¯ãä»ã®å®è¡äžã®ãµãŒãã¹ããåé¢ãããç¬èªã®ããã»ã¹ã§å®è¡ããå¿ èŠããããŸãã å¿ èŠãªç¶æ ãã忣ãã£ãã·ã¥ãããŒã¿ ã¹ãã¢ãªã©ã®ãããã³ã° ãµãŒãã¹ã«å€éšåããŸãã |
| 7 - ããŒãã®ãã€ã³ã | åãã€ã¯ããµãŒãã¹ã¯ãç¬èªã®ããŒãã§å ¬éãããã€ã³ã¿ãŒãã§ã€ã¹ãšæ©èœãåããèªå·±å®çµåã«ããå¿ èŠããããŸãã ããã«ãããä»ã®ãã€ã¯ããµãŒãã¹ããã®åé¢ãæäŸãããŸãã |
| 8 - ã³ã³ã«ã¬ã³ã·ãŒ | 容éãå¢ããå¿ èŠãããå Žåã¯ãå©çšå¯èœãªæã匷åãªãã·ã³äžã®åäžã®å€§èŠæš¡ãªã€ã³ã¹ã¿ã³ã¹ãã¹ã±ãŒã«ã¢ããããã®ã§ã¯ãªããè€æ°ã®åäžããã»ã¹ (ã³ããŒ) ã«ããã£ãŠãµãŒãã¹ãæ°Žå¹³æ¹åã«ã¹ã±ãŒã«ã¢ãŠãããŸãã ã¯ã©ãŠãç°å¢ã§ã®ã¹ã±ãŒã«ã¢ãŠããã·ãŒã ã¬ã¹ã«åæã«è¡ããããã«ã¢ããªã±ãŒã·ã§ã³ãéçºããŸãã |
| 9 - ç Žæ£å¯èœæ§ | ãµãŒãã¹ ã€ã³ã¹ã¿ã³ã¹ã¯ç Žæ£å¯èœã§ããå¿ èŠããããŸãã é«éã¹ã¿ãŒãã¢ãããåªå ããŠã¹ã±ãŒã©ããªãã£ã®æ©äŒãå¢ãããæ£åžžãªã·ã£ããããŠã³ãè¡ã£ãŠã·ã¹ãã ãæ£ããç¶æ ã®ãŸãŸã«ããŸãã Docker ã³ã³ãããŒãšãªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ãæ¬è³ªçã«ãã®èŠä»¶ãæºãããŠããã |
| 10 - éçº/éçšã®ããªã㣠| ã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«å šäœã«ããã£ãŠç°å¢ãå¯èœãªéãåæ§ã«ä¿ã¡ãã³ã¹ãã®ãããã·ã§ãŒãã«ãããåé¿ããŸãã ããã§ã¯ãã³ã³ãããŒã®å°å ¥ã¯ãåãå®è¡ç°å¢ãä¿é²ããããšã«ãã£ãŠå€§ããè²¢ç®ã§ããŸãã |
| 11 - ãã°èšé² | ãã€ã¯ããµãŒãã¹ã«ãã£ãŠçæããããã°ãã€ãã³ã ã¹ããªãŒã ãšããŠæ±ããŸãã ã€ãã³ã ã¢ã°ãªã²ãŒã¿ãŒã䜿çšããŠåŠçããŸãã ãã° ããŒã¿ã Azure Monitor ã Splunk ãªã©ã®ããŒã¿ ãã€ãã³ã°/ãã°ç®¡çããŒã«ã«äŒéããæçµçã«ã¯é·æçãªã¢ãŒã«ã€ãã«åæ ããŸãã |
| 12 - 管çããã»ã¹ | 1 åéãã®ããã»ã¹ãšããŠãããŒã¿ã®ã¯ãªãŒã³ã¢ãããã³ã³ãã¥ãŒãã£ã³ã°åæãªã©ã®ç®¡ç/管çã¿ã¹ã¯ãå®è¡ããŸãã ç¬ç«ããããŒã«ã䜿çšããŠãéçšç°å¢ãããããã®ã¿ã¹ã¯ãåŒã³åºããŸãããã¢ããªã±ãŒã·ã§ã³ãšã¯å¥ã«åŒã³åºããŸãã |
æ¬ã§ã¯ã Twelve-Factor ã¢ããªãè¶ ããŠãèè ã±ãã³ã»ãããã³ã¯ãå ã®12ã®èŠå (2011å¹Žã«æžããã)ã®ããããã«ã€ããŠè©³ãã説æããŠããŸãã ããã«ã仿¥ã®ææ°ã®ã¯ã©ãŠã ã¢ããªã±ãŒã·ã§ã³èšèšãåæ ãã 3 ã€ã®è¿œå èŠå ã«ã€ããŠèª¬æããŸãã
| æ°ããèŠçŽ | 説æ |
|---|---|
| 13 - API First | ãã¹ãŠããµãŒãã¹ã«ããŸãã ã³ãŒããããã³ããšã³ã ã¯ã©ã€ã¢ã³ããã²ãŒããŠã§ã€ããŸãã¯å¥ã®ãµãŒãã¹ã«ãã£ãŠäœ¿çšããããšããŸãã |
| 14 - ãã¬ã¡ã㪠| ã¯ãŒã¯ã¹ããŒã·ã§ã³ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãšãã®åäœãè©³çŽ°ã«ææ¡ã§ããŸãã ã¯ã©ãŠãã§ã¯ããã®ãããªããšã¯ããŸããã èšèšã«ãç£èŠããã¡ã€ã³åºæãããã³æ£åžžæ§/ã·ã¹ãã ããŒã¿ã®ã³ã¬ã¯ã·ã§ã³ãå«ãŸããŠããããšã確èªããŸãã |
| 15 - èªèšŒ/æ¿èª | æåãã ID ãå®è£ ããŸãã ãããªã㯠ã¯ã©ãŠãã§äœ¿çšã§ãã RBAC (ããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡) æ©èœãæ€èšããŠãã ããã |
ãã®ç« ãšæ¬å šäœã§ã12 以äžã®èŠå ã®å€ããåç §ããŸãã
Azure Well-Architected FrameworkïŒã¢ãžã¥ãŒã« ãŠã§ã«ã¢ãŒããã¯ããã ãã¬ãŒã ã¯ãŒã¯ïŒ
ã¯ã©ãŠãããŒã¹ã®ã¯ãŒã¯ããŒãã®èšèšãšãããã€ã¯ãç¹ã«ã¯ã©ãŠããã€ãã£ã ã¢ãŒããã¯ãã£ãå®è£ ããå Žåã«å°é£ãªå ŽåããããŸãã Microsoft ã§ã¯ãã客æ§ãšããŒã ãå ç¢ãªã¯ã©ãŠã ãœãªã¥ãŒã·ã§ã³ãæäŸããã®ã«åœ¹ç«ã€æ¥çæšæºã®ãã¹ã ãã©ã¯ãã£ã¹ãæäŸããŠããŸãã
Microsoft Well-Architected Framework ã«ã¯ãã¯ã©ãŠããã€ãã£ã ã¯ãŒã¯ããŒãã®å質ãåäžãããããã«äœ¿çšã§ããäžé£ã®ã¬ã€ããããããçšæãããŠããŸãã ãã¬ãŒã ã¯ãŒã¯ã¯ãã¢ãŒããã¯ãã£ã®åè¶æ§ã® 5 ã€ã®æ±ã§æ§æãããŠããŸãã
| åºæ¬ç念 | 説æ |
|---|---|
| ã³ã¹ã管ç | å¢åå€ãæ©æã«çæããããšã«éç¹ã眮ãã Build-Measure-Learn ã®ååãé©çšããŠãè³æ¬éçŽåãœãªã¥ãŒã·ã§ã³ãåé¿ããªããåžå Žæå ¥ãŸã§ã®æéãççž®ããŸãã åŸéèª²éæŠç¥ãæ¡çšããäºåã«å€é¡ã®æè³ãè¡ãã®ã§ã¯ãªããåŸã ã«æ¡åŒµããã«ã€ããŠæè³ããŸãã |
| ãªãã¬ãŒã·ã§ãã« ãšã¯ã»ã¬ã³ã¹ | ç°å¢ãšéçšãèªååããŠé床ãäžãã人çºçãã¹ãæžãããŸãã åé¡ã®ã¢ããããŒããè¿ éã«ããŒã«ããã¯ãŸãã¯åé²ãããŸãã æåããç£èŠãšèšºæãå®è£ ããŸãã |
| ããã©ãŒãã³ã¹å¹ç | ã¯ãŒã¯ããŒãã«å¯ŸããèŠæ±ãå¹ççã«æºãããŸãã æ°Žå¹³ã¹ã±ãŒãªã³ã° (ã¹ã±ãŒã«ã¢ãŠã) ãåªå ããã·ã¹ãã ã«èšèšããŸãã æœåšçãªããã«ããã¯ãç¹å®ããããã«ãããã©ãŒãã³ã¹ãšããŒã ãã¹ããç¶ç¶çã«å®æœããŸãã |
| ç¢ºå® | å埩æ§ãšäœ¿çšå¯èœãªäž¡æ¹ã®ã¯ãŒã¯ããŒããæ§ç¯ããŸãã å埩æ§ã«ãããã¯ãŒã¯ããŒãã¯é害ãã埩æ§ããæ©èœãç¶ç¶ã§ããŸãã å¯çšæ§ã«ããããŠãŒã¶ãŒã¯åžžã«ã¯ãŒã¯ããŒãã«ã¢ã¯ã»ã¹ã§ããŸãã éå®³ãæ³å®ããŠåŸ©æ§ããããã«ã¢ããªã±ãŒã·ã§ã³ãèšèšããŸãã |
| ã»ãã¥ãªã㣠| èšèšãšå®è£ ãããããã€ãšéçšãŸã§ãã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«å šäœã«ããã£ãŠã»ãã¥ãªãã£ãå®è£ ããŸãã ID 管çãã€ã³ãã©ã¹ãã©ã¯ã㣠ã¢ã¯ã»ã¹ãã¢ããªã±ãŒã·ã§ã³ ã»ãã¥ãªãã£ãããŒã¿äž»æš©ãšæå·åã«çްå¿ã®æ³šæãæããŸãã |
ãŸããMicrosoft ã§ã¯ãé©åã«èšèšããã 5 ã€ã®æ±ã«å¯ŸããŠçŸåšã®ã¯ã©ãŠã ã¯ãŒã¯ããŒããè©äŸ¡ããã®ã«åœ¹ç«ã€äžé£ã® ãªã³ã©ã€ã³è©äŸ¡ ãæäŸããŠããŸãã
ãã€ã¯ããµãŒãã¹
ã¯ã©ãŠããã€ãã£ã ã·ã¹ãã ã«ã¯ãææ°ã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®äžè¬çãªã¢ãŒããã¯ã㣠ã¹ã¿ã€ã«ã§ãããã€ã¯ããµãŒãã¹ãæ¡çšãããŠããŸãã
å ±æãã¡ããªãã¯ãä»ããŠå¯Ÿè©±ããå°èŠæš¡ã§ç¬ç«ãããµãŒãã¹ã®åæ£ã»ãããšããŠæ§ç¯ããããã€ã¯ããµãŒãã¹ã¯ã次ã®ç¹æ§ãå ±æããŸãã
ãããããããã倧ããªãã¡ã€ã³ ã³ã³ããã¹ãå ã«ç¹å®ã®ããžãã¹æ©èœãå®è£ ããŸãã
ãããããèªåŸçã«éçºãããåå¥ã«ãããã€ã§ããŸãã
ããããããç¬èªã®ããŒã¿ ã¹ãã¬ãŒãž ãã¯ãããžãäŸåé¢ä¿ãããã°ã©ãã³ã° ãã©ãããã©ãŒã ãã«ãã»ã«åããèªå·±å®çµåã§ãã
ãããããç¬èªã®ããã»ã¹ã§å®è¡ãããHTTP/HTTPSãgRPCãWebSocketã AMQP ãªã©ã®æšæºã®éä¿¡ãããã³ã«ã䜿çšããŠä»ã®ãŠãŒã¶ãŒãšéä¿¡ããŸãã
ãããã¯äžç·ã«æ§æãããã¢ããªã±ãŒã·ã§ã³ã圢æããŸãã
å³ 1-4 ã¯ãã¢ããªã·ã㯠ã¢ããªã±ãŒã·ã§ã³ã¢ãããŒããšãã€ã¯ããµãŒãã¹ ã¢ãããŒããæ¯èŒããŠããŸãã ã¢ããªã¹ãã1 ã€ã®ããã»ã¹ã§å®è¡ãããéå±€åã¢ãŒããã¯ãã£ã§ã©ã®ããã«æ§æãããŠãããã«æ³šæããŠãã ããã éåžžããªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ã䜿çšãããŸãã ãã ãããã€ã¯ããµãŒãã¹ã¢ãããŒãã§ã¯ãç¬èªã®ããžãã¯ãç¶æ ãããŒã¿ãæã€ç¬ç«ãããµãŒãã¹ã«æ©èœãåé¢ããŸãã åãã€ã¯ããµãŒãã¹ã¯ãç¬èªã®ããŒã¿ã¹ãã¢ããã¹ãããŸãã

å³ 1-4. ã¢ããªã·ãã¯ã¢ãŒããã¯ãã£ãšãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£
ãã€ã¯ããµãŒãã¹ããåã®ç« ã§èª¬æãã Twelve-Factor ã¢ããªã±ãŒã·ã§ã³ããããã»ã¹ã®ååãææ Œãããæ¹æ³ã«æ³šæããŠãã ããã
Factor #6 ã§ã¯ã"åãã€ã¯ããµãŒãã¹ã¯ãä»ã®å®è¡äžã®ãµãŒãã¹ããåé¢ãããç¬èªã®ããã»ã¹ã§å®è¡ããå¿ èŠããããŸã" ãšæå®ãããŠããŸãã
ãã€ã¯ããµãŒãã¹ã®çç±
ãã€ã¯ããµãŒãã¹ã¯æ©ææ§ãæäŸããŸãã
ãã®ç« ã®ååã§ã¯ãã¢ããªã¹ãšããŠæ§ç¯ããã e ã³ããŒã¹ ã¢ããªã±ãŒã·ã§ã³ããã€ã¯ããµãŒãã¹ãšæ¯èŒããŸããã ãã®äŸã§ã¯ãããã€ãã®æç¢ºãªå©ç¹ã確èªããŸããã
åãã€ã¯ããµãŒãã¹ã«ã¯èªåŸçãªã©ã€ããµã€ã¯ã«ããããåå¥ã«é²åããé »ç¹ã«ãããã€ã§ããŸãã æ°ããæ©èœãæŽæ°ããã°ã©ã ããããã€ããããã«ãååæããšã®ãªãªãŒã¹ãåŸ ã€å¿ èŠã¯ãããŸããã ã·ã¹ãã å šäœãäžæãããªã¹ã¯ãäœããã©ã€ã ã¢ããªã±ãŒã·ã§ã³ã®å°ããªé åãæŽæ°ã§ããŸãã æŽæ°ã¯ãã¢ããªã±ãŒã·ã§ã³ãå®å šã«åãããã€ããããšãªãè¡ãããšãã§ããŸãã
åãã€ã¯ããµãŒãã¹ã¯åå¥ã«ã¹ã±ãŒãªã³ã°ã§ããŸãã ã¢ããªã±ãŒã·ã§ã³å šäœã 1 ã€ã®ãŠããããšããŠã¹ã±ãŒãªã³ã°ãã代ããã«ãå¿ èŠãªããã©ãŒãã³ã¹ ã¬ãã«ãšãµãŒãã¹ ã¬ãã«ã¢ã°ãªãŒã¡ã³ããæºããããã«ããå€ãã®åŠçèœåãå¿ èŠãšãããµãŒãã¹ã®ã¿ãã¹ã±ãŒã«ã¢ãŠãããŸãã ãã现ããã¹ã±ãŒãªã³ã°ã«ãããã·ã¹ãã ããã现ããå¶åŸ¡ã§ããã·ã¹ãã ã®äžéšãã¹ã±ãŒãªã³ã°ããéã«å šäœçãªã³ã¹ããåæžããã®ã«åœ¹ç«ã¡ãŸãããã¹ãŠã§ã¯ãããŸããã
ãã€ã¯ããµãŒãã¹ãçè§£ããããã®åªãããªãã¡ã¬ã³ã¹ ã¬ã€ã㯠ã.NET ãã€ã¯ããµãŒãã¹: ã³ã³ãããŒåããã .NET ã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã§ãã æ¬æžã§ã¯ããã€ã¯ããµãŒãã¹ã®èšèšãšã¢ãŒããã¯ãã£ã«ã€ããŠè©³ãã説æããŸãã ããã¯ãMicrosoft ããç¡æã§ããŠã³ããŒãã§ãã ãã« ã¹ã¿ãã¯ãã€ã¯ããµãŒãã¹åç §ã¢ãŒããã¯ã㣠ã®ã³ã³ãããªã³ã§ãã
ãã€ã¯ããµãŒãã¹ã®éçº
ãã€ã¯ããµãŒãã¹ã¯ãææ°ã®éçºãã©ãããã©ãŒã ã§äœæã§ããŸãã
Microsoft .NET ãã©ãããã©ãŒã ã¯åªããéžæè¢ã§ãã ç¡æã§ãªãŒãã³ ãœãŒã¹ã§ããããã€ã¯ããµãŒãã¹éçºãç°¡ç¥åããå€ãã®çµã¿èŸŒã¿æ©èœããããŸãã .NET ã¯ã¯ãã¹ãã©ãããã©ãŒã ã§ãã ã¢ããªã±ãŒã·ã§ã³ã¯ãWindowsãmacOSãããã³ã»ãšãã©ã®çš®é¡ã® Linux ã§ãã«ãããŠå®è¡ã§ããŸãã
.NET ã¯ããã©ãŒãã³ã¹ãé«ããNode.js ããã®ä»ã®ç«¶åãã©ãããã©ãŒã ãšæ¯èŒããŠåªããã¹ã³ã¢ãç²åŸããŠããŸãã è峿·±ãããšã«ã TechEmpower ã¯ãå€ãã® Web ã¢ããªã±ãŒã·ã§ã³ ãã©ãããã©ãŒã ãšãã¬ãŒã ã¯ãŒã¯ã«ããã£ãŠåºç¯ãª ããã©ãŒãã³ã¹ ãã³ãããŒã¯ ã宿œããŸããã .NET ã¯äžäœ 10 ã§ã¹ã³ã¢ãä»ããNode.js ããã®ä»ã®ç«¶åãã©ãããã©ãŒã ã倧ããäžåã£ãŠããŸãã
.NET ã¯ãMicrosoft ãš GitHub ã® .NET ã³ãã¥ããã£ã«ãã£ãŠç®¡çãããŠããŸãã
ãã€ã¯ããµãŒãã¹ã®èª²é¡
忣ã¯ã©ãŠããã€ãã£ããã€ã¯ããµãŒãã¹ã¯ãéåžžã«æ©ææ§ãšã¹ããŒããæäŸã§ããŸãããå€ãã®èª²é¡ããããŸãã
éä¿¡
ããã³ããšã³ã ã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã¯ãããã¯ãšã³ã ã³ã¢ ãã€ã¯ããµãŒãã¹ãšã©ã®ããã«éä¿¡ããŸãã? çŽæ¥éä¿¡ãèš±å¯ããŸãã? ãŸãã¯ãæè»æ§ãå¶åŸ¡ãããã³ã»ãã¥ãªãã£ãæäŸããã²ãŒããŠã§ã€ ãã¡ãµãŒãã䜿çšããŠããã¯ãšã³ã ãã€ã¯ããµãŒãã¹ãæœè±¡åã§ããŸãã?
ããã¯ãšã³ã ã³ã¢ ãã€ã¯ããµãŒãã¹ã¯ãã©ã®ããã«çžäºã«éä¿¡ããŸãã? çµåãåäžãããããã©ãŒãã³ã¹ã𿩿æ§ã«åœ±é¿ãäžããå¯èœæ§ã®ããçŽæ¥ HTTP åŒã³åºããèš±å¯ããŸãã? ãŸãã¯ããã¥ãŒããããã¯ãå©çšããéåæã¡ãã»ãŒãžã³ã°ãæ€èšããããšããããŸããã
éä¿¡ã«ã€ããŠã¯ã ã¯ã©ãŠããã€ãã£ãã®éä¿¡ãã¿ãŒã³ã®ç« ã§èª¬æããŸã ã
å埩æ§
ãã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£ã¯ãã·ã¹ãã ãã€ã³ããã»ã¹ããã¢ãŠãããã»ã¹ ãããã¯ãŒã¯éä¿¡ã«ç§»è¡ããŸãã 忣ã¢ãŒããã¯ãã£ã§ã¯ããµãŒãã¹ B ããµãŒãã¹ A ããã®ãããã¯ãŒã¯åŒã³åºãã«å¿çããŠããªãå Žåã¯ã©ããªããŸããã ãŸãã¯ããµãŒãã¹ C ãäžæçã«äœ¿çšã§ããªããªãããããåŒã³åºãä»ã®ãµãŒãã¹ããããã¯ãããå Žåã¯ã©ããªããŸãã?
å埩æ§ã«ã€ããŠã¯ã ã¯ã©ãŠããã€ãã£ãã®å埩æ§ã«é¢ ããç« ã§èª¬æãããŠããŸãã
忣ããŒã¿
èšèšäžãåãã€ã¯ããµãŒãã¹ã¯ç¬èªã®ããŒã¿ãã«ãã»ã«åãããã®ãããªã㯠ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠæäœãå ¬éããŸãã ãã®å Žåãè€æ°ã®ãµãŒãã¹éã§ããŒã¿ã®ã¯ãšãªãå®è¡ãããããã©ã³ã¶ã¯ã·ã§ã³ãå®è£ ãããããã«ã¯ã©ãããã°ããã§ãã?
忣ããŒã¿ã«ã€ããŠã¯ãã ã¯ã©ãŠããã€ãã£ã ããŒã¿ ãã¿ãŒã³ãã®ç« ã§èª¬æããŸã ã
ã·ãŒã¯ã¬ãã
ãã€ã¯ããµãŒãã¹ã§ã¯ãã·ãŒã¯ã¬ãããšæ©å¯æ§ã®é«ãæ§æããŒã¿ãå®å šã«æ ŒçŽããŠç®¡çããæ¹æ³ã説æããŸãã
ã·ãŒã¯ã¬ããã«ã€ããŠã¯ã ã¯ã©ãŠããã€ãã£ãã®ã»ãã¥ãªãã£ã«ã€ããŠè©³ãã説æããŸãã
Dapr ã䜿çšããŠè€éãã管çãã
Dapr ã¯ã忣åã®ãªãŒãã³ ãœãŒã¹ ã¢ããªã±ãŒã·ã§ã³ ã©ã³ã¿ã€ã ã§ãã ãã©ã°å¯èœãªã³ã³ããŒãã³ãã®ã¢ãŒããã¯ãã£ã«ããã忣ã¢ããªã±ãŒã·ã§ã³ã®èåŸã«ãã é 管ã å€§å¹ ã«ç°¡çŽ åãããŸãã ããã¯ãDapr ã©ã³ã¿ã€ã ã®äºåæ§ç¯æžã¿ã®ã€ã³ãã©ã¹ãã©ã¯ãã£æ©èœãšã³ã³ããŒãã³ãã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ããã€ã³ããã åçæ¥ç ãæäŸããŸãã å³ 1-5 ã¯ã20,000 ãã£ãŒãããã® Dapr ã瀺ããŠããŸãã
å³ 1-5ã 2 äžãã£ãŒãããã® Daprã
å³ã®äžçªäžã®è¡ã§ãDapr ãäžè¬çãªéçºãã©ãããã©ãŒã ã« èšèªåºæã® SDK ã æäŸããæ¹æ³ã«æ³šæããŠãã ããã Dapr v1 ã«ã¯ã.NETãGoãNode.jsãPythonãPHPãJavaãJavaScript ã®ãµããŒããå«ãŸããŠããŸãã
èšèªåºæã® SDK ã¯éçºè ãšã¯ã¹ããªãšã³ã¹ãåäžãããŸãããDapr ã¯ãã©ãããã©ãŒã ã«äŸåããŸããã å éšçã«ã¯ãDapr ã®ããã°ã©ãã³ã° ã¢ãã«ã§ã¯ãæšæºã® HTTP/gRPC éä¿¡ãããã³ã«ãä»ããŠæ©èœãå ¬éãããŠããŸãã ã©ã®ããã°ã©ãã³ã° ãã©ãããã©ãŒã ã§ãããã€ãã£ãã® HTTP API ãš gRPC API ãä»ã㊠Dapr ãåŒã³åºãããšãã§ããŸãã
å³ã®äžå€®ã®éãããã¯ã¹ã¯ãDapr ã®æ§æèŠçŽ ã衚ããŠããŸãã ããããã«ãããã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšã§ãã忣ã¢ããªã±ãŒã·ã§ã³æ©èœã«äºåæ§ç¯ãããä»çµã¿ã³ãŒããå ¬éãããŸãã
ã³ã³ããŒãã³ãè¡ã¯ãã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšã§ããå®çŸ©æžã¿ã®ã€ã³ãã©ã¹ãã©ã¯ã㣠ã³ã³ããŒãã³ãã®å€§èŠæš¡ãªã»ããã衚ããŸãã ã³ã³ããŒãã³ãã¯ãèšè¿°ããå¿ èŠã®ãªãã€ã³ãã©ã¹ãã©ã¯ã㣠ã³ãŒããšèããŠãã ããã
äžã®è¡ã§ã¯ãDapr ã®ç§»æ€æ§ãšãå®è¡ã§ãã倿§ãªç°å¢ã匷調衚瀺ãããŠããŸãã
ä»åŸãDapr ã¯ã¯ã©ãŠããã€ãã£ãã®ã¢ããªã±ãŒã·ã§ã³éçºã«å€§ããªåœ±é¿ãäžããå¯èœæ§ããããŸãã
Containers
ã¯ã©ãŠããã€ãã£ããªäŒè©±ã§ã³ã³ãããŒãšããçšèªãèãã®ã¯èªç¶ã§ãã æ¬ã®äžã§ã ã¯ã©ãŠããã€ãã£ããã¿ãŒã³ãèè ã³ãŒããªã¢ã»ãã€ãã¹ã¯ããã³ã³ãããŒã¯ã¯ã©ãŠããã€ãã£ããœãããŠã§ã¢ã®å倧ãªå®çŸè ã§ãããšèгå¯ããŠããŸããCloud Native Computing Foundation ã¯ããã€ã¯ããµãŒãã¹ã³ã³ãããŒåããã¯ã©ãŠããã€ãã£ãã®äœéšãéå§ããäŒæ¥åãã® ã¬ã€ãã³ã¹ã§ããCloud-Native Trail Map ã®æåã®ã¹ããããšããŠé 眮ããŸãã
ãã€ã¯ããµãŒãã¹ã®ã³ã³ãããŒåã¯åçŽã§ç°¡åã§ãã ã³ãŒãããã®äŸåé¢ä¿ãã©ã³ã¿ã€ã ã¯ã ã³ã³ãã㌠ã€ã¡ãŒãžãšåŒã°ãããã€ããªã«ããã±ãŒãžåãããŸãã ã€ã¡ãŒãžã¯ãã€ã¡ãŒãžã®ãªããžããªãŸãã¯ã©ã€ãã©ãªãšããŠæ©èœããã³ã³ãã㌠ã¬ãžã¹ããªã«æ ŒçŽãããŸãã ã¬ãžã¹ããªã¯ãéçºçšã³ã³ãã¥ãŒã¿ãŒãããŒã¿ ã»ã³ã¿ãŒããŸãã¯ãããªã㯠ã¯ã©ãŠãã«é 眮ã§ããŸãã Docker èªäœã¯ã Docker Hub ãä»ããŠãããªã㯠ã¬ãžã¹ããªãç¶æããŸãã Azure ã¯ã©ãŠãã«ã¯ãã³ã³ãã㌠ã€ã¡ãŒãžãå®è¡ããã¯ã©ãŠã ã¢ããªã±ãŒã·ã§ã³ã®è¿ãã«æ ŒçŽãããã©ã€ããŒã ã³ã³ãã㌠ã¬ãžã¹ã㪠ãçšæãããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®èµ·åæãŸãã¯ã¹ã±ãŒãªã³ã°æã«ãã³ã³ãã㌠ã€ã¡ãŒãžãå®è¡äžã®ã³ã³ãã㌠ã€ã³ã¹ã¿ã³ã¹ã«å€æããŸãã ã€ã³ã¹ã¿ã³ã¹ã¯ã ã³ã³ãã㌠ã©ã³ã¿ã€ã ãšã³ãžã³ãã€ã³ã¹ããŒã«ãããŠããä»»æã®ã³ã³ãã¥ãŒã¿ãŒã§å®è¡ãããŸãã ã³ã³ãããŒåããããµãŒãã¹ã®ã€ã³ã¹ã¿ã³ã¹ã¯ãå¿ èŠã«å¿ããŠããã€ã§ãäœæã§ããŸãã
å³ 1-6 ã¯ãããããç¬èªã®ã³ã³ãããŒå ã® 3 ã€ã®ç°ãªããã€ã¯ããµãŒãã¹ã瀺ããŠããŸãããããã¯ãã¹ãŠ 1 ã€ã®ãã¹ãã§å®è¡ãããŠããŸãã

å³ 1-6 ã³ã³ãã㌠ãã¹ãã§å®è¡ãããŠããè€æ°ã®ã³ã³ãããŒ
åã³ã³ãããŒãäŸåé¢ä¿ãšã©ã³ã¿ã€ã ã®ç¬èªã®ã»ãããç¶æããæ¹æ³ã«æ³šæããŠãã ãããããã¯äºãã«ç°ãªãå ŽåããããŸãã ããã§ã¯ãåããã¹ãã§å®è¡ãããŠãã補åãã€ã¯ããµãŒãã¹ã®ããŸããŸãªããŒãžã§ã³ã衚瀺ãããŸãã åã³ã³ãããŒã¯ãåºã«ãªããã¹ã ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãã¡ã¢ãªãããã»ããµã®ã¹ã©ã€ã¹ãå ±æããŸãããäºãã«åé¢ãããŸãã
ã³ã³ãã㌠ã¢ãã«ããTwelve-Factor ã¢ããªã±ãŒã·ã§ã³ããã®äŸåé¢ä¿ã®ååãã©ã®çšåºŠæ¡çšããŠãããã«æ³šæããŠãã ããã
Factor #2 ã§ã¯ã"åãã€ã¯ããµãŒãã¹ã¯ç¬èªã®äŸåé¢ä¿ãåé¢ããŠããã±ãŒãžåããã·ã¹ãã å šäœã«åœ±é¿ãäžããã«å€æŽãåãå ¥ãã" ããšãæå®ããŸãã
ã³ã³ãããŒã§ã¯ãLinux ã¯ãŒã¯ããŒããš Windows ã¯ãŒã¯ããŒãã®äž¡æ¹ããµããŒããããŸãã Azure ã¯ã©ãŠãã§ã¯ãäž¡æ¹ããªãŒãã³ã«åãå ¥ããŸãã è峿·±ãããšã«ãAzure ã§ããäžè¬çãªãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãšãªã£ãŠããã®ã¯ãWindows Server ã§ã¯ãªã Linux ã§ãã
è€æ°ã®ã³ã³ãã㌠ãã³ããŒãååšããäžæ¹ã§ã Docker ã¯åžå Žã®ã©ã€ãªã³ã®ã·ã§ã¢ãç²åŸããŠããŸãã å瀟ã¯ããœãããŠã§ã¢ã³ã³ãããŒã®åããæšé²ããŠããŸããã ããã¯ãã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã®ããã±ãŒãžåããããã€ãå®è¡ã®äºå®äžã®æšæºãšãªã£ãŠããŸãã
ã³ã³ãããŒã®çç±
ã³ã³ãããŒã¯ç§»æ€æ§ãæäŸããç°å¢éã®äžè²«æ§ãä¿èšŒããŸãã ãã¹ãŠã 1 ã€ã®ããã±ãŒãžã«ã«ãã»ã«åããããšã§ããã€ã¯ããµãŒãã¹ãšãã®äŸåé¢ä¿ãåºã«ãªãã€ã³ãã©ã¹ãã©ã¯ãã£ãã åé¢ ããŸãã
ã³ã³ãããŒã¯ãDocker ã©ã³ã¿ã€ã ãšã³ãžã³ããã¹ãããä»»æã®ç°å¢ã«ãããã€ã§ããŸãã ã³ã³ãããŒåãããã¯ãŒã¯ããŒãã§ã¯ããã¬ãŒã ã¯ãŒã¯ããœãããŠã§ã¢ ã©ã€ãã©ãªãã©ã³ã¿ã€ã ãšã³ãžã³ã䜿çšããŠåç°å¢ãäºåã«æ§æããã³ã¹ããåæžãããŸãã
åºã«ãªããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãšãã¹ã ãªãœãŒã¹ãå ±æããããšã§ãã³ã³ãããŒã®ãããããªã³ãã¯å®å šãªä»®æ³ãã·ã³ãããã¯ããã«å°ãããªããŸãã ãµã€ãºãå°ãããšãç¹å®ã®ãã¹ããäžåºŠã«å®è¡ã§ãã å¯åºŠ (ãã€ã¯ããµãŒãã¹ã®æ°) ãå¢å ããŸãã
ã³ã³ãããŒã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³
Docker ãªã©ã®ããŒã«ã¯ã€ã¡ãŒãžãäœæããŠã³ã³ãããŒãå®è¡ããŸããããããã管çããããã®ããŒã«ãå¿ èŠã§ãã ã³ã³ãããŒç®¡çã¯ã ã³ã³ãã㌠ãªãŒã±ã¹ãã¬ãŒã¿ãŒãšåŒã°ããç¹å¥ãªãœãããŠã§ã¢ ããã°ã©ã ã§è¡ãããŸãã 倿°ã®ç¬ç«ããå®è¡äžã®ã³ã³ãããŒã§å€§èŠæš¡ã«åäœããå Žåã¯ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãäžå¯æ¬ ã§ãã
å³ 1-7 ã¯ãã³ã³ãã㌠ãªãŒã±ã¹ãã¬ãŒã¿ãŒãèªååãã管çã¿ã¹ã¯ã瀺ããŠããŸãã

å³ 1-7 ã³ã³ãã㌠ãªãŒã±ã¹ãã¬ãŒã¿ãŒã®æ©èœ
次ã®è¡šã§ã¯ãäžè¬çãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ã¿ã¹ã¯ã«ã€ããŠèª¬æããŸãã
| ã¿ã¹ã¯ | 説æ |
|---|---|
| ã¹ã±ãžã¥ãŒãªã³ã° | ã³ã³ãã㌠ã€ã³ã¹ã¿ã³ã¹ãèªåçã«ããããžã§ãã³ã°ããŸãã |
| èŠªåæ§/åèŠªåæ§ | ã³ã³ãããŒãäºãã«è¿ããŸãã¯é ãé¢ããå Žæã«ããããžã§ãã³ã°ããå¯çšæ§ãšããã©ãŒãã³ã¹ãåäžãããŸãã |
| å¥åº·ç¶æ ã®ç£èŠ | ãšã©ãŒãèªåçã«æ€åºããŠä¿®æ£ããŸãã |
| ãã§ãŒã«ãªãŒã㌠| 倱æããã€ã³ã¹ã¿ã³ã¹ãæ£åžžãªãã·ã³ã«èªåçã«åããããžã§ãã³ã°ããŸãã |
| Scaling | éèŠã«åãããŠã³ã³ãã㌠ã€ã³ã¹ã¿ã³ã¹ãèªåçã«è¿œå ãŸãã¯åé€ããŸãã |
| ãããã¯ãŒã¯ | ã³ã³ãããŒéä¿¡çšã®ãããã¯ãŒã¯ ãªãŒããŒã¬ã€ã管çããŸãã |
| ãµãŒãã¹ã®æ€åº | ã³ã³ãããŒãäºããèŠã€ãåããããã«ããŸãã |
| ããŒãªã³ã° ã¢ããã°ã¬ãŒã | ããŠã³ã¿ã€ã ãªãã®ãããã€ã§å¢åã¢ããã°ã¬ãŒãã調æŽããŸãã åé¡ã®ãã倿Žãèªåçã«ããŒã«ããã¯ããŸãã |
ã³ã³ãã㌠ãªãŒã±ã¹ãã¬ãŒã¿ãŒããTwelve-Factor ã¢ããªã±ãŒã·ã§ã³ããã®ç Žæ£å¯èœæ§ãšã³ã³ã«ã¬ã³ã·ãŒã®ååãæ¡çšããæ¹æ³ã«æ³šæããŠãã ããã
Factor #9 ã§ã¯ã"ãµãŒãã¹ ã€ã³ã¹ã¿ã³ã¹ã¯ç Žæ£å¯èœã«ããå¿ èŠããããé«éãªã¹ã¿ãŒãã¢ãããåªå ããŠã¹ã±ãŒã©ããªãã£ã®æ©äŒãå¢ãããã·ã¹ãã ãæ£ããç¶æ ã«ããŠããã°ã¬ãŒã¹ãã« ã·ã£ããããŠã³ " ãæå®ããŸããDocker ã³ã³ãããŒãšãªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ãæ¬è³ªçã«ãã®èŠä»¶ãæºãããŠããã
Factor #8 ã§ã¯ã"ãµãŒãã¹ã¯ã䜿çšå¯èœãªæã匷åãªãã·ã³äžã®åäžã®å€§èŠæš¡ãªã€ã³ã¹ã¿ã³ã¹ãã¹ã±ãŒã«ã¢ããããã®ã§ã¯ãªãã倿°ã®å°ããªåäžããã»ã¹ (ã³ããŒ) ã«ããã£ãŠã¹ã±ãŒã«ã¢ãŠããã" ããšãæå®ããŸãã
è€æ°ã®ã³ã³ãã㌠ãªãŒã±ã¹ãã¬ãŒã¿ãŒãååšããäžæ¹ã§ã Kubernetes ã¯ã¯ã©ãŠããã€ãã£ãã®äžçã®äºå®äžã®æšæºãšãªã£ãŠããŸãã ããã¯ãã³ã³ãããŒåãããã¯ãŒã¯ããŒãã管çããããã®ç§»æ€å¯èœã§æ¡åŒµå¯èœãªãªãŒãã³ ãœãŒã¹ ãã©ãããã©ãŒã ã§ãã
Kubernetes ã®ç¬èªã®ã€ã³ã¹ã¿ã³ã¹ããã¹ãããããšãã§ããŸããããã®ãªãœãŒã¹ã®ããããžã§ãã³ã°ãšç®¡çã¯ãè€éã«ãªãå¯èœæ§ããããŸãã Azure ã¯ã©ãŠãã§ã¯ãKubernetes ããããŒãžã ãµãŒãã¹ãšããŠæ©èœããŸãã Azure Kubernetes Service (AKS) ãš Azure Red Hat OpenShift (ARO) ã®äž¡æ¹ã䜿çšãããšãKubernetes ã®æ©èœãšæ©èœããããŒãžã ãµãŒãã¹ãšããŠå®å šã«æŽ»çšã§ããŸããã€ã³ã¹ããŒã«ããŠä¿å®ããå¿ èŠã¯ãããŸããã
ã³ã³ãã㌠ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®è©³çްã«ã€ããŠã¯ãã Cloud-Native ã¢ããªã±ãŒã·ã§ã³ã®ã¹ã±ãŒãªã³ã°ããåç §ããŠãã ããã
ããã¯ãšã³ã ãµãŒãã¹
ã¯ã©ãŠããã€ãã£ã ã·ã¹ãã ã¯ãããŒã¿ ã¹ãã¢ãã¡ãã»ãŒãž ãããŒã«ãŒãç£èŠãID ãµãŒãã¹ãªã©ãããŸããŸãªè£å©ãªãœãŒã¹ã«äŸåããŸãã ãããã®ãµãŒãã¹ã¯ ããããã³ã° ãµãŒãã¹ãšåŒã°ããŸãã
å³ 1-8 ã¯ãã¯ã©ãŠã ãã€ãã£ã ã·ã¹ãã ã§äœ¿çšãããå€ãã®äžè¬çãªãããã³ã° ãµãŒãã¹ã瀺ããŠããŸãã

å³ 1-8 äžè¬çãªæ¯æŽãµãŒãã¹
ç¬èªã®ãããã³ã° ãµãŒãã¹ããã¹ãããããšãã§ããŸããããã®åŸããããã®ãªãœãŒã¹ã®ã©ã€ã»ã³ã¹ãããããžã§ãã³ã°ã管çãè¡ãå¿ èŠããããŸãã
ã¯ã©ãŠã ãããã€ããŒã¯ã è±å¯ãªãããŒãžã ãããã³ã° ãµãŒãã¹ ãæäŸããŸãããµãŒãã¹ãææãã代ããã«ããµãŒãã¹ã䜿çšããã ãã§ãã ã¯ã©ãŠã ãããã€ããŒã¯ããªãœãŒã¹ãå€§èŠæš¡ã«éçšããããã©ãŒãã³ã¹ãã»ãã¥ãªãã£ãããã³ã¡ã³ããã³ã¹ã«è²¬ä»»ãè² ããŸãã ç£èŠãåé·æ§ãããã³å¯çšæ§ã¯ããµãŒãã¹ã«çµã¿èŸŒãŸããŠããŸãã ãããã€ããŒã¯ãµãŒãã¹ ã¬ãã«ã®ããã©ãŒãã³ã¹ãä¿èšŒãããããŒãžã ãµãŒãã¹ãå®å šã«ãµããŒãããŸãããã±ãããéããŠåé¡ã解決ããŸãã
ã¯ã©ãŠããã€ãã£ã ã·ã¹ãã ã¯ãã¯ã©ãŠã ãã³ããŒããã®ãããŒãžã ãããã³ã° ãµãŒãã¹ãåªå ããŸãã æéãšåŽåã®ç¯çŽã¯å€§ããªå¯èœæ§ããããŸãã èªåã§ãã¹ãããåé¡ãçºçããéçšäžã®ãªã¹ã¯ã¯ãã³ã¹ããé«ããªãå¯èœæ§ããããŸãã
ãã¹ã ãã©ã¯ãã£ã¹ã¯ããããã³ã° ãµãŒãã¹ã ã¢ã¿ããããããªãœãŒã¹ãšããŠæ±ããå€éšæ§æã«æ ŒçŽãããæ§ææ å ± (URL ãšè³æ Œæ å ±) ã䜿çšããŠãã€ã¯ããµãŒãã¹ã«åçã«ãã€ã³ãããããšã§ãã ãã®ã¬ã€ãã³ã¹ã¯ãåã®ç« ã§èª¬æãã Twelve-Factor ã¢ããªã±ãŒã·ã§ã³ã§èª¬æãããŠããŸãã
èŠçŽ 4 ã¯ããããã³ã° ãµãŒãã¹ã"ã¢ãã¬ã¹æå®å¯èœãª URL ãä»ããŠå ¬éãããå¿ èŠããã" ããšãæå®ããŸãã ããã«ããããªãœãŒã¹ãã¢ããªã±ãŒã·ã§ã³ããåãé¢ããã亀æå¯èœã«ãªããŸãã
èŠçŽ 3 ã§ã¯ã"æ§ææ å ±ã¯ãã€ã¯ããµãŒãã¹ããç§»åãããã³ãŒãã®å€éšã«ããæ§æç®¡çããŒã«ã䜿çšããŠå€éšåããã" ããšãæå®ããŸãã
ãã®ãã¿ãŒã³ã§ã¯ãã³ãŒãã倿Žããã«ãããã³ã° ãµãŒãã¹ãã¢ã¿ããããã³ãã¿ããã§ããŸãã QA ããã¹ããŒãžã³ã°ç°å¢ã«ãã€ã¯ããµãŒãã¹ãææ Œãããå ŽåããããŸãã ã¹ããŒãžã³ã°ã®ãããã³ã° ãµãŒãã¹ãæãããã«ãã€ã¯ããµãŒãã¹æ§æãæŽæ°ããç°å¢å€æ°ã䜿çšããŠèšå®ãã³ã³ãããŒã«æ¿å ¥ããŸãã
ã¯ã©ãŠã ãã³ããŒã¯ãç¬èªã®ãããã³ã° ãµãŒãã¹ãšéä¿¡ããããã® API ãæäŸããŸãã ãããã®ã©ã€ãã©ãªã¯ãç¬èªã®é 管ãšè€éããã«ãã»ã«åããŸãã ãã ãããããã® API ãšçŽæ¥éä¿¡ãããšããã®ç¹å®ã®ãããã³ã° ãµãŒãã¹ã«ã³ãŒããå¯ã«çµåãããŸãã ãã³ã㌠API ã®å®è£ ã®è©³çްãçµ¶çžããããšã¯ãåºãåãå ¥ãããããã©ã¯ãã£ã¹ã§ãã 仲ä»å±€ (äžé API) ãå°å ¥ãããµãŒãã¹ ã³ãŒãã«æ±çšæäœãå ¬éãããã®äžã«ãã³ã㌠ã³ãŒããã©ããããŸãã ãã®ççµåã«ãããã¡ã€ã³ã©ã€ã³ ãµãŒãã¹ ã³ãŒãã倿Žããããšãªãããããããã³ã° ãµãŒãã¹ãå¥ã®ãããã³ã° ãµãŒãã¹ã«ã¹ã¯ããã¢ãŠãããããã³ãŒããå¥ã®ã¯ã©ãŠãç°å¢ã«ç§»åãããã§ããŸãã åã«èª¬æãã Dapr ã¯ã äºåæ§ç¯æžã¿ã®æ§æèŠçŽ ã®ã»ããã§ãã®ã¢ãã«ã«åŸããŸãã
æåŸã«ããããã³ã° ãµãŒãã¹ã¯ãåã®ç« ã§èª¬æãã Twelve-Factor ã¢ããªã±ãŒã·ã§ã³ããã®ã¹ããŒãã¬ã¹ã®ååãä¿é²ããŸãã
Factor #6 ã§ã¯ã"åãã€ã¯ããµãŒãã¹ã¯ãä»ã®å®è¡äžã®ãµãŒãã¹ããåé¢ãããç¬èªã®ããã»ã¹ã§å®è¡ããå¿ èŠããããŸãã å¿ èŠãªç¶æ ã忣ãã£ãã·ã¥ãããŒã¿ ã¹ãã¢ãªã©ã®ãããã³ã° ãµãŒãã¹ã«å€éšåããŸãã
ãããã³ã° ãµãŒãã¹ã«ã€ããŠã¯ã ã¯ã©ãŠããã€ãã£ãã®ããŒã¿ ãã¿ãŒã³ ãš ã¯ã©ãŠããã€ãã£ãã®éä¿¡ãã¿ãŒã³ã§èª¬æããŸãã
Automation
ã芧ã®ããã«ãã¯ã©ãŠããã€ãã£ã ã·ã¹ãã ã§ã¯ããã€ã¯ããµãŒãã¹ãã³ã³ãããŒãææ°ã®ã·ã¹ãã èšèšãæ¡çšããŠãéåºŠãšæ©ææ§ãå®çŸããŠããŸãã ããããããã¯ã¹ããŒãªãŒã®äžéšã«ãããŸããã ãããã®ã·ã¹ãã ãå®è¡ããã¯ã©ãŠãç°å¢ãã©ã®ããã«ããããžã§ãã³ã°ããŸãã? ã¢ããªã®æ©èœãšæŽæ°ããã°ã©ã ãè¿ éã«ãããã€ããæ¹æ³ å šäœåã宿ãããæ¹æ³
ã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ã㣠(IaC) ã®åºãåãå ¥ããããŠãããã©ã¯ãã£ã¹ãå ¥åããŸãã
IaC ã䜿çšãããšããã©ãããã©ãŒã ã®ããããžã§ãã³ã°ãšã¢ããªã±ãŒã·ã§ã³ã®ãããã€ãèªååã§ããŸãã åºæ¬çã«ããã¹ããããŒãžã§ã³ç®¡çãªã©ã®ãœãããŠã§ã¢ ãšã³ãžãã¢ãªã³ã° ãã©ã¯ãã£ã¹ã DevOps ãã©ã¯ãã£ã¹ã«é©çšããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ãšãããã€ã¯èªååãããäžè²«æ§ããããå埩å¯èœã§ãã
ã€ã³ãã©ã¹ãã©ã¯ãã£ã®èªåå
Azure Resource ManagerãAzure BicepãHashiCorp ã® TerraformãAzure CLI ãªã©ã®ããŒã«ã䜿çšãããšãå¿ èŠãªã¯ã©ãŠã ã€ã³ãã©ã¹ãã©ã¯ãã£ã宣èšã«ãã£ãŠã¹ã¯ãªããåã§ããŸãã ãªãœãŒã¹åãå Žæã容éãã·ãŒã¯ã¬ããã¯ãã©ã¡ãŒã¿ãŒåãããåçã§ãã ã¹ã¯ãªããã¯ããŒãžã§ã³ç®¡çããããããžã§ã¯ãã®ææç©ãšããŠãœãŒã¹ç®¡çã«ãã§ãã¯ã€ã³ãããŸãã ãã®ã¹ã¯ãªãããåŒã³åºããŠãQAãã¹ããŒãžã³ã°ãéçšãªã©ã®ã·ã¹ãã ç°å¢éã§äžè²«æ§ã®ããå埩å¯èœãªã€ã³ãã©ã¹ãã©ã¯ãã£ãããããžã§ãã³ã°ããŸãã
å éšã§ã¯ IaC ã¯ã¹ãçã§ããã€ãŸããåãã¹ã¯ãªãããäœåºŠãå®è¡ããŠãå¯äœçšããããŸããã ããŒã ã倿Žãå ããå¿ èŠãããå Žåã¯ãã¹ã¯ãªãããç·šéããŠåå®è¡ããŸãã æŽæ°ããããªãœãŒã¹ã®ã¿ã圱é¿ãåããŸãã
èšäºã ã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãšã¯ãã®èè Sam Guckenheimer ã¯ããIaC ãå®è£ ãã Teams ã¯ãå®å®ããç°å¢ãè¿ éãã€å€§èŠæš¡ã«æäŸããæ¹æ³ã«ã€ããŠèª¬æããŠããŸãã ç°å¢ã®æåæ§æãåé¿ããã³ãŒãã䜿çšããŠç°å¢ã®æãŸããç¶æ ã衚ãããšã§äžè²«æ§ã匷å¶ããŸãã IaC ã䜿çšããã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãããã€ã¯ç¹°ãè¿ãå¯èœã§ãããæ§æã®èª€å·®ãäŸåé¢ä¿ã®äžè¶³ã«ãã£ãŠçºçããã©ã³ã¿ã€ã ã®åé¡ãé²ããŸãã DevOps ããŒã ã¯ãçµ±åãããäžé£ã®ãã©ã¯ãã£ã¹ãšããŒã«ãšé£æºããŠãã¢ããªã±ãŒã·ã§ã³ãšãã®ãµããŒã ã€ã³ãã©ã¹ãã©ã¯ãã£ãè¿ éãã€ç¢ºå®ã«å€§èŠæš¡ã«æäŸã§ããŸãã
ãããã€ã®èªåå
æ¢ã«èª¬æãã Twelve-Factor ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãå®äºããã³ãŒããå®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ã«å€æãããšãã«ãåå¥ã®æé ãåŒã³åºããŸãã
Factor #5 ã§ã¯ã"åãªãªãŒã¹ã§ã¯ããã«ãããªãªãŒã¹ãããã³å®è¡ã®åã¹ããŒãžã§å³å¯ãªåé¢ãé©çšããå¿ èŠããããŸãã ããããã«äžæã® ID ã§ã¿ã°ãä»ããããŒã«ããã¯ããæ©èœããµããŒãããå¿ èŠããããŸãã
ææ°ã® CI/CD ã·ã¹ãã ã¯ããã®ååãæºããã®ã«åœ¹ç«ã¡ãŸãã ãããã¯ããŠãŒã¶ãŒãããã«äœ¿çšã§ããäžè²«æ§ã®ããå質ã®ã³ãŒãã確ä¿ããã®ã«åœ¹ç«ã€åå¥ã®ãã«ããšé ä¿¡ã®æé ãæäŸããŸãã
å³ 1-9 ã¯ãããã〠ããã»ã¹éã®åé¢ã瀺ããŠããŸãã

å³ 1-9 CI/CD ãã€ãã©ã€ã³ã§ã®ãããã€æé
åã®å³ã§ã¯ãã¿ã¹ã¯ã®åé¢ã«ç¹ã«æ³šæããŠãã ããã
- éçºè ã¯éçºç°å¢ã§æ©èœãæ§ç¯ããã³ãŒããå®è¡ããããã°ã® "å éšã«ãŒã" ãšåŒã°ãããã®ãå埩åŠçããŸãã
- å®äºãããšããã®ã³ãŒã㯠GitHubãAzure DevOpsãBitBucket ãªã©ã®ã³ãŒã ãªããžããªã« ããã·ã¥ãããŸã ã
- ããã·ã¥ã«ãã£ãŠãã³ãŒãããã€ããªææç©ã«å€æãããã«ã ã¹ããŒãžãããªã¬ãŒãããŸãã ãã®äœæ¥ã¯ã ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ (CI) ãã€ãã©ã€ã³ã䜿çšããŠå®è£ ãããŸãã ã¢ããªã±ãŒã·ã§ã³ãèªåçã«ãã«ãããã¹ããããã±ãŒãžããŸãã
- ãªãªãŒã¹ ã¹ããŒãžã§ã¯ããã€ããªææç©ãéžæããå€éšã¢ããªã±ãŒã·ã§ã³ãšç°å¢ã®æ§ææ å ±ãé©çšããŠã倿Žã§ããªããªãªãŒã¹ãçæããŸãã ãªãªãŒã¹ã¯ãæå®ãããç°å¢ã«ãããã€ãããŸãã ãã®äœæ¥ã¯ã ç¶ç¶çããªããªãŒ (CD) ãã€ãã©ã€ã³ã䜿çšããŠå®è£ ãããŸãã åãªãªãŒã¹ã¯èå¥å¯èœã§ããå¿ èŠããããŸãã "ãã®ãããã€ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãªãªãŒã¹ 2.1.1 ãå®è¡ãããŠããŸã" ãšèšãããšãã§ããŸãã
- æåŸã«ããªãªãŒã¹ãããæ©èœã¯ã¿ãŒã²ããå®è¡ç°å¢ã§å®è¡ãããŸãã ãªãªãŒã¹ã¯äžå€ã§ããã€ãŸãã倿Žã«ãã£ãŠæ°ãããªãªãŒã¹ãäœæããå¿ èŠããããŸãã
ãããã®ãã©ã¯ãã£ã¹ãé©çšããããšã§ãçµç¹ã¯ãœãããŠã§ã¢ã®åºè·æ¹æ³ãæ ¹æ¬çã«é²åããŠããŸããã å€ãã¯ãååæããšã®ãªãªãŒã¹ãããªã³ããã³ãæŽæ°ããã°ã©ã ã«ç§»è¡ããŸããã ç®æšã¯ãä¿®æ£ã³ã¹ããäœãéçºãµã€ã¯ã«ã®æ©ã段éã§åé¡ããã£ããããããšã§ãã çµ±åã®éã®æéãé·ãã»ã©ãããã³ã¹ãã®é«ãåé¡ã解決ãããŸãã çµ±åããã»ã¹ã®äžè²«æ§ã«ãããããŒã ã¯ã³ãŒãã®å€æŽãããé »ç¹ã«ã³ãããã§ããã³ã©ãã¬ãŒã·ã§ã³ãšãœãããŠã§ã¢ã®å質ãåäžããŸãã
ã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãšãããã€ã®èªååãããã³ GitHub ããã³ Azure DevOps ã«ã€ããŠã¯ã DevOps ã§è©³ãã説æããŸãã