Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

എܠ

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

ԿΛ΍ͬͨͷ͔

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

CircleCIΛ࢖ͬͯΈͯ

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

·ͱΊ

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Q&A