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
460
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
290
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
420
Go_SaaS CircleCI
kurumai
0
390
はじめてのCircleCI Webinar / 1st CircleCI Webinar
kurumai
3
6.6k
Other Decks in Programming
See All in Programming
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1.1k
継続モナドとリアクティブプログラミング
yukikurage
3
620
act2-costs.pdf
sumedhbala
0
120
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
400
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.6k
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.2k
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
160
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
2.9k
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
150
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
120
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
430
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.4k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
ラッコキーワード サービス紹介資料
rakko
1
4M
Producing Creativity
orderedlist
PRO
348
40k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
810
Docker and Python
trallard
47
4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
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