Slide 1

Slide 1 text

1 State of DevOps Report 2020/2021 から見るCI/CDの始め方 車井 登 @ CircleCI シニアソリューションズエンジニア

Slide 2

Slide 2 text

2 自己紹介 名前:車井 登 / Noboru Kurumai ポジション:Senior Solutions Engineer Email: [email protected] 経歴:パッケージソフト開発    クラウドサービスエンジニア   :@kurumai   :kurumai

Slide 3

Slide 3 text

3 今日お話したいこと - State of DevOps reportについて - State of DevOps report 2020概要 - State of DevOps report 2021概要 - CI/CDの始め方

Slide 4

Slide 4 text

4 State of DevOps reportについて - Puppet社によって2011年から行われているアンケートベースの DevOpsに関する調査レ ポート。2021年版で10年目。 - 2013年のレポートではDevOpsのパフォーマンス指標となる「4つのメトリクス」を発表 - 2018年のレポートではDevOps成熟度モデルを発表 - CircleCIは2019年から参加

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

6 スループット 安定性 デプロイ頻度 リードタイム 復旧時間 失敗の頻度 4つのメトリクス

Slide 7

Slide 7 text

7 指標 エリート 高 中 低 デプロイ頻度 必要に応じていつでも (1日あたり複数回) 1時間から1日に1回 1週間から1ヶ月に1回 1週間から1ヶ月に1回 変更に要する リードタイム 1時間以内 1日から1週間 1日から1週間 1ヶ月から6ヶ月 復旧時間 1時間以内 1日以内 1日以内 1週間から1ヶ月 失敗の頻度 0-15% 0-15% 0-15% 46-60% 4つのメトリクス

Slide 8

Slide 8 text

8

Slide 9

Slide 9 text

9 DevOpsジャーニー Source: 2019 State of DevOps Report 単一の標準的な OSにデプロイし ている 標準的な技術セットを使って構 築している ステージ1 正規化 アプリケーション開発チームが バージョン管理システムを利用し ている 標準的なOSセットにデプロイし ている ステージ2 標準化 チーム外の手動による承認作業 無しに個人が仕事ができている アプリ・サービスを構築するため のデプロイパターンが再利用さ れている 本番環境にデプロイされる前に インフラの変更がテストされてい る(*) ステージ3 拡大 システム設定が自動化されてい る プロビジョニングが自動化されて いる システム設定がバージョン管理 されている (*) インフラチームがバージョン管理 システムを利用している アプリケーション設定がバージョ ン管理されている (*) セキュリテイポリシーの設定が 自動化されている ステージ4 インフラデリバリ の自動化 インシデント対応が自動化され ている リソースが開発者自ら利用可能 な状態になっている アプリケーションがビジネスニー ズに応じて再設計されている (*) セキュリティチームが設計・開発 に携わっている ステージ5 セルフサービス Stage 0 基盤構築 サービスを運用しているチームが自ら監視と通知を設定可能 アプリケーションサービスを構築するためのデプロイパターンの再利用 アプリケーションサービスを構築するためのテストパターンの再利用 他のチームが提供するツールの改善に貢献できる 構成管理ツールによる設定の管理 *ステージと高い相関性を持つプラクティス

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

11

Slide 12

Slide 12 text

12

Slide 13

Slide 13 text

13 DevOpsジャーニー Source: 2019 State of DevOps Report 単一の標準的な OSにデプロイし ている 標準的な技術セットを使って構 築している ステージ1 正規化 アプリケーション開発チームが バージョン管理システムを利用し ている 標準的なOSセットにデプロイし ている ステージ2 標準化 チーム外の手動による承認作業 無しに個人が仕事ができている アプリ・サービスを構築するため のデプロイパターンが再利用さ れている 本番環境にデプロイされる前に インフラの変更がテストされてい る(*) ステージ3 拡大 システム設定が自動化されてい る プロビジョニングが自動化されて いる システム設定がバージョン管理 されている (*) インフラチームがバージョン管理 システムを利用している アプリケーション設定がバージョ ン管理されている (*) セキュリテイポリシーの設定が 自動化されている ステージ4 インフラデリバリ の自動化 インシデント対応が自動化され ている リソースが開発者自ら利用可能 な状態になっている アプリケーションがビジネスニー ズに応じて再設計されている (*) セキュリティチームが設計・開発 に携わっている ステージ5 セルフサービス Stage 0 基盤構築 サービスを運用しているチームが自ら監視と通知を設定可能 アプリケーションサービスを構築するためのデプロイパターンの再利用 アプリケーションサービスを構築するためのテストパターンの再利用 他のチームが提供するツールの改善に貢献できる 構成管理ツールによる設定の管理 *ステージと高い相関性を持つプラクティス

