Azure DevOpsã¯ããœãŒã¹ç®¡çããã€ãã©ã€ã³å®è¡ãã»ãã¥ãªãã£åŒ·åããªãªãŒã¹ã¬ããã³ã¹ãåäžã®éçšãã¡ããªãã¯ã«éçŽãããšã³ã¿ãŒãã©ã€ãºãœãããŠã§ã¢é ä¿¡ã®äž»èŠãªå¶åŸ¡ãã¬ãŒã³ãšãªã£ãŠããŸãããã®æèã«ãããŠãéçåæã¯ãã¯ãåšèŸºçãªå質ãã§ãã¯ã§ã¯ãªããé ä¿¡ä¿èšŒã®æ§é çæ§æèŠçŽ ãšããŠæ©èœããŸããçŸä»£ã®Azureè³ç£ã¯ãæ°çŸãã®ãªããžããªãšç°çš®èšèªã¹ã¿ãã¯ã«ãŸãããããšãå€ããéçåæã¯æ±ºå®è«ãåçŸæ§ããããŠèšŒæ ã®ä¿¡é Œæ§ãšãã峿 Œãªå¶çŽã®äžã§éçšãããå¿ èŠããããŸãã
ã¢ãŒããã¯ãã£äžã®ãã¬ãã·ã£ãŒã¯ãéäžåã¬ããã³ã¹ãšåæ£åå®è¡ã®çžäºäœçšããçããŸããAzure DevOpsãã€ãã©ã€ã³ã¯ã³ã³ãã©ã€ã¢ã³ã¹äžã®çç±ããé »ç¹ã«ãã³ãã¬ãŒãåãããŸãããå®è¡ã¯å€æ§ãªãšãŒãžã§ã³ãããŒã«ããã«ãæŠç¥ãäŸåé¢ä¿è§£æ±ºã¢ãã«ã«ãŸããã£ãŠè¡ãããŸãããããã£ãŠãéçè§£æããŒã«ã¯ç°å¢ã®å€åã«ãããããå®å®ããã·ã°ãã«ãçæããå¿ èŠããããããã§ãªããã°ã²ãŒãã£ã³ã°ã¡ã«ããºã ãžã®ä¿¡é Œãæãªããªã¹ã¯ããããŸãããã®ç·åŒµã¯ãçµç¹ãã¹ãã£ã³çµæããç£æ»å¯èœæ§ãã»ãã¥ãªãã£ã«é¢é£ããããåºç¯ãªé ä¿¡å¶åŸ¡ãšæŽåãããããšããå Žåã«å¢å¹ ãããŸãã ãšã³ã¿ãŒãã©ã€ãºITãªã¹ã¯ç®¡ç.
è¿ä»£åãªã¹ã¯ã®æç¢ºå
Smart TS XL ã¯ãã¹ãã£ããŒåºåãåäœãšäŸåé¢ä¿ã®ã³ã³ããã¹ãã«æ ¹ããããšã§ãAzure DevOps ã²ãŒãã®æ±ºå®ãæ¹åããŸãã
ä»ããæ¢çŽ¢ãããšã³ã¿ãŒãã©ã€ãºèŠæš¡ã§ã¯ãäž»ãªãªã¹ã¯ã¯ãæ€åºçµæã®æ¬ åŠã§ã¯ãªããå®è¡ã³ã³ããã¹ãã®æ¬ åŠã«ããæ€åºçµæã®èª€è§£éã§ãããã¡ã€ã«ã¬ãã«ãŸãã¯ã«ãŒã«ã¬ãã«ã®çµæã§ã¯ãæ€åºãããåé¡ãå°éå¯èœãªå®è¡ãã¹äžã«ããããäžæµã®å¶åŸ¡ã«ãã£ãŠä¿è·ãããŠããããè€æ°ã®ãµãŒãã¹ã§äœ¿çšãããå ±æã³ã³ããŒãã³ããéããŠäŒæããŠããããã»ãšãã©ææ¡ã§ããŸããããã®ã³ã³ããã¹ãããªããã°ãéçè§£æã«ãã£ãŠåªå é äœä»ããæªããããéçšäžã®æ©æŠãå¢å€§ããããæœåšçãªè匱æ§ãæ°ä»ãããã«æ®åãããããå¯èœæ§ããããŸããããã¯ã ãœãããŠã§ã¢ç®¡çã®è€éã.
ãããã£ãŠãAzure DevOps åãã®éçè§£æããŒã«ãè©äŸ¡ããã«ã¯ãæ©èœãã§ãã¯ãªã¹ãããå®è¡åäœãžãšèŠç¹ã転æããå¿ èŠããããŸããéèŠãªè«ç¹ã¯ãè§£æããã«ãªã¯ãšã¹ãã¯ãŒã¯ãããŒãšã©ã®ããã«çµ±åããããçµæãã©ã®ããã«æ£èŠåããŠãªãªãŒã¹ã®èšŒæ ãšããŠä¿æãããããããŠçºèŠäºé ãäŸåé¢ä¿æ§é ãããªããªãŒãªã¹ã¯ãšã©ã®ããã«å¹æçã«çžé¢ããããããšãã£ãç¹ã«éäžããŸããå®è¡ãéèŠããç°å¢ã§ã¯ãéçè§£æã¯ã³ãŒãã®ã¹ãã£ã³ãšããããããèŠæš¡ã倿Žé床ãã¬ããã³ã¹ã®ãã¬ãã·ã£ãŒäžã§ä¿¡é Œæ§ã®é«ãæææ±ºå®ãè¡ãããšã«éç¹ã眮ãããããã«ãªããŸãã
Azure DevOps ç°å¢ã«ããã Smart TS XL: å€§èŠæš¡ãªéçè§£æã®ããã®å®è¡ãèæ ®ããæŽå¯
ãšã³ã¿ãŒãã©ã€ãºAzure DevOpsçµç¹ã¯ãéçè§£æã®æå¹æ§ãã«ãŒã«ã®å質ã§ã¯ãªããè§£æçµæãè§£éããããã®äœç³»çãªã³ã³ããã¹ãã®æ¬ åŠã«ãã£ãŠå¶çŽãããŠããããšã«ãŸããŸãæ°ã¥ãå§ããŠããŸããSmart TS XLã¯ãå®è¡ããã³äŸåé¢ä¿ã®æŽå¯ã¬ã€ã€ãŒãšããŠåäœããããšã§ããã®ã®ã£ãããè§£æ¶ããå€§èŠæš¡ãªããªããªãŒè³ç£å šäœã«ãããéçè§£æåºåã®å©çšãåªå é äœä»ããã¬ããã³ã¹ã®æ¹æ³ãåæ§ç¯ããŸãããã®äŸ¡å€ã¯ãæ¢åã®SASTããŒã«ã眮ãæããããšã§ã¯ãªããã¢ãŒããã¯ãããã©ãããã©ãŒã ããŒã ããªã¹ã¯ãªãŒããŒã䜿çšããæææ±ºå®ãµãŒãã§ã¹ãå€ããããšã«ãããŸãã
æå³ã®ããSASTåªå é äœä»ãã®åææ¡ä»¶ãšããŠã®å®è¡ãã¹ã®èªè
Azure DevOpsã«çµ±åãããéçè§£æããŒã«ã¯ãéåžžããã¡ã€ã«ã颿°ããŸãã¯ã«ãŒã«ã®ã¹ã³ãŒãã§åäœããŸãããã®ç²åºŠã¯ããŒã«ã«ãªæ¬ 饿€åºã«ã¯ååã§ãããé ä¿¡ã®æ±ºå®ããçºèŠäºé ãæ¬çªç°å¢ã§å®è¡å¯èœãã©ããã«äŸåããå Žåã«ã¯äžååã§ããSmart TS XLã¯å®è¡ãã¹èªèæ©èœãå°å ¥ããéçãªçºèŠäºé ãæ§æäžã®è¿æ¥æ§ã§ã¯ãªããå®éã®å¶åŸ¡ãããŒã®èгç¹ããè§£éã§ããããã«ããŸãã
å®éã®Azure DevOpsã·ããªãªã«ãããŠããã®æ©èœãæãéèŠã«ãªãã®ã¯ããã«ãªã¯ãšã¹ãã®ã²ãŒãã£ã³ã°ãšãªãªãŒã¹æ¿èªæã§ãã倿Žã«ãã£ãŠéçèŠåãããªã¬ãŒããã³ãŒããå°å ¥ãŸãã¯å€æŽãããå¯èœæ§ããããŸããããããã®èŠåã¯ããã¯ãåŒã³åºãããŠããªãäŒæ¢ãã¹ãã¬ã¬ã·ãŒãã©ã³ãããŸãã¯æ¡ä»¶ä»ããããŒã«ååšããå¯èœæ§ããããŸããå®è¡ã€ã³ãµã€ãããªããšããã€ãã©ã€ã³ã¯ãã¹ãŠã®æ€åºçµæãåçã«éèŠãªãã®ãšããŠæ±ããã²ãŒãã®å€±æãäŸå€åŠçãèªåŒµãããŠããŸããŸãã
Smart TS XLã¯ããšã³ããªãã€ã³ããæ¡ä»¶åå²ãäžæµã®åŒã³åºããªã©ãå®è¡ãã¹ãã·ã¹ãã ãã©ã®ããã«ééããããæããã«ããããšã§ãç°ãªãè©äŸ¡ã¢ãã«ãå®çŸããŸããããã«ãããéçè§£æã®çµæã¯ãã¬ãã¥ãŒå¯Ÿè±¡ã®å€æŽã®ã³ã³ããã¹ãã«ãããŠãå®è¡ã«é¢é£ããããå®è¡ã«é¢é£ããªãããšãã圢ã§åå®çŸ©ãããŸãããšã³ã¿ãŒãã©ã€ãºãŠãŒã¶ãŒã«ãšã£ãŠããã®åºå¥ã¯ããªããªãŒã®ã¹ã«ãŒããããšãªã¹ã¯ãžã®å¯Ÿå¿ã«çŽæ¥åœ±é¿ããŸãã
å®è¡ãèæ ®ããäž»ãªå©ç¹ã¯æ¬¡ã®ãšããã§ãã
- å¶åŸ¡ãããŒè§£æã«åºã¥ãå°éå¯èœãšå°éäžå¯èœãªçµæã®èå¥
- ãããã®ã¿ã管çã顧客察å¿ã®å®è¡ãã¹ã®åºå¥
- SAST ã®é倧床ãšéçšäžã®åœ±é¿ã®æŽåæ§ã®æ¹å
- éã¢ã¯ãã£ããŸãã¯éæšå¥šã®ããžãã¯ãã¹ã®æ€åºã«ãã£ãŠçºçãã誀ã£ãã²ãŒãã£ã³ã°ãåæž
ãã©ãããã©ãŒã ã®ææè ãšã¢ãŒããã¯ãã«ãšã£ãŠãå®è¡ãã¹ã®èªèã¯ãéçåæãéãã³ã³ãã©ã€ã¢ã³ã¹ä¿¡å·ã§ã¯ãªãç²Ÿå¯æ©åšã«å€ããŸãã
ãªããžããªéããã³ããŒã éã®ãªã¹ã¯å¯èŠæ§ã®ããã®äŸåé¢ä¿ãµãŒãã§ã¹ ãããã³ã°
Azure DevOpsçµç¹ã¯ãå€ãã®ãªããžããªãããŒã ããã€ãã©ã€ã³ã«æææš©ã忣ãããããšã§ã¹ã±ãŒã«ã¢ãŠãããããšããããããŸããéçè§£æããŒã«ã¯éåžžããªããžããªã®å¢çå ã§åäœãããããå ±æã³ã³ããŒãã³ãã«ãããæ€åºçµæã®äžæµãžã®åœ±é¿ãèŠãã«ãããªããŸããSmart TS XLã¯ãã³ãŒããŠããããããåºç¯ãªã·ã¹ãã åäœã«ã©ã®ããã«é¢äžããŠãããã瀺ãäŸåé¢ä¿ãµãŒãã§ã¹ããããæ§ç¯ããããšã§ããã®åé¡ã«å¯ŸåŠããŸãã
ãã®æ©èœã¯ãå ±æã©ã€ãã©ãªãçµ±åãµãŒãã¹ããŸãã¯å ±éããŒã¿ã¢ã¯ã»ã¹å±€ã«äŸåãããšã³ã¿ãŒãã©ã€ãºç°å¢ã«ç¹ã«é¢é£ããŠããŸããããããã³ã³ããŒãã³ãã®è匱æ§ãæ¬ é¥ã¯ãã³ã³ã·ã¥ãŒããŒã®æ°ãããããå©çšããå®è¡ãã¹ããããŠä»åŸã®ãªãªãŒã¹ã§å¯Ÿè±¡ãšãªããµãŒãã¹ã«ãã£ãŠãé察称ã®ãªã¹ã¯ããããããŸãã
Smart TS XL ã¯ãæ¬¡ã®æ å ±ãå ¬éããããšã§ãéçè§£æåºåã®äŸåé¢ä¿ãèæ ®ããè§£éãå¯èœã«ããŸãã
- 圱é¿ãåããã³ãŒãã®äžæµããã³äžæµã®æ¶è²»è
- å ±æã¢ãžã¥ãŒã«ã®ãã¡ã³ã€ã³ãšãã¡ã³ã¢ãŠãã®ç¹æ§
- åäžãªããžããªã¹ãã£ãã«ã¯èŠããªããªããžããªéã®çµå
- äŸåé¢ä¿ãã¢ã¯ãã£ãåãããå®è¡ã³ã³ããã¹ã
éçšã®èгç¹ããèŠããšãããªã¢ãŒãžããŒã ã¯é倧床ã©ãã«ã ãã§ãªãã圱é¿ç¯å²ã«åºã¥ããŠçºèŠäºé ã®åªå é äœä»ããè¡ãããšãã§ããŸããé«åºŠã«é£æºããã³ã³ããŒãã³ãã«ãããäžçšåºŠã®é倧床ã®åé¡ã¯ã圱é¿åºŠã®äœããã¹ã«å€ç«ããé«é倧床ã®åé¡ããããããè¿ éãªå¯Ÿå¿ãå¿ èŠãšãªãå ŽåããããŸãããã®äŸåé¢ä¿ã«åºã¥ããåªå é äœä»ãã«ãããããªã¢ãŒãžããã»ã¹ãå®å®ããéå°åå¿ãšéå°åå¿ã®æºããæžå°ããŸãã
Azure ãã€ãã©ã€ã³å ã®éçè§£æã·ã°ãã«ã®ããŒã«éã®åçå
ãšã³ã¿ãŒãã©ã€ãºAzure DevOpsãã€ãã©ã€ã³ã§ã¯ãã³ãŒãå質ãã»ãã¥ãªãã£ãæ§æãã€ã³ãã©ã¹ãã©ã¯ãã£ææç©ãªã©ãè€æ°ã®åæããŒã«ãé »ç¹ã«äžŠåå®è¡ãããŸããåããŒã«ã¯æå¹ãªçµæãçæããŸãããéçŽãããã·ã°ãã«ã¯äžè²«æ§ãæ¬ ãããšããããããŸããé倧床ã®ççŸãéè€ããæ€åºçµæããããŠããŒã¹ã©ã€ã³ã®çžéã«ãããæç¢ºãªæ ¹æ ã瀺ããã«ãªãªãŒã¹ããããã¯ãããã€ãã©ã€ã³ãçºçããå¯èœæ§ããããŸãã
Smart TS XLã¯ãè€æ°ã®ããŒã«ããã®åºåãå ±æãããå®è¡ããã³äŸåé¢ä¿ã®æŽå¯ã«åºã¥ããŠæèåããåçåã¬ã€ã€ãŒãšããŠæ©èœããããšã§ã䟡å€ãæäŸããŸããåã¹ãã£ããŒã®çµæãç¬ç«ããæåŠæš©ãšããŠæ±ãã®ã§ã¯ãªããSmart TS XLã¯ãçµç¹ãåäžã®å®è¡ãµãŒãã§ã¹ããã³äŸåé¢ä¿ãã§ãŒã³å ã§æ€åºçµæãã©ã®ããã«äº€å·®ããããè©äŸ¡ã§ããããã«ããŸãã
ãã®åçåæ©èœã¯ä»¥äžããµããŒãããŸãã
- åãå®è¡ãã¹ã«åœ±é¿ãäžããããŒã«éã®èª¿æ»çµæã®çžé¢é¢ä¿
- ç°ãªãã¹ãã£ããŒããçºä¿¡ãããåé·ãŸãã¯éè€ããã¢ã©ãŒãã®èå¥
- 屿çãªåé¡ãšäœç³»çãªãªã¹ã¯ãã¿ãŒã³ã®åé¢
- ç£æ»ããã³ãªãªãŒã¹ã¬ãã¥ãŒäžã®ã²ãŒã決å®ãããé²åŸ¡å¯èœã«
ã¬ããã³ã¹ã®å©å®³é¢ä¿è ã«ãšã£ãŠããã®ã¢ãããŒãã¯ããªã·ãŒã®ä¿¡é Œæ§ã匷åããŸããã²ãŒãã¯æ£æçãªéŸå€ã§ã¯ãªããã¢ãŒããã¯ãã£ã®èгç¹ãã説æå¯èœã«ãªããæéã®çµéãšãšãã«å¶åŸ¡ã匱ããéå ¬åŒãªäŸå€ããã»ã¹ãžã®äŸåã軜æžããŸãã
Azure DevOps ã®é ä¿¡ãµã€ã¯ã«ã«åãããã¢ããã€ãŒãŒã·ã§ã³ãšç§»è¡ã®æŽå¯
å€ãã®Azure DevOpsç°å¢ã¯ãã¯ã©ãŠãç§»è¡ããµãŒãã¹ã®åè§£ãã¬ã¬ã·ãŒã·ã¹ãã ã®çœ®ãæããšãã£ãã¢ããã€ãŒãŒã·ã§ã³ãžã®åãçµã¿ãç©æ¥µçã«ãµããŒãããŠããŸããéçåæã ãã§ã¯ã倿Žãå®å šã«å®è¡ã§ããå Žæãã倿Žã«ãã£ãŠé床ã®ãªã¹ã¯ãçããå Žæãç¹å®ã§ãããåé¡ç¹ãæµ®ã圫ãã«ããŠããŸããããããããç¶æ³ã«ãããŠã¬ã€ãã³ã¹ãšããŠåœ¹ç«ã€ããšã¯éãããŠããŸãã
Smart TS XLã¯ãå®å šãªã·ãŒã±ã³ã¹ãå®çŸ©ããå®è¡æ§é ãšäŸåé¢ä¿æ§é ãå ¬éããããšã§ãã¢ããã€ãŒãŒã·ã§ã³èšç»ããµããŒãããŸããéçè§£æã®ç¥èŠãšçµã¿åãããããšã§ããã®ã€ã³ãµã€ãã¯ãäžæµãžã®åœ±é¿ãæå°éã«æããªãããªãã¡ã¯ã¿ãªã³ã°ãŸãã¯ç§»è¡ã§ããã³ã³ããŒãã³ããšãå¯çµåãè€éãªå¶åŸ¡ãããŒã®ããã«æºåäœæ¥ãå¿ èŠãªã³ã³ããŒãã³ããç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
è¿ä»£åããã°ã©ã ã®æ©èœäžã®å©ç¹ã¯æ¬¡ã®ãšããã§ãã
- å¢å倿Žã«æµæããå¯çµåå®è¡ã¯ã©ã¹ã¿ã®å¯èŠæ§
- äŸåé¢ä¿ã®åé¢ã«åºã¥ãäœãªã¹ã¯ã®ãªãã¡ã¯ã¿ãªã³ã°ãšã³ããªãã€ã³ãã®ç¹å®
- å ±æå®è¡ãã¹ãæç¢ºã«ããããšã§äžŠåå®è¡æŠç¥ããµããŒã
- 段éçãªç§»è¡äœæ¥äžã«åŸéããå¯èœæ§ãäœæž
äŒæ¥ã®ãªãŒããŒã«ãšã£ãŠãããã¯ãé ä¿¡ã®ãã¬ãã·ã£ãŒãäŸç¶ãšããŠé«ãå Žåã§ããåæ»ããåãçµã¿ãæžããè¿ä»£åã®ã¿ã€ã ã©ã€ã³ãããäºæž¬å¯èœã«ãªãããšãæå³ããŸãã
CTOããã©ãããã©ãŒã ãªãŒããŒããªã¹ã¯é¢ä¿è ãžã®æææ±ºå®æ¯æŽ
Smart TS XLã®äž»ãªå¯Ÿè±¡è ã¯ãéçºè ã ãã§ãªããåã ã®ã³ãŒãã®åé¡ã§ã¯ãªãããªããªãŒçµæã«è²¬ä»»ãè² ãCTOããã©ãããã©ãŒã ãªãŒããŒããªã¹ã¯ãããŒãžã£ãŒãªã©ã§ãããã®ãã©ãããã©ãŒã ã®æ©èœã¯ãAzure DevOpsç°å¢ã«ãããŠãããã®åœ¹å²ãæ¥åžžçã«çŽé¢ãã課é¡ã«å¯Ÿå¿ããŠããŸãã
ãããã®è³ªåã«ã¯ä»¥äžãå«ãŸããŸãã
- éçè§£æã®çµæã®ãã¡ã次ã®ãªãªãŒã¹ã®å®éã®é ä¿¡ãªã¹ã¯ã衚ããã®ã¯ã©ãã
- å ±æäŸåé¢ä¿ãããŒã«ã«æ¬ é¥ã®åœ±é¿ãå¢å¹ ãããå Žå
- è¿ä»£å掻åãã·ã¹ãã å šäœã®å®è¡åäœãã©ã®ããã«å€ããã
- ãã€ãã©ã€ã³ã²ãŒãã®æ éçç±ãšããã®æ éãçã®é²åºãåæ ããŠãããã©ãã
Smart TS XLã¯ãå®è¡åäœãšäŸåé¢ä¿æ§é ã«åºã¥ããŠåçãå°ãåºãããšã§ãé²åŸ¡å¯èœã§åçŸæ§ãé«ããäŒæ¥ã®ãªã¹ã¯èš±å®¹åºŠã«é©åããæææ±ºå®ããµããŒãããŸããããããéçè§£æãããªããªãŒã®åŠšããšãªãããšãªãæ¡åŒµå¯èœãªåºç€ãšãªããŸãã
ã¹ãã£ããŒäžå¿ã®ã¯ãŒã¯ãããŒããè±åŽãããçµç¹ã«ãšã£ãŠãSmart TS XL ã¯ãAzure DevOps å ã§ã®ã¬ããã³ã¹ãææ°åããªãªãŒã¹ã®ä¿¡é Œæ§ãéçåæã«ãã£ãŠéç¥ããæ¹æ³ãåæ§ç¯ããã€ã³ãµã€ã ãã©ãããã©ãŒã ãšããŠæ©èœããŸãã
Azure DevOps ãã€ãã©ã€ã³ã®éçè§£æããŒã«: ãšã³ã¿ãŒãã©ã€ãºå¯Ÿå¿ã® SAST ãšã³ãžã³ã®æ¯èŒ
Azure DevOps åãã®éçè§£æããŒã«ãéžæããéã«ã¯ãåã«çµ±åããã ãã®ããŒã«ãšããšã³ã¿ãŒãã©ã€ãºããªããªãŒç°å¢ã§äºæž¬éãã«åäœããããŒã«ãåºå¥ããå¿ èŠããããŸããæ¯èŒã®åºæºã¯ãèšèªãµããŒãã®å¹ åºãã§ã¯ãªããåããŒã«ãããªã·ãŒãã©ã®ããã«é©çšãããªããžããªéã§æ¡åŒµãããšãŒãžã§ã³ãããŒã«ããã€ãã©ã€ã³ãã³ãã¬ãŒãããªãªãŒã¹ã¹ããŒãžå šäœã§å®å®ãããšããã³ã¹ãçæããããšããç¹ã«ãããŸãã
ãã®ã¬ãã«ã§ã¯ãéçåæã¯ããªããªãŒã€ã³ãã©ã¹ãã©ã¯ãã£ã®äžéšãšãªããŸããããŒã«ã¯ãå®è¡ã®æ±ºå®æ§ãã¬ããã³ã¹ã®é©åæ§ãããªã¢ãŒãžã®ã¹ã±ãŒã©ããªãã£ããããŠççŸããã·ã°ãã«ãçæããããšãªã䞊åã¹ãã£ã³æŠç¥ãšå ±åã§ããèœåã«ãã£ãŠè©äŸ¡ãããŸãã以äžã§ã¯ãããããéçšäžã®çŸå®ã«åèŽãããããå€§èŠæš¡ãªAzure DevOpsç°å¢ã§äžè²«ããŠæ¡çšãããŠããããŒã«ãå³éžããŠã玹ä»ããŸãã
ãšã³ã¿ãŒãã©ã€ãº Azure DevOps ã®ç®æšã«åãããæé©ãªéçè§£æããŒã«
- è€æ°ã®ããŒã ã«ãŸãããéäžåãããå質ã²ãŒã: ãœããŒãã¥ãŒã
- SARIFåºåã«ããæšæºåãããã»ãã¥ãªãã£ã¹ãã£ã³: ãã€ã¯ããœãã ã»ãã¥ãªã㣠DevOps
- é«ãªã¹ã¯ã³ãŒãã«å¯Ÿãã詳现ãªã»ãã³ãã£ãã¯ã»ãã¥ãªãã£åæ: GitHub é«åºŠãªã»ãã¥ãªã㣠(CodeQL)
- èŠå¶ç°å¢åãã®ããªã·ãŒã°ã¬ãŒãã® SAST: ãªãŒãã³ããã¹ã ãã©ãŒãã£ãã¡ã€
- ã«ã¹ã¿ãã€ãºå¯èœãªã«ãŒã«é§ååé«éã¹ãã£ã³: ã»ã ã°ã¬ãã
- ã³ã³ãã©ã€ã¢ã³ã¹ã¬ããŒããåãããšã³ã¿ãŒãã©ã€ãºAppSecããã°ã©ã : ãã§ãã¯ããŒã¯ã¹
- å€§èŠæš¡ãªC/C++ããã³å®å šæ§ãéèŠãªã·ã¹ãã : Polaris ã® Coverity
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãã¢ãŒããã¯ã㣠ã¢ãã«ãäŸ¡æ Œç¹æ§ãAzure ãã€ãã©ã€ã³ã§ã®å®è¡åäœããšã³ã¿ãŒãã©ã€ãº ã¹ã±ãŒãªã³ã°ã®çŸå®ãé·æçãªå°å ¥ã«åœ±é¿ããæ§é äžã®å¶éã«çŠç¹ãåœãŠãŠãåããŒã«ãåå¥ã«èª¬æããŸãã
éäžç®¡çãããå質ã²ãŒããšå€èšèªããŒã¹ã©ã€ã³å¶åŸ¡ã®ããã®SonarQube
å ¬åŒãµã€ãïŒ ãœããŒãã¥ãŒã
SonarQubeã¯ãéçè§£æãéçºè åŽã®ã¢ããã€ã¶ãªããŒã«ã§ã¯ãªããéäžçãªå質管çã¡ã«ããºã ãšããŠæ©èœããããšãæåŸ ãããAzure DevOpsç°å¢ã§åºãæ¡çšãããŠããŸãããã®ã¢ãŒããã¯ãã£ã¢ãã«ã¯ã倿°ã®ãªããžããªãšãã€ãã©ã€ã³ããã®çµæãéçŽãããµãŒããŒããŒã¹ã®åæãã©ãããã©ãŒã ãäžå¿ã«æ§ç¯ãããŠãããããŒã éã§äžè²«ããã«ãŒã«ã»ãããšå質ã²ãŒããé©çšããŸããAzure DevOpsãã€ãã©ã€ã³ã¯ãã«ãã¹ããŒãžã®äžéšãšããŠã¹ãã£ããŒãå®è¡ããŸãããçµæãããŒã¹ã©ã€ã³ããããå€ã®æ£åŒãªè§£éã¯SonarQubeãã©ãããã©ãŒã èªäœãæ ããŸãã
å®è¡ã®èгç¹ããèŠããšããã®åé¢ã¯éèŠã§ããåæã®åäœã¯ãAzure ãã€ãã©ã€ã³ãã³ãŒããã³ã³ãã€ã«ããäŸåé¢ä¿ã解決ããçæãããææç©ãå«ããæ¹æ³ã«å€§ããäŸåããŸãããã€ãã©ã€ã³ã®å®çŸ©ãç°ãªããšãã³ãŒãã倿ŽããŠããªããŠã SonarQube ã®çµæãå€åããå¯èœæ§ããããŸããå®å®ããçµæãéæããŠããäŒæ¥ã§ã¯ãéåžžãå ±æãã€ãã©ã€ã³ãã³ãã¬ãŒãã䜿çšããŠãã«ããšãã¹ãã®ã¹ããŒãžãæšæºåããéçåæã«ãããŠãªããžããªéã§åçã®å®è¡æ¡ä»¶ã芳å¯ãããããã«ããŠããŸãã
äŸ¡æ Œèšå®ã¯ããšãã£ã·ã§ã³å±€ãšãã³ãŒãè¡æ°ãæ©èœèŠä»¶ãšãã£ãã¹ã±ãŒãªã³ã°èŠçŽ ã«çµã³ã€ããŠããŸããããã¯ãå€§èŠæš¡ãªAzure DevOpsç°å¢ã«ãããŠéçšäžã®æå³åããæã¡ãŸãã远å ã®ãªããžããªãå°å ¥ããããšã§ãã©ãããã©ãŒã ã®ã¹ã³ãŒããæ¥éã«æ¡å€§ããå¯èœæ§ãããããã§ããå°å ¥ãé²ãã«ã€ããŠãSonarQubeã¯ããŒã«éžå®ãããã©ãããã©ãŒã ã®è²¬ä»»ãžãšç§»è¡ããã³ã³ãã¥ãŒãã£ã³ã°ãããŒã¿ããŒã¹ããã©ãŒãã³ã¹ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®ã¹ã«ãŒããããèæ ®ãããã£ãã·ãã£ãã©ã³ãã³ã°ãå¿ èŠã«ãªããŸãããããã®èŠå ã¯ããã€ãã©ã€ã³ã®ã¬ã€ãã³ã·ãšéçºè ã®ãã£ãŒãããã¯ã«ãŒãã«çŽæ¥åœ±é¿ãåãŒããŸãã
æ©èœé¢ã§ã¯ãSonarQubeã®åŒ·ã¿ã¯ãå¹ åºãèšèªãµããŒããšæçããå質ã²ãŒãã¢ãã«ã«ãããŸããã²ãŒãã¯ãã«ãªã¯ãšã¹ãã¬ãã«ãšãã©ã³ãã¬ãã«ã§é©çšã§ãããããããŒãžåã«æ¬ é¥å¯åºŠãä¿å®æ§éŸå€ãã»ãã¥ãªãã£ã«ãŒã«ã®éµå®ã匷å¶ã§ããŸããäŒæ¥ã«ãšã£ãŠããã®ã¢ãã«ã¯ãäžè²«æ§ãšç£æ»å¯èœæ§ãããŒã ããšã®ã«ã¹ã¿ãã€ãºãããéèŠãããéäžåã®ã¬ããã³ã¹æ§é ãšéåžžã«çžæ§ãè¯ãã§ãã
æ§é çãªéçã¯ãå®è¡ãèæ ®ãã詳现ãªã»ãã¥ãªãã£åæãããã现ããªäŸåé¢ä¿ã®åœ±é¿ã¢ããªã³ã°ãå¿ èŠãšããç°å¢ã§é¡èã«ãªããŸããSonarQubeã®åæã¯ãäž»ã«ã«ãŒã«ããªãã³ã§ã³ãŒãäžå¿ã§ããããªããžããªéã®é£æºãã©ã³ã¿ã€ã å®è¡ãã¹ã«é¢ãããã€ãã£ããªæŽå¯ã¯éãããŠããŸããè€éãªã¢ããã€ãŒãŒã·ã§ã³ããã°ã©ã ã§ã¯ããã®ããšãã²ãŒãã®æè¡çã«ã¯æ£ãããŠãéçšäžã¯éããããªããªãŒãªã¹ã¯ãéå®çãªå€æŽã§é害ãåŒãèµ·ããå¯èœæ§ããããŸãã
å€§èŠæš¡ãªç°å¢ã«ãããŠãSonarQube ã¯å æ¬çãªãªã¹ã¯åæãšã³ãžã³ã§ã¯ãªããå質ããŒã¹ã©ã€ã³ç®¡çã®æš©åšãšããŠäœçœ®ä»ããããšã§æå€§éã®ããã©ãŒãã³ã¹ãçºæ®ããŸããAzure DevOps ã«ããã SonarQube ã®æå¹æ§ã¯ãèŠåŸãããã€ãã©ã€ã³ã®æšæºåãã«ãŒã«ã¬ããã³ã¹ã®åŸ¹åºããããŠå質匷åãšä»ã®å Žæã§è¡ããããã詳现ãªã¢ãŒããã¯ãã£ãªã¹ã¯è©äŸ¡ãšã®æç¢ºãªåé¢ã«ãã£ãŠæ±ºãŸããŸãã
Azure Pipelines ã«ãããæšæºåãããã»ãã¥ãªã㣠ã¹ãã£ã³ãš SARIF ããŒã¹ã®èšŒæ ã®ããã® Microsoft Security DevOps
å ¬åŒãµã€ãïŒ ãã€ã¯ããœãã ã»ãã¥ãªã㣠DevOps
Microsoft Security DevOps ã¯ãAzure DevOps ç°å¢ã«ãããŠé »ç¹ã«çºçããäŒæ¥èª²é¡ãããªãã¡ãæçåãããããŒã«ãã§ãŒã³ãšã¢ãããã¯ãªãã€ãã©ã€ã³æ§æã«ãã£ãŠåŒãèµ·ããããã»ãã¥ãªãã£ã¹ãã£ã³åäœã®äžè²«æ§ã®æ¬ åŠã«å¯ŸåŠããããã«èšèšãããŠããŸããMicrosoft Security DevOps ã¯ãåäžã®éçåæãšã³ãžã³ãšããŠåäœããã®ã§ã¯ãªããMicrosoft ããµããŒãããè€æ°ã®ã»ãã¥ãªãã£ã¢ãã©ã€ã¶ãŒããã€ãã©ã€ã³å šäœã§äžè²«ããæ¹æ³ã§ã€ã³ã¹ããŒã«ãæ§æãå®è¡ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã¬ã€ã€ãŒãšããŠæ©èœããŸãã
ã¢ãŒããã¯ãã£çã«ã¯ããã®ã¢ãã«ã¯Azure DevOpsãã©ãããã©ãŒã ã®ã¬ããã³ã¹ãšããæŽåããŠããŸããã»ãã¥ãªãã£ã¹ãã£ã³ã¯ããªããžããªåºæã®ã«ã¹ã¿ãã€ãºã§ã¯ãªããæšæºåããããã€ãã©ã€ã³æ©èœãšããŠæ±ãããŸããæ§æã¯éåžžããã€ãã©ã€ã³ãã³ãã¬ãŒããšå ±ã«ããŒãžã§ã³ç®¡çå¯èœãªç§»æ€å¯èœãªããªã·ãŒå®çŸ©ãšããŠè¡šçŸããããããã»ãã¥ãªãã£ããŒã ã¯ãšãŒãžã§ã³ãããŒã«ãšãããžã§ã¯ãå šäœã§ç¢ºå®çãªå®è¡ãç¶æããªããã倿Žãäžå çã«å±éã§ããŸãã
Azure Pipelines å ã®å®è¡åäœã¯ãåçŸæ§ãéèŠããŠããŸããMicrosoft Security DevOps ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãã«ãããžãã¯ãšã¯ç¬ç«ããŠå®è¡ãããå°çšã®ãã€ãã©ã€ã³ã¹ããŒãžãšããŠå°å ¥ãããããšãå€ããã³ã³ãã€ã«ã®ã°ãã€ããšã¹ãã£ã³çµæã®çµåãäœæžããŸãããã®ããŒã«ã SARIF åºåã«éç¹ã眮ããŠããç¹ã¯ããšã³ã¿ãŒãã©ã€ãºç°å¢ã«ãããŠç¹ã«éèŠã§ããããã«ãããAzure DevOps ã®ãã«ããµããªãŒãã»ãã¥ãªãã£ããã·ã¥ããŒããäžæµã®ãšããã³ã¹ã·ã¹ãã ã§ãç¹å¥ãªå€æããžãã¯ãå¿ èŠãšããã«ãçµæãçµ±äžçã«å©çšã§ããããã«ãªããŸãã
Microsoft Security DevOps ã¯ãç¬èªã®æ€åºãšã³ãžã³ã§ã¯ãªãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãšæšæºåã«ãã£ãŠäŸ¡å€ãåŒãåºããŠãããããåçš SAST ãã©ãããã©ãŒã ãšæ¯èŒããŠäŸ¡æ Œèšå®ãæŠãæå©ã§ããããã¯ããããžã§ã¯ãããšã®ã©ã€ã»ã³ã¹å¥çŽã«ç ©ããããããšãªãã倿°ã®ãªããžããªã«ãããåºç¯ãªã»ãã¥ãªãã£ã«ãã¬ããžãæ±ããçµç¹ã«ãšã£ãŠé åçãªéžæè¢ãšãªããŸãããã ããåæã®æ·±åºŠã¯ããŒã«ãã§ãŒã³ã«å«ãŸããåºç€ãšãªãã¢ãã©ã€ã¶ãŒã«äŸåããã«ãã¬ããžã®ã®ã£ãããåé¿ããããã«ãã¢ãã©ã€ã¶ãŒãæå³çã«å¶åŸ¡ããå¿ èŠããããšãããã¬ãŒããªãããããŸãã
æ©èœé¢ã§ã¯ãMicrosoft Security DevOps ã¯ãç°çš®ããŒã ãç°èšèªç°å¢ã«ãããŠã»ãã¥ãªãã£ã¹ãã£ã³ãåäžã«é©çšããå¿ èŠãããã·ããªãªã«ãããŠåªããæ§èœãçºæ®ããŸãããã®åŒ·ã¿ã¯ãäžè²«ããããŒã«ããŒãžã§ã³ç®¡çãæšæºåãããã¬ããŒãæ©èœããã㊠Azure DevOps ããªã·ãŒé©çšãšã®å®¹æãªçµ±åã§ãããããã®ç¹æ§ã«ãããé«åºŠã«ã«ã¹ã¿ãã€ãºãããã«ãŒã«äœæããããã»ãã¥ãªãã£äœå¶ã®äžè²«æ§ãšç£æ»ãžã®å¯Ÿå¿ãåªå ããçµç¹ã«æé©ã§ãã
äŒæ¥ã詳现ãªããã·ãŒãžã£éããŒã¿ãããŒåæãé·æã«ãããããŒã¹ã©ã€ã³ã¯ãŒã¯ãããŒããããã¯ã³ãŒãã¬ãã«ã§ã®ãã现ããªæå¶ã¬ããã³ã¹ãå¿ èŠãšããå Žåãæ§é äžã®éçãé¡åšåããŸããMicrosoft Security DevOpsã¯ããã€ãã£ãã®ã»ãã³ãã£ãã¯åæãšã³ãžã³ãææããã®ã§ã¯ãªããçµæãéçŽãããããé«åºŠãªã»ãã¥ãªãã£ã·ããªãªã«å¯Ÿå¿ããããã«ã¯è£å®çãªããŒã«ã«äŸåããŠããŸããå€§èŠæš¡ãªå°å ¥ã«ãããŠã¯ãåºç€ãšãªãã¢ãã©ã€ã¶ãŒã®æŽæ°ã«ãã£ãŠã·ã°ãã«ã®å€åãçããªãããã«ããããã®ãèŠåŸããæ§æç®¡çãšæ€èšŒããã»ã¹ãããã®æå¹æ§ã«å€§ããäŸåããŸãã
Azure DevOps ã¢ãŒããã¯ãã£å ã§ã¯ãMicrosoft Security DevOps ã¯ãäžè²«ãã蚌æ ãšã«ãã¬ããžå¢çã確ç«ããåºç€çãªã»ãã¥ãªã㣠ã¹ãã£ã³ ã¬ã€ã€ãŒãšããŠé 眮ãããããå°éçãªããŒã«ãé«ãªã¹ã¯ ã¢ããªã±ãŒã·ã§ã³ã®è©³çްãªåæãåŠçããå Žåã«æã广çã§ãã
Azure Repos ã§ã®ã»ãã³ãã£ã㯠ã»ãã¥ãªãã£åæãå®çŸãã CodeQL ã䜿çšãã GitHub Advanced Security
å ¬åŒãµã€ãïŒ GitHub ã®é«åºŠãªã»ãã¥ãªãã£
CodeQL ãæèŒãã GitHub Advanced Security ã¯ããã¿ãŒã³ãããã³ã°ã§ã¯ãªãã»ãã³ãã£ãã¯æšè«ãšããŒã¿ãããŒæšè«ãå¿ èŠãšããã»ãã¥ãªãã£ã¯ã©ã¹ãžã®éçè§£æãå¿ èŠãª Azure DevOps ç°å¢åãã«èšèšãããŠããŸãããã®ã¢ãŒããã¯ãã£ã¢ãã«ã¯ãã¯ãšãªå¯èœãªã³ãŒãããŒã¿ããŒã¹è¡šçŸã®æ§ç¯ãäžå¿ãšããŠããã颿°ããã¡ã€ã«ãå®è¡ãã¹ã«ãŸãããè§£æãå¯èœã«ããŸããAzure Repos ã§ã¯ããã®ã¢ãã«ã¯ããã«ãªã¯ãšã¹ãããã³ãªããžããªã¬ãã¥ãŒããã»ã¹ãšçµ±åãããã³ãŒãã¹ãã£ã³ã¢ã©ãŒããšããŠæ€åºçµæã衚瀺ããã»ãã¥ãªãã£ã¹ãã£ã³ã¯ãŒã¯ãããŒããµããŒãããŸãã
å®è¡ã®èгç¹ããèŠããšãCodeQLåæã¯ãã€ãã©ã€ã³ã«æç¢ºãªç¹æ§ããããããŸããåæããã»ã¹ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ãã€ã«æžã¿ãŸãã¯ãã«ãæžã¿ã®åœ¢åŒãåæ ããããŒã¿ããŒã¹çæãå¿ èŠãšãªããããã¹ãã£ã³åäœã¯ãã«ãæ§æãæ¡ä»¶ä»ãã³ã³ãã€ã«ãã¹ãèšèªåºæã®ããŒã«ã®åœ±é¿ãåãããããªããŸããå€§èŠæš¡ãªAzure DevOpsãªããžããªãç¹ã«ã¢ããªããžããªãå€èšèªã·ã¹ãã ã§ã¯ããã®ã¹ãããããã€ãã©ã€ã³å®è¡æéã®äž»ãªèŠå ãšãªãå¯èœæ§ããããŸããäŒæ¥ã§ã¯éåžžãå°çšã®ãšãŒãžã§ã³ãããŒã«ãå²ãåœãŠããã£ãã·ã¥æŠç¥ãæå¹ã«ããã¹ãã£ã³å¯Ÿè±¡ãé«ãªã¹ã¯ã®ãã©ã³ããããŒãžãã€ã³ãã«éå®ããããšã§ããã®åé¡ã軜æžããŠããŸãã
äŸ¡æ Œèšå®ã¯GitHub Advanced Securityã®ã©ã€ã»ã³ã¹ã«çŽä»ããããŠãããGitHubã»ãã¥ãªãã£ããŒã«ãæšæºåããŠããªãAzure DevOpsçµç¹ã«ãšã£ãŠéèŠãªæå³ãæã¡ãŸããã³ã¹ãã¢ãã«ã¯ããã©ãããã©ãŒã ãšã³ãžãã¢ãªã³ã°äºç®ã§ã¯ãªããäŒæ¥ã®ã»ãã¥ãªãã£äºç®ãšäžèŽããããšãå€ããå°å ¥ãã¿ãŒã³ã«åœ±é¿ãäžããå¯èœæ§ããããŸããGitHubã§ãã¹ãããããªããžããªå šäœã§GitHub Advanced Securityãæ¢ã«äœ¿çšãããŠããå ŽåãCodeQLã¹ãã£ã³ãAzure DevOpsã«æ¡åŒµããããšã§ãã»ãã¥ãªãã£ã¯ãŒã¯ãããŒãšã¬ããŒãã»ãã³ãã£ã¯ã¹ã«ãããã¢ãŒããã¯ãã£ã®äžè²«æ§ã確ä¿ãããã±ãŒã¹ãå€ããããŸãã
æ©èœé¢ã§ã¯ãCodeQLã®åŒ·ã¿ã¯ãã®è¡šçŸåã«ãããŸããã¯ãšãªã¯ãã€ã³ãžã§ã¯ã·ã§ã³ãã¹ãå®å šã§ãªããã·ãªã¢ã©ã€ãŒãŒã·ã§ã³ãããŒãè€æ°ã®åŒã³åºãå±€ã«ãŸãããäžé©åãªèªå¯ãã§ãã¯ãªã©ãè€éãªè匱æ§ã¯ã©ã¹ãã¢ãã«åã§ããŸããèŠå¶å¯Ÿè±¡ã·ã¹ãã ãé«ãªã¹ã¯ã·ã¹ãã ã®å Žåããã®ã¬ãã«ã®åæã¯ã«ãŒã«ããŒã¹ã®ã¹ãã£ããŒãããæ·±ãã¢ã·ã¥ã¢ã©ã³ã¹ããµããŒãããŸããCodeQLã广çã«éçšããŠããäŒæ¥ã¯ãã¯ãšãªããã¯ãããªã·ãŒå®çŸ©ãšåæ§ã«ããŒãžã§ã³ç®¡çããã³æ€èšŒãããã管çãããã¢ãŒãã£ãã¡ã¯ããšããŠæ±ãåŸåããããŸãã
ã»ãã¥ãªãã£äžå¿ã®åæä»¥å€ã®é åã§ã¯ãæ§é çãªéçãé¡åšåããŸããCodeQLã¯æ±çšçãªå質ã²ãŒããšã³ãžã³ãšããŠæ©èœããããã«èšèšãããŠãããããã®æ€åºçµæã¯ããã©ãããã©ãŒã ã¬ããã³ã¹ããŒã ãæåŸ ããä¿å®æ§ãã³ãŒãå¥å šæ§ææšã«æç¢ºã«ãããã³ã°ãããªãå¯èœæ§ããããŸããããã«ãã¯ãšãªã®äœæãšãã¥ãŒãã³ã°ã¯éçšäžã®ãªãŒããŒãããããããããç¹ã«çµç¹ãååãªã»ãã³ãã£ã¯ã¹ã®å°éç¥èãæããã«æ€åºããžãã¯ãã«ã¹ã¿ãã€ãºããããšããå Žåããã®åœ±é¿ã¯å€§ãããªããŸãã
å€§èŠæš¡ãªç°å¢ã«ãããŠãCodeQL ãæèŒãã GitHub Advanced Security ã¯ãAzure DevOps å ã®å°éçãªã»ãã¥ãªãã£åæå±€ãšããŠçµ±åããããšã§ãæé«ã®ããã©ãŒãã³ã¹ãçºæ®ããŸãããã€ãã©ã€ã³å®è¡æŠç¥ãšã¬ããã³ã¹ã¢ãã«ãèšç®ããã³éçšäžã®èŠä»¶ã«å¯Ÿå¿ããŠããããšãæ¡ä»¶ã«ã圱é¿åºŠã®é«ãè匱æ§ã¯ã©ã¹ã«çŠç¹ãåœãŠãããšã§ãããåºç¯ãªã¹ãã£ã³ããã³å質管çããŒã«ãè£å®ããŸãã
ããªã·ãŒã°ã¬ãŒãã® SAST ãšã³ã³ãã©ã€ã¢ã³ã¹åŒ·åã®ããã® OpenText Fortify Static Code Analyzer
å ¬åŒãµã€ãïŒ ãªãŒãã³ããã¹ã ãã©ãŒãã£ãã¡ã€
OpenText Fortify Static Code Analyzerã¯ãéçè§£æãéçºè ã®çç£æ§åäžã§ã¯ãªãæ£åŒãªã»ãã¥ãªãã£ç®¡çãšããŠæ±ãããAzure DevOpsç°å¢ã§ããéžæãããŸãããã®ã¢ãŒããã¯ãã£ã¢ãã«ã¯ãã®æ¹åæ§ãåæ ããŠããŸããè§£æã®å®è¡ã¯ãã«ããã€ãã©ã€ã³ãŸãã¯å°çšã®ã¹ãã£ã³ã¹ããŒãžå ã§è¡ãããããªã·ãŒå®çŸ©ãè匱æ§åé¡ãã¬ããã³ã¹ã¯ãŒã¯ãããŒã¯éåžžãå°å ¥åœ¢æ ã«å¿ããŠFortify Software Security CenterãŸãã¯Fortify on DemandãéããŠäžå 管çãããŸãã
Azure DevOpsãã€ãã©ã€ã³ã§ã¯ãFortifyã¯éåžžãå°çšã®æ¡åŒµã¿ã¹ã¯ãä»ããŠçµ±åãããŸãããããã®ã¿ã¹ã¯ã¯éçã¢ãã©ã€ã¶ãŒãåŒã³åºããçµæãäžæµã§äœ¿çšã§ããããã«ã¢ãŒãã£ãã¡ã¯ããšããŠå ¬éããŸããããã«ããã2å±€ã®å®è¡ã¢ãã«ã圢æãããŸãããã€ãã©ã€ã³ã¯ç¢ºå®çãªã¹ãã£ã³å®è¡ãšã¢ãŒãã£ãã¡ã¯ãçæãæ ããéäžç®¡çãããFortifyã³ã³ããŒãã³ãã¯çžé¢åæãã¬ããŒãäœæãããªã·ãŒé©çšãåŠçããŸããå€ãã®äŒæ¥ã¯ããã®ã¢ãã«ãã»ãã¥ãªãã£éçšã¯ãŒã¯ãããŒãšé£æºãããã¹ãã£ã³çµæãããªããªãŒããŒã ãšã¯ç¬ç«ããŠã¬ãã¥ãŒããŸãã
Fortifyã®äŸ¡æ Œèšå®ã¯ããšã³ã¿ãŒãã©ã€ãºåãAppSecãã©ãããã©ãŒã ãšããŠã®Fortifyã®äœçœ®ä»ããåæ ããŠããŸããã©ã€ã»ã³ã¹ã¯éåžžãã¢ããªã±ãŒã·ã§ã³æ°ãã¹ãã£ã³ããªã¥ãŒã ããŸãã¯ãšã³ã¿ãŒãã©ã€ãºãµãã¹ã¯ãªãã·ã§ã³ã¬ãã«ã«åºã¥ããŠæ§æãããŸããããã¯ã倿°ã®ãªããžããªãæã€Azure DevOpsç°å¢ã«ãšã£ãŠå®çšçãªæå³ãæã¡ãŸãããªã³ããŒãã£ã³ã°ã®æ±ºå®ã¯ããã¹ãŠã®ã³ãŒãããŒã¹ãç¶²çŸ çã«ã«ããŒããã®ã§ã¯ãªããèŠå¶å¯Ÿè±¡ãšãªãã·ã¹ãã ãæ©å¯ããŒã¿ã®åãæ±ãããŸãã¯å€éšæ»æå¯Ÿè±¡é åã®ããã·ã¹ãã ãåªå ããæ éã«æ€èšã»æ±ºå®ãããŸãã
æ©èœé¢ã§ã¯ãFortify ã®åŒ·ã¿ã¯ãæçããè匱æ§åé¡ã·ã¹ãã ãšãç£æ»ããã³ã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ãžã®å¯Ÿå¿åã«ãããŸããçºèŠäºé ã¯æç¢ºã«å®çŸ©ãããã«ããŽãªã修埩ã¬ã€ãã³ã¹ãããªã·ãŒãããå€ã«ãããã³ã°ãããå€§èŠæš¡çµç¹å šäœã§äžè²«ããè§£éããµããŒãããŸããAzure DevOps ãŠãŒã¶ãŒã«ãšã£ãŠã¯ãããã«ããã瀟å ã§å®çŸ©ããããã¥ãŒãªã¹ãã£ãã¯ã§ã¯ãªããå€éšæšæºã«æºæ ããã»ãã¥ãªãã£ã²ãŒããå®çŸã§ããŸãã
å®è¡åäœã«ã¯æ éãªéçšèšç»ãå¿ èŠã§ããFortify ã¹ãã£ã³ã¯ãç¹ã«å€§èŠæš¡ãªã³ãŒãããŒã¹ãè€éãªèšèªã®å ŽåããªãœãŒã¹ã倧éã«æ¶è²»ããå¯èœæ§ããããŸããäŒæ¥ã¯éåžžããã¹ãŠã®ãã«ãªã¯ãšã¹ãã§ãã«ã¹ãã£ã³ãå®è¡ããããšãé¿ãã代ããã«è»œéãã§ãã¯ãç¶ç¶çã«å®è¡ããããŒãžæãŸãã¯ã¹ã±ãžã¥ãŒã«ãããåšæã§ãã«ããªã·ãŒã¹ãã£ã³ãå®è¡ããéå±€åæŠç¥ãæ¡çšããŠããŸãããšãŒãžã§ã³ãã®ãµã€ãºèšå®ãã¹ãã£ã³ã®äžŠååãçµæã®ä¿æããªã·ãŒã¯ãä»éçãªèšå®ã§ã¯ãªããããªããªãŒã¢ãŒããã¯ãã£ã®äžéšãšãªããŸãã
éçºè ããã®ãã£ãŒãããã¯é å»¶ãšçµ±åã®è€éããšããæ§é çãªéçãçããŸããFortify ã®é«åºŠãªæ©èœã¯ãã¹ãã£ã³æéã®å»¶é·ãšçµæã®ããªã¢ãŒãžã®è€éåãšãã代åã䌎ããŸããèŠåŸããæå¶ã¬ããã³ã¹ããªããã°ã誀æ€ç¥ãèç©ãããã¹ãã£ã³åºåã®ä¿¡é Œæ§ãæãªãããå¯èœæ§ããããŸããããã«ãFortify ã¯ã»ãã¥ãªãã£ã«éç¹ã眮ããŠãããããå質éèŠã®ããŒã«ãå®è¡éèŠã®åæãã©ãããã©ãŒã ã«åã£ãŠä»£ãããã®ã§ã¯ãããŸããã
Azure DevOpsã«ãããŠãFortifyã¯ããªã·ãŒã°ã¬ãŒãã®ã»ãã¥ãªãã£ç®¡çããŒã«ãšããŠäœçœ®ä»ããããããšã§æã广ãçºæ®ããŸãããã®åœ¹å²ã¯ãé害ãèŠå¶ãè©å€ã«åœ±é¿ãåãŒãå¯èœæ§ã®ããã·ã¹ãã ã«å¯Ÿããé²åŸ¡å¯èœãã€ç£æ»å¯èœãªã»ãã¥ãªãã£è©äŸ¡ãæäŸããããšã§ãããªããªãŒã©ã€ããµã€ã¯ã«ã®åææ®µéã§äœ¿çšããããããé«éã§ã³ã³ããã¹ãã¢ãŠã§ã¢ãªããŒã«ãè£å®ããããšã§ãã
Azure DevOps ç°å¢ã§ç®¡çããã AppSec ã¯ãŒã¯ãããŒã®ããã® Checkmarx CxSAST
å ¬åŒãµã€ãïŒ ãã§ãã¯ããŒã¯
Checkmarx CxSAST ã¯ãéçè§£æãããåºç¯ãªã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ã¬ããã³ã¹ããã°ã©ã ã«çµã¿èŸŒãŸããŠãã Azure DevOps çµç¹ã§äžè¬çã«æ¡çšãããŠããŸãããã®ã¢ãŒããã¯ãã£ã¢ãã«ã¯ãåå¥ã®ã¹ãã£ã³å®è¡ã§ã¯ãªãããœãããŠã§ã¢ããªããªãŒã©ã€ããµã€ã¯ã«å šäœã«ãããäžå çãªãªã¹ã¯ç®¡çãããªã·ãŒé©çšããã¬ãŒãµããªãã£ãéèŠããŠããŸããAzure DevOps ã§ã¯ãã¹ãã£ã³ãããªã¬ãŒããçžé¢åæãšã¬ããã³ã¹ã®ããã«äžå åããã Checkmarx ãã©ãããã©ãŒã ã«çµæãå ¬éãããã€ãã©ã€ã³ã¿ã¹ã¯ãéããŠçµ±åãå®è£ ãããã®ãäžè¬çã§ãã
å®è¡ã®èгç¹ããèŠããšãCheckmarx ã¯ãã€ããªãã ã¢ãã«ãšããŠåäœããŸããã¹ãã£ã³ã®å®è¡ã¯ããããã€æ§æã«å¿ããŠãAzure ãã€ãã©ã€ã³ ãšãŒãžã§ã³ãå ããŸã㯠Checkmarx ãã©ãããã©ãŒã ã管çãããªã¢ãŒã ãšã³ãžã³çµç±ã§å®è¡ãããŸãããã®åé¢ã«ãããäŒæ¥ã¯ã¹ãã£ã³ ããã©ãŒãã³ã¹ããã«ã ã€ã³ãã©ã¹ãã©ã¯ãã£ããåãé¢ãããšãã§ããŸããã調æŽã®è€éããçããŸãããã€ãã©ã€ã³ã®æ±ºå®æ§ã¯ãAzure DevOps ãšã¹ãã£ã³ ããã¯ãšã³ãéã®äžè²«ãããšã³ãžã³æ§æãããŒãžã§ã³ç®¡çãããã³ãããã¯ãŒã¯ã®ä¿¡é Œæ§ã«äŸåããŸãã
äŸ¡æ Œèšå®ã¯ãšã³ã¿ãŒãã©ã€ãºAppSecããã°ã©ã ã«æºæ ããŠãããå€ãã®å Žåãã¢ããªã±ãŒã·ã§ã³æ°ãã¹ãã£ã³ããªã¥ãŒã ããŸãã¯ãšã³ã¿ãŒãã©ã€ãºã©ã€ã»ã³ã¹å¥çŽã«åºã¥ããŠæ§æãããŸãããã®äŸ¡æ Œèšå®ã¢ãã«ã¯ãå€éšã«å ¬éãããŠãããµãŒãã¹ãèŠå¶å¯Ÿè±¡ã®ã¯ãŒã¯ããŒãããŸãã¯æ©å¯ããŒã¿ãæ±ãã·ã¹ãã ãåªå ããããšã§ãéžæçãªãªã³ããŒãã£ã³ã°ãä¿é²ããŸããå€§èŠæš¡ãªAzure DevOpsç°å¢ã§ã¯ããã¹ãŠã®ãªããžããªãåäžã«ã¹ãã£ã³ããã®ã§ã¯ãªããéå±€åãããã«ãã¬ããžãå®çŸããŸãã
æ©èœé¢ã§ã¯ãCheckmarxã¯ã»ãã¥ãªãã£ã«ç¹åããéçè§£æã«åŒ·ã¿ãæã¡ãè匱æ§ã®çºèŠããªã¹ã¯ã¹ã³ã¢ãªã³ã°ããããŠä¿®åŸ©ã¯ãŒã¯ãããŒã«éç¹ã眮ããŠããŸãããã®è§£æãšã³ãžã³ã¯ãäžè¬çãªè匱æ§ã¯ã©ã¹ã«ãããããŒã¿ãããŒãšå¶åŸ¡æ§é ã®è©³çŽ°ãªæ€æ»ããµããŒãããŸããã»ãã¥ãªãã£ããŒã ã«ãšã£ãŠãäžå åãããããã·ã¥ããŒããšã¬ããŒãæ©èœã«ãããå€ãã®ãããžã§ã¯ãã«ããããªã¹ã¯ã®è§£éãäžè²«ããŠè¡ãããšãã§ããç£æ»ãšã³ã³ãã©ã€ã¢ã³ã¹ã®æåŸ ã«å¿ããŸãã
éçšèŠæš¡ã®æ¡å€§ã«ã¯ããã€ãã®å¶çŽã䌎ããŸãããã«ã¹ãã£ã³ã¯æéããããå Žåããããé«éãã€ãã©ã€ã³ã«ããããã«ãªã¯ãšã¹ãããšã®å®è¡ã®å®çŸå¯èœæ§ãå¶éããŸããäŒæ¥ã§ã¯æ®µéçãªã¹ãã£ã³æŠç¥ãæ¡çšããããšãå€ããéçºæéäžã¯å¢åã¹ãã£ã³ãŸãã¯éšåã¹ãã£ã³ãå®è¡ããå æ¬çãªã¹ãã£ã³ã¯ããŒãžãã€ã³ããŸãã¯å®æçãªã»ãã¥ãªãã£ãµã€ã¯ã«ã«éå®ããŸãããã®ã¢ãããŒãã¯ãã€ãã©ã€ã³ã®äžæã軜æžããŸãããã«ãã¬ããžå¢çã®èª€è§£ãé²ãããã«æç¢ºãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿ èŠã§ãã
éçºè ãšã¯ã¹ããªãšã³ã¹ãšãã£ãŒãããã¯ã®ã¿ã€ãã³ã°ã«ã¯æ§é çãªå¶çŽãçããŸããCheckmarxã¯ã¬ããã³ã¹ãšã»ãã¥ãªãã£ä¿èšŒãåªå ããããã軜éããŒã«ãå®è¡éèŠã®ããŒã«ãšæ¯èŒããŠãããªããªãŒããã»ã¹ã®åŸåã§çºèŠäºé ãå±ãå¯èœæ§ããããŸããAzure DevOpsã¯ãŒã¯ãããŒã«æ éã«çµ±åããªããšãã»ãã¥ãªãã£ãã£ãŒãããã¯ãããªããªãŒããã»ã¹ã®äžéšã§ã¯ãªããå€éšããã®ãã®ã®ããã«èªèãããŠããŸãå¯èœæ§ããããŸãã
Azure DevOps ã¢ãŒããã¯ãã£ã«ãããŠãCheckmarx ã¯ãé«éãªãã€ãã©ã€ã³ãã€ãã£ã ã¹ãã£ããŒãè£å®ããäžå åãããã¢ããªã±ãŒã·ã§ã³ ã»ãã¥ãªãã£ç®¡çããŒã«ãšããŠäœçœ®ä»ãããšãæé«ã®ããã©ãŒãã³ã¹ãçºæ®ããŸãããã®äŸ¡å€ã¯ãäžè²«æ§ã®ãããªã¹ã¯ ã¹ã³ã¢ãªã³ã°ãã³ã³ãã©ã€ã¢ã³ã¹ ã¬ããŒãããããŠã¢ããªã±ãŒã·ã§ã³éã®å¯èŠæ§ããéçºè ããã®å³æãã€ãã现ãããªãã£ãŒãããã¯ãããéèŠãããå Žåã«æãé«ãŸããŸãã
Azure DevOps ãã€ãã©ã€ã³ã§é«éãªã«ãŒã«é§ååéçåæãå®çŸãã Semgrep
å ¬åŒãµã€ãïŒ ã»ã ã°ã¬ãã
Semgrepã¯ãäžå çãªããªã·ãŒé©çšãããã¹ããŒããã«ãŒã«ã®éææ§ãã«ã¹ã¿ãã€ãºã®æè»æ§ãåªå ãããAzure DevOpsç°å¢ã«ããå°å ¥ãããŠããŸãããã®ã¢ãŒããã¯ãã£ã¢ãã«ã¯æå³çã«è»œéåãããŠããŸããåæã¯CLIé§ååã®ã¢ãããŒããçšããŠãã€ãã©ã€ã³ãšãŒãžã§ã³ãå ã§çŽæ¥å®è¡ãããçµæã¯ãã«ããŸãã¯ãã«ãªã¯ãšã¹ãã®ã¯ãŒã¯ãããŒã®äžéšãšããŠå³åº§ã«çæãããŸãããã®ãããSemgrepã¯ã髿©èœãªã¹ãã£ã³ãã©ãããã©ãŒã ãå°å ¥ããããšãªãè¿ éãªãã£ãŒãããã¯ãæ±ããçµç¹ã«ãšã£ãŠé åçãªããŒã«ã§ãã
Azure Pipelines ã§ã¯ãã«ãŒã«ã»ãããš Semgrep ã®ããŒãžã§ã³ãåºå®ããããšã§ãå®è¡åäœãéåžžã«äºæž¬ãããããªããŸããSemgrep ã¯äž»ã«ãœãŒã¹ã³ãŒãäžã§åäœããå®å šãªãã«ããäžé衚çŸãå¿ èŠãšããªããããäžèŠæš¡ã®ãªããžããªã§ãã£ãŠãã¹ãã£ã³æéã¯éåžžçããªããŸãããã®ç¹æ§ã«ããããã€ãã©ã€ã³ã®å®è¡æéãå€§å¹ ã«å¢å ãããããšãªãããã¹ãŠã®ãã«ãªã¯ãšã¹ããå«ãé »ç¹ãªå®è¡ãå¯èœã«ãªããŸããå€ãã®äŒæ¥ã¯ããã®åäœãå©çšããŠãã»ãã¥ãªãã£ãšå質ã«é¢ãããã£ãŒãããã¯ãããªããªãŒã©ã€ããµã€ã¯ã«ã®ããæ©ãæ®µéã«ç§»è¡ããŠããŸãã
äŸ¡æ Œèšå®ã¯ãçµç¹ãSemgrep Community Editionã䜿çšããããSemgrep AppSec Platformã䜿çšãããã«ãã£ãŠç°ãªããŸããã³ãã¥ããã£çã¯ãäžå çãªã¬ããã³ã¹ãªãã§ã«ãŒã«å®è¡ãæäŸããŸãããææçãã©ãããã©ãŒã ã¯ãäžå çãªæ€åºçµæç®¡çãã«ãŒã«é åžãåæãªã©ã®æ©èœãæäŸããŸããAzure DevOpsç°å¢ã«ãããŠããã®éãã¯éçšäžéèŠã§ããã³ãã¥ããã£ã¢ãã«ã䜿çšããããŒã ã¯èªåŸæ§ãšã¹ããŒããåäžã§ããŸããããªããžããªéã§ã«ãŒã«ã忣ãããšãåæã®ãªã¹ã¯ããããŸããææçãã©ãããã©ãŒã ã¯ãå¥ã®ã¬ããã³ã¹ã·ã¹ãã ãå°å ¥ããããšã§ãäžå 管çãå¯èœã«ããããšã§ãã®åé¡ã軜æžããŸãã
æ©èœé¢ã§ã¯ãSemgrep ã®åŒ·ã¿ã¯ã«ãŒã«ã®äœæãšé©å¿æ§ã«ãããŸããã«ãŒã«ã¯äººéãèªãã圢åŒã§ãäŒæ¥ã®ã³ãŒãã£ã³ã°æšæºãã¢ãŒããã¯ãã£äžã®å¶çŽããããã¯çµç¹åºæã®è匱æ§ãã¿ãŒã³ã«åãããŠã«ã¹ã¿ãã€ãºã§ããŸãããã®ãããSemgrep ã¯ãçŠæ¢ãããŠãã APIãéæšå¥šã®ãã¬ãŒã ã¯ãŒã¯ããããã¯æ±çšããŒã«ã§ã¯æ€åºã§ããªãå®å šã§ãªãæ§æãã¿ãŒã³ãšãã£ããããŒã«ã©ã€ãºãããããªã·ãŒã®é©çšã«ç¹ã«å¹æçã§ããAzure DevOps ã§ã¯ããããã®ã«ãŒã«ããã€ãã©ã€ã³ãã³ãã¬ãŒãã«çŽæ¥åã蟌ãããšãã§ãããããããŒã éã®äžè²«æ§ã匷åã§ããŸãã
ããæ·±ãã»ãã³ãã£ãã¯åæãå¿ èŠãªå Žåãæ§é äžã®éçãçããŸããSemgrepã®ãã¿ãŒã³ããŒã¹ã®ã¢ãããŒãã¯ãCodeQLãããªã·ãŒã°ã¬ãŒãã®SASTãã©ãããã©ãŒã ãšåçã®ããã·ãŒãžã£éããŒã¿ãããŒæšè«ãæäŸããŸããããã®ãããè€æ°ã®å®è¡å±€ã«ãŸãããããããã¯åŸ®åŠãªå®è¡ææåã«äŸåããè€éãªè匱æ§ã¯ã©ã¹ã«å¯ŸããŠã¯ãSemgrepã®æå¹æ§ãå¶éãããŸããããã«ãèŠåŸããã«ãŒã«ã¬ããã³ã¹ããªããã°ãå€§èŠæš¡äŒæ¥ã§ã¯ã«ãŒã«ã®ç¡ç§©åºãªæ¡æ£ã«èŠèãããäžè²«æ§ã®ãªãã·ã°ãã«ãããªã¢ãŒãžã®äœæ¥ã®å¢å ã«ã€ãªããå¯èœæ§ããããŸãã
å€§èŠæš¡ãªç°å¢ã«ãããŠãSemgrep 㯠Azure DevOps ãã€ãã©ã€ã³å ã®é«éãã£ãŒãããã¯ã¬ã€ã€ãŒãšããŠæé©ãªããã©ãŒãã³ã¹ãçºæ®ããŸããSemgrep ã¯ãåé¡ãæ©æã«çºèŠããçµç¹åºæã®æšæºãé©çšããããšã§ãããé«åºŠãªããŒã«ãè£å®ããŸããäžæ¹ããããªãœãŒã¹ãæ¶è²»ããã¢ãã©ã€ã¶ãŒã¯ãããªããªãŒããã»ã¹ã®åŸåã§ã詳现ãªã»ãã¥ãªãã£è©äŸ¡ãšã³ã³ãã©ã€ã¢ã³ã¹ã¬ããŒãäœæãè¡ããŸãã
å€§èŠæš¡ãã€å®å šæ§ãéèŠãªã³ãŒãããŒã¹ã«ãããæ·±ãæ¬ é¥æ€åºã®ããã®Polarisäžã®Coverity
å ¬åŒãµã€ãïŒ Polaris ã® Coverity
Coverity on Polaris ã¯ã䞻㫠Azure DevOps ç°å¢ã«å°å ¥ãããŸãããããã®ç°å¢ã§ã¯ãã¡ã¢ãªå®å šæ§ãåæå®è¡ãšã©ãŒããªãœãŒã¹ã©ã€ããµã€ã¯ã«ç®¡çãšãã£ãäœã¬ãã«ã®åäœã«é¢é£ããæ¬ é¥ã¯ã©ã¹ãéçè§£æã§è§£æ±ºããå¿ èŠããããŸãããã®ã¢ãŒããã¯ãã£ã¢ãã«ã¯ããã®éç¹ãåæ ããŠããŸããè§£æã¯ãé«åºŠãªã»ãã³ãã£ãã¯ã¢ããªã³ã°ãšãã¹ã»ã³ã·ãã£ããªææ³ã«åºã¥ããŠãããCãC++ããã®ä»ã®èšèªã§ç¹ã«å¹æçã§ãããããã®èšèªã§ã¯ãå®è¡æãšã©ãŒã埮åŠãªå¶åŸ¡ãããŒã¿ãããŒã®çžäºäœçšã«èµ·å ããããšããããããŸãã
Azure DevOpsãã€ãã©ã€ã³ã§ã¯ãPolarisäžã®Coverityã¯ãPolarisãã©ãããã©ãŒã ã«å¯Ÿããã¹ãã£ã³ãå®è¡ããå°çšã®ãã€ãã©ã€ã³ã¿ã¹ã¯ãä»ããŠçµ±åãããã®ãäžè¬çã§ãã軜éã¹ãã£ããŒãšã¯ç°ãªããCoverityã¯ã³ã³ãã€ã«åäœãšèšèªã»ãã³ãã£ã¯ã¹ãæ£ç¢ºã«ã¢ãã«åããããã«ãããæç€ºçãªãã«ããã£ããã£ãã§ãŒãºãå¿ èŠãšããããšããããããŸãããã®ããããã©ãããã©ãŒã ããŒã ã¯ããšãŒãžã§ã³ãã®ãµã€ãºèšå®ããã«ãã®åçŸæ§ãç¢ºå®æ§ãç¶æããããã®ãã«ãã¹ããŒãžãšã¹ãã£ã³ã¹ããŒãžã®åé¢ãªã©ãå®è¡ã«é¢ããèæ ®äºé ãèšç»ããå¿ èŠããããŸãã
äŸ¡æ Œèšå®ã¯ããšã³ã¿ãŒãã©ã€ãºããã³ã»ãŒããã£ã¯ãªãã£ã«ã«ãªãŠãŒã¹ã±ãŒã¹ã«åãããŠèšèšãããŠããŸããã©ã€ã»ã³ã¹ã¯éåžžãéçºè ããšã®ã¢ãã«ã§ã¯ãªãã䜿çšéãã¢ããªã±ãŒã·ã§ã³ã¹ã³ãŒãããŸãã¯ãšã³ã¿ãŒãã©ã€ãºå¥çŽã«åºã¥ããŠæ§æãããŸãããã®äŸ¡æ Œèšå®ã¢ãã«ã¯ãã¿ãŒã²ãããçµã£ãå°å ¥ãä¿é²ããŸããçµç¹ã¯ãAzure DevOpsãªããžããªå šäœã«Coverityãæ®éçã«é©çšããã®ã§ã¯ãªããçµã¿èŸŒã¿ã³ã³ããŒãã³ããéèååŒãšã³ãžã³ãã€ã³ãã©ã¹ãã©ã¯ãã£ã¬ãã«ã®ãµãŒãã¹ãªã©ãæ¬ é¥ã®åœ±é¿ãæ·±å»ãªã·ã¹ãã ãåªå ããããšããããããŸãã
æ©èœé¢ã§ã¯ãCoverityã®åŒ·ã¿ã¯ããã¿ãŒã³ããŒã¹ãæµ ãã»ãã³ãã£ãã¯è§£æã§ã¯æ€åºãé£ããäžå ·åãã¿ãŒã³ãç¹å®ã§ããç¹ã«ãããŸããããã«ã¯ãã¡ã¢ãªãªãŒã¯ãè§£æŸåŸäœ¿çšãšã©ãŒãç«¶åç¶æ ãè€éãªãã«åç §ãã¹ãªã©ãå«ãŸããŸãã峿 Œãªä¿¡é Œæ§ãŸãã¯å®å šæ§èŠä»¶ã®äžã§äºæ¥ãå±éããäŒæ¥ã«ãšã£ãŠããã®ã¬ãã«ã®è§£æã¯ãç¹ã«ãã¹ãäžã«äžå ·åã衚é¢åããªãå¯èœæ§ãããå ŽåããªãªãŒã¹æºåç¶æ³ã«å¯Ÿããä¿¡é Œæ§ãé«ããã®ã«åœ¹ç«ã¡ãŸãã
éçšèŠæš¡ã®æ¡å€§ã«ã¯ãæç€ºçã«ç®¡çããå¿ èŠãããå¶çŽãçããŸããCoverityã¹ãã£ã³ã¯èšç®è² è·ãé«ããé«éãã€ãã©ã€ã³ã«ããããã¹ãŠã®ãã«ãªã¯ãšã¹ãã§ã®å®è¡ã«ã¯é©ããªãããšããããããŸããäŒæ¥ã§ã¯éåžžãæ®µéçãªã¢ãããŒããæ¡çšããã¡ã€ã³ãã©ã³ããžã®ããŒãžæãå€éãã«ãæããŸãã¯æ£åŒãªãªãªãŒã¹èªå®ã®äžç°ãšããŠã¹ãã£ã³ãå®è¡ããŸãããã®æŠç¥ã¯ãåæã®æ·±ããšãã€ãã©ã€ã³ã®ã¹ã«ãŒãããã®ãã©ã³ã¹ããšããŸãããã«ãã¬ããžå¶éã«é¢ãã誀解ãé¿ããããã«æç¢ºãªã³ãã¥ãã±ãŒã·ã§ã³ãå¿ èŠã§ãã
æ§é äžã®å¶çŽãšããŠããã£ãŒãããã¯ãµã€ã¯ã«ã®é·æåãããµããŒã察象èšèªãã¡ã€ã³å€ãžã®é©çšæ§ã®äœäžãªã©ãæããããŸããCoverityã¯ãæ±çšçãªå質ã²ãŒããšããŠæ©èœããããšããç°çš®ã¹ã¿ãã¯ã«ãããåºç¯ãªèšèªã«ãã¬ããžãæäŸããããšãç®çãšããŠèšèšãããŠããŸããããã®äŸ¡å€ã¯ãAzure DevOpsããªããªãŒã©ã€ããµã€ã¯ã«ã®æ©ã段éã§ãããé«éã§æè»ãªããŒã«ãè£å®ãããç¹åããåæå±€ãšããŠäœ¿çšããããšã§æå€§éã«çºæ®ãããŸãã
ãšã³ã¿ãŒãã©ã€ãºAzure DevOpsã¢ãŒããã¯ãã£ã«ãããŠãCoverity on Polarisã¯é«ä¿¡é Œæ§åæãšã³ãžã³ãšããŠæé©ã«æ©èœããŸãããã®åœ¹å²ã¯ãé害蚱容床ãäœãã·ã¹ãã ã«ãããŠãéçšãžã®åœ±é¿ã倧ããæ¬ é¥ã¯ã©ã¹ã衚é¢åãããèŠåŸãããã€ãã©ã€ã³å®è¡ããã³ã¬ããã³ã¹ãã©ã¯ãã£ã¹ãšé£æºããããšã§ãããªããªãŒã®ä¿¡é Œæ§ã匷åããããšã§ãã
Azure DevOps ãã€ãã©ã€ã³ã«ããããšã³ã¿ãŒãã©ã€ãºéçè§£æããŒã«ã®æ¯èŒ
以äžã®æ¯èŒè¡šã¯ãäžèšã§èª¬æããéçè§£æããŒã«ãåäžã®ã¢ãŒããã¯ãã£ãã¥ãŒã«çµ±åãããã®ã§ããããã¯ãæ©èœã®éãã ãã§ãªããAzure DevOps å®è¡ã¢ãã«ãã¬ããã³ã¹ã®æåŸ ãã¹ã±ãŒãªã³ã°ã®ãã¬ãã·ã£ãŒã®äžã§åããŒã«ãã©ã®ããã«åäœããããçè§£ããå¿ èŠããããã©ãããã©ãŒã ãªãŒããŒãã»ãã¥ãªãã£ã¢ãŒããã¯ããããªããªãŒæ åœè ãæ¯æŽããããšãç®çãšããŠããŸãã
ãã®æ¯èŒã§ã¯ãããŒã±ãã£ã³ã°äžã®äž»åŒµããããå®è¡ç¹æ§ãäŸ¡æ Œèšå®ã®æ¹åæ§ãã¹ã±ãŒãªã³ã°ã®å¶çŽãæ§é äžã®éçãéèŠããŠããŸãããã®æ¯èŒã¯ããã€ãã©ã€ã³ã®æ±ºå®æ§ããšããã³ã¹ã®å®å šæ§ãããªã¢ãŒãžã®æ¡åŒµæ§ãã«ãŒã«æ°ãã®ãã®ãããéèŠããããšã³ã¿ãŒãã©ã€ãºç°å¢ã«ãããŠããããã®ããŒã«ãå®éã«ã©ã®ããã«è©äŸ¡ãããŠããããåæ ããŠããŸãã
| ããŒã« | äž»ãªçŠç¹ | Azure DevOps çµ±åã¢ãã« | åæã®æ·±ã | äŸ¡æ Œç¹æ§ | äŒæ¥ã®ã¹ã±ãŒãªã³ã°ã®çŸå® | æ§é äžã®å¶é |
|---|---|---|---|---|---|---|
| ãœããŒãã¥ãŒã | ã³ãŒãå質ãšä¿å®æ§ã²ãŒã | ãµãŒããŒããŒã¹ã®åæãšéäžåãããå質ã²ãŒããåãããã€ãã©ã€ã³ã¿ã¹ã¯ | ã«ãŒã«ããŒã¹ãå€èšèªãéå®ãããæå³ã®æ·±ã | éå±€åãšãã£ã·ã§ã³ãéåžžã¯LOCãšæ©èœã«ãã£ãŠã¹ã±ãŒã«ãããŸãã | ãªããžããªæ°ã®å¢å ã«äŒŽãããã©ãããã©ãŒã ã¬ãã«ã®ãã£ãã·ãã£ãã©ã³ãã³ã°ãå¿ èŠãšãªãããã€ãã©ã€ã³ãã«ãã®å·®ç°ã«ææã«ãªã | å®è¡ãã¹ãšäŸåé¢ä¿ã®èªèãéå®çãã»ãã¥ãªãã£ã®æ·±ãã¯äºæ¬¡çã |
| ãã€ã¯ããœãã ã»ãã¥ãªã㣠DevOps | æšæºåãããã»ãã¥ãªãã£ã¹ãã£ã³ãšèšŒæ ã®æ£èŠå | SARIF åºåã䜿çšããŠè€æ°ã®ã¢ãã©ã€ã¶ãŒããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã Azure DevOps æ¡åŒµæ©èœ | åºç€ãšãªãããŒã«ã«äŸåããŸããäž»ã«ãã¿ãŒã³ãšæ§æããŒã¹ã§ãã | äžè¬çã«å¥œãŸããããããžã§ã¯ãããšã®ã©ã€ã»ã³ã¹ã§ã¯ãªããã©ãããã©ãŒã æå | æ§æãéäžç®¡çãããŠããå Žåãåºç¯å²ã«æž¡ã£ãŠæ¡åŒµå¯èœ | 詳现ãªã»ãã³ãã£ãã¯åæã¯éå®çã§ãããé«åºŠãªã·ããªãªã§ã¯è£å®çãªããŒã«ã«é Œãããšã«ãªã |
| GitHub é«åºŠãªã»ãã¥ãªã㣠(CodeQL) | 詳现ãªã»ãã³ãã£ãã¯ããã³ããŒã¿ãããŒã»ãã¥ãªãã£åæ | CodeQL ããŒã¿ããŒã¹çæãšã¹ãã£ã³ã Azure Repos ã¯ãŒã¯ãããŒã«çµ±åãããŸãã | ã¯ãšãªããŒã¹ã®ããŒã¿ãããŒæšè«ã«ããé«åºŠãªã»ãã³ãã£ãã¯æ·±åºŠ | GitHub Advanced Securityã«æºæ ãããšã³ã¿ãŒãã©ã€ãºã»ãã¥ãªãã£ã©ã€ã»ã³ã¹ | èšç®éçŽçããšãŒãžã§ã³ãæŠç¥ããã£ãã·ã¥ãéžæçå®è¡ãå¿ èŠ | äžè¬çãªå質ã²ãŒãçšã«èšèšãããŠããªããããã¯ãšãªç®¡çã«ãã£ãŠéçšäžã®ãªãŒããŒããããå¢å ããŸãã |
| OpenText Fortify SCA | ããªã·ãŒã¬ãã«ã® SAST ãšã³ã³ãã©ã€ã¢ã³ã¹ã®é©çš | Fortify ãã©ãããã©ãŒã ãä»ããéäžç®¡çã«ãã Azure DevOps ã¿ã¹ã¯ | æçããè匱æ§å顿³ã«ããã»ãã¥ãªãã£éèŠã®è©³çްãªåæ | ãšã³ã¿ãŒãã©ã€ãºAppSecã©ã€ã»ã³ã¹ïŒå€ãã®å Žåãã¢ããªã±ãŒã·ã§ã³ãŸãã¯ã¹ãã£ã³ããªã¥ãŒã ããŒã¹ïŒ | é«ãªã¹ã¯ã·ã¹ãã ã®éžæçãªãªã³ããŒãã£ã³ã°ã«æé©ã倧éã®ã¹ãã£ã³ã«ãã PR ã®äœ¿çšãå¶éãããã | é·ããã£ãŒãããã¯ãµã€ã¯ã«ã誀æ€ç¥ã®èª¿æŽäœæ¥ã®å¢å ãã»ãã¥ãªãã£äžå¿ã®çŠç¹ |
| ãã§ãã¯ããŒã¯ã¹ CxSAST | 管çãããã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ããã°ã©ã | äžå åããããªã¹ã¯ããã·ã¥ããŒãã«ãããã€ãã©ã€ã³ããªã¬ãŒã¹ãã£ã³ | ããŒã¿ãããŒæ€æ»ã«ãã匷åãªã»ãã¥ãªãã£åæ | AppSec ããã°ã©ã ã«åããããšã³ã¿ãŒãã©ã€ãº ã©ã€ã»ã³ã¹ | éåžžããã€ãã©ã€ã³ã®åœ±é¿ã管çããããã«éå±€åã¹ãã£ã³ ã¢ãã«ã§å±éãããŸãã | éçºè ããã®ãã£ãŒãããã¯ãé ããPRã¬ãã«ã®è¿ éãªæœè¡ã«ã¯é©ããªã |
| ã»ã ã°ã¬ãã | é«éã§ã«ã¹ã¿ãã€ãºå¯èœãªã«ãŒã«é§ååã¹ãã£ã³ | Azure ãã€ãã©ã€ã³ ãšãŒãžã§ã³ãã§çŽæ¥ CLI ãå®è¡ | æç¶ãéã®æ·±ããå¶éããããã¿ãŒã³ããŒã¹ | ã³ãã¥ããã£çãšéäžç®¡çã®ããã®ææãã©ãããã©ãŒã | ãªããžããªéã§ç°¡åã«æ¡åŒµå¯èœãã«ãŒã«ã®çžéãé²ãããã«ã¬ããã³ã¹ãå¿ èŠ | æ·±ãæå³çæšè«ã«ã¯éçãããããã®æå¹æ§ã¯ã«ãŒã«ã®è³ªã«äŸåãã |
| Polaris ã® Coverity | äœã¬ãã«ã³ãŒãã«ãããé«ä¿¡é Œæ§ã®æ¬ 饿€åº | ãã«ããã£ããã£ãšãªã¢ãŒãåæãåããå°çšã®ãã€ãã©ã€ã³ã¿ã¹ã¯ | éåžžã«æ·±ãæå³çããã³ãã¹ã«ææãªåæ | éèŠãªã·ã¹ãã ã«çŠç¹ãåœãŠããšã³ã¿ãŒãã©ã€ãºã©ã€ã»ã³ã¹ | ãªãœãŒã¹ã倧éã«æ¶è²»ããŸããéåžžã¯ããŒãžãå€éããªãªãŒã¹ã¹ãã£ã³ã«éå®ãããŸãã | èšèªã®çŠç¹ãçããããæ±çšãã€ãã©ã€ã³ã²ãŒããšããŠã¯äžåã |
ç¹æ®ãª Azure DevOps ãŠãŒã¹ã±ãŒã¹åãã®ãã®ä»ã®æ³šç®ãã¹ãéçè§£æã®ä»£æ¿ææ®µ
äžèšã§æ¯èŒããäž»èŠããŒã«ä»¥å€ã«ããå€ãã®Azure DevOpsçµç¹ã¯ãããããªèŠä»¶ãèšèªåºæã®å¶çŽããããã¯è£å®çãªãªã¹ã¯é åã«å¯ŸåŠããããã«ã远å ã®éçè§£æãœãªã¥ãŒã·ã§ã³ãå°å ¥ããŠããŸãããããã®ããŒã«ã¯ãæ®éçãªæšæºãšããŠå°å ¥ãããããšã¯çšã§ããããããäž»èŠãªSASTã¹ã¿ãã¯ã§ã¯ååãªæ·±ããã«ãã¬ããžããããã¯éçšäžã®é©åæ§ãæäŸãããªãç¹å®ã®ã®ã£ãããåããããã«éžæãããŠããŸãã
ãšã³ã¿ãŒãã©ã€ãºç°å¢ã§ã¯ããããã®ä»£æ¿ææ®µã¯éåžžãç¹å®ã®ãã¯ãããžãŒã¹ã¿ãã¯ãèŠå¶èŠå ããŸãã¯ã€ã³ãã©ã¹ãã©ã¯ãã£å±€ã®ããããã«å¯ŸããŠéžæçã«çµ±åãããŸãããã®äŸ¡å€ã¯ãå¹ åºãã§ã¯ãªãå°éæ§ã«ãããéå±€åãããåææŠç¥ã®äžã§æå³çã«äœçœ®ä»ããããããšã§æã广çã§ãã
ããããªé©çšæ§ã«å¿ãã远å ã®éçè§£æããŒã«
- Veracode éçè§£æ
ã¯ã©ãŠã管çã®ã¹ãã£ã³ãšæšæºåãããããªã·ãŒã¬ããŒããéèŠãããšã³ã¿ãŒãã©ã€ãºAppSecããã°ã©ã ã§åºã䜿çšãããŠããŸãããªã³ãã¬ãã¹ã®éçšãªãŒããŒãããã®åæžãšã³ã³ãã©ã€ã¢ã³ã¹ã®åŒ·åãæ±ããçµç¹ã«æé©ã§ãã - ã¹ããã¯ã³ãŒã
CIãã€ãã©ã€ã³ãžã®åŒ·åãªçµ±åãåãããéçºè äžå¿ã®ã»ãã¥ãªãã£ã¹ãã£ã³ã«éç¹ã眮ããŠããŸããã¹ã¿ã³ãã¢ãã³ã®SASTãªãŒãœãªãã£ãšããŠã§ã¯ãªããäŸåé¢ä¿ãã³ã³ããã¹ãã£ã³ãè£å®ããããã«æ¡çšãããããšãå€ãã§ãã - KICS (ã€ã³ãã©ã¹ãã©ã¯ãã£ãã³ãŒããšããŠå®å
šã«ä¿ã€)
TerraformãARMãCloudFormationãªã©ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã»ã¢ãºã»ã³ãŒãã»ãã³ãã¬ãŒãã®éçè§£æã«ç¹åããŠããŸããAzureãã€ãã©ã€ã³å ã®ã¢ããªã±ãŒã·ã§ã³ã³ãŒããšäžŠè¡ããŠIaCã®èª€æ§æãªã¹ã¯ãè©äŸ¡ããå¿ èŠãããå Žåã«åœ¹ç«ã¡ãŸãã - PMDãšSpotBugs
ã³ãŒãã£ã³ã°æšæºãé©çšãããã€ãã©ã€ã³ã®ãªãŒããŒããããæå°éã«æããªããäžè¬çãªæ¬ é¥ãã¿ãŒã³ãæ€åºããããã«ãJava äžå¿ã®ç°å¢ã§äžè¬çã«äœ¿çšããã軜éã®èšèªåºæã®ããŒã«ã§ãã - ESLintãšèšèªãã€ãã£ãã®ãªã³ã¿ãŒ
ããã³ããšã³ããã¹ã¯ãªããèšèªã®ãã«ãããã»ã¹ã«çŽæ¥çµã¿èŸŒãŸããããšããããããŸããã¹ã¿ã€ã«ãšåºæ¬çãªæ£ç¢ºæ§ã®åŒ·åã«ã¯å¹æçã§ããããšã³ã¿ãŒãã©ã€ãºãªã¹ã¯è©äŸ¡ã«ã¯äžååã§ãã - OWASP äŸåé¢ä¿ãã§ãã¯
ã³ãŒãã¬ãã«ã®æ¬ é¥ã§ã¯ãªããæ¢ç¥ã®è匱ãªäŸåé¢ä¿ã®ç¹å®ã«éç¹ã眮ããŠããŸããå€ãã®å ŽåãSASTããŒã«ãšçµã¿åãããŠãµãã©ã€ãã§ãŒã³ãªã¹ã¯ã®å¯èŠæ§ãåäžãããŸãã - Banditããã³é¡äŒŒã®ã»ãã¥ãªãã£ãªã³ã¿ãŒ
Pythonãå€çšããç°å¢ã«ãããŠãäžè¬çãªå®å šã§ãªãã³ãŒãã£ã³ã°ãã¿ãŒã³ãè¿ éã«æ€åºããããã«é©çšãããŸããéåžžãã²ãŒãã£ã³ã°å¶åŸ¡ã§ã¯ãªããæ©æãã£ãŒãããã¯ã¡ã«ããºã ãšããŠäœ¿çšãããŸãã
Azure DevOps ã«ãããéçè§£æã®å°å ¥ã«åœ±é¿ãäžããäŒæ¥ã®å
Azure DevOps ã«ãããéçè§£æã®å°å ¥ã¯ãããŒã«ã®æ©èœã ãã§æšé²ãããããšã¯ã»ãšãã©ãããŸãããå€§èŠæš¡çµç¹ã§ã¯ãèŠæš¡ãèŠå¶ãžã®å¯Ÿå¿ããããŠå€ãã®åç¬ç«ããŒã éã§ã®ããªããªãŒèª¿æŽã®å¿ èŠæ§ã«ãã£ãŠçããæ§é çãªãã¬ãã·ã£ãŒãäž»ãªèŠå ãšãªããŸããAzure DevOps ã¯ãå®è¡ãšã³ãžã³ãšã¬ããã³ã¹åºç€ã®äž¡æ¹ãšããŠæ©èœããããšã§ãããã®ãã¬ãã·ã£ãŒãçµ±åããéçè§£æã®çµæããªãªãŒã¹ãããŒã«çŽæ¥åæ ãããŸãã
ãããã®åã¯ãããŒã«ã®éžæã ãã§ãªãããããã®èšå®ãé©çšãè§£éã«ã圱é¿ãäžããŸããéçè§£æã¯ããšã³ãžãã¢ãªã³ã°æŽ»åãšäŒæ¥ã®ãªã¹ã¯èš±å®¹åºŠã仲ä»ãã圹å²ãæãããŸãã以äžã®ã»ã¯ã·ã§ã³ã§ã¯ãå°å ¥æ±ºå®ã«åœ±é¿ãäžããæã圱é¿åã®ããå§åãæ€èšŒããéçè§£æãããªããªãŒå¶åŸ¡ã¡ã«ããºã ã§ã¯ãªãçŽç²ã«æè¡çãªåé¡ãšããŠæ±ãããéã«ãå€ãã®çµç¹ãèŠåŽããçç±ã説æããŸãã
ã²ãŒãã£ã³ã°èŠä»¶ãšããŠã®ããªããªãŒèŠæš¡ãšãã€ãã©ã€ã³ã®æ±ºå®è«
ãšã³ã¿ãŒãã©ã€ãºèŠæš¡ã§ã¯ãAzure DevOpsãã€ãã©ã€ã³ã¯åçŽãªèªååã¹ã¯ãªããããå ±æã€ã³ãã©ã¹ãã©ã¯ãã£ãžãšé²åããŸããæ°çŸãæ°åãã®ãªããžããªãå ±éã®ãã³ãã¬ãŒããå ±æãšãŒãžã§ã³ãããŒã«ããããŠäžå 管çãããããªã·ãŒã«äŸåããå ŽåããããŸãããã®ãããªç°å¢ã§ã¯ãéçè§£æããŒã«ã¯æ±ºå®è«çã«åäœããããšãæåŸ ãããŸãããªããžããªãææããããŒã ããã€ãã©ã€ã³ãå®è¡ãããšãŒãžã§ã³ãã«é¢ä¿ãªããåãã³ãŒã倿Žã«å¯ŸããŠåãè§£æçµæãçæãããå¿ èŠããããŸãã
ãã®èŠä»¶ã¯ããã«ãæ§æãç°å¢åºæã®äŸåé¢ä¿ããŸãã¯æé»ã®ããã©ã«ãèšå®ã«å€§ããäŸåããéçè§£æããŒã«ã«è² æ ããããŸãããšãŒãžã§ã³ãã€ã¡ãŒãžã®æŽæ°ãã³ã³ãã€ã©ã®ããŒãžã§ã³ããªãããæ¡ä»¶ä»ããã«ãããžãã¯ã«ãã£ãŠè§£æçµæãå€åãããšãã²ãŒãã£ã³ã°ã®æ±ºå®ã«å¯Ÿããä¿¡é Œæ§ãäœäžããŸããããŒã ã¯çºèŠäºé ãåé¿ãŸãã¯æå¶ãå§ããã¬ããã³ã¹ããŒã ã¯å¶åŸ¡ã匷åããããšã§å¯Ÿå¿ããæ©æŠãããã«å¢å€§ããŸãã
決å®è«ã¯ãäŒæ¥ãããªããªãŒã®å¥å šæ§ã枬å®ããæ¹æ³ã«ã圱é¿ãäžããŸããéçè§£æã®ææã¯ããã©ãããã©ãŒã ã®ãªãŒããŒãã·ã¹ãã ãªã¹ã¯ãè©äŸ¡ããããã«äœ¿çšããããã·ã¥ããŒãã«åæ ãããããšããããããŸããã³ãŒã以å€ã®çç±ã§çµæãå€åãããšãããã·ã¥ããŒãã®ä¿¡é Œæ§ãäœäžããŸããããã¯ãçµç¹ãéçè§£æã®çµæããæ¬ é¥åé¿çãã€ã³ã·ãã³ãé »åºŠãšãã£ãéçšææšãšçžé¢ãããããšããå Žåã«ç¹ã«åé¡ãšãªããŸãããããã®ææšã¯ãå€ãã®å Žåãå ±æãããããŒã¿ãœãŒã¹ã䜿çšããŠè¿œè·¡ãããŸãã ãœãããŠã§ã¢ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ ãã©ãããã©ãŒã éã§ã
ãã®çµæãäŒæ¥ã¯æç€ºçãªæ§æãããŒãžã§ã³åºå®ãåçŸå¯èœãªå®è¡ããµããŒãããéçè§£æããŒã«ã奜ãã§å©çšããŠããŸãããã¬ãã·ã£ãŒã¯ãããå€ãã®åé¡ãçºèŠããããšã§ã¯ãªããçºèŠãããåé¡ãç°å¢ãã€ãºã§ã¯ãªãã³ãŒã倿Žã«èµ·å ããããšã確å®ã«ããããšã§ããAzure DevOps ã¯ããã€ãã©ã€ã³ã®é害ãå³åº§ã«å¯èŠåããããšã§ãã®ãã¬ãã·ã£ãŒãå¢å¹ ãããéæ±ºå®è«çãªè§£æãå質ã·ã°ãã«ã§ã¯ãªãããªããªãŒãªã¹ã¯ãžãšè»¢æããŸãã
èŠå¶ãžã®é²åºãšç£æ»äž»å°ã®èšŒæ ãžã®æåŸ
éçè§£æã®å°å ¥ã«åœ±é¿ãäžããããäžã€ã®å€§ããªèŠå ã¯ãèŠå¶ãžã®å¯Ÿå¿ã§ããéèãå»çãéèŠã€ã³ãã©ãšãã£ãæ¥çã§ã¯ããœãããŠã§ã¢ã®å€æŽã«å¯Ÿããå®èšŒå¯èœãªç®¡çäœå¶ããŸããŸãæ±ããããŠããŸããAzure DevOpsç°å¢ã§ã¯ãéçè§£æã®çµæã¯éçºè ããã®ãã£ãŒãããã¯ã ãã§ãªããç£æ»èšŒæ ãšããŠæ±ãããããšããããããŸããããã«ãããããŒã«ã®è©äŸ¡åºæºãå€åããŸãã
ç£æ»äž»å°ã®ç°å¢ã§ã¯ãã³ãŒã倿Žãåæçµæãæ¿èªããªãªãŒã¹éã®ãã¬ãŒãµããªãã£ãæ±ããããŸãããã®ãããéçåæããŒã«ã¯Azure DevOpsã®ææç©ä¿æããã€ãã©ã€ã³ãã°ãæ¿èªã¯ãŒã¯ãããŒãšã¹ã ãŒãºã«çµ±åã§ããå¿ èŠããããŸããäžæçãªãã€ãã©ã€ã³ã®ç¶æ ãäžæçãªããã·ã¥ããŒãã«é ŒãããšãªããäºåŸãå Žåã«ãã£ãŠã¯æ°ãæããããã¯æ°å¹ŽåŸã§ããçºèŠäºé ã説æã§ããå¿ èŠããããŸãã
ãã®ãã¬ãã·ã£ãŒã¯ãå®å®ããæ©æ¢°å¯èªãªåºåãçæããé·æã«ãããããŒã¹ã©ã€ã³èšå®ããµããŒãããããŒã«ã«æå©ã«åããŸããäŒæ¥ã¯å€ãã®å Žåãæ¢ç¥ã®åé¡ãç¹å®ã®æç¹ã§èªèãå容ããŸãã¯è»œæžãããããšã蚌æããå¿ èŠããããŸããæ§é åãããçµæãã©ãŒããããäžè²«ããèå¥åãæããªãããŒã«ã§ã¯ããããå°é£ã«ãªããç£æ»äžã®æäœæ¥ã«ãããªãŒããŒããããå¢å ããŸãã
èŠå¶ãžã®é²åºã¯ãé倧床ã®è§£éã«ãå€åããããããŸããéå®çãªéçšãªã¹ã¯ãããããçºèŠäºé ã§ãã£ãŠããææžåããã管ççã«éåããŠããå Žåã¯ãäŸç¶ãšããŠéèŠãªåé¡ãšã¿ãªãããå¯èœæ§ããããŸããéã«ãæè¡çã«é倧ãªåé¡ã¯ãèŠå¶ãããå®è¡ãã¹ã®ç¯å²å€ã«ããå Žåãåªå 床ãäžããããå¯èœæ§ããããŸããããããç·åŒµé¢ä¿ã¯ãç¹ã«æ®µéçãªæ¹åã«ãããŠã¯ãéçè§£æçµæãããåºç¯ãªè¿ä»£åããã³ç®¡çãã¬ãŒã ã¯ãŒã¯ã®äžã§æèåããå¿ èŠæ§ã匷ããŸãã ã¢ããªã±ãŒã·ã§ã³è¿ä»£åããã°ã©ã ã¬ã¬ã·ãŒã³ã³ããŒãã³ããšææ°ã³ã³ããŒãã³ããå ±åããŸãã
Azure DevOpsã§ã¯ãããããæåŸ ããéçåæã®åœ¢åŒåãæšé²ãããŠããŸããããŒã«ã¯ã³ã³ãã©ã€ã¢ã³ã¹ã¢ãŒããã¯ãã£ã®äžéšãšãªããå°å ¥ã®æ±ºå®ã¯æ€åºç²ŸåºŠã ãã§ãªããã¬ããŒãæ©èœãèšŒæ æ©èœã«ã倧ããå·Šå³ãããŸãã
çµç¹ã®è€éããšããŒã éã®èª¿æŽã®ãã¬ãã·ã£ãŒ
å€§èŠæš¡ãªAzure DevOpsçµç¹ã¯æ§é çã«è€éã§ããåããŒã ã¯èšèªã¹ã¿ãã¯ãããªããªãŒããŒã¹ããªã¹ã¯èš±å®¹åºŠãç°ãªããŸãããå€ãã®å Žåãå ±éã®ã¬ããã³ã¹ãé©çšãããŸããéçè§£æããŒã«ã¯ãããã®éãã亀差ããäœçœ®ã«ãããçµç¹å ã®ç·åŒµã®çŠç¹ãšãªããŸãã
ãã¬ãã·ã£ãŒã®èŠå ã®äžã€ã¯ãããŒã éã®äŸåé¢ä¿ã§ããå ±æã³ã³ããŒãã³ãå ã®éçè§£æçµæããè€æ°ã®ããªããªãŒã¹ããªãŒã ãåæã«ãããã¯ããå¯èœæ§ããããŸããäŸåé¢ä¿ãšå®è¡ã®é¢é£æ§ãæç¢ºã«ææ¡ã§ããªããã°ãåãçµæãéèŠãšæããããŒã ãšããã§ãªãããŒã ã®éã§è¡çªãçããå¯èœæ§ããããŸãããªããžããªã®å¢çå ã§ã®ã¿åäœããéçè§£æããŒã«ã¯ãäžæµãžã®åœ±é¿ãèŠãã«ããããããšã§ããã®åé¡ãæªåãããŸãã
ããäžã€ã®ãã¬ãã·ã£ãŒã®åå ã¯ãæç床ã®äžåäžæ§ã§ããçºèŠäºé ãè¿ éã«ä¿®æ£ã§ããèœåãæã€ããŒã ãããäžæ¹ã§ãã¬ã¬ã·ãŒã³ãŒããéããããã¹ãã«ãã¬ããžããããã¯äººå¡äžè¶³ãšãã£ãå¶çŽãæ±ããããŒã ããããŸããããããçŸå®ãç¡èŠããŠéçè§£æãäžåŸã«å®æœãããšãå°å ¥ã¯åæ»ããŸããããŒã ã¯æå¶ãå°å ¥ããããäŸå€ã亀æžãããããããšã§å¯Ÿå¿ããçµæãšããŠäžæŽåãšã¬ããã³ã¹äžã®è² åµãçã¿åºããŸãã
Azure DevOps ã§ã¯ãããªã·ãŒé©çšãäžå åãããŠããããããããããã€ããã¯ã¹ã匷åãããŸãããã©ã³ãããªã·ãŒãå¿ é ãã§ãã¯ãæ¿èªã²ãŒãã¯ãåºç€ãšãªãã·ã¹ãã ã倧ããç°ãªãå Žåã§ããäžåŸã«é©çšãããŸãããã®ãããéçè§£æããŒã«ã¯ãçµç¹ãæåŸ ããã»ãã¥ãªãã£ã¬ãã«ãšã·ã¹ãã ã®éèŠåºŠããããŠå€æŽãªã¹ã¯ãäžèŽãããããšãã§ããæ®µéçãªé©çšã¢ãã«ããµããŒãããå¿ èŠããããŸãã
ããããçµç¹çãªãã¬ãã·ã£ãŒããããäŒæ¥ãéçè§£æããŒã«ããåå¥ã®ã¹ãã£ã³ã§ã¯ãªããå調çãªæææ±ºå®ãæ¯æŽããèœåã«åºã¥ããŠè©äŸ¡ããããã«ãªã£ãŠããçç±ã§ããããŒã ãã·ã¹ãã éã§èª¿æ»çµæãæŽåãããããŒã«ã¯ãæ©æŠã軜æžãã察ç«ããããšãªãã¬ããã³ã¹ãæ¡åŒµããããšãå¯èœã«ããŸãã
Azure ãã€ãã©ã€ã³ã®éçåæããäŒæ¥ãæåŸ ããæŠç¥çææ
Azure DevOps å ã§ãšã³ã¿ãŒãã©ã€ãºèŠæš¡ã§éçè§£æãå°å ¥ããå Žåãæåã¯æ€åºãããåé¡ã®æ°ã§æ±ºãŸãããšã¯ã»ãšãã©ãããŸãããçµç¹ã¯ãéçè§£æã«ãã£ãŠããªããªãŒãã¬ããã³ã¹ããªã¹ã¯ç®¡çã®ããããåŽé¢ã§ããããããæŠç¥çææã«ãã£ãŠãã®ææãè©äŸ¡ããŸãããããã®ææã¯ãããŒã«ã®æ§ææ¹æ³ãé©çšå ŽæããããŠçµæã«åºã¥ã察å¿ã®è²¬ä»»ãè² ãããŒã ãæ±ºå®ããŸãã
Azureãã€ãã©ã€ã³ã¯ãããããæåŸ ã匷å¶ããæ©èœãšããŠæ©èœããŸãããã€ãã©ã€ã³ãã§ãã¯ã¯ããŒãžã®æ±ºå®ãšãªãªãŒã¹ã®é²è¡ã«çŽæ¥åœ±é¿ãäžãããããéçåæã®çµæã¯ããªãªãŒã¹ã®äºæž¬å¯èœæ§ãéçšã®å®å®æ§ãç£æ»ã®é²åŸ¡æ§ãšãã£ãããžãã¹äžã®åªå äºé ãšæŽåããŠããå¿ èŠããããŸãã以äžã®ã»ã¯ã·ã§ã³ã§ã¯ãéçåæãAzureããªããªãŒã¯ãŒã¯ãããŒã«çµã¿èŸŒãŸããå Žåã«äŒæ¥ãæåŸ ããæãéèŠãªææã«ã€ããŠæŠèª¬ããŸãã
é ä¿¡ãªã¹ã¯ã«åãããäºæž¬å¯èœãªãªãªãŒã¹ã²ãŒãã£ã³ã°
äŒæ¥ãAzure DevOpsã®éçåæããæ±ããäž»èŠãªæŠç¥çææã®äžã€ã¯ãäºæž¬å¯èœãªãªãªãŒã¹ã²ãŒãã£ã³ã°ã§ãããã€ãã©ã€ã³ãã§ãã¯ã¯ã蚱容ã§ããªããªã¹ã¯ããããã倿Žããããã¯ããäžæ¹ã§ã圱é¿åºŠã®äœã倿Žã¯éåºŠã®æ©æŠãªãã¹ã ãŒãºã«å®è¡ã§ããããšãæåŸ ãããŸããéçåæã¯ããã®ã·ã°ãã«ãããªããªãŒãªã¹ã¯ãšç¢ºå®ã«çžé¢ããŠããå Žåã«ã®ã¿ããã®ææã«è²¢ç®ããŸãã
å®éã«ã¯ãå€ãã®çµç¹ããªãŒããŒããããã³ã°ã«æ©ãŸãããŠããŸããéçè§£æã®æ€åºçµæã¯ãã¯ãªãã£ã«ã«ãªå®è¡ãã¹ãäŒæ¢ç¶æ ã®ããžãã¯ã«åœ±é¿ãäžãããã©ããã«é¢ããããäžåŸã«æ±ãããŸãããã®çµæãã²ãŒããšã©ãŒãé »ç¹ã«çºçããæåã«ãããªãŒããŒã©ã€ããå¿ èŠãšãªããããã¬ããã³ã¹ã匱ãŸãããµã€ã¯ã«ã¿ã€ã ãé·ããªããŸããäºæž¬å¯èœãªã²ãŒãã£ã³ã°ãå®çŸããã«ã¯ãéçè§£æããŒã«ãå®è¡å šäœã«ããã£ãŠå®å®ããçµæãçæããå¿ èŠããããå®è¡ãžã®åœ±é¿ã®èгç¹ããè§£éå¯èœãªãã®ã§ãªããã°ãªããŸããã
ãã®ãããäŒæ¥ã¯éçè§£æããªã¹ã¯ã«åºã¥ãå·®å¥åããµããŒãããããšãæåŸ ããŠããŸããé«åºŠã«æ¥ç¶ãããã³ã³ããŒãã³ããå€éšã«å ¬éããããã¹ã«åœ±é¿ãäžããçºèŠäºé ã¯ã圱é¿åºŠã®äœãã¢ãžã¥ãŒã«å ã®åå¥ã®åé¡ããããããéèŠãªã²ãŒãã£ã³ã°ã®å¯Ÿè±¡ãšãããã¹ãã§ããããããæåŸ ãããçµç¹ã¯é倧床ã©ãã«ã®ã¿ã«é Œãã®ã§ã¯ãªããäŸåæ§ãšåœ±é¿åºŠãèæ ®ããè§£æã¢ãã«ãžãšãŸããŸãç§»è¡ããŠããŸãã
Azure DevOps ã§ã¯ãã²ãŒãã£ã³ã°ããžãã¯ããã€ããªã§ããããããã®èŠä»¶ãããã«åŒ·åãããŸãããã§ãã¯ã¯åæ Œãäžåæ Œãã®ã©ã¡ããã§ãããã¥ã¢ã³ã¹ã衚çŸã§ããªãéçåæããŒã«ã§ã¯ãçµç¹ã¯ããªã·ãŒäŸå€ãæåæ¿èªã«è€éãªèŠçŽ ãçµã¿èŸŒãå¿ èŠããããŸããæéã®çµéãšãšãã«ãèªååã²ãŒãã®äŸ¡å€ã¯äœäžããæææ±ºå®ã¯éå ¬åŒãªãã£ãã«ãžãšéæ»ãããŠããŸããŸãã
æãæçããAzure DevOpsç°å¢ã§ã¯ãéçè§£æãçšããŠãªãªãŒã¹ãããŒãå¶éããã®ã§ã¯ãªããå®å®åãããŠããŸããã²ãŒãã£ã³ã°åäœãã¢ãŒããã¯ãã£äžã®ãªã¹ã¯ãµãŒãã§ã¹ãšæŽåãããããšã§ãçµç¹ã¯äŸå€ã®çºçä»¶æ°ãåæžãããããã¯ããããªãªãŒã¹ãçã®ãªã¹ã¯èŠå ãåæ ããŠãããšãã確信ãé«ããããšãã§ããŸãããã®ææã¯ã倿ŽãäŸåé¢ä¿æ§é ãéããŠã©ã®ããã«äŒæããããçè§£ããããšãšå¯æ¥ã«é¢é£ããŠãããå€ãã®äŒæ¥ããŸããŸã泚åããŠããã®ã¯ãã®ããã§ãã äŸåé¢ä¿ã°ã©ãã¯ãªã¹ã¯ã軜æžãã éçè§£æã®æå¹æ§ãè©äŸ¡ããå Žåã
ããŒã å šäœã«æ¡åŒµå¯èœãªå®çšçãªåªå é äœä»ã
äŒæ¥ãæåŸ ããããäžã€ã®éèŠãªææã¯ãã¹ã±ãŒã©ãã«ãªåªå é äœä»ãã§ããå€§èŠæš¡ãªAzure DevOpsçµç¹ã§ã¯ãéçè§£æã®æ€åºçµæã¯æ°åã«åã¶ããšããããŸãã广çãªåªå é äœä»ãããªããã°ãããªã¢ãŒãžãããã«ããã¯ãšãªããäžçŽãšã³ãžãã¢ã®æéãæµªè²»ãã修埩ãé ãããããšã«ãªããŸãã
å®çšçãªåªå é äœä»ããšã¯ãçºèŠäºé ãæœè±¡çãªé倧床ã ãã§ãªããçŸåšã®ããªããªãŒç®æšãšã®é¢é£æ§ã«åºã¥ããŠã©ã³ã¯ä»ãããããšãæå³ããŸããäŒæ¥ã¯ãéçåæã«ãã£ãŠã次ã®ãªãªãŒã¹ãŸã§ã«å¯ŸåŠããå¿ èŠãããçºèŠäºé ãå®å šã«å»¶æã§ããçºèŠäºé ãããŒã«ã«ãªä¿®æ£ã§ã¯ãªãã¢ãŒããã¯ãã£çãªä»å ¥ãå¿ èŠãªçºèŠäºé ãšãã£ãçåãžã®åçãåŸãããããšãæåŸ ããŠããŸãã
ãã®æåŸ ã¯ãããŒã«ã®å°å ¥æ¹æ³ã«çŽæ¥åœ±é¿ãäžããŸããé·ããŠå¹³æ¿ãªåé¡ãªã¹ããäœæããããŒã«ã¯ãåªå é äœä»ãã®è²¬ä»»ãå®å šã«äººéã«æŒãä»ããŸããèŠæš¡ã倧ãããªããšãããŒã éã§æææ±ºå®ã«äžè²«æ§ããªããªããéå ¬åŒãªãã¥ãŒãªã¹ãã£ãã¯ãžã®äŸåãé«ãŸããŸãããããŠãæéã®çµéãšãšãã«ããã®äžäžèŽèªäœãã¬ããã³ã¹ãªã¹ã¯ãšãªããŸãã
Azure DevOpsç°å¢ã§ã¯ãããŒã ã䞊è¡ããŠäœæ¥ããããããã®èª²é¡ã¯ããã«æ·±å»åããŸããããããŒã ã«ãšã£ãŠåªå 床ã®äœãçºèŠäºé ããå ±æäŸåé¢ä¿ããªãªãŒã¹ã¿ã€ãã³ã°ã«ãã£ãŠã¯ãå¥ã®ããŒã ã«ãšã£ãŠã¯åªå 床ãé«ãå ŽåããããŸãããã®ãããäŒæ¥ã¯éçè§£æã®åºåãããªããžããªããã€ãã©ã€ã³éã§èª¿æŽãããåªå é äœä»ãããµããŒãã§ããã»ã©æèçã§ããããšãæåŸ ããŠããŸãã
广çãªåªå é äœä»ãã¯ãæ¹å掻åã®ç²åŽã軜æžããŸããéçè§£æãéèŠãªåé¡ãäžè²«ããŠæµ®ã圫ãã«ããããšãããŒã ãèªèããã°ãå°å ¥çã¯åäžããŸããããããçºèŠäºé ãããªããªãŒã®ææãšä¹é¢ããŠããããã«èŠããå ŽåãããŒã ã¯é¢è±ããŠããŸããŸããéçè§£æãæŠç¥çã«æŽ»çšããããšã§ããã€ãºããã£ã«ã¿ãªã³ã°ããã€ã³ãã¯ããé«ããããšã§ããã®ä¿¡é Œæ§ãç¶æããããšãã§ããŸãã
ãã®çµæã«ãããéçåæãç¬ç«ããã¹ãã£ã³ã¹ããããšããŠæ±ãã®ã§ã¯ãªããçºèŠäºé ãã·ã¹ãã æ§é ã倿Žã®åœ±é¿ãšçžé¢ãããã¢ãããŒããžã®é¢å¿ãé«ãŸã£ãŠããŸããåªå é äœä»ãã¯ãããŒã«ã«ããŒã ã®è² æ ã§ã¯ãªããäŒæ¥å šäœã®å ±éæ©èœãšãªããŸãã
ã¬ããã³ã¹ãšç£æ»ããµããŒããã蚌æ ã®çæ
äŒæ¥ãæåŸ ãã3ã€ç®ã®æŠç¥çææã¯ãä¿¡é Œæ§ã®é«ã蚌æ ã®çæã§ããAzure DevOpsã§ã¯ãéçè§£æã®çµæã¯ããœãããŠã§ã¢é ä¿¡äžã«é©åãªå¶åŸ¡ãé©çšãããããšãç€ºãæ£åŒãªèšé²ã®äžéšãšãªãããšããããããŸãããã®æåŸ ã¯ãã»ãã¥ãªãã£ããŒã ã ãã§ãªããã³ã³ãã©ã€ã¢ã³ã¹ããªã¹ã¯ç®¡çãå éšç£æ»éšéã«ãåãã§ããŸãã
ãšããã³ã¹æåã®éçè§£æã¯ãæ°žç¶æ§ã远跡å¯èœæ§ã説æå¯èœæ§ãåããææç©ãçæããå¿ èŠããããŸããäŒæ¥ã¯ããªãªãŒã¹æã®è§£æç¶æ ãã€ãŸãã©ã®ãããªçºèŠããã£ãããã©ã®ããã«åé¡ããããããããŠãªããããåãå ¥ãããããããã¯ä¿®æ£ãããããšãã£ãæ å ±ãåæ§ç¯ããããšãæåŸ ããŠããŸããäžæçãªããã·ã¥ããŒãã倿Žå¯èœãªçµæããæäŸããªãããŒã«ã¯ããã®ææãæãªããŸãã
Azure DevOpsãã€ãã©ã€ã³ã¯ããã°ãã¢ãŒãã£ãã¡ã¯ãããã«ããµããªãŒãéããŠèšŒæ ã®ä¿æã容æã«ããŸãããããã®ã¡ã«ããºã ãšã¹ã ãŒãºã«çµ±åã§ããéçè§£æããŒã«ã¯ã䞊åçãªããã¥ã¡ã³ãäœæããã»ã¹ã®å¿ èŠæ§ã軜æžããããã奜ãŸããŸããéã«ãåå¥ã®èšŒæ ç®¡çã·ã¹ãã ãå¿ èŠãšããããŒã«ã¯ãéçšäžã®ãªãŒããŒããããå¢å ãããäžè²«æ§ã®ç¢ºä¿ãå°é£ã«ããŸãã
ãã®çµæã¯ãæå¶ãšããŒã¹ã©ã€ã³èšå®ã®åãæ±ãæ¹ã«ã圱é¿ãäžããŸããäŒæ¥ã¯ãæå¶ã®æ±ºå®ãç£æ»å¯èœã§æéãå®ããããŠãããå Žåœããçã§ã¯ãªãããšãæåŸ ããŠããŸãããã®ãããéçè§£æããŒã«ã¯ãã¬ããã³ã¹ã®æ±ºå®ãæéã®çµéãšãšãã«æç¢ºåããããããæ§é åãããã¡ã¿ããŒã¿ãšäžè²«ããèå¥åããµããŒãããå¿ èŠããããŸãã
ã¬ã¬ã·ãŒã·ã¹ãã ãšææ°ã·ã¹ãã ãå ±åããçµ±å¶ã段éçã«é²åããå€é©ã€ãã·ã¢ããã«ãããŠã¯ããšããã³ã¹ã®çæãç¹ã«éèŠã«ãªããŸãããã®ãããªç¶æ³ã«ãããŠãéçè§£æã¯ãã¢ãŒããã¯ãã£ãå€åããŠãçµ±å¶ã®é©çšãå¯èŠåããé²åŸ¡ãå¯èœã«ããããšã§ã¬ããã³ã¹ãæ¯æŽããŸããããããæåŸ ã¯ãéçºè å°çšã®å質ããŒã«ã§ã¯ãªãããšã³ã¿ãŒãã©ã€ãºããªããªãŒä¿èšŒã®äžç°ãšããŠã®éçè§£æã®æŠç¥ç圹å²ã匷åºãªãã®ã«ããŠããŸãã
Azure ã®éçè§£æããŒã«ãåªããŠãã察象ãŠãŒã¹ã±ãŒã¹
Azure DevOpsã«ãããŠãéçè§£æããŒã«ã¯ããã¹ãŠã®ãã€ãã©ã€ã³ã«åäžã«é©çšããã®ã§ã¯ãªããæç¢ºã«å®çŸ©ãããããªããªãŒãŠãŒã¹ã±ãŒã¹ã«åãããŠèª¿æŽããããšã§ãæå€§ã®äŸ¡å€ãçºæ®ããŸãããšã³ã¿ãŒãã©ã€ãºç°å¢ã¯ãã¢ãŒããã¯ãã£ã®æç床ãèŠå¶ãžã®å¯Ÿå¿ãããªããªãŒã®é »åºŠã倧ããç°ãªããŸãããã®ãããéçè§£æã®æå¹æ§ã¯ãããŒã«ã®åäœãããããã®ã³ã³ããã¹ãã§ç®¡çãããŠããç¹å®ã®ãªã¹ã¯ãšäžèŽããŠãããã©ããã«å·Šå³ãããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãAzure çµ±ååéçåæãäžè²«ããŠæž¬å®å¯èœãªã¡ãªãããçã¿åºããŠãŒã¹ã±ãŒã¹ãæ€èšŒããŸãããããã®ã·ããªãªã¯ãæ¢åã®å¶åŸ¡ãäžååãªãããçµç¹ãç©æ¥µçã«ãœãªã¥ãŒã·ã§ã³ãæ¢ããŠãããå°å ¥ææ¬²ã®é«ããã¿ãŒã³ã衚ããŠããŸãããŸããéçåæãã¢ããã€ãŒãŒã·ã§ã³ãã»ãã¥ãªãã£ããã©ãããã©ãŒã ã¬ããã³ã¹ã®åãçµã¿ããšã«ç°ãªãè©äŸ¡ãåããããšãå€ãçç±ãæããã«ããŸããããã¯ãæ©èœãªã¹ããã«ãŒã«ã®é©çšç¯å²ã ãã§ããŒã«ãæ¯èŒããå Žåã«ãã誀解ãããéãã§ãã
é«éé ä¿¡ç°å¢ã«ããããã«ãªã¯ãšã¹ãã®ãªã¹ã¯ç®¡ç
Azure DevOpsã«ãããéçè§£æã®æãäžè¬çãã€åœ±é¿åã®å€§ãããŠãŒã¹ã±ãŒã¹ã®äžã€ã¯ããã«ãªã¯ãšã¹ãã®ãªã¹ã¯ç®¡çã§ãããã©ã³ã¯ããŒã¹éçºãçæçãªæ©èœãã©ã³ããæ¡çšããŠããçµç¹ã§ã¯ããã«ãªã¯ãšã¹ãã¯ãã³ãŒããåå¥ã®å€æŽããå ±æè²¬ä»»ãžãšç§»è¡ãããäž»èŠãªæææ±ºå®ãã€ã³ããšãªããŸããéçè§£æã¯ãããªããªãŒãå€§å¹ ã«é å»¶ãããããšãªãããã®æææ±ºå®ãæ¯æŽããããšãæåŸ ãããŠããŸãã
ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãé床ãšä¿¡å·å質ãéåžžã«éèŠã§ããAzure DevOps ã®ãã«ãªã¯ãšã¹ãããªã·ãŒã§ã¯ãéåžžãããŒãžåã«å¿ ãééããªããã°ãªããªãå¿ é ãã§ãã¯ã匷å¶ãããŸãããã®ã¯ãŒã¯ãããŒã«çŽæ¥çµ±åãããéçè§£æããŒã«ã¯ã峿ã®ãã£ãŒãããã¯ãæäŸãããããã¬ãã¥ãŒæ åœè ã¯æ©èœã®æ£ç¢ºæ§ã ãã§ãªãã倿Žã«ãã£ãŠããããããæœåšçãªãªã¹ã¯ãè©äŸ¡ã§ããŸããçºèŠäºé ãå·®åãšé¢é£ããå®è¡ãã¹ã«å³å¯ã«éå®ãããŠããå Žåããã®äŸ¡å€ã¯ããé¡èã«ãªãããã€ãºãšã¬ãã¥ãŒç²åŽã軜æžããŸãã
äŒæ¥ã¯ã段éçã«å®è¡ã§ããäºæž¬å¯èœãªæéæ å ã§å®äºã§ããéçè§£æã¢ãããŒãã奜ã¿ãŸããé·æéå®è¡ãããã¹ãã£ã³ã¯ãããŒãžãé ããããã€ãã¹åäœãå©é·ããããããã®ãŠãŒã¹ã±ãŒã¹ãæãªããŸããå®å šãªãªããžããªè§£æãé«è² è·ãªãã«ããã£ããã£ã«äŸåããããŒã«ã¯ãå€ãã®å ŽåãåŸææ®µéã«è¿œããããããã軜éãªããŒã«ãå®è¡ãæèããããŒã«ã¯ãã«ãªã¯ãšã¹ãå±€ã«é 眮ãããŸãã
ãã®ãŠãŒã¹ã±ãŒã¹ã®ããäžã€ã®ç¹åŸŽã¯ãã¬ãã¥ãŒæ åœè ã®è§£éå¯èœæ§ã§ãããã«ãªã¯ãšã¹ãäžã«æããã«ãªãéçè§£æçµæã¯ãããŒãžã®å€æãäžããšã³ãžãã¢ã«ãšã£ãŠçè§£ãããããã®ã§ãªããã°ãªããŸãããéåºŠã«æœè±¡çãªé倧床è©äŸ¡ãããŒã«åºæã®å°éçšèªã¯ã广ãäœäžãããŸãããã®ãããäŒæ¥ã¯ãæç¢ºãªã³ã³ããã¹ããåããAzure DevOpsã®PRã¢ãããŒã·ã§ã³ã«è§£æçµæãçŽæ¥çµ±åããããŒã«ã«æ¹ãããŸãã
ãã®ãŠãŒã¹ã±ãŒã¹ã¯ããã¥ã¢ã³ã¹ãç¡èŠããŠåŸæ¥ã®éçè§£æãè¡ããšéçãããããšãæããã«ããŠããŸããå®è¡ãšã®é¢é£æ§ãæ¬ ãããã¿ãŒã³ããŒã¹ã®çºèŠã¯ãå€ãã®å Žåãè¡åãèµ·ãããããè°è«ãåŒã¶ããšã«ãªããŸãããã®çµæãçµç¹ã¯ã³ãŒãè¡çãã§ãã¯ãšãªã¹ã¯é¢é£ãã§ãã¯ãåºå¥ããåŸåã匷ãŸã£ãŠããããã®åºå¥ã¯çè§£ãšå¯æ¥ã«é¢é£ããŠããŸãã éçè§£æãšãªã³ãã£ã³ã° çŸä»£ã®ãã€ãã©ã€ã³ã«ãããŠãéçè§£æã¯é©åã«èª¿æŽãããŠããã°ãããªããªãŒã®ããã«ããã¯ãšãªãããšãªãPRã¬ããã³ã¹ã匷åããŸãã
èŠå¶å¯Ÿè±¡ããã³å€éšã«å ¬éãããŠããã·ã¹ãã ã®ã»ãã¥ãªãã£ä¿èšŒ
ããäžã€ã®é«äŸ¡å€ãŠãŒã¹ã±ãŒã¹ã¯ãèŠå¶åœå±ã®ç£èŠãå€éšããã®æ»æã«ãããããã·ã¹ãã ã®ã»ãã¥ãªãã£ç¢ºä¿ã«çŠç¹ãåœãŠãŠããŸããéèãµãŒãã¹ããã«ã¹ã±ã¢ãã©ãããã©ãŒã ããŸãã¯å ¬éAPIããµããŒãããAzure DevOpsç°å¢ã§ã¯ãéçåæã¯ãå±éåã«è匱æ§ãæããã«ããããã®äºé²çå¶åŸ¡ãšããŠæ©èœããŸãã
ãã®ã·ããªãªã§ã¯ãåæã®æ·±ããé床ãããéèŠã§ããäŒæ¥ã¯ãè€éãªã€ã³ãžã§ã¯ã·ã§ã³ãã¹ãå®å šã§ãªããã·ãªã¢ã©ã€ãŒãŒã·ã§ã³ãã§ãŒã³ãèªèšŒããžãã¯ã®æ¬ é¥ãªã©ããã¹ãã ãã§ã¯ç¹å®ãé£ããè匱æ§ã¯ã©ã¹ãéçåæã«ãã£ãŠæ€åºã§ããããšãæåŸ ããŠããŸããAzure DevOpsãã€ãã©ã€ã³ã§ã¯éåžžããããã®ã¹ãã£ã³ãããŒãžæ®µéãŸãã¯ãã¬ãªãªãŒã¹æ®µéã§çµã¿èŸŒã¿ãŸãããããã®æ®µéã§ã¯ãããé«ãä¿¡é Œæ§ãšåŒãæãã«å®è¡æéãé·ããŠã蚱容ãããŸãã
éçè§£æããŒã«ã¯ãæ¢ç¥ã®è匱æ§ã«ããŽãªãšä¿®åŸ©ã®æåŸ å€ã«ãããã³ã°ãããæ§é åãããåºåãæäŸããããšã§ããã®ç¹ã§åªããæ§èœãçºæ®ããŸããããã«ãããã»ãã¥ãªãã£ããŒã ã¯ã¹ãã£ã³çµæã瀟å ããªã·ãŒãå€éšæšæºã«æºæ ãããããšãã§ããŸããAzure DevOpsãšã®çµ±åã«ããããããã®çµæããªãªãŒã¹èšŒæ ã®äžéšãšããŠååŸããç£æ»ããã³ã³ã³ãã©ã€ã¢ã³ã¹æŽ»åããµããŒãã§ããŸãã
ãã®ãŠãŒã¹ã±ãŒã¹ã®ç¹åŸŽã¯ãéžæçãªé©çšã§ããäŒæ¥ããã¹ãŠã®ãªããžããªã«åäžã«ãã£ãŒãã»ãã¥ãªãã£ã¹ãã£ã³ãé©çšããããšã¯çšã§ãã代ããã«ãããŒã¿ã®æ©å¯æ§ãé²åºåºŠãããžãã¹äžã®éèŠåºŠã«åºã¥ããŠãé«ãªã¹ã¯è³ç£ãç¹å®ããŸãããã®ããã察象ãçµã£ããªã³ããŒãã£ã³ã°ãšå·®å¥åãããããªã·ãŒããµããŒãããéçè§£æããŒã«ãæšå¥šãããŸãã
ãã®ãŠãŒã¹ã±ãŒã¹ã¯ãã¬ããã³ã¹ã¯ãŒã¯ãããŒã®éèŠæ§ãæµ®ã圫ãã«ããŠããŸããçºèŠãããåé¡ã¯ãããªããªãŒããŒã ã«ãã峿ã®ä¿®åŸ©ããããã»ãã¥ãªãã£å°éå®¶ã«ããã¬ãã¥ãŒãå¿ èŠãšãªãå Žåãå€ããããŸããAzure DevOpsãšã¹ã ãŒãºã«çµ±åãããäžå åãããããªã¢ãŒãžãšã¬ããŒãæ©èœããµããŒãããããŒã«ã¯ãããªããªãŒããã»ã¹ãæçåããããšãªããããããè·ååé¢ãå®çŸããŸãã
éçåæã¯ããŠãããŒãµã«ã²ãŒãã§ã¯ãªããéå±€åãããé²åŸ¡æŠç¥ã®äžéšãšããŠäœçœ®ä»ããããšã§ãæå€§ã®ã»ãã¥ãªãã£äŸ¡å€ããããããŸããAzure DevOpsã§ã¯ãããã¯ã¹ãã£ã³ã®æ·±åºŠãšé©çšã¿ã€ãã³ã°ãè³ç£ãªã¹ã¯ãããã¡ã€ã«ã«åãããŠèª¿æŽããããšãæå³ããŸããããã«ãããããªããªãŒããŒã ã«é倧ãªè² æ ããããããšãªããã»ãã¥ãªãã£ä¿èšŒã«ãã£ãŠå埩åãé«ããããšãã§ããŸãã
è¿ä»£åèšç»ãšãªãã¡ã¯ã¿ãªã³ã°ãªã¹ã¯ã®è»œæž
éçè§£æã¯ãã¢ããã€ãŒãŒã·ã§ã³ããªãã¡ã¯ã¿ãªã³ã°ã®åãçµã¿ã«ãããèšç»ããŒã«ãšããŠãåªããŠããŸããAzure DevOpsã¯ãã¬ã¬ã·ãŒã³ãŒããæ®µéçãªç§»è¡ã䞊åå®è¡æŠç¥ãå«ãå€§èŠæš¡ãªå€é©ããã°ã©ã ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã«é »ç¹ã«äœ¿çšãããŸãããã®ãããªç¶æ³ã§ã¯ãäž»ãªèª²é¡ã¯æ¬ é¥ã®ç¹å®ã§ã¯ãªãã倿Žãå®å šã«å®è¡ã§ããå Žæãææ¡ããããšã§ãã
éçè§£æã¯ãã¢ããã€ãŒãŒã·ã§ã³ã®ãªã¹ã¯ã«åœ±é¿ãäžããã³ãŒãããŒã¹ã®æ§é ç¹æ§ãæããã«ããããšã§è²¢ç®ããŸããããã«ã¯ãå¯çµåãããã¢ãžã¥ãŒã«ãæ·±ããã¹ããããå¶åŸ¡ãããŒã倿Žã®å€åæ§ãé«ãé åãªã©ãå«ãŸããŸããAzure DevOpsã«çµ±åããããšã§ããã®æŽå¯ã¯ã·ãŒã±ã³ã¹ã®æ±ºå®ã«åœ¹ç«ã¡ãåºç¯ãªãªã°ã¬ãã·ã§ã³ãåŒãèµ·ãããªãã¡ã¯ã¿ãªã³ã°ãåé¿ããã®ã«åœ¹ç«ã¡ãŸãã
ãã®ãŠãŒã¹ã±ãŒã¹ã¯ãã¬ã¬ã·ãŒã³ã³ããŒãã³ããšææ°ã³ã³ããŒãã³ããé·æéå ±åããæ®µéçãªã¢ããã€ãŒãŒã·ã§ã³ã«ãããŠç¹ã«éèŠã§ããéçåæã¯ãæ°ãããµãŒãã¹ãå°å ¥ãããå€ãããžãã¯ãåé¢ãããã§ããå®å®ããå¢çãç¹å®ããã®ã«åœ¹ç«ã¡ãŸããAzure DevOpsãã€ãã©ã€ã³ã¯ãæéã®çµéãšãšãã«ãããã®å¢çã䟵é£ãããã®ãé²ãåæãã§ãã¯ãé©çšããŸãã
ãã®ãããªã·ããªãªã§ã¯ãäŒæ¥ã¯åå¥ã®ã«ãŒã«éåã§ã¯ãªããã·ã¹ãã å šäœã®åé¡ã衚é¢åã§ããããŒã«ãéèŠããŸããç®æšã¯ãããŒã«ã«ã³ãŒãã®å質åäžã ãã§ãªããã¢ãŒããã¯ãã£ã®é²åãå°ãããšã§ããéçè§£æã®åºåã¯ãéçºè ã ãã§ãªããã¢ãŒããã¯ãããã©ãããã©ãŒã ãªãŒããŒã«ãã£ãŠå©çšãããããšãå€ããããŒããããã®æ±ºå®ãæè³ã®åªå é äœã«åœ±é¿ãäžããŸãã
è¿ä»£åã«ãããéçè§£æã®æå¹æ§ã¯ãããåºç¯ãªã·ã¹ãã æ§é ã®äžã§çºèŠäºé ãæèåã§ãããã©ããã«ããã£ãŠããŸããããã¯ã 段éçãªè¿ä»£åæŠç¥äŸåé¢ä¿ã®åœ±é¿ãšå€æŽã®åé¢ãçè§£ããããšãäžå¯æ¬ ãªç¶æ³ã§ãããã®ããã«äœ¿çšããããšã§ãéçè§£æã¯ãªã¹ã¯è»œæžã®ææ®µãšãªããã¢ããã€ãŒãŒã·ã§ã³ã劚ããã®ã§ã¯ãªããå éãããŸãã
çµ±å: Azure ã®éçåæããšã³ã¿ãŒãã©ã€ãºé ä¿¡ã®çŸå®ã«åãããŠèª¿æŽãã
Azure DevOpsã«ãããéçåæã¯ãã³ãŒãå質ãã»ãã¥ãªãã£ã«ãã¬ããžãšãã£ãæœè±¡çãªæŠå¿µã§ã¯ãªãããšã³ã¿ãŒãã©ã€ãºããªããªãŒã®çŸå®ã«å³ããŠå®æœãããå Žåã«ã®ã¿ããã®ç䟡ãçºæ®ããŸããå€§èŠæš¡çµç¹ã«ãããŠãæãæåããŠããããã°ã©ã ã¯ãéçåæããšã³ãžãã¢ãªã³ã°æŽ»åãã¢ãŒããã¯ãã£ãªã¹ã¯ãã¬ããã³ã¹çŸ©åã仲ä»ããå¶åŸ¡é¢ãšããŠæ±ã£ãŠããŸãããããã£ãŠãããŒã«ã®éžæãæ§æããããŠé©çšã¯ãããªããªãŒã®ãã¬ãã·ã£ãŒäžã§åæçµæãå®éã®æææ±ºå®ã«ã©ã圱é¿ãããã«ãã£ãŠæ±ºãŸããŸãã
ãããŸã§ã®ã»ã¯ã·ã§ã³ã§ã¯ãäžè²«ãããã¿ãŒã³ã瀺ãããŠããŸããäŒæ¥ã«ãããå°å ¥ã¯ãããªããªãŒã®èŠæš¡ãèŠå¶ãžã®é²åºãçµç¹ã®è€éããšãã£ãèŠå ã«ãã£ãŠæšé²ãããŸããæŠç¥çãªææã¯ãå顿°ãã®ãã®ããããäºæž¬å¯èœãªã²ãŒãã£ã³ã°ãã¹ã±ãŒã©ãã«ãªåªå é äœä»ãããããŠæ°žç¶çãªèšŒæ ã«éç¹ã眮ãããŸãã圱é¿åã®å€§ãããŠãŒã¹ã±ãŒã¹ã¯ããã«ãªã¯ãšã¹ãã®ãªã¹ã¯ç®¡çãæ©å¯ã·ã¹ãã ã®ã»ãã¥ãªãã£ä¿èšŒããããŠæ§é çãªãªã¹ã¯ã®çè§£ã屿çãªæ¬ é¥ãããéèŠã§ããã¢ããã€ãŒãŒã·ã§ã³èšç»ã«éç¹ã眮ããŠããŸãã
ãã®èгç¹ããèŠããšãåäžã®éçè§£æããŒã«ã§ãã¹ãŠã®èŠä»¶ãæºããããšã¯ã§ããŸãããAzure DevOpsç°å¢ã¯ããã€ãã©ã€ã³ãã€ãã£ãã®é«éãã£ãŒãããã¯ãšããªã¹ã¯ãã³ã¹ããšã¬ã€ãã³ã·ã«èŠåãããã詳现ãªããªã·ãŒã°ã¬ãŒããŸãã¯ã»ãã³ãã£ãã¯è§£æãçµã¿åãããéå±€åã¢ãããŒãã®æ©æµãåããŸããæãå埩åã®é«ãããã°ã©ã ãšã¯ãããŒã«ããŠãŒã¹ã±ãŒã¹ã«æå³çã«ãããã³ã°ãããã€ãã©ã€ã³èšèšãéããŠäžè²«æ§ã確ä¿ããé ä¿¡çµæã«åºã¥ããŠè§£æã·ã°ãã«ãç¶ç¶çã«å調æŽããããã°ã©ã ã§ãã
Azure è³ç£ãæ¡å€§ããã¢ãŒããã¯ãã£ãé²åããã«ã€ããéçåæã¯ãããŒã ãã·ã¹ãã å šäœã«ãããäžè²«ããæææ±ºå®ãæ¯æŽããèœåã«ãã£ãŠè©äŸ¡ãããããã«ãªããŸããéçåæããç¬ç«ããã¹ãã£ã³æé ã§ã¯ãªããããªããªãŒ ã€ã³ãã©ã¹ãã©ã¯ãã£ãšããŠäœçœ®ä»ãããšãã¬ããã³ã¹ã匷åãããæ©æŠã軜æžããããšã³ã¿ãŒãã©ã€ãºèŠæš¡ã§ã®ç¶ç¶çãªããªããªãŒã®ä¿¡é Œæ§ã«çŽæ¥è²¢ç®ããŸãã
