ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ããã³ç¶ç¶çãããã€ã¡ã³ãçµ±åãšããŠãç¥ããã CI/CD DevOps çµ±åã¯ãåçåãããã³ã©ãã¬ãŒã·ã§ã³ãé«å¹çãäºæž¬å¯èœæ§ãããã³ãœãããŠã§ã¢å šäœã®å質ã®åäžã確ä¿ããããšãç®çãšãããææ°ã®ãœãããŠã§ã¢éçºå®è·µã«äžå¯æ¬ ãªåŽé¢ãæããŸãããã®çµ±åã¯ãç¶ç¶çãªéçºããã¹ããé ä¿¡ãªã©ã®éèŠãª DevOps ååãçµã¿åãããŠãç¹ã«ã¢ãžã£ã€ã«ã§ããŒã¹ã®éãéçºç°å¢ã«ãããŠãè¿ éãã€èªååãããéçºãã€ãã©ã€ã³ãæäŸããŸãã
ãã®ããã»ã¹ã§ã¯ãéçºè ã¯ã³ãŒãã®å€æŽãç¶ç¶çã«å ±æãªããžããªã«çµ±åããæ§ç¯ããã¹ãããããã€ã¡ã³ããè€æ°åç¹°ãè¿ããŸãããã®ãããªã¢ãããŒãã«ããããããŸã§æ€åºãããªãã£ããã°ã«ããããŒã«ã¢ãŠãã®å€±æãç«¶åã®ãªã¹ã¯ãæå°éã«æãããããšã³ããŠãŒã¶ãŒãžã®è¿ éãã€ã¹ã ãŒãºãªé ä¿¡ãå¯èœã«ãªããŸãã
äžè¬ç㪠CI/CD ãã€ãã©ã€ã³ã§ã¯ãéçºè ã¯ãŸã Git ã SVN ãªã©ã®ããŒãžã§ã³ç®¡çã·ã¹ãã ã䜿çšããŠã³ãŒãããŒã¹ã§å ±åäœæ¥ããŸãã倿Žããªããžããªã«ã³ãããããããšãJenkinsãBambooãTravis CIãCircleCI ãªã©ã® CI ãµãŒããŒãèªåçã«ãããžã§ã¯ãã®ãã«ããéå§ããæ°ãã倿Žãæ€èšŒããŸãããã®æ®µéã§ã¯ãåäœãã¹ããçµ±åãã¹ãããŸãã¯ããã©ãŒãã³ã¹ ãã¹ãã«åºã¥ãèªåãã¹ã ã¹ã€ãŒããå®è¡ãããã³ãŒãã®ä¿¡é Œæ§ãå®å®æ§ãå šäœçãªå質ãä¿èšŒãããŸãã
ãã«ããšãã¹ãã®ãã§ãŒãºãçµäºãããšãã³ãŒãã¯å±éã¹ããŒãžã«é²ã¿ãŸããããã§ã¯ãç¶ç¶çå±éãµãŒããŒãåŒãç¶ããéçºãã¹ããŒãžã³ã°ãå®çšŒåãªã©ã®è€æ°ã®ç°å¢ãžã®é ä¿¡ããã»ã¹ãèªååããŸãã DockerãKubernetesãHelm ãªã©ã®ããŒã«ã¯ããããã€ã¡ã³ã ããã»ã¹ãç°¡çŽ åããããã«ãã䜿çšãããã·ãŒã ã¬ã¹ãªã¹ã±ãŒã©ããªãã£ãšããŠã³ã¿ã€ã ã®åæžãå®çŸããŸãã
CI/CD DevOps çµ±åã¯ãæ£ããå®è£ ãããå Žåãæ°å€ãã®é åçãªå©ç¹ããããããŸãããã®äžã«ã¯ããã£ãŒããã㯠ã«ãŒãã®é«éåãçç£æ§ã®åäžãéçºæéã®ççž®ãéçºè ãQA ããŒã ãã€ã³ãã©ã¹ãã©ã¯ã㣠ãšã³ãžãã¢ããã®ä»ã®ãããžã§ã¯ãé¢ä¿è éã®ã³ã©ãã¬ãŒã·ã§ã³ã®åäžãªã©ãå«ãŸããŸãããã®æå¹æ§ã瀺ãæãããªäŸã® 1 ã€ã¯ããœãããŠã§ã¢æ¥çå šäœã§èгå¯ã§ããé »ç¹ãªå¢åãªãªãŒã¹ã®é¡èãªå¢å ã§ããããŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ãåäžãã補åã®æ¥éãªé²åãä¿é²ãããŠããŸãã
AppMasterno-codeãã©ãããã©ãŒã ã¯ãéçºããã»ã¹ãåçåããWebãã¢ãã€ã«ãããã³ããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ã§äžè²«ããé«å質ã®çµæãä¿èšŒããããšã«ãããCI/CD DevOps çµ±åã®éèŠãªååãæ¡çšããŠããŸããããã§ãŠãŒã¶ãŒã¯ããŒã¿ ã¢ãã«ãæ§ç¯ããããžãã¹ ããã»ã¹ãèšèšããããã¯ãšã³ãã§ REST API ãš WSS ãšã³ããã€ã³ããäœæã§ããŸãã Web ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãUI ã³ã³ããŒãã³ãã¯drag-and-dropæ©èœã䜿çšããŠèšèšã§ããã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ã®å ŽåãUI ã³ã³ããŒãã³ããšããžãã¹ ããžãã¯ã¯ã¢ãã€ã« ããžãã¹ ããã»ã¹ ãã¶ã€ããŒã§äœæãããŸãã
ãå ¬éããã¿ã³ãæŒããšã AppMasterãœãŒã¹ ã³ãŒãã®çæãã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ãã€ã«ããã¹ãã®å®è¡ãããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ã® Docker ã³ã³ãããžã®ããã¯ãããã³ã¯ã©ãŠããžã®ãããã€ããã¹ãŠ 30 ç§ä»¥å ã«è¡ããŸãããã©ãããã©ãŒã ã¯åžžã«ã¢ããªã±ãŒã·ã§ã³ããŒãããçæãããããæè¡çè² åµã广çã«æé€ãããããããèŠæš¡ã®äŒæ¥ã«ãšã£ãŠé·æçãªã¡ãªãããä¿èšŒãããŸãã AppMasterãŸãããã©ã€ã㪠ããŒã¿ããŒã¹ãšã㊠PostgreSQL äºæããŒã¿ããŒã¹ãå®å šã«ãµããŒãããããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ã«ã¯ Go (golang)ãWeb ã¢ããªã±ãŒã·ã§ã³ã«ã¯ Vue3 ãã¬ãŒã ã¯ãŒã¯ãš JS/TSãAndroid ã«ã¯ Kotlin ãšJetpack Composeãå©çšããããšã§ããŠãŒã¶ãŒã®ã¹ã±ãŒã©ããªãã£ãšããã©ãŒãã³ã¹ãä¿é²ããŸãã iOS çšã®SwiftUIãåæ§ã§ãã
ããã«ã AppMasterå æ¬çãªããã¥ã¡ã³ããšç§»è¡ããŒã«ãæäŸããç¹ã«ãµãŒããŒendpointsçšã® Swagger (OpenAPI) ããã¥ã¡ã³ããšããŒã¿ããŒã¹ ã¹ããŒãç§»è¡ã¹ã¯ãªãããçæããŸãããã®ãã©ãããã©ãŒã ã¯ããªã³ãã¬ãã¹ ãã¹ãã£ã³ã°ãšã®äºææ§ãšãæ°ããããŒãžã§ã³ãã¢ã㪠ã¹ãã¢ã«éä¿¡ããã« UIãããžãã¯ãAPI ããŒãæŽæ°ã§ããæ©èœãåããŠãããé«å質ã§å®å šã«æ©èœããã¢ããªã±ãŒã·ã§ã³ãå¿ èŠãšããäŒæ¥ã«å€çšéæ§ãšé©å¿æ§ãæäŸããŸãã
çµè«ãšããŠãCI/CD DevOps çµ±åã¯ãã³ã©ãã¬ãŒã·ã§ã³ãèªååãä¿ææ§ã匷調ããããšã«ããããœãããŠã§ã¢éçºç°å¢ã«é©åœããããããŸããã DevOps ã®çµ±åã¯ãæå°éã®ãªã¹ã¯ã§ã·ãŒã ã¬ã¹ãªéçºããã»ã¹ãå®çŸããããé »ç¹ãã€æ®µéçãªãªãªãŒã¹ãå®çŸããæè¡çè² åµãå€§å¹ ã«åæžããããšã§ãææ°ã®éçºå®è·µã«ãšã£ãŠéåžžã«è²Žéã§ããããšã蚌æãããŠããŸãããã®åéã®å°éå®¶ãšããŠã AppMasterno-codeãã©ãããã©ãŒã ã¯ãããã®å©ç¹ã掻çšããŠãé«å質㮠Webãã¢ãã€ã«ãããã³ããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®å¹ççã§ã³ã¹ãå¹çãé«ããæéãç¯çŽã§ãããœãªã¥ãŒã·ã§ã³ããŠãŒã¶ãŒã«æäŸããŸãã