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 Ship Quality Code, Faster
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Noboru Kurumai
May 30, 2019
Programming
460
0
Share
CircleCI Ship Quality Code, Faster
Noboru Kurumai
May 30, 2019
More Decks by Noboru Kurumai
See All by Noboru Kurumai
SP800-63-4 Digital Identity Guidelines (Main)
kurumai
0
270
State of DevOps Report 2020/2021から見るCI/CDの始め方
kurumai
1
1.8k
30 million workflows reveal about DevOps in practice
kurumai
4
10k
go-saas-circleci-number-4
kurumai
0
840
CircleCI Webinar
kurumai
1
550
Go SaaS CircleCI #3
kurumai
0
490
Latest updates of CircleCI
kurumai
1
410
Go_SaaS CircleCI
kurumai
0
390
はじめてのCircleCI Webinar / 1st CircleCI Webinar
kurumai
3
6.5k
Other Decks in Programming
See All in Programming
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1k
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
130
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
3.1k
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
11k
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
120
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
550
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
1.3k
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
220
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
790
RTSPクライアントを自作してみた話
simotin13
0
430
GitHub Copilot CLIのいいところ
htkym
2
1.2k
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
530
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
320
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
260
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
350
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
380
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
130
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Transcript
1
2 自己紹介
3 今日お話したいこと - CircleCI の概要(さらっと) - ビルドの高速化 - CircleCIでできること -
ビルドの高速化のその先へ
4 について
CircleCI • ソフトウェア開発者をターゲットに、より良いコードをより早くデリバリす るためのサービスを提供 • 2011年に米国サンフランシスコで創業 • 世界中に200名以上の従業員 • 2018年1月にシリーズC($31M)を調達。合計で$59.5M(≒66億円)
REPRESENTATIVE CUSTOMERS
6 グローバルで100,000社以上にご利用頂いています
7 の思想 - コンフィグはファイルに書かれるべき (コードと同じくレビューとバージョン管理を行う) - 明示的であるべき - たくさんの人の目に触れながら開発者が改善を繰り返す
8 .circleci/config.ymlでテスト環境を統一
9 .circleci/config.ymlでテスト環境を統一 https://circleci.com/docs/2.0/sample-config/ Dockerイメージを指定 コードの取得やテスト内容を ステップとして記述 個々のジョブ定義 ジョブを組み合わせたワークフロー定義 ・連続実行 ・ファンアウト・ファンイン
・スケジューリング ・ブランチ別 ・タグ別 ...等
Running CI/CD with our hosting options cloud server Active users
Active users VCS VCS Databases Caches & Artifacts Build Fleet (GitHub.com or GitHub Enterprise) Databases Caches & Artifacts Build Fleet
11 と https://github.com/kurumai/pelican-bookstore/issues/1
12 ビルドの高速化
13 そもそも高速化って何でやるの? - 待っている時間を減らしたい - 待っている間は他のことが手につかない - 他のことをやったとしても、コンテキストスイッチのコストは発生する - 早くバグを見つけたい
- バグは(意図せず)作り込んだタイミングから、 可能な限り早く検出して修正したい - 作ってから時間が経てば経つほど修正にかかるコストが増える (あれ、このコードの意味って・・・) - コスト(費用)を減らしたい - ビルド実行時間による課金の場合、不要なビルドを減らしたり、時間を短くしたい - 一方、速くするための機能に課金が発生する場合も・・・ 投資対効果の見極めが必要
14 ビルドパイプラインの流れ(例) 1. コードのコミット(プッシュ) 2. ビルドキュー待ち 3. ビルド用コンテナの起動 4. ソースコードのチェックアウト
5. 依存ライブラリのダウンロード 6. 静的解析(Lint) 7. 単体テスト 8. 結合テスト 9. 成果物の保存
15 ビルドパイプラインの流れ(例) これを数分で終わらせたい (ただし規模にもよる) 1. コードのコミット(プッシュ) 2. ビルドキュー待ち 3. ビルド用コンテナの起動
4. ソースコードのチェックアウト 5. 依存ライブラリのダウンロード 6. 静的解析(Lint) 7. 単体テスト 8. 結合テスト 9. 成果物の保存
16 でできること
17 Dockerサポート - CircleCIはネイティブでDockerをサポートしています。 - VMによるCIと比べて非常に高速にビルド環境を構築することが可能です。 https://circleci.com/docs/2.0/circleci-images/
18 Compute Options
19 ファイルのキャッシュ・共有 同一ジョブ間のキャッシュ ワークフローが繰り返し実行される中で、同一ジョブ で利用される永続データを使い回す。 同一ワークフロー内の データ共有 同一ワークフロー内の異なるジョブ間でデータを共 有する。
20 ビルドの高速化(並列処理) 4並列でテストを実行 https://circleci.com/gh/kurumai/circleci-step-by-step/210
21 新しい料金体系:
22 ビルドパイプラインの流れ(例) Performance Planでキュー待ち無し 1. コードのコミット(プッシュ) 2. ビルドキュー待ち 3. ビルド用コンテナの起動
4. ソースコードのチェックアウト 5. 依存ライブラリのダウンロード 6. 静的解析(Lint) 7. 単体テスト 8. 結合テスト 9. 成果物の保存 1st class Dockerサポート ファイルのキャッシュ・共有 マシンスペックの最適化 並列処理
23 ビルドの高速化の その先へ
24 そもそも高速化って何でやるの? - 待っている時間を減らしたい - 待っている間は他のことが手につかない - 他のことをやったとしても、コンテキストスイッチのコストは発生する - 早くバグを見つけたい
- バグは(意図せず)作り込んだタイミングから、 可能な限り早く検出して修正したい - 作ってから時間が経てば経つほど修正にかかるコストが増える (あれ、このコードの意味って・・・) - コスト(費用)を減らしたい - ビルド実行時間による課金の場合、不要なビルドを減らしたり、時間を短くしたい - 一方、速くするための機能に課金が発生する場合も・・・ 投資対効果の見極めが必要
25 そもそも高速化って何でやるの? - 待っている時間を減らしたい - 待っている間は他のことが手につかない - 他のことをやったとしても、コンテキストスイッチのコストは発生する - 早くバグを見つけたい
- バグは(意図せず)作り込んだタイミングから、 可能な限り早く検出して修正したい - 作ってから時間が経てば経つほど修正にかかるコストが増える (あれ、このコードの意味って・・・) - コスト(費用)を減らしたい - ビルド実行時間による課金の場合、不要なビルドを減らしたり、時間を短くしたい - 一方、速くするための機能に課金が発生する場合も・・・ 投資対効果の見極めが必要 アイデアをできる限り早く実現・リリースして、顧客か ら素早くフィードバックを得るため
26 そこで - Continuous Delivery (継続的デリバリー) 常にリリース可能な状態を維持する - Continuous Deployment
(継続的デプロイメント) 自動でステージング・本番環境へデプロイする
27 ユーザー コミュニティの場 @CircleCIJapan CircleCI Japan User Group https://circleci.connpass.com/ https://twitter.com/CircleCIJapan
https://www.facebook.com/group s/2180735222207131/ • FAQ、イベント情報、ブログ投稿連絡など • イベント、リリース、お知らせなど • イベント申込
28 今後の コミュニティ活動 • 5月28日 : 第4回ミートアップ in 東京 •
6月?日 : 第5回 東京 at ZOZO オフィス • 6月13日 : CEO Jim: CircleCI 成長の軌跡と未来 • 7月19日 : デプロイしNight in 福岡
29 Velocity comes from culture
Thank you. 30