Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
1 CircleCIのご紹介 2018/10/31 ソフトウェア開発における CI/CDの重要性とCircleCIの特徴
Slide 2
Slide 2 text
2 車井 登 / Noboru Kurumai Solutions Engineer & Customer Success Engineer @ CircleCI
[email protected]
自己紹介
Slide 3
Slide 3 text
CircleCI ● ソフトウェア開発者をターゲットに、より良いコードをより早くデリバリす るためのサービスを提供 ● 2011年に米国サンフランシスコで創業 ● 世界中に170名以上の従業員 REPRESENTATIVE CUSTOMERS
Slide 4
Slide 4 text
4 グローバルで100,000社以上にご利用頂いています
Slide 5
Slide 5 text
5 Why CI/CD? 継続的インテグレーションと継続的デリバリはなぜ必要なのか
Slide 6
Slide 6 text
モダンソフトウェアデリバリの3つの柱
Slide 7
Slide 7 text
モダンソフトウェアデリバリの3つの柱 本番環境
Slide 8
Slide 8 text
モダンソフトウェアデリバリの3つの柱 Continuous Delivery 本番環境
Slide 9
Slide 9 text
継続的デリバリを実現するための要素 課題管理 依存関係管理 アプリケーション フレームワーク コード品質 コードレビュー データストア コミュニケーション ビルド自動化ツール テスト自動化 コンテナレジストリ デバイス&ブラウザテスト 成果物管理 モニタリング ロギング コンテナ オーケストレーション サービス マネジメント 本番環境 スケジューリング &デリバリ セキュリティ
Slide 10
Slide 10 text
10 CI/CDとは - CI (Continuous Integration / 継続的インテグレーション) - CD (Continuous Delivery / 継続的デリバリ)
Slide 11
Slide 11 text
11 継続的インテグレーション - What? 全ての開発者が共有リポジトリにコミットを積み重ね、 全てのコミットをトリガーにしてビルドとテストを繰り返すこと。 これによりテストに失敗した場合に素早く修正することが可能となる。 - Why? チームの生産性・効率・満足度を上げるため。 品質を上げ、スピードを上げ、より安定した製品を生み出すため。
Slide 12
Slide 12 text
12 継続的デリバリー - What? 継続的インテグレーションに加えて、本番環境またはテスト環境に資産が配備され ること。またはデプロイ可能な最新の(新鮮な)資産が常に手元にあること。 - Why? 成果物を素早く顧客に提供し、より早くフィードバックを得るため。 日々変化する市場・顧客の状況に素早く対応するため。
Slide 13
Slide 13 text
13 CI/CDのさまざまな価値 - アジャイルによる開発速度の向上 - マニュアル作業からの開放 - 開発者は小さな変更を(自信を持って)逐次Pushできる - テスト環境の統一による品質向上 - “自分の環境だとテストはパスしました”を失くす - データストアの準備など開発環境での完全なテストが難しくなっている
Slide 14
Slide 14 text
継続的デリバリを実現するための要素 課題管理 依存関係管理 アプリケーション フレームワーク コード品質 コードレビュー データストア コミュニケーション ビルド自動化ツール テスト自動化 コンテナレジストリ デバイス&ブラウザテスト 成果物管理 モニタリング ロギング コンテナ オーケストレーション サービス マネジメント 本番環境 スケジューリング &デリバリ セキュリティ
Slide 15
Slide 15 text
15 Why CircleCI? CIrcleCIの特徴
Slide 16
Slide 16 text
16 CircleCI
Slide 17
Slide 17 text
17 デモ サンプルJavaプロジェクトをCircleCIに登録してCIを開始するまで
Slide 18
Slide 18 text
18 アーキテクチャ
Slide 19
Slide 19 text
19 CircleCIの主な特徴 - ワークフロー - Dockerサポート - 多言語サポート - .circleci/config.ymlでテスト環境を統一 - SSHデバッグ - パラレルジョブ・マルチコンテナ - デプロイ
Slide 20
Slide 20 text
20 ワークフロー ● ステップ: 実行可能なコマンド ● ジョブ: 複数のステップから構成され、実行環境で実行される単位 ● ワークフロー: それぞれのジョブ(ビルド、テストなど)がどのように動くかを定義したもの ● ビルド: ジョブやワークフローの総称 ● ファンアウト・ファンイン : 複数のジョブへの分岐・複数のジョブからの収束
Slide 21
Slide 21 text
21 ワークフローのタイプ ● スケジューリング: ナイトリービルドのように決まった時刻に実行 ● マニュアル承認: ワークフローの一部で自動実行を中断し、手動による承認によって再開 ● ブランチ指定: 特定のブランチへのコミットによって実行 ● タグ指定: Gitのタグによって実行
Slide 22
Slide 22 text
22 Dockerサポート - CircleCIはネイティブでDockerをサポートしています。 - VMによるCIと比べて非常に高速にビルド環境を構築することが可能です。 https://circleci.com/docs/2.0/circleci-images/
Slide 23
Slide 23 text
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/
Slide 24
Slide 24 text
24 .circleci/config.ymlでテスト環境を統一 https://circleci.com/docs/2.0/sample-config/ Dockerイメージを指定 コードの取得やテスト内容を ステップとして記述 個々のジョブ定義 ジョブを組み合わせたワークフロー定義 ・連続実行 ・ファンアウト・ファンイン ・スケジューリング ・ブランチ別 ・タグ別 ...等
Slide 25
Slide 25 text
25 SSHデバッグ ビルドに失敗した場合など、SSHデバッグをOnにして再実行することで、 ビルド終了後2時間、もしくはSSHセッションが終わって10分間までは コンテナを起動した状態で維持します https://circleci.com/docs/2.0/ssh-access-jobs/
Slide 26
Slide 26 text
26 パラレルジョブ・マルチコンテナ - パラレルジョブ(1つのジョブを複数のコンテナで並列に実行) - 名前による分割 - ファイルサイズによる分割 - タイミングによる分割 - マルチコンテナ(複数のジョブを複数のコンテナで並列に実行) https://circleci.com/docs/2.0/parallelism-faster-jobs/ https://circleci.com/docs/2.0/workflows/
Slide 27
Slide 27 text
27 デプロイ https://circleci.com/docs/2.0/deployment-integrations/ ● AWS ● Azure ● Capistrano ● Cloud Foundry ● Firebase ● Google Cloud ● Heroku ● NPM ● SSH 下記のクラウド・プラットフォームへのデプロイをサポート
Slide 28
Slide 28 text
28 Twitter CircleCIの最新情報はTwitterで発信しています。ぜひフォローしてください。 ( @CircleCIJapan )
Slide 29
Slide 29 text
29 WEB+DB PRESS Vol.107
Slide 30
Slide 30 text
30 エンジニアのためのCI/CD再入門 https://codezine.jp/article/corner/754
Slide 31
Slide 31 text
31
Slide 32
Slide 32 text
Thank you. 32
Slide 33
Slide 33 text
33