Slide 1

Slide 1 text

1 ソフトウェアの内製化に継続性を 〜CI/CDとCircleCI CircleCI合同会社 Developer Advocate 舟木 将彦 (@mfunaki)

Slide 2

Slide 2 text

2 Agenda 1. CircleCI企業概要 2. 顧客との繋がり〜企業の抱える課題とその根源 3. ソフトウェア開発手法の変化 4. なぜCircleCI

Slide 3

Slide 3 text

3 1. CircleCI企業概要

Slide 4

Slide 4 text

CircleCIってどんな会社 ● 世界最大規模のクラウドCI/CD (継続的インテグレーション/継続的デプロイ)サービス ● ミッション:「世界中のだれもが、思い浮かんだアイデアを        すぐにソフトウェアとして配信できるように支援する」 ● 2011年設立、サンフランシスコに本社 以来、10年間でユーザベース10万社 2021/05/11 にSeries Fで1億ドルを調達 ● 600+人の社員(米国、東京、英国、蘭にオフィス)

Slide 5

Slide 5 text

5 ソフトウェア開発に「継続性」を取り入れられたお客様(一部)

Slide 6

Slide 6 text

6 2. 顧客との繋がり〜 企業の抱える課題とその根源

Slide 7

Slide 7 text

デジタル活用:ビジネスを変えるための道具立て Digital Transformation 〜 デジタルを活用することで、お客様との繋がり方を変える (Customer Engagement)  + 儲け方を変える (Business Model) 基盤技術 ・ビッグデータ(お客様の行動+サプライチェーンがデジタルデータに ) + IoT ・AI/Deep Learning…: データが多すぎて「意味」を把握しきれない ・セキュリティ:コピーコスト ゼロだからこその危険性 → 要は、5感:スマホ、IoT、脳みそ:クラウド→行動変容が重要

Slide 8

Slide 8 text

デジタル活用:一人で変わるか、みんなで変わるか Digital Transformation 〜 デジタルを活用することで、お客様との繋がり方を変える (Customer Engagement)  + 儲け方を変える (Business Model) クイックウィン 電源カフェを アプリで検索 課題 スマホを 充電したい 協業モデル1 カフェとコラボ →長居はイヤ 協業モデル2 +バッテリー 企業とコラボ 協業モデル3 再生可能エネ を販売 ベンチャー:早く行きたければ一人で進め 大企業:遠くまで行きたければみんなで進め 参入障壁 (マネしやすさ) ベンチャーも大企業も それぞれの持ち場でソフトウェアが「コラボ」することで強みを発揮 カフェの場所を 管理 バッテリーの 位置・残量を管理 発電効率・コスト・ 需給を管理 ソフトウェアの ビジネス貢献

Slide 9

Slide 9 text

9 3. ソフトウェア開発手法の変化

Slide 10

Slide 10 text

ソフトウェアは開発と進化を繰り返す クイックウィン 電源カフェを アプリで検索 課題 スマホを 充電したい 協業モデル1 カフェとコラボ →長居はイヤ 協業モデル2 +バッテリー 企業とコラボ 協業モデル3 再生可能エネ を販売 ベンチャー:早く行きたければ一人で進め 大企業:遠くまで行きたければみんなで進め カフェの場所を 管理 バッテリーの 位置・残量を管理 発電効率・コスト・ 需給を管理 ソフトウェアの ビジネス貢献 最初から ここは無理 ビジネスの成長+フィードバックを反映させながら開発、進化

Slide 11

Slide 11 text

ソフトウェア開発:過去と現在、これから 開発プロセスを、仕様が決まり社内で承認後 1年~数年で1回回し、 リリース(デプロイ)時に 新機能の数を誇るのではなく 開発プロセスを、プロトタイピングの時点から 1日~数週間ごとに1回回し、 短いペースで新機能や不具合の修正を 提供していく。 ・新機能とはいうものの、何を  今更感が強い(世の中ではそれ  が当たり前で「新」ではない ) ・自分の求めていた機能がリリースされる  と、機能追加に対して感謝+他の人も実  は求めていたんだという共感が強まる 過去 現在、これから

