$30 off During Our Annual Pro Sale. View Details »

CircleCIの活用事例とCI高速化/circleci-community-meetup3-speedup

bungoume
April 23, 2019

 CircleCIの活用事例とCI高速化/circleci-community-meetup3-speedup

bungoume

April 23, 2019
Tweet

More Decks by bungoume

Other Decks in Technology

Transcript



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

    View Slide


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

    View Slide


  3. • I


    • C

    View Slide



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

    View Slide



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

    View Slide



  6. View Slide

  7. ) ( (

    View Slide

  8. ) (

    View Slide

  9. ) (
    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
    ॲཧ࣌ؒ͸ҰྫͰ͢

    View Slide




  10. • ։ൃऀͷ࣌ؒΛୣ͏
    • ςετ͕མͪͨͱ͖ͷଛࣦײ͕૿͑Δʢࣗ෼ௐ΂ʣ

    • ͙͢ϦϦʔε͍ͨ͠ͷʹͰ͖ͳ͍


    • CircleCIʹ͓͕͔͔ۚΔ

    View Slide




  11. View Slide







  12. View Slide


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

    View Slide

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

    View Slide




  15. • )$!
    (

    • )&"# '%
    *+

    View Slide




  16. View Slide

  17. , ) ( 1





    View Slide



  18. • !



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

    View Slide

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

    View Slide

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

    View Slide



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

    View Slide




  22. • C I
    • !

    View Slide


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

    View Slide


  24. • C I
    • 5෼Ҏ಺͙Β͍͕໨ඪ

    • ֬ೝ͠ͳ͕ΒೖΕ·͠ΐ͏

    View Slide



  25. View Slide