Slide 1

Slide 1 text

CircleCIΛಋೖͨ͠࿩ ϝσΟΧϧࣄۀ෦ اը։ൃνʔϜ ଜຊ ༤ଠ

Slide 2

Slide 2 text

Agenda 1. എܠ) Background 2. ௐࠪ) Study 3. ߏ੒) Architecture 4. ·ͱΊ) Summary

Slide 3

Slide 3 text

എܠ

Slide 4

Slide 4 text

എܠ • ϝσΟΧϧࣄۀ෦ ϦχϡʔΞϧνʔϜ • ։ൃ੹೚ऀ: 1ਓɺΤϯδχΞ: 13ਓ • ໾ׂ͝ͱʹϦϙδτϦΛ෼͚͍ͯΔ(90ݸ͘Β͍) • privateͳϥΠϒϥϦ͸ɺpackage഑৴αʔόΛΦϯ ϓϨ্ʹཱͯͯ഑৴͍ͯ͠Δ(satisαʔό) • ఆظతʹεςʔδϯάʹσϓϩΠ • εςʔδϯάσϓϩΠޙɺςελʔ͞Μ͕ಈ࡞֬ೝ

Slide 5

Slide 5 text

CIಋೖલͷσϓϩΠϑϩʔ ΤϯδχΞ ੹೚ऀ ᶃ Create Pull Request ᶅ ఆظతʹdev -> master ᶄ PRग़ͨ͠Αʔ σϓϩΠαʔό ᶆ ssh Deployer ᶈ deploy ᶇ Run deployment ᶈ Wait deployment ᶉ Finish deployment ᶊ exit ᶋ σϓϩΠ௨஌ Staging VPC ςελʔ

Slide 6

Slide 6 text

໰୊఺ 1. ੹೚ऀ͕σϓϩΠ͢Δ·ͰεςʔδϯάαʔόͰಈ࡞֬ ೝΛߦ͑ͳ͍ 2. εςʔδϯάαʔόͷσϓϩΠʹ੹೚ऀͷ͕࣌ؒऔΒΕ ͯ͠·͏ 3. σϓϩΠ͢ΔࡍʹɺॳาతͳΤϥʔʹૺ۰͢Δ͜ͱ͕Կ ౓͔͋Δ CIπʔϧΛಋೖͯ͠σϓϩΠΛࣗಈԽʂʂ

Slide 7

Slide 7 text

ௐࠪ

Slide 8

Slide 8 text

CIπʔϧൺֱ • Jenkins • TravisCI • CircleCI • Wercker • AWS CodePipeline • etc…

Slide 9

Slide 9 text

Jenkins • ϝϦοτ • ֦ுੑ͕ߴ͘ɺͳΜͰ΋Ͱ͖Δ • ΦϯϓϨ্ʹߏங͢ΔͨΊɺIP͕ݻఆ • هࣄ΋๛෋ • σϝϦοτ • αʔόΛ༻ҙ͢Δඞཁ͕͋ΔͨΊอकɾӡ༻͕ඞཁ • ຊ൪ΛؚΊϫʔΫϑϩʔʹ૊ΈࠐΉͨΊɺಋೖ͸ܭըతʹߦ͏ ඞཁ͕͋Δ • ؅ཧΛଵΔͱJobͷৄࡉ͕࡞ͬͨਓ͔͠Θ͔Βͳ͘ͳͬͯ͠·͏

Slide 10

Slide 10 text

Jenkins • ϝϦοτ • ֦ுੑ͕ߴ͘ɺͳΜͰ΋Ͱ͖Δ • ΦϯϓϨ্ʹߏங͢ΔͨΊɺIP͕ݻఆ • هࣄ΋๛෋ • σϝϦοτ • αʔόΛ༻ҙ͢Δඞཁ͕͋ΔͨΊอकɾӡ༻͕ඞཁ • ຊ൪ΛؚΊϫʔΫϑϩʔʹ૊ΈࠐΉͨΊɺಋೖ͸ܭըతʹߦ͏ ඞཁ͕͋Δ • ؅ཧΛଵΔͱJobͷৄࡉ͕࡞ͬͨਓ͔͠Θ͔Βͳ͘ͳͬͯ͠·͏

