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
Noboru Kurumai
May 30, 2019
Programming
0
450
CircleCI Ship Quality Code, Faster
Noboru Kurumai
May 30, 2019
Tweet
Share
More Decks by Noboru Kurumai
See All by Noboru Kurumai
SP800-63-4 Digital Identity Guidelines (Main)
kurumai
0
250
State of DevOps Report 2020/2021から見るCI/CDの始め方
kurumai
1
1.7k
30 million workflows reveal about DevOps in practice
kurumai
4
10k
go-saas-circleci-number-4
kurumai
0
820
CircleCI Webinar
kurumai
1
540
Go SaaS CircleCI #3
kurumai
0
470
Latest updates of CircleCI
kurumai
1
400
Go_SaaS CircleCI
kurumai
0
380
はじめてのCircleCI Webinar / 1st CircleCI Webinar
kurumai
3
6.3k
Other Decks in Programming
See All in Programming
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
130
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
CSC307 Lecture 08
javiergs
PRO
0
670
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
160
CSC307 Lecture 01
javiergs
PRO
0
690
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
高速開発のためのコード整理術
sutetotanuki
1
400
CSC307 Lecture 02
javiergs
PRO
1
780
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.2k
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
230
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
The Pragmatic Product Professional
lauravandoore
37
7.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
160
Writing Fast Ruby
sferik
630
62k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
940
Producing Creativity
orderedlist
PRO
348
40k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
320
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