Slide 12

Slide 12 text

12 使われない機能の実装に投資しつづけない 開発プロセスを、プロトタイピングの時点から 1日~数週間ごとに1回回し、 短いペースで新機能や不具合の修正を 提供していく。 ・自分の求めていた機能がリリースされると、  機能追加に対して感謝+他の人も実は求めて  いたんだという共感が強まる 新機能を一度にたくさん提供しても、 『Chaos Report、Standish Group、2000』

Slide 13

Slide 13 text

13 DevOps + Biz + Sec(urity)が重要 • 顧客のニーズに 答える機能を 素早く実装 • サービスを安定 提供し続けられる 仕組みの構築 マーケットニーズの創出・早期反映 + セキュリティ/コンプライアンスの保証

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

15 4. なぜCircleCI

Slide 16

Slide 16 text

ソフトウェア開発:過去と現在、これから 開発プロセスを、仕様が決まり社内で承認後 1年~数年で1回回し、 リリース(デプロイ)時に 新機能の数を誇るのではなく 開発プロセスを、プロトタイピングの時点から 1日~数週間ごとに1回回し、 短いペースで新機能や不具合の修正を 提供していく。 ・新機能とはいうものの、何を  今更感が強い(世の中ではそれ  が当たり前で「新」ではない ) ・自分の求めていた機能がリリースされる  と、機能追加に対して感謝+他の人も実  は求めていたんだという共感が強まる 過去 現在、これから プラン コード ビルド テスト リリース スケジュールをリリースから逆算して テスト、ビルド、コードスケジュールを作るのではな く いつでもリリースできるよう、 常にテストされた+リリース可能な状態にしておく

Slide 17

Slide 17 text

「モノづくり」でも左側で品質を作りこんでいる デジタルの波は「モノづくり」においても、シフトレフトという言い方こそしないものの、 左側で品質を作りこんでいる ● 製造業:CAD + シミュレーション … 少品種大量生産 ○ 模型や実物を使ったテストは時間・費用がかかり、取得可能なデータ(の精度)に限りがある ○ 設計データ(デジタルデータ)+シミュレーションでできるテストを切り分けて早期実施 ● 建設業:BIM + フロントローディング … 少品種少量生産 ○ 従来は紙や2次元CADの上で意匠・構造・設備間で個別に設計→現場力で柱や配管を「合わせこみ」 ○ 3次元データ(BIM)を工程間で共有して進める→施主に対しても完成イメージで握ることが可能に ● アパレル:3次元CAD + グレーディング … 多品種大量生産 ○ 3次元のイラスト+2次元の型紙から服を作るのではなく、工程の初期から3次元CADを使って、 製品イメージ+製造図面を時間差なく一致させる ○ サイズやプロポーションの違いによる図面の引き直しの自動化が可能に(最終チェックは人)

Slide 18

Slide 18 text

18 CircleCI最大の競合製品 今どき、人手でやっていませんか? 自分で仕組みから作ろうとしていませんか? ビルド、テスト、リリース、デプロイ

Slide 19

Slide 19 text

19 そのビジネスを分解したら「モード2」はどこか? ITの世界では価値・貢献観点から業務全体をモード1/モード2に分ける Digital Transformationにおいてもモード2を見定め、スピードアップすることが重要 モード1 変化が少なく、 確実性・安定性を 重視 モード2 開発や改善スピー ド、利便性を重視 ゴール 差別化→ 利益拡大 効率化→ コスト削減 手段 DevOpsによる 内製 (現場ニーズ 迅速に反映) 既製品を そのまま使う (自動更新) 適用業務 顧客との 関係性が 必要な領域 会計 人事 生産管理... (ERP領域) モード2を クイックに 内製化する

Slide 20

Slide 20 text

