Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
日経にCircleCIを導入してみた
Search
Natsuki Akama
July 09, 2015
Technology
15
4.9k
日経にCircleCIを導入してみた
「日経電子版×Sansanアプリ開発プロジェクト成功への道〜アプリ開発者勉強会Vol.3」で発表した資料です。
http://connpass.com/event/16885/
Natsuki Akama
July 09, 2015
Tweet
Share
More Decks by Natsuki Akama
See All by Natsuki Akama
エンジニアがプロダクトグロースのためにやったこと
natsuz
1
960
UI設計で最初にやること: 日経電子版アプリ開発で学んだちょっとした知見
natsuz
0
640
日経電子版アプリ内製開発の舞台裏
natsuz
72
29k
Other Decks in Technology
See All in Technology
Lazy Constant - finalフィールドの遅延初期化
skrb
0
230
[mercari GEARS 2025] Keynote
mercari
PRO
1
310
米軍Platform One / Black Pearlに学ぶ極限環境DevSecOps
jyoshise
2
490
ZOZOTOWNカート決済リプレイス ── モジュラモノリスという過渡期戦略
zozotech
PRO
0
450
Capitole du Libre 2025 - Keynote - Cloud du Coeur
ju_hnny5
0
120
バクラクの AI-BPO を支える AI エージェント 〜とそれを支える Bet AI Guild〜
tomoaki25
2
780
旧から新へ: 大規模ウェブクローラの Perl から Go への移行 / YAPC::Fukuoka 2025
motemen
3
1k
改竄して学ぶコンテナサプライチェーンセキュリティ ~コンテナイメージの完全性を目指して~/tampering-container-supplychain-security
mochizuki875
1
340
なぜインフラコードのモジュール化は難しいのか - アプリケーションコードとの本質的な違いから考える
mizzy
55
19k
ABEMAのCM配信を支えるスケーラブルな分散カウンタの実装
hono0130
4
930
現地速報!Microsoft Ignite 2025 M365 Copilotアップデートレポート
kasada
1
1.2k
LINEヤフー バックエンド組織・体制の紹介
lycorptech_jp
PRO
0
810
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
KATA
mclloyd
PRO
32
15k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Facilitating Awesome Meetings
lara
57
6.6k
Navigating Team Friction
lara
190
15k
YesSQL, Process and Tooling at Scale
rocio
174
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
GraphQLとの向き合い方2022年版
quramy
49
14k
Scaling GitHub
holman
463
140k
Transcript
ܦʹ$JSDMF$*Λಋೖͯ͠Έͨ ɹຊܦࡁ৽ฉࣾɹؒՆथ
͜Μʹͪ ؒՆथ ຊܦࡁ৽ฉࣾɹσδλϧฤہ ৽ଔೖࣾ ܦిࢠ൛ΞϓϦʢJ04ʣΛ։ൃ
ຊܦࡁ৽ฉࣾ ΤϯδχΞ͍·͢ ࣾһʢਓʣʴֶੜΞϧόΠτʢਓʣʴڠྗձࣾ ։ൃ͡Ί·ͨ͠
None
ࠓ͓͢Δ͜ͱ
$JSDMF$*ͰࣗಈԽ͡Ί·ͨ͠ J04ΞϓϦ։ൃΛࣗಈԽͯ͠ɺ։ൃϓϩηεΛվળ͓ͨ͠ ςετ σϦόϦʢϕʔλ৴ʣ
ࣗಈԽͷ͖͔͚ͬ
ΞϓϦͷςετେม ෳ04όʔδϣϯɺෳσόΠε ϦϦʔε͢Δͱݩʹͤͳ͍ Ϋϥογϡ͢Δόά͕͋Δͱɺૉૣ͍ใಓ͕ࠔʹ ➔େྔͷςετέʔεΛ࣮ࢪ
None
J04ܦిࢠ൛ΞϓϦςετέʔεͷ߹ܭɹ ݅
݅✖ 04WFS✖ %FWJDF
खಈσϦόϦେม σβΠφʔɺϕʔλςελʔ ࣗͰϏϧυͰ͖ͳ͍ 9DPEFͷૢ࡞ํ๏͕Θ͔Βͳ͍ɺͦͦ8JOEPXT
खಈσϦόϦେม σβΠφʔɺϕʔλςελʔ ࣗͰϏϧυͰ͖ͳ͍ 9DPEFͷૢ࡞ํ๏͕Θ͔Βͳ͍ɺͦͦ8JOEPXT आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ ɾ
ɾ ɾ
ίϛϡχέʔγϣϯίετ ʮΞϓϦམͪΔΜ͚ͩͲʯ ʮͲ͏͍͏ૢ࡞ํ๏Ͱ͔͢ʁʯ ʮ͜͏ͬͯʜʯ ʮΞϓϦͷόʔδϣϯʁʯ ʮόʔδϣϯͬͯͲ͜Ͱ֬ೝ͢Δͷʁʯ ʮઃఆ͔Β֬ೝͰ͖·͢ʯ ʮ͋ͬ̋̋ͩʯ ʮͦͷόά͏࠷৽൛Ͱͳ͓ͬͯ·͢ʯ
ɹɹʮࣗಈԽ͠·͠ΐ͏ʯ
J04ΞϓϦ։ൃϓϩηεͷࣗಈԽ
*DPONBEFCZ'SFFQJL GSPNXXXqBUJDPODPN *DPONBEFCZ&MFHBOU5IFNFT GSPNXXXqBUJDPODPN *DPONBEFCZ'SFFQJL GSPNXXXqBUJDPODPN 2" σϦόϦ ։ൃ
*DPONBEFCZ'SFFQJL GSPNXXXqBUJDPODPN 2"
ςετͷࣗಈԽ Ϣχοτςετ &&ςετ
Ϣχοτςετॻ͍ͯͨ ,JXJ .PEFMͷΈ ΧόϨοδܭଌͯ͠ͳ͍
·ͣϢχοτςετΛࣗಈԽ
$JSDMF$*ΛͬͯࣗಈԽ ϏϧυεΫϦϓτ͕ࣗ༝ʹॻ͚Δ αϙʔτ͕ૣ͍ɺνϟοτͰ؆୯ʹ࣭Ͱ͖Δ ͍҆
(JUIVCʹ1VTIͨ͠λΠϛϯάͰςετ (JUIVCʹ1VTI͢Δຖʹ֤ϒϥϯνͰςετΛࣗಈ࣮ߦ $JSDMF$*ͰϢχοτςετΛ࣮ߦ YDPEFCVJME νϟοτ௨
YDPEFCVJME YDPVEFCVJMEͰϢχοτςετΛ࣮ߦʢYDUPPM͕σϑΥϧτʣ QPEJOTUBMMࣗಈͰ࣮ߦͯ͘͠ΕΔ
݁Ռνϟοτ௨ 4MBDLʹ௨ͯ͠ɺใΛू CPUͷΞΠίϯΛมߋͯ͠ɺϞνϕʔγϣϯΞοϓ
ςετ݁ՌΛ௨ ςετΛ࣮ߦ
ϢχοτςετͷࣗಈԽඅ༻ରޮՌ͕ߴ͍ ςετΛॻ͍͍ͯΕɺࣗಈԽָ มߋʹର͢Δෆ͕҆؆୯ʹऔΓআ͚Δ ݟ͑ΔԽ *DPONBEFCZ"OUPO4BQVUSP GSPNXXXqBUJDPODPN
&&ςετͷࣗಈԽऔΓΈத
"QQJVNΛͬͨ&&ςετ 4%,ͷΈࠐΈ͕ෆཁ طଘͷίʔυΛ͍͡ΒͣɺςετΛ࣮ߦͰ͖Δ (6*্Ͱૢ࡞ͨ͠ಈ࡞ΛίʔυͰग़ྗ
None
&&ςετͷࣗಈԽ εϞʔΫςετϨϕϧ ϑϩϯτΤϯυͷଟͷྫ֎ॲཧ ϝϯςφϯείετ ਓखʹΑΔςετඞཁ
ςετࣗಈԽʹΑΓ։ൃޮ্͕ खಈςετ͕ͳ͘ͳΔΘ͚Ͱͳ͍ ։ൃͱ2"ͷߴΠςϨʔγϣϯ ·ͱΊͯςετ͢ΔͷͰͳ͘ɺίϛοτຖʹࣗಈςετ ࣗಈςετ͕ࣦഊͨ͠ݪҼલͷίʔυมߋʹ͋Δ ➔ܽؕίʔυͷಛఆͱόάमਖ਼͕ૣ͘ࡁΉ 2"νʔϜʹ͢લʹɺ࠷ݶͷ࣭νΣοΫ
ςετΛࣗಈԽ͢Δͱɺ։ൃɾ2"ͷαΠΫϧ͕͘ͳΔ 2" *DPONBEFCZ'SFFQJL GSPNXXXqBUJDPODPN *DPONBEFCZ&MFHBOU5IFNFT GSPNXXXqBUJDPODPN *DPONBEFCZ'SFFQJL GSPNXXXqBUJDPODPN σϦόϦ ։ൃ
ςετࣗಈԽʹΑΔԸܙ 2"νʔϜָ͕Λ͢Δ ͍αΠΫϧͰϦϦʔε͕Ͱ͖Δ
*DPONBEFCZ'SFFQJL GSPNXXXqBUJDPODPN σϦόϦ
'BCSJDΛͬͯϕʔλ৴ J04ͷαϙʔτ ແྉ ΫϥογϡϨϙʔταʔϏε
NBTUFSϒϥϯνͷNFSHF୯ҐͰ ࠷৽ϕʔλ൛ΞϓϦΛৗʹμϯϩʔυՄೳʹ͢Δ $JSDMF$*ͰϢχοτςετΛ࣮ߦ J5VOFT$POOFDUͷόϦσʔγϣϯνΣοΫ ςετ௨աޙʹJ1"Λ࡞͠ɺ'BCSJDͰϕʔλ৴
ϘλϯΛԡ͚ͩ͢Ͱྃ
$JSDMF$*ͰJ1"ϑΝΠϧΛ࡞ 1SPWJTJPOJOH'JMFΛμϯϩʔυ 1SPWJTJPOJOH'JMFɺQϑΝΠϧΛΠϯϙʔτ ΞʔΧΠϒ
1SPWJTJPOJOH'JMFΛ%- OPNBE$-*ͷ$VQFSUJOPΛͬͯϏϧυຖʹ%- ➔%FWJDFΛՃͯ͠ɺ1SPWJTJPOJOHͷखಈมߋͷඞཁͳ͠
None
1SPWJTJPOJOH'JMFQΛΠϯϙʔτ
ύεϫʔυڥมͱͯ͠ઃఆ
YDBSDIJWF͔ΒɺJQBΛ࡞
J5VOFT$POOFDUͷόϦσʔγϣϯνΣοΫ "QQMJDBUJPO-PBEFSͷBMUPPMΛར༻͢Δ BMUPPMͷQBUIΛࢦఆ࣮ͯ͠ߦ
'BCSJDʹΞοϓϩʔυ
ΫϥογϡϨϙʔτΛνϟοτ௨
ςετ݁ՌΛ௨ ࣾ Ϋϥογϡ௨ όϦσʔγϣϯνΣοΫ
σϦόϦࣗಈԽͷϝϦοτ ख࡞ۀ͕શʹͳ͘ͳΔ ϝϯςφϯείετ͕͍ɺ͍ճ͕͠Ͱ͖Δ ॳظಋೖίετ͋·Γߴ͘ͳ͍ ΫϥογϡϨϙʔτʹΑΓɺ։ൃ㲗2"ͷޮ্
ࠓޙ πʔϧΛͬͯਃ·ͰࣗಈԽ ڥґଘɾଐਓੑ ϩʔΧϧͷڥ͕NBTUFSͱҧ͏ ʮ̋̋͞Μ͕ٳՋத͔ͩΒɺਃͰ͖ͳ͍ʯ
"OESPJE "OESPJEܦిࢠ൛ΞϓϦࣗಈԽʹऔΓΈ͡Ί·ͨ͠ $JSDMF$* 3PCPMFDUSJD 'BCSJD
$JSDMF$*5JQT
தͷਓͱϛʔςΟϯά͢Δػձ͕͋ͬͨ ͋Δಥવϝʔϧ͕͖ͨ
ڭ͑ͯΒͬͨ5JQT DJSDMFZNMͷ֬ೝͷͨΊɺຖճ1VTI͢Δͷ͕ຯʹ໘ 1VTI͠ͳͯ͘ɺXFC6*ͰίϚϯυ͕ࢼͤΔ 5FTUDPNNBOET ࢼͨ͠ίϚϯυޙͰফ͞ͳ͍ͱɺॲཧ͕ճΔ
None
·ͱΊ
आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ ɾ ɾ ɾ
आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ आΓͯɺ-JHIUOJOHέʔϒϧͯ͞͠ɺ9DPEFͰϏϧυ ɾ ɾ ɾ ͳ͘ͳͬͨ
ઍ݅ͷखಈςετ
ઍ݅ͷखಈςετ ݅ʹͳΒͳ͍
අ༻ରޮՌͷߴ͍ͷ͔Β͡ΊΔ ͱʹ͔ࣗ͘ಈԽ͖͢ σϦόϦɺʢςετΛॻ͍͍ͯΕʣϢχοτςετ Ͳ͜·ͰࣗಈԽ͢Δ͔ݕ౼͕ඞཁ &&ςετ
ࣗಈԽͷϝϦοτ ୯७ख࡞ۀ͔Βղ์͞ΕͯͤʹͳΕΔ ૉૣ͍։ൃ͕Ͱ͖Δ ૉૣܽؕ͘ίʔυͷಛఆͱόάमਖ਼͕Ͱ͖Δ ݟ͑ΔԽ ➔։ൃ㲗2"ͷαΠΫϧ͕͘ͳΔ
࠷ޙʹ ಋೖਓͰͰ͖Δ ·ͣϘτϜΞοϓͰউखʹಋೖͯ͠ΈΔ ಋೖΑΓӡ༻ͷํ͕େม ϢχοτςετΛॻ͖ଓ͚Δ $*ͷϝϯςφϯε
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ ࠷ޙʹͪΐͬͱએ
ΤϯδχΞืूத EH@MBC!OFYOJLLFJDPKQ