Slide 14

Slide 14 text

14

Slide 15

Slide 15 text

15 基盤を製品として扱うには・・・ - セルフサービスとAPIを第一に考える - 開発者自らのペースで利用できる環境を整える - 全体展開を視野に入れつつ、まずは局所的に構築する - リーン製品管理アプローチの採用 - 開発者の経験とフローに注目する - サービスの継続的な改善のための調査 - 啓蒙する - 変更点や更新内容の継続的な発信、改善予定の周知、指標の公表 - 継続的に製品に投資する - 基盤はリリースしたら終わりではない。社内ニーズの変化を掴み、継続的に応え続 ける

Slide 16

Slide 16 text

16

Slide 17

Slide 17 text

17

Slide 18

Slide 18 text

18

Slide 19

Slide 19 text

19 エグゼクティブサマリー - DevOpsは単なる自動化ではありません - そして、DevOpsはクラウドでもありません - チームのアイデンティティと明確な相互コミュニケーションの枠組みが重要 - DevOpsの進化度「中」に属する企業が「高」以上に進化しないのは文化的なブロッカーが 課題である - 大規模な成功の鍵は基盤チーム

Slide 20

Slide 20 text

20 DevOps成熟度の推移 - 67%の企業が自動化したと回 答している(=自動化に投資 はしている)が、それだけに留 まっていて、文化的、組織的、 プロセス的な変化が起こって いない - 58%の企業が製品・サービス のデプロイに複数のチーム間 の引き継ぎが必要になってい る

Slide 21

Slide 21 text

21 チームトポロジーのキーコンセプト 4つの基本トポロジー - Stream-Aligned Team - ビジネスドメインの流れで仕事をするチーム - Enabling Team - Stream-Aligned Teamを助けるチーム - Complicated subsystem team - ニッチな技術的専門性を提供するチーム - Platform team - 社内向けプロダクトを提供するチーム 3つのチーム相互モデル - Collaboration(一定期間の協業、新規性の発見) - X-as-a-Service(サービスとしての提供と利用) - Facilitation(別のチームの支援)

Slide 22

Slide 22 text

22 CI/CDの始め方

Slide 23

Slide 23 text

23 CircleCI事例集 https://circleci.com/ja/customers/

Slide 24

Slide 24 text

24 - CI/CDをどこから始めれば良いのか分からない - 開発会社にすべて委託していて生産性がなかなか上がらない - 次期案件でCI/CDを導入することで他社コンペに勝ちたい - 次期案件でCI/CDを導入しても売上を下げたくない - 内製化を進めるために開発環境を手元で整備したい - 自分のプロジェクトの or 基盤チームからみた各プロジェクトの - 生産性を上げたい - 品質を上げたい - CI/CDはやっているが改善ポイントが分からない - もっとビルドスピードを上げたい - もっとデプロイ頻度を上げたい DevOpsやCI/CDを導入するときの課題例 CI/CDの利用状況に応じて 課題は変化していく

Slide 25

Slide 25 text

25 CI/CD導入による価値の連鎖 テストの自動化による手戻りの防止 (短期的なコスト増、長期的なコスト削減) 継続的インテグレーションによる 改善文化の定着 (小さな失敗と成功を高速に繰り返すことによる学習スピードの向上) 成功事例をもとにした組織内部での横展開 (スケールメリットによる コスト削減、成功パターンの蓄積による  既知の失敗の抑止と、新たな知見を含んだ失敗へ) リリース・デプロイの自動化による リリース品質の向上 (人手を少しづつ減らすことで人的ミスを抑止) 継続的インテグレーション・継続的デプロイメントの成熟による ビ ジネススピードの向上

Slide 26

Slide 26 text

