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
440
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
220
State of DevOps Report 2020/2021から見るCI/CDの始め方
kurumai
1
1.7k
30 million workflows reveal about DevOps in practice
kurumai
4
9.8k
go-saas-circleci-number-4
kurumai
0
810
CircleCI Webinar
kurumai
1
530
Go SaaS CircleCI #3
kurumai
0
430
Latest updates of CircleCI
kurumai
1
380
Go_SaaS CircleCI
kurumai
0
360
はじめてのCircleCI Webinar / 1st CircleCI Webinar
kurumai
3
6.1k
Other Decks in Programming
See All in Programming
Porting a visionOS App to Android XR
akkeylab
0
680
階層化自動テストで開発に機動力を
ickx
0
140
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
660
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
140
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
230
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
180
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
200
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
150
RailsGirls IZUMO スポンサーLT
16bitidol
0
200
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
870
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
2
12k
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
220
Featured
See All Featured
Gamification - CAS2011
davidbonilla
81
5.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
520
A better future with KSS
kneath
238
17k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
We Have a Design System, Now What?
morganepeng
53
7.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
108
19k
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