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
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
110
関係性から理解する"同一性"の型用語たち
pvcresin
2
640
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
350
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.2k
JavaDoc 再入門
nagise
0
280
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
ふつうのFeature Flag実践入門
irof
7
3.6k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
140
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
450
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
140
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
450
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
290
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
52k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
130
Thoughts on Productivity
jonyablonski
76
5.2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Speed Design
sergeychernyshev
33
1.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
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