20 Why CircleCI? CI/CD専業の商用ツールベンダーとして、 - さまざまな環境(クラウド、オンプレ、および組み合わせ )でビルド~デプロイ自動化の恩恵 - CI/CDを早く実行する(=開発者を待たせない )ための仕組み - キャッシュ、ワークスペース - Docker Layer Cache - インメモリのデータベースイメージの提供 - CI/CDで必要なオープンソースや様々なベンダー社様のツールやコンポーネントとの連携 (Orbs) - 単に「ビルド」~「デプロイ」が自動化できるという所にとどまらず、 開発の状況、問題、課題の見える化の仕組み (Insights)

Slide 21

Slide 21 text

21 お客様のインフラで CircleCIを実行 ご要望に合わせた利用形態をご提供 ● フルコントール. お客様のインフラ 上で実行し、お客様の計画でアッ プデート ● セキュリティ. お客様のVCP内で実 行。LDAP連携もサポート ● 低オーバーヘッド. AWS上に構築 することでオートスケーリンググ ループを構成 ● カスタマイズ. カスタムマシンイメー ジ、リソースクラス、データストアの 外部化など ● ハイブリッド. お客様自身の環境上 でビルドを実行。UIやInsightsなど のプラットフォームはCircleCIがす べて管理 ● セキュリティ. クラウドからデータを 安全に引き出し、結果をクラウドに 返却 ● カスタマイズ. さまざまな実行環境 上で動作。ニーズに合わせてカス タマイズ可能 ● フルマネージド. アプリケーションとビ ルドエージェントのすべてをCircleCI が管理・アップデート ● スケーラブル. 最大80並列での実行。 年間契約でさらに並列度を上げること が可能 ● フレキシブル. すべての主要なOSを サポート。カスタムDockerイメージも 利用可能 ● セキュリティ. FedRAMP, SOC2 Type II, Privacy Shield compliantを取得済 み お客様のパイプラインに応じてスケール 両者の良いところを組み合わせ Cloud Server Runner

Slide 22

Slide 22 text

22 Orbs - 効率化+品質/セキュリティ/コンプライアンス 効率化 セキュリティ/ コンプライアンス 効率化 品質 品質/ コンプライアンス 効率化

Slide 23

Slide 23 text

23 実データから見る自動化(CI/CD) 調査期間  2020/08/01~30  (2019年版は90日間) 調査対象  44,000組織  160,000プロジェクト  200万ジョブ/日 https://circleci.com/ja/resources/2020-state-of-software-delivery/

Slide 24

Slide 24 text

24 CircleCIユーザーの 中央値(2020/08) ベンチマーク目標値 スループット ワークフローの実行数 0.7回/日 プルリクエストのマージごと いつでも(遠慮せずに)ビルド可能 実行時間 ワークフローの実行時間 4分以内 5~10分 自動化可能なことは全て任せる 復旧時間 ワークフローの失敗~成功の時間 56分以内 60分以内 大きな失敗を最後にではなく、すぐ に復旧できる失敗を早期に 成功率 ワークフローの成功数/実行数 デフォルトブランチで 80% デフォルトブランチで 90%以上 自動化における4つの評価ポイント ここの数値に「近い目標」として まずは追いつき ここの数値を「あるべき姿」として 目指す 現時点での数値を「課題」として 把握した上で

Slide 25

Slide 25 text

25 ● ワークフローのメトリクスをインテリジェントに収 集・可視化 ○ ワークフローやジョブ別の内訳 ○ どのプロジェクト、ワークフロー、ジョブが失 敗し、最もクレジットを消費しているのか ● API を使用してきめ細かいデータを収集。外部 サービスにエクスポート ● CSV出力 ● 追加のデータやより詳細なデータ収集は 続々と開発進行中(プレビュー版を随時 公開し、フィードバックを収集) Insights

Slide 26

Slide 26 text

26 現行ビジネス「平時に問題なく動いている仕組みを、非常時にも 継続的にお届け」 + 新規ビジネス「適材適所でどんなメンバーでも貢献でき、 随時参加するの際の障壁が低い」 (やっていることの見える化、やり方の標準化 )ことによる継続性が重要