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

ソフトウェアの内製化に継続性を〜CI/CDとCircleCI

 ソフトウェアの内製化に継続性を〜CI/CDとCircleCI

More Decks by Masahiko Funaki(舟木 将彦)

Other Decks in Technology

Transcript

  1. デジタル活用:ビジネスを変えるための道具立て Digital Transformation 〜 デジタルを活用することで、お客様との繋がり方を変える (Customer Engagement)  + 儲け方を変える (Business

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

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

    協業モデル2 +バッテリー 企業とコラボ 協業モデル3 再生可能エネ を販売 ベンチャー:早く行きたければ一人で進め 大企業:遠くまで行きたければみんなで進め カフェの場所を 管理 バッテリーの 位置・残量を管理 発電効率・コスト・ 需給を管理 ソフトウェアの ビジネス貢献 最初から ここは無理 ビジネスの成長+フィードバックを反映させながら開発、進化
  4. 13 DevOps + Biz + Sec(urity)が重要 • 顧客のニーズに 答える機能を 素早く実装

    • サービスを安定 提供し続けられる 仕組みの構築 マーケットニーズの創出・早期反映 + セキュリティ/コンプライアンスの保証
  5. 14 継続するビジネスを支えるソフトウェア開発を標準化 プラン コード ビルド テスト リリース デプ ロイ 運用

    監視 継続的インテグレーション (CI) 継続的 デプロイ (CD) 自動化できない 非正常系は 自動化できない 自動化できる→継続的であるために自動化すべき ビジネスが継続する限り、プロジェクトは続く コード追加・修正時は 常にビルド・テスト (最後にまとめてやらな い→早く失敗すれば 早く品質が安定する) サービス停止せず常に リリース/デプロイ (失敗時にはクイックに 修正 / 前バージョンに 戻せる)しくみ 共有 リポジトリ上 で 常に作業 運用・監視しやすい 品質をコードに反映 (必要なデータの取得、 スケーラビリティの 確保)
  6. ソフトウェア開発:過去と現在、これから 開発プロセスを、仕様が決まり社内で承認後 1年~数年で1回回し、 リリース(デプロイ)時に 新機能の数を誇るのではなく 開発プロセスを、プロトタイピングの時点から 1日~数週間ごとに1回回し、 短いペースで新機能や不具合の修正を 提供していく。 ・新機能とはいうものの、何を

     今更感が強い(世の中ではそれ  が当たり前で「新」ではない ) ・自分の求めていた機能がリリースされる  と、機能追加に対して感謝+他の人も実  は求めていたんだという共感が強まる 過去 現在、これから プラン コード ビルド テスト リリース スケジュールをリリースから逆算して テスト、ビルド、コードスケジュールを作るのではな く いつでもリリースできるよう、 常にテストされた+リリース可能な状態にしておく
  7. 「モノづくり」でも左側で品質を作りこんでいる デジタルの波は「モノづくり」においても、シフトレフトという言い方こそしないものの、 左側で品質を作りこんでいる • 製造業:CAD + シミュレーション … 少品種大量生産 ◦

    模型や実物を使ったテストは時間・費用がかかり、取得可能なデータ(の精度)に限りがある ◦ 設計データ(デジタルデータ)+シミュレーションでできるテストを切り分けて早期実施 • 建設業:BIM + フロントローディング … 少品種少量生産 ◦ 従来は紙や2次元CADの上で意匠・構造・設備間で個別に設計→現場力で柱や配管を「合わせこみ」 ◦ 3次元データ(BIM)を工程間で共有して進める→施主に対しても完成イメージで握ることが可能に • アパレル:3次元CAD + グレーディング … 多品種大量生産 ◦ 3次元のイラスト+2次元の型紙から服を作るのではなく、工程の初期から3次元CADを使って、 製品イメージ+製造図面を時間差なく一致させる ◦ サイズやプロポーションの違いによる図面の引き直しの自動化が可能に(最終チェックは人)
  8. 19 そのビジネスを分解したら「モード2」はどこか? ITの世界では価値・貢献観点から業務全体をモード1/モード2に分ける Digital Transformationにおいてもモード2を見定め、スピードアップすることが重要 モード1 変化が少なく、 確実性・安定性を 重視 モード2

    開発や改善スピー ド、利便性を重視 ゴール 差別化→ 利益拡大 効率化→ コスト削減 手段 DevOpsによる 内製 (現場ニーズ 迅速に反映) 既製品を そのまま使う (自動更新) 適用業務 顧客との 関係性が 必要な領域 会計 人事 生産管理... (ERP領域) モード2を クイックに 内製化する
  9. 20 Why CircleCI? CI/CD専業の商用ツールベンダーとして、 - さまざまな環境(クラウド、オンプレ、および組み合わせ )でビルド~デプロイ自動化の恩恵 - CI/CDを早く実行する(=開発者を待たせない )ための仕組み

    - キャッシュ、ワークスペース - Docker Layer Cache - インメモリのデータベースイメージの提供 - CI/CDで必要なオープンソースや様々なベンダー社様のツールやコンポーネントとの連携 (Orbs) - 単に「ビルド」~「デプロイ」が自動化できるという所にとどまらず、 開発の状況、問題、課題の見える化の仕組み (Insights)
  10. 21 お客様のインフラで CircleCIを実行 ご要望に合わせた利用形態をご提供 • フルコントール. お客様のインフラ 上で実行し、お客様の計画でアッ プデート •

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

    ワークフローの実行時間 4分以内 5~10分 自動化可能なことは全て任せる 復旧時間 ワークフローの失敗~成功の時間 56分以内 60分以内 大きな失敗を最後にではなく、すぐ に復旧できる失敗を早期に 成功率 ワークフローの成功数/実行数 デフォルトブランチで 80% デフォルトブランチで 90%以上 自動化における4つの評価ポイント ここの数値に「近い目標」として まずは追いつき ここの数値を「あるべき姿」として 目指す 現時点での数値を「課題」として 把握した上で
  12. 25 • ワークフローのメトリクスをインテリジェントに収 集・可視化 ◦ ワークフローやジョブ別の内訳 ◦ どのプロジェクト、ワークフロー、ジョブが失 敗し、最もクレジットを消費しているのか •

    API を使用してきめ細かいデータを収集。外部 サービスにエクスポート • CSV出力 • 追加のデータやより詳細なデータ収集は 続々と開発進行中(プレビュー版を随時 公開し、フィードバックを収集) Insights