ຊܦࡁ৽ฉࣾ ക࡚ ༟ར$JSDMF$* ϢʔβʔίϛϡχςΟϛʔτΞοϓ
View Slide
n r . )(iK pA ZUok,(- W sP EabC DY,( Mc htSe l OI
• I••• C
AWS Elastic BeanstalkAWS LambdaS3push,merge300ϦϙδτϦ͕CircleCIΛར༻• Unit test• Deploy• E2E test
AWS Elastic BeanstalkECRpush,merge• Unit test• Deploy• E2E testDocker imageProductionStandbyStandbyʹσϓϩΠ͠E2E͕௨ͬͨΒSwap300ϦϙδτϦ͕CircleCIΛར༻
) ( (
) (
) (AWS Elastic BeanstalkECR1. Spin up 10s3. Setup remote docker 7s4. Restore Docker cache 10s5. Docker build 10s, 150sProductionStandby2. checkout 1s6. Push Docker image20~60s7. Deploy 60s8. E2E 60s9. SWAP 8sॲཧ࣌ؒҰྫͰ͢
• • ։ൃऀͷ࣌ؒΛୣ͏• ςετ͕མͪͨͱ͖ͷଛࣦײ͕૿͑Δʢࣗௐʣ• • ͙͢ϦϦʔε͍ͨ͠ͷʹͰ͖ͳ͍• • CircleCIʹ͓͕͔͔ۚΔ
•
••••
• • executor imageʹssh, gitؚ·Ε͍ͯ·͔͢ʁ• Fallback࣌checkout͕େ෯ʹ͘ͳͬͨࣄྫ͋Γ
• .• OrbsΛ͏ͱ؆୯• 5GB(head1GB)ϦϙδτϦͰ90s -> 60s• .• ٯޮՌͷέʔε!• ↓5GBͷϦϙδτϦྫ• Cacheͳ͠• Checkout code: 70-100ඵ• Cache͋Γ• Restoring cache: 73ඵ• Checkout code: 16ඵ• Saving cache: 139ඵ
• • )$! ( • )&"# '%*+
, ) ( 1•
• !• • • DockerfileͰ `COPY . /usr/src/app` ͍ͯ͠Δ߹.dockerignore Λ༻ҙ• deploy_env/ .git/ .circleci/ ͳͲΞϓϦ࣮ߦʹෆཁͳϑΝΠϧؚ͕·Εͯͳ͍͔
, ) (2R I1) ) 3 ) -( . 3 D.1) I• (pull, cache-from)&3 ) ) -.2• CircleCIʹ࿈བྷͯ͠༗ྉΦϓγϣϯΛ༗ޮʹ
&• 8 : B• 2 1 +, 4 , +5
• (1 ) (1 - )• 1 , 0 2 : 5
•• C I• !
• - + .1 0 +• L O C 9 OK EI RI• U_ aTRI• B 8 B R D
• C I• 5Ҏ͙Β͍͕ඪ•• ֬ೝ͠ͳ͕ΒೖΕ·͠ΐ͏•