2019.03.05 CircleCI User Community Meetup #2
History in 5 yearsofCircleCI and CyberAgent2019.03.05 CircleCI User Community Meetup #2@stormcat24
View Slide
stormcat24
2012- CyberAgent, Inc.2015-2018 FRESH LIVE2018- OpenSaaS Studio
$ZCFS"HFOUʹ͓͚Δ$*ͷྺ࢙
ख࡞ۀin 2014
ࣗ$*୲͡Όͳ͍͔ΒΑ͘Θ͔Βͳ͍Α+FOLJOTͰϙνϙνͯ͠σϓϩΠͰ͖ͯ؆୯$*ճͬͯΔ࣌ؒ5XJJUUFS͠Α͏։ൃऀࠔͬͨΒ+FOLJOT͓͡͞Μ͕ͳΜͱ͔ͯ͘͠ΕΔΑ
"ϓϩδΣΫτ͔Β+FOLJOTͷߏஙґཔདྷ·ͨ͠ΑͬͱࣅͨΑ͏ͳߏͷ+FOLJOT͜ͷؒ࡞ͬͨؾ͕͢Δ͚Ͳ·͍͍͔͋ŜŦŜŦŜŦŕŦŖƃ#ϓϩδΣΫτͷ+FOLJOTϫʔΧʔͷεϖοΫ͕Γͳ͍ͳख़࿅ͷ+FOLJOT͓͡͞ΜͷಓҰʹͯ͠ͳΒͣͰ͢ΑϏϧυ͍͚࣌ؒͲ͜͏͍͏Μ͔ͳʁΞϓϦͷํΑ͘Θ͔ΒΜ+FOLJOT͓͡͞Μ
ͦΕͰ͍͍ͷ͔ʁ
͏·͍ͬͯ͘Δ͍͍͠Μ͡Όͳ͍ͷʙ
ੈؒΛΒͣʹͳ·্͡ख͍ͬͯ͘ΔͱࢥߟఀࢭʹؕΓ͍͢
ࣗ$*୲͡Όͳ͍͔ΒΑ͘Θ͔Βͳ͍Α+FOLJOTͰϙνϙνͯ͠σϓϩΠͰ͖ͯ؆୯$*ճͬͯΔ࣌ؒ5XJJUUFS͠Α͏ࠔͬͨΒ+FOLJOT͓͡͞Μ͕ͳΜͱ͔ͯ͘͠ΕΔΑ6*ૢ࡞ͰߦΘΕΔ͖͔ʁଐਓԽΛڐ༰͢Δ͔ʁ͓͡͞Μ͕ϊϋΛดͨ͡··ୀ৬ͨ͠ΒʁϦʔυλΠϜΛॖ͖͢ͰʁαʔϏεʹదͳӡ༻͔ʁར༻ऀ͕ධՁ͖͢Ͱʁ
"ϓϩδΣΫτ͔Β+FOLJOTͷߏஙґཔདྷ·ͨ͠ΑͬͱࣅͨΑ͏ͳߏͷ+FOLJOT͜ͷؒ࡞ͬͨؾ͕͢Δ͚Ͳ·͍͍͔͋ŜŦŜŦŜŦŕŦŖƃ#ϓϩδΣΫτͷ+FOLJOTϫʔΧʔͷεϖοΫ͕Γͳ͍ͳख़࿅ͷ+FOLJOT͓͡͞ΜͷಓҰʹͯ͠ͳΒͣͰ͢ΑϏϧυ͍͚࣌ؒͲ͜͏͍͏Μ͔ͳʁΞϓϦͷํΑ͘Θ͔ΒΜಛఆٕज़ͷաͳࣥண ࡞ۀຬΖແବͳ࡞ۀʁΠϯϑϥͷίʔυԽ͞ΕΔ͖ͰʁखಈͰεέʔϧ͢Δͷ͔ʁϓϩδΣΫτͷ͚ͩӡ༻͕૿͑Δ͕ʁΞϓϦΛݟͣʹϏϧυϓϩηεΛ࠷దԽͰ͖Δ͔ʁ
มԽΛٻΊΒΕͳ͍ͷͰ͋Εͦͷ··ͰΑ͍͔͠Εͳ͍͕ɺͦΜͳ͜ͱ΄ͱΜͲແ͍ɻ
4BB4ͷ$*αʔϏεͷΓ্͕Γ
Ϛωʔδυܕ$*Λ׆༻
Ϛωʔδυ$*ͷར‣ ӡ༻ͳ͠ɺεέʔϥϏϦςΟͰղܾ‣ δϣϒͷίʔυԽ‣ %PDLFS༷ʑͳΤίγεςϜͷαϙʔτ‣ ܧଓతͳػೳՃɺखް͍Ϣʔβʔαϙʔτຊ࣭తͳ։ൃʹΑΓूதͰ͖ΔɻαʔϏεΛૣ͘ಧ͚͍ͨͳΒΘͳ͍બࢶແ͍
͔͠͠ɺɹɹɹɹɹɹɹɹʹରԠͨ͠$*αʔϏε࣌΄ͱΜͲͳ͔ͬͨ
ࣾͷ$*Λͬͱઌਐతʹ+FOLJOTଔۀ͠Α͏ػೳݕূͷ݁Ռ$JSDMF$*͕࠷ྑ͍ίϯςφʹ44)ͰೖͬͯσόοάͰ͖Δͷ࠷ߴ&OUFSQSJTFͷαϙʔτ͋Δʂ"1*ॆ࣮ΦϖϨʔγϣϯʹ෯͕ग़Δ$JSDMF$*ࣾͷϗεϐλϦςΟ͕ͱͯྑ͍ڧҾͳඪ४ԽͰͳࣗ͘વͳࣾσϑΝΫτԽ
$$*&༠க׆ಈ։࢝༠க࢝Ί·ʔۜ͢ͷؙͰͳ͍Ͱ͢ෆ͖ͳϢʔεέʔε͋Γ·͊͢ίετ͜Ε͘Β͍Ͱ࠷ॳίϯςφ̋͘Β͍Ͱ͡Ί·͠ΐ͏+FOLJOT͓͡͞Μͷ༐ୀΛʂ
$$*&ར༻։࢝‣ ࠷ॳ!TUPSNDBUͷͬͯͨ৽نϓϩδΣΫτ্ཱͪ͛Ͱར༻‣ 4FSWFS 8FC "OESPJE *OGSBTUSVDUVSFͷྖҬͰϑϧ׆༻‣ %FQMPZ5FSSBGPSNͷద༻ʹར༻‣ ։ൃ্͕ख͘ճΓɺଞͷϓϩδΣΫτʹਅࣅ͞Εͳ͕ΒͲΜͲΜ͕͍ͬͯ͘‣ ίʔυԽ ZBNMʣͰਅࣅ͍͢͠‣ (JU)VCʢ()&ʣͰDJSDMFZNMΛݕࡧ͢Ε͍͍ͩͨΘ͔Δ‣ ຊͰ࠷ॳͷސ٬ʁʢͨͿΜʣ
ಋೖʹਚྗ͠·͕ͨ͠ɺԣ࣠Ͱͷීٴ׆ಈʢ΄΅ʣ͍ͯ͠·ͤΜɻ˞ଞʹͦ͏͍͏ਓ͕ډͨΘ͚Ͱ͋Γ·ͤΜ
ྡͷࣳੜ੨͘ݟ͑Δঢ়گΛͭ͘Δ‣ ৽͍͜͠ͱΛ্ख͘ճͯ͠Δͱɺ൱͕ԠͰ͞ΕΔ‣ ͔ͳΓ͍ͨ͠͠ɺϒϩάͰͷΞτϓοτଟ͔ͬͨͷͰঘߋ‣ %FW0QT8FCΦϖϨʔγϣϯ͕͞ΕΔ࣌ظʹೖ͍ͬͯͨ‣ ͏·͘ைྲྀʹͬͨʁ‣ 4FSWFS͚ͩ͡Όͳ͘ɺ8FCɺ"OESPJEɺ*OGSBͷͲͷྖҬ͔Β੨͘ݟ͑Δࢿ࣭͕͋ͬͨ
ݱࡏ
Repositories412˞$JSDMF$*ϕʔε˞$"ϝσΟΞ()&ௐProjects40
΄΅੍ѹ
$$*&ීٴͷ૯ׅ‣ +FOLJOT͓͡͞Μഇۀ‣ $*ͷϞμϯԽɺϊϋڞ༗ͷ͢͠͞ʢࣗવൃੜతʣ‣ %FWɺ0QTํͷ$*ͷҙࣝվֵ‣ ίϯςφԽͷைྲྀʹ͏·͘Ϛονͨ͠‣ ܥͷ%PDLFSʹଟগۤ࿑͕͋ͬͨ‣ $$*&ཧऀͷӡ༻ͪΖΜθϩͰͳ͍‣ ͍ͭαϙʔτ͋Γ͕ͱ͏͍͟͝·͢
$ZCFS"HFOUͱ$*ͷ͜Ε͔Βɹ
&OUFSQSJTFͷδϨϯϚ
&OUFSQSJTFͷδϨϯϚ‣ &OUFSQSJTFͷ໋॓‣ &OUFSQSJTFͷ৽ػೳϥά͕͋Δʢૣ͘0SCT͍͍ͨͱ͔ʣɹ‣ Τοδͷޮ͍ͨνʔϜʹͱͬͯগ͠ϞϠϞϠ͢Δ‣ $JSDMF$*Ҏ֎ʹ͍͍ͨαʔϏεଟ͍‣ ()&ʹରԠ͍ͯ͠Δ4BB4ͱͳΔͱબࢶ͕ڱ·Δ‣ ରԠ͍ͯͯ͠ηΩϡϦςΟཁ݅Λຬ͔ͨ͢ɺݕূ͕ඞཁ
HJUIVCDPNͷҙࣝͷߴ·Γ
()&(JU)VCDPN‣ ࠷ۙͷ৽ن্ཱͪ͛Ͱͦͷ͕ߴ·͖ͬͯͨ‣ ϓϩδΣΫτʹ͋ͬͨ4BB4ΛɺࣗͨͪͷࡋྔͰܾΊΑ͏ͱ͍͏ҙࢥ‣ ։ൃ৫ͱͯ͋͠Δ͖࢟Ͱ͋Δͱݴ͑Δ‣ $JSDMF$*͕બΕͳ͘ͳΔཧ༝ʹͳΒͳ͍‣ ඪ४Խ͔ΒɺࣗతͳϦςϥγʔͷৢ
࠷ۙͷ৽نϓϩδΣΫτ‣ $JSDMF$*(JU)VCDPNϓϩδΣΫτͰී௨ʹબΕ͍ͯΔ‣ ωΠςΟϒ#JUSJTF͕ଟ͍‣ (JU0QTͷྲྀߦɺΑΓચ࿅͞Εͨ։ൃϓϩηε‣ $JSDMF$*NFSHJGZͰ13ࣗಈϚʔδͱ͔‣ ,VCFSOFUFTར༻ϓϩδΣΫτ‣ UFTUJOGSBQSPX"SHP$%ͱ͍ͬͨΈ߹Θͤ
$"దࡐదॴͷจԽDPNͱ&OUFSQSJTF໘ڞଘ͍ͯ͘͠Ͱ͠ΐ͏
$"ͱ$JSDMF$*ͷग़ձ͍͔Βૣ։ൃޮ͚ͩͰͳ͘ɺ։ൃϓϩηεจԽେ͖͘ਐา
ྑ͍4BB4πʔϧʹΑͬͯ։ൃऀͷ࣮֬ʹං͍͖͑ͯ·͢पΓͷʹ͖͍ͭ͢ޭϞσϧΛͭͰଟ͘࡞Ζ͏ʂඪ४ԽطಘݖӹԽͱදཪҰମͰ͋Δ͜ͱҙ։ൃऀͷ։ൃϓϩηεվળ৽ٕज़ͷҙཉΛେࣄʹ͠Α͏&OUFSQSJTFͷδϨϯϚඞ͖ͣͭ·ͱ͏$JSDMF$*+BQBOઃཱ׆ൃͳϢʔβʔίϛϡχςΟڧ͍҆৺ײ
5IBOLT✋