誰ãæããªã¢ããªã±ãŒã·ã§ã³éçºããã»ã¹ãæãã§ããŸãããããã¯ã©ãããæå³ã§ãã?è骚ã¯ã人äœã®ç¥çµãã£ãã«ãæ¯ããæäŸããè骚ã§ããããããªããã°ãç§ãã¡ã¯ã ãã ããšåŒ±ããªããèªåã®åè¢ãã©ã®ããã«æ¯ãèã£ãŠããã®ããçè§£ããã®ã«èŠåŽããã§ããããå°ãé£è§£ãªäŸãã§ãããå¹³åçãªãœãããŠã§ã¢ãããžã§ã¯ãã®ã¢ããªã±ãŒã·ã§ã³ã©ã€ããµã€ã¯ã«ãèããŠã¿ãŠãã ãããåŸæ¥ã®èª²é¡ã¯ããããã©ã®ããã«è骚ã«ããããšããããšã§ãããããããæ®µéã§éçºè ããµããŒãããããã¯ããŒã³ãšãæ å ±ãããåãããããã®ç¥çµãã£ãã«ãã©ã®ããã«æäŸã§ããã§ãããããããã«ãããã¢ãŒããã¯ãã£ã®æ§ç¯ã匷åºã«ããææ°ã®ã¢ããªã±ãŒã·ã§ã³ã«å¿ èŠãªãã¹ãŠã®ããã»ã¹ãèªååãŸãã¯ç°¡çŽ åã§ããã§ããããã
Docker Compose ã¯ãç¹ã«ãã®è骚ãšãªãããã«æ§ç¯ãããããŒã«ã«éçºã®éå§ãããã¹ãããããŠã¢ããªã±ãŒã·ã§ã³ãéçã§å®è¡ãããå®éã®ãŠãŒã¶ãŒãšå¯Ÿè©±ããæçµçãªãããã€ãšã¡ã³ããã³ã¹ã«è³ããŸã§ãã¢ããªã±ãŒã·ã§ã³ã®åºç€ãæäŸããŸããDocker Compose Bridge ã«ãããDocker Compose ã¯å®å
šãªã¢ããªã±ãŒã·ã§ã³ ã©ã€ããµã€ã¯ã«ç®¡çã®æåŸã®ã®ã£ãããåããŸãããCompose Bridge ã䜿çšãããšãããŒã 㯠1 ã€ã® Compose ãã¡ã€ã«ã䜿çšããŠãåæã³ãŒããšéçºã»ããã¢ãããã Kubernetes ããã®ä»ã®ã³ã³ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ã·ã¹ãã ã§ã®æ¬çªç°å¢ãžã®ãããã€ãŸã§ããã«ãã³ã³ãããå€å±€ã¢ããªã±ãŒã·ã§ã³ãå©çšã§ããããã«ãªããŸãããÂ
ããã©ãŒã¢ãã¿ãŒ:Docker Composeãã¹ãã€ã³ã远å ããAppDevãç°¡çŽ åããæ¹æ³
ã§ã¯ãããã¯å®éã«ã¯äœãæå³ããã®ã§ãããã?Docker Composeã®è骚ãã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ããã»ã¹ãã©ã®ããã«æ¹åãããã«ã€ããŠããåããšãåŸãã®èŠç¹ãèŠãŠã¿ãŸãããã顧客åãã® SaaS ã¢ããªã±ãŒã·ã§ã³ãã€ãŸãåŸæ¥ã® 3 å±€ã»ããã¢ãããæ§ç¯ããŠãããšæ³åããŠã¿ãŠãã ããã
- Go API ã¯ããŠãŒã¶ãŒã¢ã«ãŠã³ããæ¯æããäžæ£é²æ¢ãã§ãã¯ãåŠçããŸã
- PostgreSQL + Redis ã®æ°žç¶æ§ãšãã£ãã·ã³ã°
- ã客æ§ããã°ã€ã³ããŠæäœãã TypeScript/React UI
Kubernetes ã«ãããã€ããã®ã¯ãå埩æ§ãç§»æ€æ§ãæè»æ§ãæ±ããŠããããã§ããã¯ã©ãŠãå ã®è€æ°ã®ãªãŒãžã§ã³ã«ãããã€ããŠãäœé å»¶ãšé«å¯çšæ§ãå®çŸããŸããDocker Compose + Compose Bridge ãæ¡çšãã å ãš åŸã® ã©ã€ããµã€ã¯ã«ãèŠãŠãããŸãããã
以å:ããŒã«ã«éçºã¯ãç§ã®ãã·ã³ã§åäœãããçŸç¶ç¶æ
ã¹ã¯ãªãããš docker run ã䜿çšããŠè€æ°ã®ã³ã³ãããã¹ãã³ã¢ããããããšã¯ããããžã§ã¯ãã«åãçµãã§ããã®ãããªãã ãã®å Žåã¯åé¡ãªãããã«æãããããããŸããã以äžã®ãããªç°¡åãªBashã¹ããããã§ããããã¯ãŒã¯ãäœæããPostgresãRedisãGoããã¯ãšã³ãã2ã€ã®ãµããŒããµãŒãã¹ãReact UIãèµ·åããŸãã
docker network create saas-net
docker run -d --name postgres --network saas-net \
-e POSTGRES_PASSWORD=secret postgres:16
docker run -d --name redis --network saas-net redis:7
docker run -d --name go-api --network saas-net \
-e DB_URL=postgres://postgres:secret@postgres/saasdb \
-p 8080:8080 go-saas-api:latest
docker run -d --name payments --network saas-net payments-stub:1.2
docker run -d --name fraud --network saas-net anti-fraud:latest
docker run -d --name saas-ui --network saas-net \
-p 3000:3000 saas-ui:latest
åé¡ã¯ã2 çªç®ã®éçºè ãŸãã¯å¥ã®ç°å¢ã远å ããããã¢ããªã±ãŒã·ã§ã³ã®èŠä»¶ãç°ãªãããŒã ãšãã®ã¹ã¯ãªãããå ±æããããšããç¬éã«å§ãŸããŸãããã¹ãŠã®ããªãšãŒã·ã§ã³ (ããŒã«ã« ãã«ããš CIãARM ã©ããããããš x86 ãã¹ã¯ããããæ©èœãã©ã³ããšã¡ã€ã³) ã«ã¯ãå¥ã®ãã³ãããŒã« ã¹ã¯ãªãããšå¥ã® README diff ãå¿ èŠã§ãã1ã€ã®æŽç¶ãšãããã¡ã€ã«ãšããŠå§ãŸã£ããã®ã¯ãããã«ã»ãŒåãç ²åŒŸã®ç Žçã®å±±ã«å€ãããåããŒã ã¯ãããåæãããªããã°ãªããŸãããã€ã¡ãŒãžã¿ã°ã®æŽæ°ãç°å¢å€æ°ã®ååã®å€æŽãããªã¥ãŒã ã®å¿ããªã©ãã¡ãã£ãšããããªãããããã«éªã ããŸåŒã«èšããããšããããŸããããã¯ããªãèªåã«ãšã£ãŠå®è¡ãããªãã®ãããšããåé¡ã§ãããµããŒã ãã±ããã
ããã«æªãããšã«ããããã®ã¹ã¯ãªããã¯ããªãŒããŒã¬ã€ ãããã¯ãŒã¯ã®ç®¡çãããªã¥ãŒã ã®æ°žç¶åãã·ãŒã¯ã¬ããã®é
ç·ãã²ãŒããŠã§ã€ãä»ãããã©ãã£ãã¯ã®ãããã·ããªãã¶ãŒãããªãã£ã®åŒ·åãªã©ããã©ãããã©ãŒã ãšã³ãžãã¢ãªã³ã°ã«å±ããã¿ã¹ã¯ãã¢ããªã±ãŒã·ã§ã³éçºè
ã«æŒãæ»ããŸãããã¡ããã docker network createã docker volume createãWAFãAPMãè匱æ§ã¹ãã£ã³ã®ããã®ã³ãã¥ããã£ããŒã«ãæ£ãã°ããããšãã§ããŸããããããä»ã§ã¯ Docker ãªãœãŒã¹ã«å ããŠãBashãMakefileããŸã㯠Python ãä¿å®ããŠããŸãã(ãããŠãããªããæ°çŸäžãã«ã®AIå¥çŽã®ããã«å»ã£ãå Žåãããªãã®ããŒã ã¯ãã¹ãã²ããã£ã¹ã¯ãªãããã©ã®ããã«æ©èœããããã€ãªãåãããªãããä»ã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã§ããªããšäºåºŠãšååããªããšèªãããšã«ãªããŸãã
åŸ:ãŠãããŒãµã«ããŒã«ã«ç°å¢ã®ããã®1ã€ã®ã©ã€ã³
Docker Compose ãã¡ã€ã«ã¯ããã®ãã¹ãŠã®ã¹ãããŒã«ã 1 ã€ã®å®£èšåã¢ãŒãã£ãã¡ã¯ãã«éçŽããã³ãŒãã®ãããã°ã«çœ®ããŸãããããã¯ãŒã¯ãããªã¥ãŒã ãã·ãŒã¯ã¬ããããµãŒãã¹å®çŸ©ã¯ 1 ã€ã® YAML å ã«ããããªããžããªã®ä»ã®éšåãšããŒãžã§ã³ç®¡çãããŠãããæ°ããã©ããããããCI ã©ã³ããŒãæ¬çªç°å¢ã®ã¹ããŒãžã³ã° ããã¯ã¹ãªã©ããã¹ãŠã®ç°å¢ã¯ãŸã£ããåãæ¹æ³ã§éå§ãããŸãã
ããã«ãŒäœæ
远å ã®ã¹ã¯ãªããèšèªãåŠç¿ããããéè€ããã»ããã¢ããã¹ã¯ãªããã远跡ãããããã©ã°ããªããªã£ããšãã«è²¬ä»»ããªããã€ãããããå¿
èŠããããŸããã1ã€ã®ãã¡ã€ã«ã1ã€ã®ã³ãã³ãã§ããç§ã®ãã·ã³ã§åäœããããšããé©ãã¯ãŒãã§ããåå¥ã«ã»ããã¢ããããªããã°ãªããªãã£ãè€æ°ã®ã³ã³ãããèŠããŠããŸãã?ããã§ãDocker Composeã®ãSpineãã¯ã1ã€ã®ã³ãã³ããš1ã€ã®ãã¡ã€ã«(compose.yaml)ã§ããããã¹ãŠãèªåçã«èšå®ããããã®ã¡ãã»ãŒãžãšæ§é ãéã³ãŸã
çµæã®YAMLã¯ãã»ããã¢ããå šäœ(ããŒã¿ããŒã¹ããã£ãã·ã¥ãAPIãUI / UX)ããã«ããŠã³ããŠèªã¿åãå¯èœãªåœ¢åŒã§ãªã¹ãããŸãããããã¯ãã¹ãŠãã»ãã¥ãªãã£ãå¯èŠ³æž¬æ§ãããã³ãã®ä»ã®å¿ èŠãªãµãŒãã¹ãæ¢ã«é 眮ãããŠããå ±æãããã¯ãŒã¯äžã«ãããŸããããã«ãããæéãç¯çŽãããäžè²«æ§ã確ä¿ãããã ãã§ãªããã»ãã¥ãªãã£ãå€§å¹ ã«åäžããŸã( Verizon 2025 DBIR Reportã«ãããšãæåèšå®ãšã©ãŒã¯äŸç¶ãšããŠã»ãã¥ãªãã£äŸµå®³ã®äž»ãªåå ã®1ã€ã§ã)ãããã«ããããã¹ãŠã®ããŠã³ããšããŒããæšæºåãããã·ãŒã¯ã¬ãããåäžã«æ±ãããããã«ãªããŸããã³ã³ãã©ã€ã¢ã³ã¹ãšã¢ãŒãã£ãã¡ã¯ãã®åºæã«ã€ããŠã¯ããã¹ãŠã®ç£æ»ãã°ãããŒã«ã«ã®ã³ã³ãã©ã€ã¢ã³ã¹ãã§ãã¯ã®ããã«èªåçã«ããŠã³ããããŸããÂ
ãŸããCompose ã䜿çšãããšããããã° ãµãŒãã¹ã®èšå®ã«ã€ããŠèããããªãããããããŒã«ãšã£ãŠãããŒã«ã«ã§ã®ã¢ããªã®ãããã°ãšåŒ·åã容æã«ãªããŸããCompose ã䜿çšãããšãããããã㌠ããŒã ããã©ãããã©ãŒã ããŒã ã¯ã倿°ã®ãããã° ãµãŒãã¹(ã¡ããªã¯ã¹çšã® Prometheusã忣ãã¬ãŒã¹çšã® OpenTelemetryãããã·ã¥ããŒãçšã® Grafanaããã¡ã€ã¢ãŠã©ãŒã« ã«ãŒã«çšã® ModeSec)ãåŒã³åºã debug ãããã¡ã€ã«ã远å ã§ããŸããããã¯èšã£ãŠããKubernetes ã®éçšã¢ããªã«ãããã° ãµãŒãã¹ã远å ããããšã¯æãŸãããããŸãããÂ
ããã§ç»å Žããã®ã Compose Bridge ã§ããDocker Compose ã«æ°ãã«è¿œå ããããã®è£œåã¯ããã¹ãŠã®ãµãŒãã¹ã«ç°å¢æèãçµã¿èŸŒã¿ãæ¬çªç°å¢ã«ãããã€ãã¹ãã§ãªããµãŒãã¹ãåé€ããæ¬çªç°å¢ããŒã ã«ã¯ãªãŒã³ãª Helm Chart ãŸã㯠YAML ãããã§ã¹ããæäŸããŸãããã®ãããã¢ããªã±ãŒã·ã§ã³éçºè ã¯ãã³ãŒãããã§ã³ã¹ãè¶ããŠã¹ããŒããåã«ããµãŒãã¹åŒã³åºãã®é€å»ã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸãããããåºç¯ã«ã¯ãCompose Bridge ã¯ä»¥äžã匷å¶ããŸããÂ
- ã¯ãªãŒã³ãªåé¢ â æ¬çªç°å¢ã®YAMLã¯ç¡é§ã®ãªããŸãŸã§ããããã°ã³ã³ããã远å ã®ãªãœãŒã¹å®çŸ©ãæ®ãããšã¯ãããŸããã
- æ¡ä»¶ä»ãã€ã³ã¯ã«ãŒãžã§ã³ â Bridgeã¯
profiles:èšå®ãèªã¿åããèŠæ±ãããå Žåã«ã®ã¿é©åãªã©ãã«ã泚éããµã€ãã«ãŒãæ¿å ¥ããŸãã - äžè²«æ§ã®ãããã³ãã¬ãŒã â Bridge ã¯çææã«ãããã¡ã€ã«ããžãã¯ãåŠçããããããã¹ãŠã®ããŠã³ã¹ããªãŒã ãããã§ã¹ãã¯ã¹ããŒãžããã³ç°å¢åºæã®ããªã·ãŒãšåœåèŠåã«æºæ ããŸãÂ
ãã®çµæã¯?ãã©ãããã©ãŒã éçšããŒã ã¯ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³éçºããŒã ããšã«ç°ãªã Docker Compose ãã³ãã¬ãŒããç¶æã§ãããããå šå¡ã確ç«ããããã¹ã«çãŸããªãããå¿ èŠã«å¿ããŠã«ã¹ã¿ãã€ãºãæäŸã§ããŸããã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ããŒã ã¯ãæšæºåãããYAMLãã¡ã€ã«ãç°¡åã«ç¢ºèªãŸãã¯ã¹ãã£ã³ããŠãèšå®æ€èšŒãã·ãŒã¯ã¬ããåŠçãããã³ã¢ã¯ã»ã¹ãããµãŒãã¹å šäœã®ããªã·ãŒéµå®ãç°¡çŽ åã§ããŸãã
倿Žå:CIãšãã¹ããã¹ã¯ãªããã®ç¡ç§©åºãªå¢å ãšè€éãã«ã€ãªãã
ã¢ããªã±ãŒã·ã§ã³éçºè
ã¯ãã³ãŒãã DevOps ããŒã ã«æž¡ããŸã (ãŸãã¯ãCI/CD ã¬ã³ãã¬ãã ããŒããå®è¡ããåã³ãå³ãããŸã)ãéåžžãããŒã ã¯CIããŒã«(JenkinsãGitLab CIãGitHub Actionsãªã©)ãæ¥ç¶ããŠãã·ã§ã«ããŒã¹ã®ã¯ãŒã¯ãããŒãå®è¡ããŸãããµãŒãã¹ã®åå倿ŽãäŸåé¢ä¿ã®è¿œå ãããŒãã®èª¿æŽãæ°ãããµãŒãã¹ã®è¿œå ãªã©ãã¢ããªã±ãŒã·ã§ã³ã«å¯Ÿãã倿Žã¯ããããã®ã¹ã¯ãªãããç·šéããããã¹ã¯ãªãããåŒã³åºããã¹ãŠã® CI ã¹ããããç·šéããããšãæå³ããŸããçè«çã«ã¯ãGitOps ã¯ãã®å€ããèªååããããšãæå³ããŸããå®éã«ã¯ãè€éãã¯èãåãããŠãããã·ã¹ãã ã¯è¯ããæªããèæ€ã«æ²¿ã£ãç¥çµç³»ãæ¬ ããŠããŸãããã®çµæã¯?ãã«ããå£ãããã¹ãã倱æããæ°ããããŒãžã§ã³ãèµ·åããŠæ°ããã³ãŒããçµã¿èŸŒãæéãé·ããªããŸããéçºè
ã¯ãããŒã«ã«ç°å¢ãã¹ãã§ãã¹ãŠãç·è²ã§ç€ºãããŠããŠããCI/CDã§äœããå£ããå¯èœæ§ãååã«ããããšãç¥ã£ãŠãããããã³ãŒããããéããªãªãŒã¹ããããšãæ¬è³ªçã«æšå¥šããŸãããããã«ããã圌ãã¯äžå¿«ãªãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®è©Šç·Žã«éåœã¥ããããŸããèæ€ã«æ²¿ã£ãŠæ
å ±ãå
±æããå¿
èŠãªå€æŽãç°¡åã«äŒéããããã®ç¥çµç³»ããªããã°ãã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ã¯ããæ··æ²ãšããå®å
šæ§ãšå¹çãäœäžããŸããÂ
倿ŽåŸ:CIãšãã¹ãã®å®è¡ãé«éãã¹ã ãŒãºãå®å šã«å®è¡
Docker Composeãã¢ããªã±ãŒã·ã§ã³éçºã®è骚ãšããŠæ¡çšãããšãCI/CDãã€ãã©ã€ã³ã¯ãããŒã«ã«ã§å®è¡ãããã®ãæ£ç¢ºã«åæ ããç°¡æœã§ä¿¡é Œæ§ã®é«ãã·ãŒã±ã³ã¹ã«ãªããŸãããªããžããªã« 1 ã€ã® compose.yaml ããã§ãã¯ã€ã³ãããšãCI ãã€ãã©ã€ã³ã¯ãéçºè
ãããŒã«ã«ã§å®è¡ããã®ãšãŸã£ããåããã«ããµãŒãã¹ ã¹ã¿ãã¯ãããŒãã¹ãã©ããã§ããŸããDocker Compose ã¯ããããã¯ãŒã¯ãé
ç·ããããªã¥ãŒã ãšã·ãŒã¯ã¬ãããããããžã§ãã³ã°ããäŸåé¢ä¿ã®é åºã§ãµãŒãã¹ãéå§ããŸããcondition: service_healthy ã« depends_onã远å ãããšãååææ¡ä»¶ãæ£åžžã§ãããšå ±åããããŸã§åŸ
æ©ããŠãããæ¬¡ã®åææ¡ä»¶ããªãªãŒã¹ãããŸãããã¹ããã§ãŒãºã§ã¯ãã³ãŒãã¯å®è¡äžã®ãµãŒãã¹ãšå¯Ÿè©±ããããTestcontainersãä»ããŠè¿œå ã®äœ¿ãæšãŠãªãœãŒã¹ãèµ·åãããããŠããã¹ãŠã®ãã¹ãã±ãŒã¹ã«ç¬èªã®ã¯ãªãŒã³ãªããŒã¿ããŒã¹ããã¥ãŒããŸãã¯ãµãŒãããŒãã£ã®ã¢ãã¯ãæäŸã§ããŸãããã¹ããçµäºãããšãCompose ã¯ã¹ã¿ãã¯ãç Žæ£ããŸãããŸããååä»ãããªã¥ãŒã ãåé€ãããTestcontainers ã¯äœæããã³ã³ãããèªåçã«ã¯ãªãŒã³ã¢ããããŸãããã®çµæãã©ããããããã CI ãŸã§äžè²«ããç°å¢ãããé«éãªãã£ãŒããã㯠ãµã€ã¯ã«ãæå調æŽãã»ãšãã©ãŸãã¯ãŸã£ããå¿
èŠãªã¹ããŒãžã³ã°ãŸãã¯æ¬çªç°å¢ãžã®ããã¢ãŒã·ã§ã³ ãã¹ãå®çŸããŸãã
Kubernetes ãŸã㯠Helm ãã³ãã¬ãŒãã䜿çšããŠãçµç¹ã® Kubernetes ãããã€ã®ãã¹ã ãã©ã¯ãã£ã¹ã«äžèŽããç¬èªã®ãã©ã³ã¹ãã©ãŒã㌠ã€ã¡ãŒãžãæ
éã«äœæããã°ãCompose Bridge ã¯ãã®å¹çãããã«é«ããã»ãã¥ãªãã£ã匷åããŸãããã¹ãã®å®è¡åŸãBridge 㯠Docker Compose YAML file ã Kubernetes ãããã§ã¹ããŸã㯠Helm ãã£ãŒãã«èªåçã«å€æãããããã¡ã€ã«ãšãªãŒããŒã¬ã€ã«åºã¥ããŠãããã¯ãŒã¯ ããªã·ãŒãã»ãã¥ãªã㣠ã³ã³ããã¹ããã©ã³ã¿ã€ã ä¿è·ãµã€ãã«ãŒãç£æ»ãã° ããŠã³ããæ¿å
¥ããŸããã³ã³ãã©ã¯ããã¹ããããªã·ãŒæ€èšŒãè匱æ§ã¹ãã£ããŒã«ãã€ã¯ããããã«ãåå¥ã®ã¹ã¯ãªãããæåç·šéãè¡ãå¿
èŠã¯ãããŸãããCI ãžã§ãã¯ãçæãããã¢ãŒãã£ãã¡ã¯ãã GitOps ãªããžããªã«çŽæ¥ã³ããããããã¹ãŠã®ç°å¢ã§ããªã·ãŒãé©çšããèªåããŒã«ã¢ãŠããããªã¬ãŒã§ããŸãããã®çµ±äžããããããŒã«ãããåé·ãªæ§æãæé€ãããããªããã鲿¢ããã人çºçãšã©ãŒãæé€ããããããCI/CD ã¯è匱ãªã·ãŒã±ã³ã¹ãã 1 ã€ã®äžè²«ãããã€ãã©ã€ã³ã«å€ãããŸãã
以å:ãããã¯ã·ã§ã³ãšããŒã«ããã¯ã¯ãããããŒã§ããããŠããÂ
ã¢ããªã±ãŒã·ã§ã³ã CI ãé¢ããŠæ¬çªç°å¢ã«ç§»è¡ãããšããã£ãããšããã¹ãã€ã³ããªãããšãçãã»ã©æããã«ãªããŸãããã©ãããã©ãŒã ããŒã ã¯ãHelmãã£ãŒãããããã¯ãŒã¯ã»ã°ã¡ã³ããŒã·ã§ã³ã®æªå å·¥ãããã§ã¹ãããããã»ãã¥ãªãã£ãèªåã¹ã±ãŒãªã³ã°ãã€ã³ã°ã¬ã¹ã«ãŒã«ãAPIã²ãŒããŠã§ã€èšå®ããã®ã³ã°ãšãŒãžã§ã³ããããªã·ãŒãšã³ãã©ãŒãµãŒãªã©ãè€æ°ã®ãã¡ã€ã«ã®éã¿ãèè² ãå¿
èŠããããŸããããããã®å€åã¯æ³¢çŽãåºããç¥çµãä¿¡å·ãç¹å®ã®ã¯ã©ã¹ã¿ãŒã«éã¶åã«ã3ã€ä»¥äžã®å Žæã§æåç·šéãå¿
èŠã«ãªããŸãããã¹ãŠãæŽåãããããã®äžå€®ã®ããã¯ããŒã³ã¯ãããŸããããµãŒãã¹ ã€ã¡ãŒãžãŸãã¯ç°å¢å€æ°ãç°¡åã«æŽæ°ããã ãã§ã values.yaml ã§ã³ããŒãšè²Œãä»ãã®æŽæ°ã®ã«ã¹ã±ãŒããäœæãããŸãããã³ãã¬ãŒããããããããã³ããã¥ã¡ã³ããäœãã倱æããå Žåããããã€ã¯åŽ©å£ããé害ã®åå ãèŠã€ããããã«æåã¬ãã¥ãŒãéå§ããŸããããŒã«ããã¯ããã«ã¯ãã³ãããã«äžèŽãããã£ãŒãã®ãªããžã§ã³ãšãæåã§ helm rollbackãçºè¡ããå¿
èŠããããŸããæç¢ºãªããŒã«ããã¯ä¿¡å·ãäŒéããç¥çµç³»ããªããã°ãå屿ã¯ã©ã¹ã¿ãŒã¯ç¬èªã®å€ç«ããã»ã°ã¡ã³ãã«ãªããŸããCanaryãšBlue-Greenã®ãªãªãŒã¹ã«ã¯ãå¥ã
ã®ç¹æ³šã®ããã¯ãŸãã¯è¿œå ã®Argo CDã¢ããªã±ãŒã·ã§ã³ãå¿
èŠã§ããããããããæ°ãããããå¯ããŠããŸãããã®ãããããŒã§èŠæãªã¢ãããŒãã«ãããçç£ã©ã€ããµã€ã¯ã«ã¯è匱ã«ãªããéä¿¡ã¯é
ããªãã人çºçãšã©ãŒã®ãªã¹ã¯ãé«ããªããŸããã¢ããªã±ãŒã·ã§ã³ããµããŒãããå®å®ãããã¯ãã®ããã»ã¹ããæ©æŠãäžç¢ºå®æ§ã®åå ãšãªãããšã³ãžãã¢ãªã³ã°ããŒã ãšéçšããŒã ã®äž¡æ¹ã®ä¿¡é ŒãæãªããŸãã
倿ŽåŸ:ãããã¯ã·ã§ã³ãšããŒã«ããã¯ã¯å å®ã§ã
Docker Compose Bridge ãã¢ããªã±ãŒã·ã§ã³ã®èé«ãšããŠæ©èœãããããæ¬çªç°å¢ãšããŒã«ããã¯éšéã¯ããããŸã§æ¬ ããŠãããµããŒããšå¹ççãªã³ãã¥ãã±ãŒã·ã§ã³ãå©çšã§ããŸãã1 ã€ã® compose.yaml ãã¡ã€ã«ãããã¹ãŠã®ãµãŒãã¹å®çŸ©ãç°å¢å€æ°ãããªã¥ãŒã ããŠã³ããããã³ã³ã³ãã©ã€ã¢ã³ã¹ã«ãŒã«ãæŽåããŠä¿æããèæ±ã«ãªããŸããdocker compose bridge generateãåŒã³åºããšãBridgeã¯ãã®ããã¯ããŒã³ãã¯ãªãŒã³ãªKubernetesãããã§ã¹ããŸãã¯Helmãã£ãŒãã«å€æãããããã¯ãŒã¯ããªã·ãŒããããã»ãã¥ãªãã£ã³ã³ããã¹ããã©ã³ã¿ã€ã ä¿è·ãµã€ãã«ãŒãã¹ã±ãŒãªã³ã°ã«ãŒã«ãç£æ»ãã°ããŠã³ããèªåçã«ç¹ã蟌ã¿ãŸãããã³ãã¬ãŒããåå¥ã«ç·šéããå¿
èŠã¯ãããŸãããCompose ãã¡ã€ã«ã«å ãããã倿Žã¯ãçæããããã¹ãŠã®ã¢ãŒãã£ãã¡ã¯ãã«ãªã¢ã«ã¿ã€ã ã§åæ ãããŸãããããã€ã¯ãæŽæ°ããã Compose ãã¡ã€ã«ã GitOps ãªããžããªã«ã³ãããããã®ãšåããããç°¡åã§ãããã®åŸãArgo CDãŸãã¯Fluxã¯æ¡åŒµç¥çµç³»ãšããŠæ©èœããäžè²«ããããªã·ãŒåŒ·å¶çãªæ¹æ³ã§ãã¹ãŠã®å°åã¯ã©ã¹ã¿ãŒã«ããŒã«ã¢ãŠãä¿¡å·ãäŒéããŸããã³ãŒã¹ãéã«ããå¿
èŠãããå ŽåãCompose ãã¡ã€ã«ã®å
ã«æ»ããšåå°åŒ§ã®ããã«æ©èœããŸã: Bridge ã¯ä»¥åã®ãããã§ã¹ããåçæããGitOps ã¯æåã®ä»å
¥ãªãã«åã¯ã©ã¹ã¿ãŒã以åã®ç¶æ
ã«æ»ããŸããCanary æŠç¥ãš Blue-Green æŠç¥ã¯ãCompose ãããã¡ã€ã«ãš Bridge ãªãŒããŒã¬ã€ãéããŠãã®ãã¬ãŒã ã¯ãŒã¯ã«èªç¶ã«é©åããã¢ããã㯠ããã¯ã®å¿
èŠæ§ãæé€ããŸããæ¬çªç°å¢ã®ãã€ãã©ã€ã³ã¯ããã¯ãã¹ã¯ãªããããã³ãã¬ãŒãã®ç·©ãããªãã³ãã«ã§ã¯ãªããæé·ããµããŒãããè¿
éãªãã£ãŒãããã¯ãæäŸãããã¹ãŠã®ç°å¢ã§å®å
šã§ä¿¡é Œæ§ã®é«ããªãªãŒã¹ãä¿èšŒãããçµ±äžãããå埩åã®ããã¹ãã€ã³ã§ãã
ã©ã€ããµã€ã¯ã«å šäœã«å¯Ÿå¿ããå®å šã«æ§æãããèæ€
èŠçŽãããšãDocker Compose ãš Compose Bridge ã¯ãããŒã«ã«éçºãã CI/CDãã»ãã¥ãªãã£æ€èšŒããã«ããªãŒãžã§ã³ Kubernetes ã®ããŒã«ã¢ãŠããŸã§ãã¢ããªã±ãŒã·ã§ã³ã«ç¶ç¶çãªã¹ãã€ã³ãæäŸããŸãããã¹ãŠã®ãµãŒãã¹ãããªã·ãŒããããã¡ã€ã«ã Compose ãã¡ã€ã«ã§äžåºŠå®çŸ©ãããšãBridge ã¯ããããã¯ãŒã¯ ããªã·ãŒãã»ãã¥ãªã㣠ã³ã³ããã¹ãããã¬ã¡ããªãããŒã¿ããŒã¹ãAPIãç£æ»ãã°ã®ããŠã³ãããã§ã«å«ãŸããŠããæ¬çªç°å¢ã«å¯Ÿå¿ãããããã§ã¹ããçæããŸããèªååãããGitOpsã®ããŒã«ã¢ãŠããšã·ã³ã°ã«ã³ãããã®ããŒã«ããã¯ã«ããããããã€ã®ä¿¡é Œæ§ãšç£æ»æ§ãè¿
éåãå®çŸããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³éçºè
ã¯é
管ã§ã¯ãªãæ©èœã«éäžããAppSecã«äžè²«ããããªã·ãŒãé©çšããSecOpsãæšæºåãããç£æ»èšŒè·¡ãç¶æã§ããããã«ããPlatformOpsãéçšãç°¡çŽ åããããžãã¹ã®ãªã¹ã¯ã軜æžããŠåžå Žæå
¥ãŸã§ã®æéãççž®ããã®ã«åœ¹ç«ã¡ãŸãã
ãã€ãã©ã€ã³ãåçåããã»ãã¥ãªãã£ã匷åããæºåã¯ã§ããŠããŸãã?次ã®ãããžã§ã¯ãã§ã¯ãCompose ã§ã¹ã¿ãã¯ãå®çŸ©ããBridge ã远å ããŠãããã§ã¹ãã®çæãš GitOps ã®ããŒã«ã¢ãŠããèªååããããšã§ã詊ããŠã¿ãŠãã ããã