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 Webinar
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Noboru Kurumai
November 14, 2019
Programming
550
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CircleCI Webinar
Noboru Kurumai
November 14, 2019
More Decks by Noboru Kurumai
See All by Noboru Kurumai
SP800-63-4 Digital Identity Guidelines (Main)
kurumai
0
280
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
Go SaaS CircleCI #3
kurumai
0
490
Latest updates of CircleCI
kurumai
1
410
Go_SaaS CircleCI
kurumai
0
390
CircleCI Ship Quality Code, Faster
kurumai
0
460
はじめてのCircleCI Webinar / 1st CircleCI Webinar
kurumai
3
6.5k
Other Decks in Programming
See All in Programming
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
170
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.5k
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
140
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
230
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
13k
Lessons from Spec-Driven Development
simas
PRO
0
220
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
280
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
300
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.4k
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
210
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.2k
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
1
110
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
820
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
370
Ethics towards AI in product and experience design
skipperchong
2
310
The Language of Interfaces
destraynor
162
27k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Unsuck your backbone
ammeep
672
58k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Transcript
1 はじめてのCircleCI Webinar Noboru Kurumai @ Solutions Engineer
2 自己紹介 名前:車井 登 / Noboru Kurumai ポジション:Solutions Engineer 経歴:パッケージソフト開発
クラウドサービスエンジニア
3 はじめに - 質問がある場合はいつでもQ&Aに記載をお願いします。時間 が許す限りお答えします。 - チャットは参加者全員が見ることができますので、個人情報、 秘密情報は記載しないようにご注意ください。
4 今日お話したいこと - CircleCI / CircleCI Japanについて - Why CI/CD
- Why CircleCI - Q&A - CircleCIのデモ - CircleCIの始め方、価格 - Q&A
5 CircleCI について
Introduction to CircleCI • 世界最大規模のクラウド CI/CD サービス • より良いコードをより速く、簡単にリリースすることを可能に •
2011年設立、サンフランシスコ本社 • 250人の社員(米国と東京にオフィス) • 19年7月 5,600万ドルのシリーズDを実施、合計1億1,550万ドルを調達 Representative Customers
7 CircleCIの利用実績
8 SaaS企業など、多くのユーザーが利用
9 2018.06.11 CircleCI Japan発足
10 日本語サポート https://support.circleci.com/hc/ja
11 日本語ドキュメント https://circleci.com/docs/ja/
12 ユーザーコミュニティー @CircleCIJapan https://www.facebook.com/grou ps/2180735222207131/
13 Why CI/CD
14 DevOpsの歴史 2001 Agile Software Development 開発対象を厳格に扱うことで変化を管理するの ではなく、アジャイル方法論は変化を許容する。 リスクは完璧な計画によって減少できるもので はなく、プロジェクトを小さく分割しつつ、それら
を素早く結合させることによって減らすことがで きる。 2008 Continuous Delivery & Deployment 継続的デリバリーは継続的インテグレーションの拡張として登場。 ソフトウェアが常にデプロイ可能な状態を保つというプラクティスで ある。 責務(とリスク)を開発者と運用者の間で共有すること - DevOpsカ ルチャーの登場。 チームはテストの自動化だけではなく、テストをパスした際のデプ ロイの自動化を目指す。 1970 Waterfall 開発プロセス全体がいくつかのフェーズから構成 されていて、次のフェーズに進むためには前の フェーズを終えていなければならない。 ただし、隣接するフェーズ間の小さなイテレーショ ンは例外的に実施する場合がある。 (ハードウェアの開発方法論に似ている) 1994 Automated Testing & Continuous Integration (Inception & Evolution: 1994-2008) 開発者は、失敗をより快適なものとして捉え、それが受け入れられないものではなく、む しろ自信をつけるものになってきた。 JUnitやCucumberなどのテスティングフレームワー クの登場がそれを反映している。 マイクロプロセスの要求によって登場した継続的インテグレーション (CI)は、開発者が数 多くの内部リリースを行うことを可能にした。 すなわち、継続的インテグレーションは常に少量のコードをマージするための方法論で あり、開発の最終フェーズで競合を発生させるような巨大なコードのコミットを防ぐ 2010 - Present
15 CI/CDとは - CI (Continuous Integration / 継続的インテグレーション) - CD
(Continuous Delivery / 継続的デリバリ)
16 CI: 継続的インテグレーション - What? 全ての開発者が共有リポジトリにコミットを積み重ね、 全てのコミットをトリガーにしてビルドとテストを繰り返すこと。 これによりテストに失敗した場合に素早く修正することが可能となる。 - Why?
チームの生産性・効率・満足度を上げるため。 品質を上げ、スピードを上げ、より安定した製品を生み出すため。
17 CIでできること • コードのビルド • 静的コード解析 • 単体テスト • 結合テスト
• 脆弱性チェック • テストサマリー
18 CIが解決する問題 • 全てのコミットに対してCIする ◦ 早い段階でバグを発見できる ◦ 設定で制御可能 • 静的解析などでの標準化
◦ コードの品質UP • テスト失敗したコードのマージブロック ◦ masterブランチの安全保証
19 CD: 継続的デリバリー/デプロイメント - (狭義の)Continuous Delivery (継続的デリバリー) 常にリリース可能な状態を維持する - Continuous
Deployment (継続的デプロイメント) 自動でステージング・本番環境へデプロイする
20 自動 Continuous Delivery (継続的デリバリー) - リリース作業に人間の意思が介在する コードプッシュ 成果物 (JAR、TAR、
Docker Image) ステージング 本番環境 CI/CD 人間が 決定
21 自動 Continuous Deployment (継続的デプロイメント) - リリース作業に人間の意思が介在しない コードプッシュ 成果物 (JAR、TAR、
Docker Image) ステージング 本番環境 CI/CD CI/CD
22 とは言ってみたものの - 継続的デリバリーと継続的デプロイはいろいろな定義がありそう - 大事なのはCDを考えるときにステップを刻むこと、ステークホルダーを巻き込むこと (一足飛びに本番自動デプロイは難しい) 成果物の生成 システムテスト ステージング
自動リリース 本番環境 自動リリース 品質保証 (第三者検証) 構成管理 Blue/Green Canary 監視運用
23 エンジニアリングの効率化に欠かせない5つの測定指標 https://www2.circleci.com/rs/485-ZMH-626/images/5-Key-Metrics-Engineering.pdf 1. Commit-to-Deploy Time (CDT) コードがコミットされてからデプロイされるまでの時間 3. Queue
Time CIビルドが始まるまでに待たされる時間 2. Build Time CIビルドに掛かる時間 5. Engineering Overhead ツールのメンテナンスなど開発以外に掛かっている時間 4. How often Master is Red masterブランチが壊れている時間
24 Why CircleCI
25 CircleCIの概要
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
CircleCI GitLab Connector 27
28 CircleCIは・・・ - Dockerをサポートしていて、高速にビルド環境を立ち上げることができ、 - .circleci/config.ymlでテスト環境を統一することができ、 - ワークフローでジョブを連結することができ、 - SSHデバッグ機能などでビルドエラーをすばやく取り除き、
- 複数のキャッシュ機構でビルドを高速化することができ、 - Orbsを使って簡単にデプロイできる
29 Dockerサポート - CircleCIはネイティブでDockerをサポートしています。 - VMによるCIと比べて非常に高速にビルド環境を構築することが可能です。 https://circleci.com/docs/2.0/circleci-images/
30 .circleci/config.ymlでテスト環境を統一
31 .circleci/config.ymlでテスト環境を統一 https://circleci.com/docs/2.0/sample-config/ Dockerイメージを指定 コードの取得やテスト内容を ステップとして記述 個々のジョブ定義 ジョブを組み合わせたワークフロー定義 ・連続実行 ・ファンアウト・ファンイン
・スケジューリング ・ブランチ別 ・タグ別 ...等
32 CircleCIの思想 - コンフィグはファイルに書かれるべき (コードと同じくレビューとバージョン管理を行う) - 明示的であるべき
33 ワークフロー - ビルド設定を分解して、依存関係や並列処理を行うための機能
34 ワークフローのタイプ • スケジューリング: ナイトリービルドのように決まった時刻に実行 • マニュアル承認: ワークフローの一部で自動実行を中断し、手動による承認によって再開 • ブランチ指定:
特定のブランチへのコミットによって実行 • タグ指定: Gitのタグによって実行
35 SSHデバッグ ビルドに失敗した場合など、SSHデバッグをOnにして再実行することで、 ビルド終了後2時間、もしくはSSHセッションが終わって10分間までは コンテナを起動した状態で維持します https://circleci.com/docs/2.0/ssh-access-jobs/
36 ビルドの高速化(キャッシュ) 同一ジョブ間のキャッシュ ワークフローが繰り返し実行される中で、同一ジョブ で利用される永続データを使い回す。 同一ワークフロー内のキャッシュ 同一ワークフロー内の異なるジョブ間でデータを共 有する。
37 ビルドの高速化(並列処理) 4並列でそれぞれ10個のテストを実行 https://circleci.com/gh/kurumai/circleci-step-by-step/210
38 ビルドの高速化(リソースクラス)
39 設定のパッケージングと再利用(Orbs) - Orbsとは、CircleCIの設定を再利用し、さらにそれを自由に配布する仕組み - Orbsを使うと他の人が書いたCircleCIの設定を自分のプロジェクトの .circleci/config.yml に差し込むことができる。 - OrbsはOrbsレジストリ上で誰でも公開することができ、他のユーザーが作ったOrb
を誰でも使うことが可能
40 Orbsの種類 - Orbs Registry https://circleci.com/orbs/registry/ - Certified (CircleCI) -
Partner (CircleCI認定パートナー) - 3rd party (その他)
41 質とスピード / Quality and Speed https://speakerdeck.com/twada/quality-and-speed
42 質とスピード / Quality and Speed https://speakerdeck.com/twada/quality-and-speed
43 Q&A
44 Demo
45 GitHubとCircleCI https://github.com/kurumai/pelican-bookstore/issues/1
46 GitHubとCircleCI https://github.com/kurumai/pelican-bookstore/pull/3
47 Orbs https://circleci.com/gh/kurumai/circleci-step-by-step/271
48 CircleCIの始め方 - CircleCIはGitHubのOAuthアプリケーションとして動作します。 - CircleCIにログインした段階でGitHubとの連携設定は完了しています。 - サンプルを見ながらCircleCIの設定ファイル(config.yml)をリポジトリに追加したあと、CircleCIの画面からビルドを開始してく ださい。 https://circleci.com/add-projects/gh/kurumai
49 CircleCI Cloud
50 CircleCI Server(オンプレ版) + ご利用環境に応じたサポート費用
51 Q&A
Thank you. 52