DevOpsジャーニー 26 Source: 2019 State of DevOps Report 単一の標準的な OSにデプロイし ている 標準的な技術セットを使って構 築している ステージ1 正規化 アプリケーション開発チームが バージョン管理システムを利用し ている 標準的なOSセットにデプロイし ている ステージ2 標準化 チーム外の手動による承認作業 無しに個人が仕事ができている アプリ・サービスを構築するため のデプロイパターンが再利用さ れている 本番環境にデプロイされる前に インフラの変更がテストされてい る(*) ステージ3 拡大 システム設定が自動化されてい る プロビジョニングが自動化されて いる システム設定がバージョン管理 されている (*) インフラチームがバージョン管理 システムを利用している アプリケーション設定がバージョ ン管理されている (*) セキュリテイポリシーの設定が 自動化されている ステージ4 インフラデリバリ の自動化 インシデント対応が自動化され ている リソースが開発者自ら利用可能 な状態になっている アプリケーションがビジネスニー ズに応じて再設計されている (*) セキュリティチームが設計・開発 に携わっている ステージ5 セルフサービス Stage 0 基盤構築 サービスを運用しているチームが自ら監視と通知を設定可能 アプリケーションサービスを構築するためのデプロイパターンの再利用 アプリケーションサービスを構築するためのテストパターンの再利用 他のチームが提供するツールの改善に貢献できる 構成管理ツールによる設定の管理 *ステージと高い相関性を持つプラクティス

Slide 27

Slide 27 text

開発基盤G ジャーニー DevOpsの習熟度は、個人に依 存する。 経験がある中途入社メンバーに より良くなることも、退職者により 停滞することもある。 ステージ1 現状維持 開発環境の改善を検討していな い。 利用しているツールがなぜ利用 されているか説明できないことが 多い。 ステージ2 個人が主導 DevOpsの習熟度は、個人に依 存する。インフォーマルなグルー プにより、プロジェクト内やプロ ジェクト間で情報交換がなされて いる。 ステージ3 インフォーマルグ ループ コスト削減を主目的として開発基 盤Gチームが発足される。 開発ツールの比較や、勉強会な どを企画することで組織全体の 知識底上げにも貢献している。 ステージ4 開発基盤G 発足 投資対効果をあげるために、コ スト削減だけではなく生産性向 上も同時に改善を図る目的の チーム。 現場とのつながりが強く、成熟し たチームになると、プロジェクト チームと開発基盤 Gを兼任する 担当が存在する。 ビルドデータを分析し、異常値の 改善や平均値の底上げを実施。 ステージ5 生産性向上 達成目標 検討メンバー - - プロダクト開発 個人 プロダクト開発 インフォーマル グループ コスト削減 開発基盤Gとインフォー マルなグループ 生産性向上 開発基盤G

Slide 28

Slide 28 text

28 ステージ1 導入する 目標 CI/CDの導入 ステージ2 改善する ステージ3 拡大する 要件 手作業を自動化する 課題 自動化されていないテスト、 属人化された手動デプロイ 初期コストが低い/かからない Developer Experienceの改善 3rdパーティ製品との連携 開発生産性を高め、 自動化範囲の拡大の追求 ジョブ同時実行、高速化、デバッグ 他の製品と容易に連携可 メンテナンスフリー ノウハウ・パイプラインの横展開 プロジェクト間の生産性比較 規模のメリットを得られていない 1つのCI/CDツールでカバーできる パイプラインの部品化・共有化 パイプライン改善メトリクス 収集・比較 開発者の導入障壁が低い CI/CDを成熟させる3つのステップ (ステージ1の素早い導入を目指しつつ、ステージ3を常に意識する) 初期導入支援サポートがある 全プロジェクトの トータルコスト見直し トータルコスト見直し

Slide 29

Slide 29 text

29 リソース - State of DevOpsレポート2020 https://www2.circleci.com/Content-JP-Puppet2020StateofDevOpsReport.html - State of DevOpsレポート2021 (現在翻訳中です。9月初旬に公開予定です) - DevOpsの実践に関する3000万のワークフローから得られた知見 https://www2.circleci.com/ja-Data-Driven-Case-for-CI-2019.html - 2020 年版ソフトウェア デリバリーに関する現状調査 https://www2.circleci.com/JPThe2020StateofDeliveryReport_LP.html

Slide 30

Slide 30 text

CircleCIをもっと知りたい!なら 最新の情報なら @CircleCIJapan をフォロー! #CircleCIJp タグつけて情報共有! イベント、セミナー、勉強会の情報なら connpassのCircleCIグループから! https://circleci.connpass.com/ 動画でCircleCIについて学ぶなら CircleCIチャンネルを登録! (日本語プレイリストは QRから→)  他社でのCircleCI活用事例やQ&Aなら  CircleCI discuss のトピックから!  https://discuss.circleci.com/

Slide 31

Slide 31 text

Thank you. 31