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
urmot
January 25, 2019
Technology
0
100
CircleCIを導入した話
urmot
January 25, 2019
Tweet
Share
More Decks by urmot
See All by urmot
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
1.7k
ログラスを支える設計標準について / loglass-design-standards
urmot
12
2.9k
ログラスを支える技術的投資の仕組み / loglass-technical-investment
urmot
10
6.1k
実践!CloudFormation Best Practice ~CloudFormationで始める組織改革~
urmot
2
3.4k
SPA on AWS
urmot
0
220
実践!CloudFormation Best Practice
urmot
0
250
RDBのログを取る時にDMSを使うという選択肢
urmot
0
150
ベンチャー企業のインフラを運用して学んだ99のこと
urmot
0
1.3k
Other Decks in Technology
See All in Technology
国井さんにPurview の話を聞く会
sophiakunii
1
300
Java 25に至る道
skrb
3
140
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
130
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
350
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
260
AWS re:Inventre:cap ~AmazonNova 2 Omniのワークショップを体験してきた~
nrinetcom
PRO
0
130
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
820
Agentic AIが変革するAWSの開発・運用・セキュリティ ~Frontier Agentsを試してみた~ / Agentic AI transforms AWS development, operations, and security I tried Frontier Agents
yuj1osm
0
200
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
Featured
See All Featured
Writing Fast Ruby
sferik
630
62k
GitHub's CSS Performance
jonrohan
1032
470k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
250
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
200
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
72
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
110
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
74
Mobile First: as difficult as doing things right
swwweet
225
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Transcript
CircleCIΛಋೖͨ͠ ϝσΟΧϧࣄۀ෦ اը։ൃνʔϜ ଜຊ ༤ଠ
Agenda 1. എܠ) Background 2. ௐࠪ) Study 3. ߏ) Architecture
4. ·ͱΊ) Summary
എܠ
എܠ • ϝσΟΧϧࣄۀ෦ ϦχϡʔΞϧνʔϜ • ։ൃऀ: 1ਓɺΤϯδχΞ: 13ਓ • ׂ͝ͱʹϦϙδτϦΛ͚͍ͯΔ(90ݸ͘Β͍)
• privateͳϥΠϒϥϦɺpackage৴αʔόΛΦϯ ϓϨ্ʹཱͯͯ৴͍ͯ͠Δ(satisαʔό) • ఆظతʹεςʔδϯάʹσϓϩΠ • εςʔδϯάσϓϩΠޙɺςελʔ͞Μ͕ಈ࡞֬ೝ
CIಋೖલͷσϓϩΠϑϩʔ ΤϯδχΞ ऀ ᶃ Create Pull Request ᶅ ఆظతʹdev ->
master ᶄ PRग़ͨ͠Αʔ σϓϩΠαʔό ᶆ ssh Deployer ᶈ deploy ᶇ Run deployment ᶈ Wait deployment ᶉ Finish deployment ᶊ exit ᶋ σϓϩΠ௨ Staging VPC ςελʔ
1. ऀ͕σϓϩΠ͢Δ·ͰεςʔδϯάαʔόͰಈ࡞֬ ೝΛߦ͑ͳ͍ 2. εςʔδϯάαʔόͷσϓϩΠʹऀͷ͕࣌ؒऔΒΕ ͯ͠·͏ 3. σϓϩΠ͢ΔࡍʹɺॳาతͳΤϥʔʹૺ۰͢Δ͜ͱ͕Կ ͔͋Δ
CIπʔϧΛಋೖͯ͠σϓϩΠΛࣗಈԽʂʂ
ௐࠪ
CIπʔϧൺֱ • Jenkins • TravisCI • CircleCI • Wercker •
AWS CodePipeline • etc…
Jenkins • ϝϦοτ • ֦ுੑ͕ߴ͘ɺͳΜͰͰ͖Δ • ΦϯϓϨ্ʹߏங͢ΔͨΊɺIP͕ݻఆ • هࣄ๛ •
σϝϦοτ • αʔόΛ༻ҙ͢Δඞཁ͕͋ΔͨΊอकɾӡ༻͕ඞཁ • ຊ൪ΛؚΊϫʔΫϑϩʔʹΈࠐΉͨΊɺಋೖܭըతʹߦ͏ ඞཁ͕͋Δ • ཧΛଵΔͱJobͷৄࡉ͕࡞ͬͨਓ͔͠Θ͔Βͳ͘ͳͬͯ͠·͏
Jenkins • ϝϦοτ • ֦ுੑ͕ߴ͘ɺͳΜͰͰ͖Δ • ΦϯϓϨ্ʹߏங͢ΔͨΊɺIP͕ݻఆ • هࣄ๛ •
σϝϦοτ • αʔόΛ༻ҙ͢Δඞཁ͕͋ΔͨΊอकɾӡ༻͕ඞཁ • ຊ൪ΛؚΊϫʔΫϑϩʔʹΈࠐΉͨΊɺಋೖܭըతʹߦ͏ ඞཁ͕͋Δ • ཧΛଵΔͱJobͷৄࡉ͕࡞ͬͨਓ͔͠Θ͔Βͳ͘ͳͬͯ͠·͏
TravisCI • ϝϦοτ • CloudͰ͋ΔͨΊɺαʔόͷཧɾӡ༻ෆཁ • GithubͱͷੑߴΊ • هࣄ๛ •
σϝϦοτ • ίϯςφʹsshͰೖΕͳ͍ͷͰσόοά͠ʹ͍͘ • $129͕͔͔ΔͨΊɺCIΛ͡Ίͯಋೖ͢ΔࡍʹఏҊ͠ʹ͍͘ • CloudͳͷͰϏϧυͷʹIP͕มΘΔ
TravisCI • ϝϦοτ • CloudͰ͋ΔͨΊɺαʔόͷཧɾӡ༻ෆཁ • GithubͱͷੑߴΊ • هࣄ๛ •
σϝϦοτ • ίϯςφʹsshͰೖΕͳ͍ͷͰσόοά͠ʹ͍͘ • $129͕͔͔ΔͨΊɺCIΛ͡Ίͯಋೖ͢ΔࡍʹఏҊ͠ʹ͍͘ • CloudͳͷͰϏϧυͷʹIP͕มΘΔ
CircleCI • ϝϦοτ • CloudͰ͋ΔͨΊɺαʔόͷཧɾӡ༻ෆཁ • αϙʔτ͕खް͍ • هࣄ๛ •
sshͰίϯςφʹೖΕΔͷͰɺσόοά͍͢͠ • ແྉͰ͍࢝ΊΒΕΔ • σϝϦοτ • ClouldͳͷͰϏϧυͷʹຖճIP͕มΘΔ
CircleCI • ϝϦοτ • CloudͰ͋ΔͨΊɺαʔόͷཧɾӡ༻ෆཁ • αϙʔτ͕खް͍ • هࣄ๛ •
sshͰίϯςφʹೖΕΔͷͰɺσόοά͍͢͠ • ແྉͰ͍࢝ΊΒΕΔ • σϝϦοτ • ClouldͳͷͰϏϧυͷʹຖճIP͕มΘΔ
ߏ
CircleCIಋೖޙͷσϓϩΠϑϩʔ σϓϩΠαʔό Deployer Staging VPC ςετ & σϓϩΠ ΤϯδχΞ ऀ
ᶃ Create Pull Request ᶅ Merge ᶄ PRग़ͨ͠Αʔ ᶆ CI Build Start ᶋ ௨ ςελʔ ᶇ ᶈ Run Deployer ᶊ Finish Deploy ᶉ deploy
݁Ռ • ऀ͕σϓϩΠʹ࣌ؒΛऔΒΕͳͯ͘ࡁΉΑ͏ʹͳͬ ͨ • σϓϩΠલʹςετΛΒͤΔ͜ͱͰɺখ͍͞όάΛσ ϓϩΠલʹൃݟ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨ (CI) • ఆظతʹσϓϩΠ͍ͯͨ͠ͷ͕ɺ1ճͷϚʔδͰܧଓత
ʹසൟʹσϓϩΠͰ͖ΔΑ͏ʹͳͬͨ (CD)
·ͱΊ
͔͑ͨͬͨ͜ͱ • CIͷಋೖͷΑ͏ͳվળ͕·ͩ·ͩ͋Δ • ੵۃతʹఏҊ͢Δ͜ͱͰɺ৽ଔ1ͰղܾͰ͖Δ • ఏҊͯࣗ͠Ͱղܾ͢Δͷ͕͖ͳਓੋඇϨόϨδʔζ ʹདྷ͍ͯͩ͘͞