Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ソフトウェアの内製化に継続性を〜CI/CDとCircleCI
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Masahiko Funaki(舟木 将彦)
July 28, 2021
Technology
31
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ソフトウェアの内製化に継続性を〜CI/CDとCircleCI
Masahiko Funaki(舟木 将彦)
July 28, 2021
More Decks by Masahiko Funaki(舟木 将彦)
See All by Masahiko Funaki(舟木 将彦)
202605-進化し続けるUIに追従.pdf
mfunaki
0
22
mablの要素選択を完全理解〜壊れないテストを作るための技術選択
mfunaki
0
46
知って得するmabl活用Tips〜「こんな時どうする?」実践機能ガイド
mfunaki
0
58
20260422-mablで変わるテスト自動化_品質_速さ_コストの三角形を崩す5つのアプローチ.pdf
mfunaki
0
85
手順(プロンプト)だけで テストを自動作成~テスト作成エージェントを使いこなすための 実践プロンプト術
mfunaki
0
150
「見た目」と「意味」をAIが判定 ~ビジュアルアサーションで変わる テストの守備範囲~
mfunaki
0
68
イントラネットの社内アプリからローカル開発環境まで〜mabl Linkで実現する閉域網アプリケーションのセキュアなテスト実行
mfunaki
0
47
フルスタックQAへの第一歩。Web UIとAPIテストを統合した品質保証戦略
mfunaki
0
110
mabl新機能解説:プロンプトによるテスト生成とローカル/クラウド実行のシームレスな統合
mfunaki
0
110
Other Decks in Technology
See All in Technology
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
150
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
140
MCP Appsを作ってみよう
iwamot
PRO
4
650
LLMにもCAP定理があるという話
harukasakihara
0
370
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
190
攻撃者視点で考えるDetection Engineering
cryptopeg
3
1.8k
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
340
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
Android の公式 Skill / Android skills
yanzm
0
150
自律型AIエージェントは何を破壊するのか
kojira
0
160
入門!AWS Blocks
ysuzuki
1
120
失敗を資産に変えるClaude Code
shinyasaita
0
660
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
YesSQL, Process and Tooling at Scale
rocio
174
15k
GraphQLとの向き合い方2022年版
quramy
50
15k
Done Done
chrislema
186
16k
Fireside Chat
paigeccino
42
3.9k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
620
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
From π to Pie charts
rasagy
0
210
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
320
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Transcript
1 ソフトウェアの内製化に継続性を 〜CI/CDとCircleCI CircleCI合同会社 Developer Advocate 舟木 将彦 (@mfunaki)
2 Agenda 1. CircleCI企業概要 2. 顧客との繋がり〜企業の抱える課題とその根源 3. ソフトウェア開発手法の変化 4. なぜCircleCI
3 1. CircleCI企業概要
CircleCIってどんな会社 • 世界最大規模のクラウドCI/CD (継続的インテグレーション/継続的デプロイ)サービス • ミッション:「世界中のだれもが、思い浮かんだアイデアを すぐにソフトウェアとして配信できるように支援する」 • 2011年設立、サンフランシスコに本社 以来、10年間でユーザベース10万社
2021/05/11 にSeries Fで1億ドルを調達 • 600+人の社員(米国、東京、英国、蘭にオフィス)
5 ソフトウェア開発に「継続性」を取り入れられたお客様(一部)
6 2. 顧客との繋がり〜 企業の抱える課題とその根源
デジタル活用:ビジネスを変えるための道具立て Digital Transformation 〜 デジタルを活用することで、お客様との繋がり方を変える (Customer Engagement) + 儲け方を変える (Business
Model) 基盤技術 ・ビッグデータ(お客様の行動+サプライチェーンがデジタルデータに ) + IoT ・AI/Deep Learning…: データが多すぎて「意味」を把握しきれない ・セキュリティ:コピーコスト ゼロだからこその危険性 → 要は、5感:スマホ、IoT、脳みそ:クラウド→行動変容が重要
デジタル活用:一人で変わるか、みんなで変わるか Digital Transformation 〜 デジタルを活用することで、お客様との繋がり方を変える (Customer Engagement) + 儲け方を変える (Business
Model) クイックウィン 電源カフェを アプリで検索 課題 スマホを 充電したい 協業モデル1 カフェとコラボ →長居はイヤ 協業モデル2 +バッテリー 企業とコラボ 協業モデル3 再生可能エネ を販売 ベンチャー:早く行きたければ一人で進め 大企業:遠くまで行きたければみんなで進め 参入障壁 (マネしやすさ) ベンチャーも大企業も それぞれの持ち場でソフトウェアが「コラボ」することで強みを発揮 カフェの場所を 管理 バッテリーの 位置・残量を管理 発電効率・コスト・ 需給を管理 ソフトウェアの ビジネス貢献
9 3. ソフトウェア開発手法の変化
ソフトウェアは開発と進化を繰り返す クイックウィン 電源カフェを アプリで検索 課題 スマホを 充電したい 協業モデル1 カフェとコラボ →長居はイヤ
協業モデル2 +バッテリー 企業とコラボ 協業モデル3 再生可能エネ を販売 ベンチャー:早く行きたければ一人で進め 大企業:遠くまで行きたければみんなで進め カフェの場所を 管理 バッテリーの 位置・残量を管理 発電効率・コスト・ 需給を管理 ソフトウェアの ビジネス貢献 最初から ここは無理 ビジネスの成長+フィードバックを反映させながら開発、進化
ソフトウェア開発:過去と現在、これから 開発プロセスを、仕様が決まり社内で承認後 1年~数年で1回回し、 リリース(デプロイ)時に 新機能の数を誇るのではなく 開発プロセスを、プロトタイピングの時点から 1日~数週間ごとに1回回し、 短いペースで新機能や不具合の修正を 提供していく。 ・新機能とはいうものの、何を
今更感が強い(世の中ではそれ が当たり前で「新」ではない ) ・自分の求めていた機能がリリースされる と、機能追加に対して感謝+他の人も実 は求めていたんだという共感が強まる 過去 現在、これから
12 使われない機能の実装に投資しつづけない 開発プロセスを、プロトタイピングの時点から 1日~数週間ごとに1回回し、 短いペースで新機能や不具合の修正を 提供していく。 ・自分の求めていた機能がリリースされると、 機能追加に対して感謝+他の人も実は求めて いたんだという共感が強まる 新機能を一度にたくさん提供しても、
『Chaos Report、Standish Group、2000』
13 DevOps + Biz + Sec(urity)が重要 • 顧客のニーズに 答える機能を 素早く実装
• サービスを安定 提供し続けられる 仕組みの構築 マーケットニーズの創出・早期反映 + セキュリティ/コンプライアンスの保証
14 継続するビジネスを支えるソフトウェア開発を標準化 プラン コード ビルド テスト リリース デプ ロイ 運用
監視 継続的インテグレーション (CI) 継続的 デプロイ (CD) 自動化できない 非正常系は 自動化できない 自動化できる→継続的であるために自動化すべき ビジネスが継続する限り、プロジェクトは続く コード追加・修正時は 常にビルド・テスト (最後にまとめてやらな い→早く失敗すれば 早く品質が安定する) サービス停止せず常に リリース/デプロイ (失敗時にはクイックに 修正 / 前バージョンに 戻せる)しくみ 共有 リポジトリ上 で 常に作業 運用・監視しやすい 品質をコードに反映 (必要なデータの取得、 スケーラビリティの 確保)
15 4. なぜCircleCI
ソフトウェア開発:過去と現在、これから 開発プロセスを、仕様が決まり社内で承認後 1年~数年で1回回し、 リリース(デプロイ)時に 新機能の数を誇るのではなく 開発プロセスを、プロトタイピングの時点から 1日~数週間ごとに1回回し、 短いペースで新機能や不具合の修正を 提供していく。 ・新機能とはいうものの、何を
今更感が強い(世の中ではそれ が当たり前で「新」ではない ) ・自分の求めていた機能がリリースされる と、機能追加に対して感謝+他の人も実 は求めていたんだという共感が強まる 過去 現在、これから プラン コード ビルド テスト リリース スケジュールをリリースから逆算して テスト、ビルド、コードスケジュールを作るのではな く いつでもリリースできるよう、 常にテストされた+リリース可能な状態にしておく
「モノづくり」でも左側で品質を作りこんでいる デジタルの波は「モノづくり」においても、シフトレフトという言い方こそしないものの、 左側で品質を作りこんでいる • 製造業:CAD + シミュレーション … 少品種大量生産 ◦
模型や実物を使ったテストは時間・費用がかかり、取得可能なデータ(の精度)に限りがある ◦ 設計データ(デジタルデータ)+シミュレーションでできるテストを切り分けて早期実施 • 建設業:BIM + フロントローディング … 少品種少量生産 ◦ 従来は紙や2次元CADの上で意匠・構造・設備間で個別に設計→現場力で柱や配管を「合わせこみ」 ◦ 3次元データ(BIM)を工程間で共有して進める→施主に対しても完成イメージで握ることが可能に • アパレル:3次元CAD + グレーディング … 多品種大量生産 ◦ 3次元のイラスト+2次元の型紙から服を作るのではなく、工程の初期から3次元CADを使って、 製品イメージ+製造図面を時間差なく一致させる ◦ サイズやプロポーションの違いによる図面の引き直しの自動化が可能に(最終チェックは人)
18 CircleCI最大の競合製品 今どき、人手でやっていませんか? 自分で仕組みから作ろうとしていませんか? ビルド、テスト、リリース、デプロイ
19 そのビジネスを分解したら「モード2」はどこか? ITの世界では価値・貢献観点から業務全体をモード1/モード2に分ける Digital Transformationにおいてもモード2を見定め、スピードアップすることが重要 モード1 変化が少なく、 確実性・安定性を 重視 モード2
開発や改善スピー ド、利便性を重視 ゴール 差別化→ 利益拡大 効率化→ コスト削減 手段 DevOpsによる 内製 (現場ニーズ 迅速に反映) 既製品を そのまま使う (自動更新) 適用業務 顧客との 関係性が 必要な領域 会計 人事 生産管理... (ERP領域) モード2を クイックに 内製化する
20 Why CircleCI? CI/CD専業の商用ツールベンダーとして、 - さまざまな環境(クラウド、オンプレ、および組み合わせ )でビルド~デプロイ自動化の恩恵 - CI/CDを早く実行する(=開発者を待たせない )ための仕組み
- キャッシュ、ワークスペース - Docker Layer Cache - インメモリのデータベースイメージの提供 - CI/CDで必要なオープンソースや様々なベンダー社様のツールやコンポーネントとの連携 (Orbs) - 単に「ビルド」~「デプロイ」が自動化できるという所にとどまらず、 開発の状況、問題、課題の見える化の仕組み (Insights)
21 お客様のインフラで CircleCIを実行 ご要望に合わせた利用形態をご提供 • フルコントール. お客様のインフラ 上で実行し、お客様の計画でアッ プデート •
セキュリティ. お客様のVCP内で実 行。LDAP連携もサポート • 低オーバーヘッド. AWS上に構築 することでオートスケーリンググ ループを構成 • カスタマイズ. カスタムマシンイメー ジ、リソースクラス、データストアの 外部化など • ハイブリッド. お客様自身の環境上 でビルドを実行。UIやInsightsなど のプラットフォームはCircleCIがす べて管理 • セキュリティ. クラウドからデータを 安全に引き出し、結果をクラウドに 返却 • カスタマイズ. さまざまな実行環境 上で動作。ニーズに合わせてカス タマイズ可能 • フルマネージド. アプリケーションとビ ルドエージェントのすべてをCircleCI が管理・アップデート • スケーラブル. 最大80並列での実行。 年間契約でさらに並列度を上げること が可能 • フレキシブル. すべての主要なOSを サポート。カスタムDockerイメージも 利用可能 • セキュリティ. FedRAMP, SOC2 Type II, Privacy Shield compliantを取得済 み お客様のパイプラインに応じてスケール 両者の良いところを組み合わせ Cloud Server Runner
22 Orbs - 効率化+品質/セキュリティ/コンプライアンス 効率化 セキュリティ/ コンプライアンス 効率化 品質 品質/
コンプライアンス 効率化
23 実データから見る自動化(CI/CD) 調査期間 2020/08/01~30 (2019年版は90日間) 調査対象 44,000組織 160,000プロジェクト 200万ジョブ/日 https://circleci.com/ja/resources/2020-state-of-software-delivery/
24 CircleCIユーザーの 中央値(2020/08) ベンチマーク目標値 スループット ワークフローの実行数 0.7回/日 プルリクエストのマージごと いつでも(遠慮せずに)ビルド可能 実行時間
ワークフローの実行時間 4分以内 5~10分 自動化可能なことは全て任せる 復旧時間 ワークフローの失敗~成功の時間 56分以内 60分以内 大きな失敗を最後にではなく、すぐ に復旧できる失敗を早期に 成功率 ワークフローの成功数/実行数 デフォルトブランチで 80% デフォルトブランチで 90%以上 自動化における4つの評価ポイント ここの数値に「近い目標」として まずは追いつき ここの数値を「あるべき姿」として 目指す 現時点での数値を「課題」として 把握した上で
25 • ワークフローのメトリクスをインテリジェントに収 集・可視化 ◦ ワークフローやジョブ別の内訳 ◦ どのプロジェクト、ワークフロー、ジョブが失 敗し、最もクレジットを消費しているのか •
API を使用してきめ細かいデータを収集。外部 サービスにエクスポート • CSV出力 • 追加のデータやより詳細なデータ収集は 続々と開発進行中(プレビュー版を随時 公開し、フィードバックを収集) Insights
26 現行ビジネス「平時に問題なく動いている仕組みを、非常時にも 継続的にお届け」 + 新規ビジネス「適材適所でどんなメンバーでも貢献でき、 随時参加するの際の障壁が低い」 (やっていることの見える化、やり方の標準化 )ことによる継続性が重要