Upgrade to Pro — share decks privately, control downloads, hide ads and more …

State of DevOps Report 2020/2021から見るCI/CDの始め方

Noboru Kurumai
September 03, 2021

State of DevOps Report 2020/2021から見るCI/CDの始め方

Noboru Kurumai

September 03, 2021
Tweet

More Decks by Noboru Kurumai

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. 5

    View Slide

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

    View Slide

  7. 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つのメトリクス

    View Slide

  8. 8

    View Slide

  9. 9
    DevOpsジャーニー
    Source: 2019 State of DevOps Report
    単一の標準的な
    OSにデプロイし
    ている
    標準的な技術セットを使って構
    築している
    ステージ1
    正規化
    アプリケーション開発チームが
    バージョン管理システムを利用し
    ている
    標準的なOSセットにデプロイし
    ている
    ステージ2
    標準化 チーム外の手動による承認作業
    無しに個人が仕事ができている
    アプリ・サービスを構築するため
    のデプロイパターンが再利用さ
    れている
    本番環境にデプロイされる前に
    インフラの変更がテストされてい
    る(*)
    ステージ3
    拡大 システム設定が自動化されてい

    プロビジョニングが自動化されて
    いる
    システム設定がバージョン管理
    されている (*)
    インフラチームがバージョン管理
    システムを利用している
    アプリケーション設定がバージョ
    ン管理されている (*)
    セキュリテイポリシーの設定が
    自動化されている
    ステージ4
    インフラデリバリ
    の自動化
    インシデント対応が自動化され
    ている
    リソースが開発者自ら利用可能
    な状態になっている
    アプリケーションがビジネスニー
    ズに応じて再設計されている
    (*)
    セキュリティチームが設計・開発
    に携わっている
    ステージ5
    セルフサービス
    Stage 0
    基盤構築
    サービスを運用しているチームが自ら監視と通知を設定可能
    アプリケーションサービスを構築するためのデプロイパターンの再利用
    アプリケーションサービスを構築するためのテストパターンの再利用
    他のチームが提供するツールの改善に貢献できる
    構成管理ツールによる設定の管理
    *ステージと高い相関性を持つプラクティス

    View Slide

  10. 10

    View Slide

  11. 11

    View Slide

  12. 12

    View Slide

  13. 13
    DevOpsジャーニー
    Source: 2019 State of DevOps Report
    単一の標準的な
    OSにデプロイし
    ている
    標準的な技術セットを使って構
    築している
    ステージ1
    正規化
    アプリケーション開発チームが
    バージョン管理システムを利用し
    ている
    標準的なOSセットにデプロイし
    ている
    ステージ2
    標準化 チーム外の手動による承認作業
    無しに個人が仕事ができている
    アプリ・サービスを構築するため
    のデプロイパターンが再利用さ
    れている
    本番環境にデプロイされる前に
    インフラの変更がテストされてい
    る(*)
    ステージ3
    拡大 システム設定が自動化されてい

    プロビジョニングが自動化されて
    いる
    システム設定がバージョン管理
    されている (*)
    インフラチームがバージョン管理
    システムを利用している
    アプリケーション設定がバージョ
    ン管理されている (*)
    セキュリテイポリシーの設定が
    自動化されている
    ステージ4
    インフラデリバリ
    の自動化
    インシデント対応が自動化され
    ている
    リソースが開発者自ら利用可能
    な状態になっている
    アプリケーションがビジネスニー
    ズに応じて再設計されている
    (*)
    セキュリティチームが設計・開発
    に携わっている
    ステージ5
    セルフサービス
    Stage 0
    基盤構築
    サービスを運用しているチームが自ら監視と通知を設定可能
    アプリケーションサービスを構築するためのデプロイパターンの再利用
    アプリケーションサービスを構築するためのテストパターンの再利用
    他のチームが提供するツールの改善に貢献できる
    構成管理ツールによる設定の管理
    *ステージと高い相関性を持つプラクティス

    View Slide

  14. 14

    View Slide

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

    View Slide

  16. 16

    View Slide

  17. 17

    View Slide

  18. 18

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. 22
    CI/CDの始め方

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  26. DevOpsジャーニー
    26
    Source: 2019 State of DevOps Report
    単一の標準的な
    OSにデプロイし
    ている
    標準的な技術セットを使って構
    築している
    ステージ1
    正規化
    アプリケーション開発チームが
    バージョン管理システムを利用し
    ている
    標準的なOSセットにデプロイし
    ている
    ステージ2
    標準化 チーム外の手動による承認作業
    無しに個人が仕事ができている
    アプリ・サービスを構築するため
    のデプロイパターンが再利用さ
    れている
    本番環境にデプロイされる前に
    インフラの変更がテストされてい
    る(*)
    ステージ3
    拡大 システム設定が自動化されてい

    プロビジョニングが自動化されて
    いる
    システム設定がバージョン管理
    されている (*)
    インフラチームがバージョン管理
    システムを利用している
    アプリケーション設定がバージョ
    ン管理されている (*)
    セキュリテイポリシーの設定が
    自動化されている
    ステージ4
    インフラデリバリ
    の自動化
    インシデント対応が自動化され
    ている
    リソースが開発者自ら利用可能
    な状態になっている
    アプリケーションがビジネスニー
    ズに応じて再設計されている
    (*)
    セキュリティチームが設計・開発
    に携わっている
    ステージ5
    セルフサービス
    Stage 0
    基盤構築
    サービスを運用しているチームが自ら監視と通知を設定可能
    アプリケーションサービスを構築するためのデプロイパターンの再利用
    アプリケーションサービスを構築するためのテストパターンの再利用
    他のチームが提供するツールの改善に貢献できる
    構成管理ツールによる設定の管理
    *ステージと高い相関性を持つプラクティス

    View Slide

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

    View Slide

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

    View Slide

  29. 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

    View Slide

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

    View Slide

  31. Thank you.
    31

    View Slide