Slide 11

Slide 11 text

TravisCI • ϝϦοτ • CloudͰ͋ΔͨΊɺαʔόͷ؅ཧɾӡ༻͸ෆཁ • Githubͱͷ਌࿨ੑߴΊ • هࣄ΋๛෋ • σϝϦοτ • ίϯςφʹsshͰೖΕͳ͍ͷͰσόοά͠ʹ͍͘ • $129͕͔͔ΔͨΊɺCIΛ͸͡Ίͯಋೖ͢Δࡍʹ͸ఏҊ͠ʹ͍͘ • CloudͳͷͰϏϧυͷ౓ʹIP͕มΘΔ

Slide 12

Slide 12 text

TravisCI • ϝϦοτ • CloudͰ͋ΔͨΊɺαʔόͷ؅ཧɾӡ༻͸ෆཁ • Githubͱͷ਌࿨ੑߴΊ • هࣄ΋๛෋ • σϝϦοτ • ίϯςφʹsshͰೖΕͳ͍ͷͰσόοά͠ʹ͍͘ • $129͕͔͔ΔͨΊɺCIΛ͸͡Ίͯಋೖ͢Δࡍʹ͸ఏҊ͠ʹ͍͘ • CloudͳͷͰϏϧυͷ౓ʹIP͕มΘΔ

Slide 13

Slide 13 text

CircleCI • ϝϦοτ • CloudͰ͋ΔͨΊɺαʔόͷ؅ཧɾӡ༻͸ෆཁ • αϙʔτ͕खް͍ • هࣄ΋๛෋ • sshͰίϯςφʹೖΕΔͷͰɺσόοά͠΍͍͢ • ແྉͰ࢖͍࢝ΊΒΕΔ • σϝϦοτ • ClouldͳͷͰϏϧυͷ౓ʹຖճIP͕มΘΔ

Slide 14

Slide 14 text

CircleCI • ϝϦοτ • CloudͰ͋ΔͨΊɺαʔόͷ؅ཧɾӡ༻͸ෆཁ • αϙʔτ͕खް͍ • هࣄ΋๛෋ • sshͰίϯςφʹೖΕΔͷͰɺσόοά͠΍͍͢ • ແྉͰ࢖͍࢝ΊΒΕΔ • σϝϦοτ • ClouldͳͷͰϏϧυͷ౓ʹຖճIP͕มΘΔ

Slide 15

Slide 15 text

ߏ੒

Slide 16

Slide 16 text

CircleCIಋೖޙͷσϓϩΠϑϩʔ σϓϩΠαʔό Deployer Staging VPC ςετ & σϓϩΠ ΤϯδχΞ ੹೚ऀ ᶃ Create Pull Request ᶅ Merge ᶄ PRग़ͨ͠Αʔ ᶆ CI Build Start ᶋ ௨஌ ςελʔ ᶇ ᶈ Run Deployer ᶊ Finish Deploy ᶉ deploy

Slide 17

Slide 17 text

݁Ռ • ੹೚ऀ͕σϓϩΠʹ࣌ؒΛऔΒΕͳͯ͘ࡁΉΑ͏ʹͳͬ ͨ • σϓϩΠલʹςετΛ૸ΒͤΔ͜ͱͰɺখ͍͞όάΛσ ϓϩΠલʹൃݟ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨ (CI) • ఆظతʹσϓϩΠ͍ͯͨ͠ͷ͕ɺ1ճͷϚʔδͰܧଓత ʹසൟʹσϓϩΠͰ͖ΔΑ͏ʹͳͬͨ (CD)

Slide 18

Slide 18 text

·ͱΊ

Slide 19

Slide 19 text

఻͔͑ͨͬͨ͜ͱ • CIͷಋೖͷΑ͏ͳվળ఺͕·ͩ·ͩ͋Δ • ੵۃతʹఏҊ͢Δ͜ͱͰɺ৽ଔ1೥໨Ͱ΋ղܾͰ͖Δ • ఏҊͯࣗ͠෼Ͱղܾ͢Δͷ͕޷͖ͳਓੋඇϨόϨδʔζ ʹདྷ͍ͯͩ͘͞