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のご紹介 / Introduction of CircleCI
Search
Noboru Kurumai
November 30, 2018
Technology
110
1
Share
CircleCIのご紹介 / Introduction of CircleCI
ソフトウェア開発におけるCI/CDの重要性とCircleCIの特徴
Noboru Kurumai
November 30, 2018
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
830
CircleCI Webinar
kurumai
1
550
Go SaaS CircleCI #3
kurumai
0
480
Latest updates of CircleCI
kurumai
1
410
Go_SaaS CircleCI
kurumai
0
380
CircleCI Ship Quality Code, Faster
kurumai
0
450
Other Decks in Technology
See All in Technology
実例から学ぶ GuardDuty(SSH BruteForce)調査の全体フローと勘所【SecurityJAWS】
cscengineer
PRO
0
120
「強制アップデート」か「チームの自律」か?エンタープライズが辿り着いたプラットフォームのハイブリッド運用/cloudnative-kaigi-hybrid-platform-operations
mhrtech
0
210
論文紹介:Pixal3D (SIGGRAPH 2026)
tenten0727
0
500
ECSのTerraformモジュールにコントリビュートした話
harukasakihara
0
240
React Compiler導入の効果と運用の工夫
kakehashi
PRO
3
280
サプライチェーン攻撃への備えについて考えている #湘なんか
stefafafan
1
910
TypeScriptで実現する既存APIを活用したリモートMCPサーバー構築 / TSKaigi 2026
soarteclab
0
110
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
47k
AI Agent に“攻略本”を渡したら、150フォームの移行が回り始めた話/登壇資料(高橋 悟生)
hacobu
PRO
0
110
How to learn AWS Well-Architected with AWS BuilderCards: Security Edition
coosuke
PRO
0
150
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
260
オライリーイベント登壇資料「鉄リサイクル・産廃業界におけるAI技術実応用のカタチ」
takarasawa_
0
420
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.5k
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
The SEO identity crisis: Don't let AI make you average
varn
0
460
The SEO Collaboration Effect
kristinabergwall1
1
450
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
180
Statistics for Hackers
jakevdp
799
230k
Paper Plane
katiecoart
PRO
1
50k
Being A Developer After 40
akosma
91
590k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Deep Space Network (abreviated)
tonyrice
0
150
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Transcript
1 CircleCIのご紹介 2018/10/31 ソフトウェア開発における CI/CDの重要性とCircleCIの特徴
2 車井 登 / Noboru Kurumai Solutions Engineer & Customer
Success Engineer @ CircleCI
[email protected]
自己紹介
CircleCI • ソフトウェア開発者をターゲットに、より良いコードをより早くデリバリす るためのサービスを提供 • 2011年に米国サンフランシスコで創業 • 世界中に170名以上の従業員 REPRESENTATIVE CUSTOMERS
4 グローバルで100,000社以上にご利用頂いています
5 Why CI/CD? 継続的インテグレーションと継続的デリバリはなぜ必要なのか
モダンソフトウェアデリバリの3つの柱
モダンソフトウェアデリバリの3つの柱 本番環境
モダンソフトウェアデリバリの3つの柱 Continuous Delivery 本番環境
継続的デリバリを実現するための要素 課題管理 依存関係管理 アプリケーション フレームワーク コード品質 コードレビュー データストア コミュニケーション ビルド自動化ツール
テスト自動化 コンテナレジストリ デバイス&ブラウザテスト 成果物管理 モニタリング ロギング コンテナ オーケストレーション サービス マネジメント 本番環境 スケジューリング &デリバリ セキュリティ
10 CI/CDとは - CI (Continuous Integration / 継続的インテグレーション) - CD
(Continuous Delivery / 継続的デリバリ)
11 継続的インテグレーション - What? 全ての開発者が共有リポジトリにコミットを積み重ね、 全てのコミットをトリガーにしてビルドとテストを繰り返すこと。 これによりテストに失敗した場合に素早く修正することが可能となる。 - Why? チームの生産性・効率・満足度を上げるため。
品質を上げ、スピードを上げ、より安定した製品を生み出すため。
12 継続的デリバリー - What? 継続的インテグレーションに加えて、本番環境またはテスト環境に資産が配備され ること。またはデプロイ可能な最新の(新鮮な)資産が常に手元にあること。 - Why? 成果物を素早く顧客に提供し、より早くフィードバックを得るため。 日々変化する市場・顧客の状況に素早く対応するため。
13 CI/CDのさまざまな価値 - アジャイルによる開発速度の向上 - マニュアル作業からの開放 - 開発者は小さな変更を(自信を持って)逐次Pushできる - テスト環境の統一による品質向上
- “自分の環境だとテストはパスしました”を失くす - データストアの準備など開発環境での完全なテストが難しくなっている
継続的デリバリを実現するための要素 課題管理 依存関係管理 アプリケーション フレームワーク コード品質 コードレビュー データストア コミュニケーション ビルド自動化ツール
テスト自動化 コンテナレジストリ デバイス&ブラウザテスト 成果物管理 モニタリング ロギング コンテナ オーケストレーション サービス マネジメント 本番環境 スケジューリング &デリバリ セキュリティ
15 Why CircleCI? CIrcleCIの特徴
16 CircleCI
17 デモ サンプルJavaプロジェクトをCircleCIに登録してCIを開始するまで
18 アーキテクチャ
19 CircleCIの主な特徴 - ワークフロー - Dockerサポート - 多言語サポート - .circleci/config.ymlでテスト環境を統一
- SSHデバッグ - パラレルジョブ・マルチコンテナ - デプロイ
20 ワークフロー • ステップ: 実行可能なコマンド • ジョブ: 複数のステップから構成され、実行環境で実行される単位 • ワークフロー:
それぞれのジョブ(ビルド、テストなど)がどのように動くかを定義したもの • ビルド: ジョブやワークフローの総称 • ファンアウト・ファンイン : 複数のジョブへの分岐・複数のジョブからの収束
21 ワークフローのタイプ • スケジューリング: ナイトリービルドのように決まった時刻に実行 • マニュアル承認: ワークフローの一部で自動実行を中断し、手動による承認によって再開 • ブランチ指定:
特定のブランチへのコミットによって実行 • タグ指定: Gitのタグによって実行
22 Dockerサポート - CircleCIはネイティブでDockerをサポートしています。 - VMによるCIと比べて非常に高速にビルド環境を構築することが可能です。 https://circleci.com/docs/2.0/circleci-images/
23 多言語サポート • Android • Clojure • Elixir • Go
(Golang) • JRuby • Node.js • OpenJDK (Java) • PHP • Python • Ruby • Rust CircleCIでは、下記の言語をサポートした公式Dockerイメージをご提供 https://circleci.com/docs/2.0/circleci-images/
24 .circleci/config.ymlでテスト環境を統一 https://circleci.com/docs/2.0/sample-config/ Dockerイメージを指定 コードの取得やテスト内容を ステップとして記述 個々のジョブ定義 ジョブを組み合わせたワークフロー定義 ・連続実行 ・ファンアウト・ファンイン
・スケジューリング ・ブランチ別 ・タグ別 ...等
25 SSHデバッグ ビルドに失敗した場合など、SSHデバッグをOnにして再実行することで、 ビルド終了後2時間、もしくはSSHセッションが終わって10分間までは コンテナを起動した状態で維持します https://circleci.com/docs/2.0/ssh-access-jobs/
26 パラレルジョブ・マルチコンテナ - パラレルジョブ(1つのジョブを複数のコンテナで並列に実行) - 名前による分割 - ファイルサイズによる分割 - タイミングによる分割
- マルチコンテナ(複数のジョブを複数のコンテナで並列に実行) https://circleci.com/docs/2.0/parallelism-faster-jobs/ https://circleci.com/docs/2.0/workflows/
27 デプロイ https://circleci.com/docs/2.0/deployment-integrations/ • AWS • Azure • Capistrano •
Cloud Foundry • Firebase • Google Cloud • Heroku • NPM • SSH 下記のクラウド・プラットフォームへのデプロイをサポート
28 Twitter CircleCIの最新情報はTwitterで発信しています。ぜひフォローしてください。 ( @CircleCIJapan )
29 WEB+DB PRESS Vol.107
30 エンジニアのためのCI/CD再入門 https://codezine.jp/article/corner/754
31
Thank you. 32
33