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

ビジネスの成長に貢献するソフトウェア開発効率化

 ビジネスの成長に貢献するソフトウェア開発効率化

Digital Transformationを支えるCI/CD

More Decks by Masahiko Funaki(舟木 将彦)

Other Decks in Technology

Transcript

  1. Introduction to CircleCI • 世界最大規模のクラウド CI/CD サービス • より良いコードをより速く、簡単にリリースすることを可能に •

    2011年設立、サンフランシスコ本社 • 300人の社員(米国、東京、英国にオフィス) • 20年4月 1億ドルのシリーズEを実施、合計2億1,500万ドルを調達 Representative Customers
  2. 4 ファースト ステップ 1. ツールの導入や新技術のPoC 4 ツールの導入 Slack, Zoom, Microsoft

    Teams • 同じ場所にいなくてもビデオでコミュニケー ション可能(場所の制約からの解放 ) • 同じ時間でなくてもチャットでコミュニケー ション可能(時間の制約からの解放 ) • 音声認識や文字認識によりデータをだれで も検索利用可能(媒体の制約からの解放 ) 新技術のPoC(コンセプト検証) IoT/AI/ML(機械学習) • 各種センサを使いデータ収集・共有可能 (場 所の制約や記憶の制約からの解放 ) • 品質検査(見落としや見過ごしなどのヒュー マンエラーからの解放 ) • 故障予兆やトレンド予測 (ノウハウの属人性 からの解放) 社内がつながる 技術が検証できる 顧客とつながる デジタルにより既存ビジネスの枠を超える
  3. 5 ファースト ステップ 2. ワークショップによる新規ビジネス創出 5 デザイン シンキング 課題解決ではなく真の課題を定義し直す •

    顧客は誰で、抱えている課題 (実現したいこ と)は何かを観察と共感を通じて捉える • 現状のやり方(プロセス)の中で、何がブロッ カーになっているのかを捉える • ブロッカーを排除/乗り越えられない原因 (真の課題)を定義し直す(リフレーム) アイデアソン/ハッカソン 解決方法を探り、プロトを通じて検証する • さまざまな観点や技術をもとに解決方法を 量産する • クイックプロトタイプを作ることにより、解決 方法の実現可能性を検証する • クイックプロトタイプを使うことにより、効果 (課題解決の実効性)を評価する (既存・新規)顧客を理解する アイデアがプロトになる 顧客が自社を選ぶ理由ができる プロトが新製品/新サービスになる
  4. 6 3. DXに取り組み始めた→DXがビジネスをドライブへ 6 • 「PoCはやってみた」「アイデアは出してみた」から 「新製品/新サービス」をスピーディーに実現する • 「早くプロトできる、製品化/サービス化できる、  複製できる、バージョンアップできる」

    Digitalの強み→ソフトウェアの強みをビジネスにつなげる 例) 地震計をリリースするには時間がかかるが、スマホで動作する  地震計アプリならクイックに大量リリース&バージョンアップ可能  →エコシステム(インフラ会社、医療、食品etc)の拡大 技術が検証できる デジタルにより既存ビジネスの枠を超える アイデアがプロトになる プロトが新製品/新サービスになる
  5. 10 COVID-19を契機とした変化 生産性と品質を支える開発基盤 大チーム、SIer丸投げ→リモート前提の小チームでク イックリリース 標準化: どこででも通用する開発プロセス 差別化: しなやか(多様性)で燃え尽きないチーム ソフトウェア・ファースト

    使われるプロダクトやサービスを開発・運用 差別化領域の「手の内化」≠何でも自前主義 標準化: どうデータを集め、運用するか(SoR) →あり物の活用  オーバーカスタマイズしないでそのまま使う   ことで時代の進化(あり物のバージョンアッ  プ)を自社ビジネスの標準化に取り込む 差別化: どうユーザー体験を提供するか(SoE) →自社を選ぶ理由(何がスゴいのか)作り 2019~20年 ソフトウェア開発は何が変わったか? 2020年に明らかになったことの1つは、「どれだけ綿密 に計画を立てていても、人生は思いどおりにはいかな い」「理想のチームの規模とは、人生で起こる不測の事 態を吸収できるほどの人手がある規模」
  6. 11 ソフトウェア開発・運用におけるペインポイント プラン コード ビルド テスト リリース デプロイ 運用 監視

    機能や 動作環 境、 必要ス ペックや 予算 洗い出し (仮置き) エンジニ ア各自 が 自分の 環境で 開発 (しばし ば遅延) コードを 取りまと めて ビルド→ 問題あ れば エンジニ アに 確認・修 正 テスト ケース作 成・実行 (前工程 で遅延 すると、 十分な 時間が 取れな い) 取り まとめ + インス トール 手順等 作成 更新の 場合、 一定時 間サー ビス停止 し、プ レッ シャーの 中 更新 作業 コードに問題があって 動作しない、 アクセスが増えて スピード低下、 情報漏洩や外部からの 攻撃対策 で手一杯
  7. 12 顧客ニーズへの対応(変えること+変えないこと) プラン コード ビルド テスト リリース デプロイ 運用 監視

    ビジネスが継続する限り、プロジェクトは続く 市場が求める+自社が打ち出したい新しい機能を盛り込み ユーザインタフェースを改善することで利用しやすくすることで ビジネスに貢献したい ダウンタイムや待ち時間を減らし、 常に変わらず使える状態を保つことで ビジネスに貢献したい
  8. 13 ビジネスの継続と開発・運用の継続をつなげる プラン コード ビルド テスト リリース デプロイ 運用 監視

    継続的インテグレーション (CI) 継続的 デプロイ (CD) 自動化できない 完全自動化できない プルリクエスト(コードの追加・修正 )起点の自動化 ビジネスが継続する限り、プロジェクトは続く 共有リポ ジトリの 上で 常に 作業 コード追加・修正時には 常にビルド・テスト (最後にまとめてやらな い→早く失敗すれば 早く品質が安定する) サービス停止しないで 常にリリース、デプロイ (失敗時にはクイックに 修正 または 前バージョ ンに戻せる)仕組み 運用・監視しやすい 品質をコードに反映 (必要なデータの取得、 スケーラビリティの 確保)
  9. 14 ビジネスの継続と開発・運用の継続をつなげる プラン コード ビルド テスト リリース デプロイ 運用 監視

    継続的インテグレーション (CI) 継続的 デプロイ (CD) 自動化できない 完全自動化できない プルリクエスト(コードの追加・修正 )起点の自動化 ビジネスが継続する限り、プロジェクトは続く 共有リポ ジトリの 上で 常に 作業 コード追加・修正時には 常にビルド・テスト (最後にまとめてやらな い→早く失敗すれば 早く品質が安定する) サービス停止しないで 常にリリース、デプロイ (失敗時にはクイックに 修正 または 前バージョ ンに戻せる)仕組み 運用・監視しやすい 品質をコードに反映 (必要なデータの取得、 スケーラビリティの 確保) 品質はCI/CD、監視、テストなどDevOpsプロセスの質によって 左右されるが、重要なのは人。
  10. 18 CircleCIユーザーの 中央値(2020/08) ベンチマーク目標値 スループット ワークフローの平均実行数 0.7回/日 プルリクエストのマージごと いつでも(遠慮せずに)ビルド可能 実行時間

    ワークフローの平均実行時間 4分以内 5~10分 自動化可能なことは全て任せる 平均復旧時間 ワークフローの失敗~成功の平均時 間 56分以内 60分以内 大きな失敗を最後にではなく、すぐ に復旧できる失敗を早期に 成功率 ワークフローの成功数/実行数 デフォルトブランチで 80% デフォルトブランチで 90%以上 自動化における4つの評価ポイント ここの数値を「近い目標」として ここの数値をベンチマーク対象にする
  11. 28 Digital Transformationを実現するソフトウェア力を高め るには? 差別化観点では、 • CI/CDの自動化により、優れたエンジニアの「生産力」がプロダクトやサービスの 「競争力」にリアルタイムで連動するようにする • CI/CDの自動化により、「人には人でしかできない仕事」に注力してもらうことが、

    他社よりも自社を選んでもらえるプロダクトやサービスを提供するうえで重要 標準化観点では、 • 開発・運用プロセス(DevOps)が自動化を中心に全社で標準化されることで、 エンジニアを社内の注力プロジェクトにアサイン、早期立ち上げ可能 ◦ 社内での「転職(転プロジェクト)機会」増加により成長のチャンスが増える ◦ 社外からの転職者が仕事に慣れるまでの時間も短縮化できる
  12. 30 ソフトウェア開発における自動化とは? 2011 2008 2007 2006 2009 2012 2015 2007

    年2回の機能リリース データドリブン Infrastructure as Code (インフラの コード化) Out of the box→ Over the Air 最新コード + 履歴を クラウドに ビルドや テストの 自動化 コンテナに よる「器」 標準化 2013 コード~テスト~デプロイが自 動化で一気通貫 (リアルタイム) 今回のテーマではな い