Slide 1

Slide 1 text

೔ຊܦࡁ৽ฉࣾ ക࡚ ༟ར $JSDMF$* ϢʔβʔίϛϡχςΟϛʔτΞοϓ

Slide 2

Slide 2 text

n r . )( iK p A ZUok ,( - W s P EabC DY , ( Mc htSe l OI

Slide 3

Slide 3 text

• I • • • C

Slide 4

Slide 4 text

AWS Elastic Beanstalk AWS Lambda S3 push, merge ໿300ϦϙδτϦ͕ CircleCIΛར༻ • Unit test • Deploy • E2E test

Slide 5

Slide 5 text

AWS Elastic Beanstalk ECR push, merge • Unit test • Deploy • E2E test Docker image Production Standby StandbyʹσϓϩΠ͠ E2E͕௨ͬͨΒSwap ໿300ϦϙδτϦ͕ CircleCIΛར༻

Slide 6

Slide 6 text

Slide 7

Slide 7 text

) ( (

Slide 8

Slide 8 text

) (

Slide 9

Slide 9 text

) ( AWS Elastic Beanstalk ECR 1. Spin up 10s 3. Setup remote docker 7s 4. Restore Docker cache 10s 5. Docker build 10s, 150s Production Standby 2. checkout 1s 6. Push Docker image 20~60s 7. Deploy 60s 8. E2E 60s 9. SWAP 8s ॲཧ࣌ؒ͸ҰྫͰ͢

Slide 10

Slide 10 text

• • ։ൃऀͷ࣌ؒΛୣ͏ • ςετ͕མͪͨͱ͖ͷଛࣦײ͕૿͑Δʢࣗ෼ௐ΂ʣ • • ͙͢ϦϦʔε͍ͨ͠ͷʹͰ͖ͳ͍ • • CircleCIʹ͓͕͔͔ۚΔ

Slide 11

Slide 11 text

Slide 12

Slide 12 text

• • • •

Slide 13

Slide 13 text

• • executor imageʹssh, git͸ؚ·Ε͍ͯ·͔͢ʁ • Fallback࣌͸checkout͕େ෯ʹ஗͘ͳͬͨࣄྫ͋Γ

Slide 14

Slide 14 text

• . • OrbsΛ࢖͏ͱ؆୯ • 5GB(head͸1GB)ϦϙδτϦͰ90s -> 60s • . • ٯޮՌͷέʔε΋! • ↓5GBͷϦϙδτϦྫ • Cacheͳ͠ • Checkout code: 70-100ඵ • Cache͋Γ • Restoring cache: 73ඵ • Checkout code: 16ඵ • Saving cache: 139ඵ

Slide 15

Slide 15 text

• • )$! ( • )&"# '% *+

Slide 16

Slide 16 text

Slide 17

Slide 17 text

, ) ( 1 •

Slide 18

Slide 18 text

• ! • • • Dockerfile಺Ͱ `COPY . /usr/src/app` ͍ͯ͠Δ৔߹͸ .dockerignore Λ༻ҙ • deploy_env/ .git/ .circleci/ ͳͲΞϓϦ࣮ߦʹෆཁͳϑΝΠϧؚ͕·Εͯͳ͍͔

Slide 19

Slide 19 text

, ) (2 R I 1) ) 3 ) - ( . 3 D.1) I • (pull, cache-from) &3 ) ) -.2 • CircleCIʹ࿈བྷͯ͠༗ྉΦϓγϣϯΛ༗ޮʹ

Slide 20

Slide 20 text

& • 8 : B • 2 1 +, 4 , +5

Slide 21

Slide 21 text

• (1 ) (1 - ) • 1 , 0 2 : 5

Slide 22

Slide 22 text

• • C I • !

Slide 23

Slide 23 text

• - + .1 0 + • L O C 9 OK EI RI • U_ aTRI • B 8 B R D

Slide 24

Slide 24 text

• C I • 5෼Ҏ಺͙Β͍͕໨ඪ • • ֬ೝ͠ͳ͕ΒೖΕ·͠ΐ͏ •

Slide 25

Slide 25 text