Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CircleCIを使って 「完全サーバーレス運用」を 実現した話

CircleCIを使って 「完全サーバーレス運用」を 実現した話

CircleCIを使って「完全サーバーレス運用」を実現した話

Akifumi Tominaga

March 05, 2019
Tweet

More Decks by Akifumi Tominaga

Other Decks in Programming

Transcript

  1. CircleCIΛ࢖ͬͯ
    ʮ׬શαʔόʔϨεӡ༻ʯΛ
    ࣮ݱͨ͠࿩
    2019/03/05 CircleCI Meetup @decoch

    View Slide

  2. ࣗݾ঺հ
    • ໊લ : ෌Ӭߊ࢙ @decoch
    • ձࣾ : גࣜձࣾϏζϦʔν
    • ৬छ : Engineer(Backend, SmartPhoneApp)
    • ݴޠ : Golang, Ruby, Kotlin, Swift
    • CI/CD͸͜͜൒೥Ͱ΍Γ࢝Ίͨ

    View Slide

  3. એ఻
    • CircleCIͷϋοΧιϯͰOrbΛ࡞Γ·ͨ͠
    • https://github.com/decoch/line-orb
    • https://github.com/decoch/chatwork-orb

    View Slide

  4. ͪͳΈʹ
    • https://tech.bizreach.co.jp/posts/254/circleci/

    View Slide

  5. Agenda
    • എܠ
    • ԿΛͨ͠ͷ͔
    • CircleCIΛ࢖ͬͯΈͯ
    • ·ͱΊ
    • Q&A

    View Slide

  6. എܠ

    View Slide

  7. എܠ
    • BizHintͰ͸ Ruby on Rails Λ࢖ͬͯ։ൃ
    • EC2 Ͱ͸ࣗ෼ͨͪͰ੬ऑੑͷύονΛ౰ͯɺ
    όʔδϣϯΞοϓΛ͢Δඞཁ͕͋Δ
    • CI؀ڥͱͯ͠JenkinsαʔόʔΛཱ͍ͯͯΔ

    View Slide

  8. എܠ
    • ৽نαʔϏεΛ GCP ͷ App Engine Λ࢖ͬͨ
    αʔόʔϨεͳΞϓϦέʔγϣϯΛ։ൃ
    • ৽نαʔϏεͷβϦϦʔεʹࡍ͠ɺCI؀ڥΛ੔
    උ͢Δඞཁ͕͋Δ
    • CIπʔϧͷΫϥ΢υαʔϏε͸ͳ͍͔ௐࠪ

    View Slide

  9. ԿΛ΍ͬͨͷ͔

    View Slide

  10. ͦ΋ͦ΋׬શαʔόʔϨεͱ͸
    Compute
    Engine
    Amazon EC2
    App Engine
    Cloud
    Functions
    AWS
    Lambda
    • ※νʔϜͷߟ͑

    View Slide

  11. ࣮ࡍͷߏ੒
    App Engine
    Cloud
    Datastore
    Cloud
    Functions
    Cloud
    Pub/Sub
    Cloud
    Bigtable

    View Slide

  12. ԿΛ΍ͬͨͷ͔
    • αʔόʔ؅ཧΛͤͣʹαʔϏεΛӡ༻͍ͨ͠
    • GCPͷϑϧϚωʔδυͳαʔϏεΛར༻
    • CI/CD͸CircleCIΛར༻

    View Slide

  13. ࣮ࡍʹӡ༻ͯ͠Έͯ
    • Πϯϑϥઐ໳ͷΤϯδχΞͳ͠Ͱӡ༻͕Ͱ͖
    ͍ͯΔ
    • αʔόʔͷઃఆ͕গͳ͘ૉૣ͘αʔϏεΛϦ
    ϦʔεͰ͖ͨ

    View Slide

  14. CircleCIΛ࢖ͬͯΈͯ

    View Slide

  15. CircleCIΛ࢖ͬͯΑ͔ͬͨ఺
    • ؆୯ʹCI؀ڥΛߏஙͰ͖Δ
    • ઃఆϑΝΠϧΛGit؅ཧͰ͖Δ
    • ڞ༗ͷઃఆΛOrbͰڞ༗Ͱ͖Δ

    View Slide

  16. ؆୯ʹCI؀ڥΛߏஙͰ͖Δ
    1. .circleci/config.yml ͷઃఆϑΝΠϧΛ࡞੒
    2. config.yml ʹઃఆΛهड़
    3. GitHubʹϓογϡ
    4. CircleCIͰϏϧυΛ։࢝

    View Slide

  17. ઃఆϑΝΠϧΛGit؅ཧͰ͖Δ
    • .circleci/config.yml ʹઃఆΛهड़͢Δ
    • αʔόʔαΠυΤϯδχΞ͕ؾܰʹઃఆมߋ
    ΛͰ͖Δ
    • Πϯϑϥઐ໳ͷΤϯδχΞͳ͠ͰαʔϏεͷ
    ӡ༻͕Ͱ͖͍ͯΔ

    View Slide

  18. ڞ༗ͷઃఆΛOrbͰڞ༗Ͱ͖Δ

    View Slide

  19. վળ
    • 2.1ϦϦʔεʹϦϦʔεͨ͠ͷͰɺσϓϩΠί
    ϚϯυͷOrbԽ͕Ͱ͖͍ͯͳ͍
    • ձࣾશମͰಋೖ͍ͯ͠ͳ͍ͷͰɺΠϯελϯ
    ε਺͕গͳ͘Ωϡʔ͕ཷ·Γ͕ͪ
    • CircleCIͷyamlͷઃఆ͕ؾܰʹςετͰ͖ͣ࠷
    ॳखؒऔͬͨ

    View Slide

  20. ·ͱΊ

    View Slide

  21. ·ͱΊ
    • αʔόʔϨεͰӡ༻͢Δ͜ͱͰӡ༻ίετΛ
    Լ͛Δ͜ͱ͕Ͱ͖ͨ
    • ӡ༻ίετ࡟ݮ͚ͩͰͳ͘ɺαʔϏεͷཱͪ
    ্͛଎౓΋্͕Δ
    • ࡉ͔͍νϡʔχϯά͕ඞཁʹͳͬͨΒࣗલͰ
    ӡ༻͢ΔΑ͏ʹͳΔ͔΋

    View Slide

  22. Q&A

    View Slide