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
ビジネスの成長に貢献するソフトウェア開発効率化
Search
Masahiko Funaki(舟木 将彦)
January 08, 2021
Technology
0
3
ビジネスの成長に貢献するソフトウェア開発効率化
Digital Transformationを支えるCI/CD
Masahiko Funaki(舟木 将彦)
January 08, 2021
Tweet
Share
More Decks by Masahiko Funaki(舟木 将彦)
See All by Masahiko Funaki(舟木 将彦)
Harness the Power of Advanced LLM and CI/CD Practices
mfunaki
0
320
CircleCI によるソフトウェア開発の品質向上と効率化の実現
mfunaki
0
190
CircleCI と Argo Rollouts で 実現する Kubernetes 上の プログレッシブデリバリー
mfunaki
0
95
はじめてのCircleCI
mfunaki
0
25
CircleCIでChatGPTにエラーの解説を頼んでみた
mfunaki
0
540
自動化→部品化すると社内開発は楽しくなる
mfunaki
0
35
テストの自動化~簡単に始める、みんなで使う、現況を捉える
mfunaki
0
36
テストの自動化 〜 簡単に始める、みんなで使う、現況を捉える
mfunaki
0
18
CircleCIで実現できる「高速、安全なソフトウェア開発」
mfunaki
0
160
Other Decks in Technology
See All in Technology
Lambdaと地方とコミュニティ
miu_crescent
2
370
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
610
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
AGIについてChatGPTに聞いてみた
blueb
0
130
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
490
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
520
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Code Reviewing Like a Champion
maltzj
520
39k
A designer walks into a library…
pauljervisheath
204
24k
Rails Girls Zürich Keynote
gr2m
94
13k
Six Lessons from altMBA
skipperchong
27
3.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Navigating Team Friction
lara
183
14k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Transcript
1 ビジネスの成長に貢献する ソフトウェア開発効率化 ~Digital Transformationを支えるCI/CD~ CircleCI合同会社 マーケティング部 Developer Advocate 舟木
将彦 (@mfunaki) #CircleCIJp (2021/01/08)
Introduction to CircleCI • 世界最大規模のクラウド CI/CD サービス • より良いコードをより速く、簡単にリリースすることを可能に •
2011年設立、サンフランシスコ本社 • 300人の社員(米国、東京、英国にオフィス) • 20年4月 1億ドルのシリーズEを実施、合計2億1,500万ドルを調達 Representative Customers
DX(Digital Transformation)やれ って何やるの?
4 ファースト ステップ 1. ツールの導入や新技術のPoC 4 ツールの導入 Slack, Zoom, Microsoft
Teams • 同じ場所にいなくてもビデオでコミュニケー ション可能(場所の制約からの解放 ) • 同じ時間でなくてもチャットでコミュニケー ション可能(時間の制約からの解放 ) • 音声認識や文字認識によりデータをだれで も検索利用可能(媒体の制約からの解放 ) 新技術のPoC(コンセプト検証) IoT/AI/ML(機械学習) • 各種センサを使いデータ収集・共有可能 (場 所の制約や記憶の制約からの解放 ) • 品質検査(見落としや見過ごしなどのヒュー マンエラーからの解放 ) • 故障予兆やトレンド予測 (ノウハウの属人性 からの解放) 社内がつながる 技術が検証できる 顧客とつながる デジタルにより既存ビジネスの枠を超える
5 ファースト ステップ 2. ワークショップによる新規ビジネス創出 5 デザイン シンキング 課題解決ではなく真の課題を定義し直す •
顧客は誰で、抱えている課題 (実現したいこ と)は何かを観察と共感を通じて捉える • 現状のやり方(プロセス)の中で、何がブロッ カーになっているのかを捉える • ブロッカーを排除/乗り越えられない原因 (真の課題)を定義し直す(リフレーム) アイデアソン/ハッカソン 解決方法を探り、プロトを通じて検証する • さまざまな観点や技術をもとに解決方法を 量産する • クイックプロトタイプを作ることにより、解決 方法の実現可能性を検証する • クイックプロトタイプを使うことにより、効果 (課題解決の実効性)を評価する (既存・新規)顧客を理解する アイデアがプロトになる 顧客が自社を選ぶ理由ができる プロトが新製品/新サービスになる
6 3. DXに取り組み始めた→DXがビジネスをドライブへ 6 • 「PoCはやってみた」「アイデアは出してみた」から 「新製品/新サービス」をスピーディーに実現する • 「早くプロトできる、製品化/サービス化できる、 複製できる、バージョンアップできる」
Digitalの強み→ソフトウェアの強みをビジネスにつなげる 例) 地震計をリリースするには時間がかかるが、スマホで動作する 地震計アプリならクイックに大量リリース&バージョンアップ可能 →エコシステム(インフラ会社、医療、食品etc)の拡大 技術が検証できる デジタルにより既存ビジネスの枠を超える アイデアがプロトになる プロトが新製品/新サービスになる
スピーディーに ってどうするの?
8 CircleCIのビジョン 世界中のだれもが、思い浮かんだアイデアを すぐにソフトウェアとして配信できるように支援する Make it as easy as possible
to go from idea to delivery 8
日本はホワイトカラーの生産性は低いが、 製造業(ものづくり)の生産性は他国より優れている → 過去(2000年)までの常識 ただし、日本の生産性が下がっていたわけではない →ほぼ横ばい「何も変わってこなかった」 日本以外の各国は人力ではなく、デジタル・ ITを 活用することで生産性を高めてきた (ただし、アイルランドのように低税率の法人税で
多国籍企業を誘致し、ものづくりは他国で、売り上げは 自国でという現実には留意が必要 ) 9 日本の ものづくり生産性 出典: 日本生産性本部「労働生産性の国際比較 2019」
10 COVID-19を契機とした変化 生産性と品質を支える開発基盤 大チーム、SIer丸投げ→リモート前提の小チームでク イックリリース 標準化: どこででも通用する開発プロセス 差別化: しなやか(多様性)で燃え尽きないチーム ソフトウェア・ファースト
使われるプロダクトやサービスを開発・運用 差別化領域の「手の内化」≠何でも自前主義 標準化: どうデータを集め、運用するか(SoR) →あり物の活用 オーバーカスタマイズしないでそのまま使う ことで時代の進化(あり物のバージョンアッ プ)を自社ビジネスの標準化に取り込む 差別化: どうユーザー体験を提供するか(SoE) →自社を選ぶ理由(何がスゴいのか)作り 2019~20年 ソフトウェア開発は何が変わったか? 2020年に明らかになったことの1つは、「どれだけ綿密 に計画を立てていても、人生は思いどおりにはいかな い」「理想のチームの規模とは、人生で起こる不測の事 態を吸収できるほどの人手がある規模」
11 ソフトウェア開発・運用におけるペインポイント プラン コード ビルド テスト リリース デプロイ 運用 監視
機能や 動作環 境、 必要ス ペックや 予算 洗い出し (仮置き) エンジニ ア各自 が 自分の 環境で 開発 (しばし ば遅延) コードを 取りまと めて ビルド→ 問題あ れば エンジニ アに 確認・修 正 テスト ケース作 成・実行 (前工程 で遅延 すると、 十分な 時間が 取れな い) 取り まとめ + インス トール 手順等 作成 更新の 場合、 一定時 間サー ビス停止 し、プ レッ シャーの 中 更新 作業 コードに問題があって 動作しない、 アクセスが増えて スピード低下、 情報漏洩や外部からの 攻撃対策 で手一杯
12 顧客ニーズへの対応(変えること+変えないこと) プラン コード ビルド テスト リリース デプロイ 運用 監視
ビジネスが継続する限り、プロジェクトは続く 市場が求める+自社が打ち出したい新しい機能を盛り込み ユーザインタフェースを改善することで利用しやすくすることで ビジネスに貢献したい ダウンタイムや待ち時間を減らし、 常に変わらず使える状態を保つことで ビジネスに貢献したい
13 ビジネスの継続と開発・運用の継続をつなげる プラン コード ビルド テスト リリース デプロイ 運用 監視
継続的インテグレーション (CI) 継続的 デプロイ (CD) 自動化できない 完全自動化できない プルリクエスト(コードの追加・修正 )起点の自動化 ビジネスが継続する限り、プロジェクトは続く 共有リポ ジトリの 上で 常に 作業 コード追加・修正時には 常にビルド・テスト (最後にまとめてやらな い→早く失敗すれば 早く品質が安定する) サービス停止しないで 常にリリース、デプロイ (失敗時にはクイックに 修正 または 前バージョ ンに戻せる)仕組み 運用・監視しやすい 品質をコードに反映 (必要なデータの取得、 スケーラビリティの 確保)
14 ビジネスの継続と開発・運用の継続をつなげる プラン コード ビルド テスト リリース デプロイ 運用 監視
継続的インテグレーション (CI) 継続的 デプロイ (CD) 自動化できない 完全自動化できない プルリクエスト(コードの追加・修正 )起点の自動化 ビジネスが継続する限り、プロジェクトは続く 共有リポ ジトリの 上で 常に 作業 コード追加・修正時には 常にビルド・テスト (最後にまとめてやらな い→早く失敗すれば 早く品質が安定する) サービス停止しないで 常にリリース、デプロイ (失敗時にはクイックに 修正 または 前バージョ ンに戻せる)仕組み 運用・監視しやすい 品質をコードに反映 (必要なデータの取得、 スケーラビリティの 確保) 品質はCI/CD、監視、テストなどDevOpsプロセスの質によって 左右されるが、重要なのは人。
CI/CDの導入効果 を実例で知りたい
16 実データから見る自動化(CI/CD) 調査期間 2020/08/01~30 (2019年版は90日間) 調査対象 44,000組織 160,000プロジェクト 200万ジョブ/日
17 自動化における4つの評価ポイント • スループット 1日あたりのワークフロー(CI+CD)の平均実行数 • 実行時間 ワークフローの平均実行時間 • 平均復旧時間
ワークフロー失敗~成功の平均時間 • 成功率 ワークフロー成功数を実行数で割った商
18 CircleCIユーザーの 中央値(2020/08) ベンチマーク目標値 スループット ワークフローの平均実行数 0.7回/日 プルリクエストのマージごと いつでも(遠慮せずに)ビルド可能 実行時間
ワークフローの平均実行時間 4分以内 5~10分 自動化可能なことは全て任せる 平均復旧時間 ワークフローの失敗~成功の平均時 間 56分以内 60分以内 大きな失敗を最後にではなく、すぐ に復旧できる失敗を早期に 成功率 ワークフローの成功数/実行数 デフォルトブランチで 80% デフォルトブランチで 90%以上 自動化における4つの評価ポイント ここの数値を「近い目標」として ここの数値をベンチマーク対象にする
なぜCircleCIを選ぶべきなのか を知りたい
20 CI/CDマーケットにおけるCircleCIの位置づけ CircleCI https://www.g2.com/categories/continuous-integration?segment=mid-market#grid
21 CI/CDを簡単に定義するためのパーツ(Orbs)が充実 パートナー様製 Orbs CircleCI 製 Orbs
数多くのお客様のビジネスをCI/CDの面から支えている実績
日本語のウェブサイト・技術情報・情報発信
コミュニティ起点での豊富な情報とエンジニアの成長支援
教育やPoCレベル以上のリアルユースケース
雑誌・書籍・技術系同人誌が充実
ソフトウェア力を高め ビジネス貢献につなげていただきたい
28 Digital Transformationを実現するソフトウェア力を高め るには? 差別化観点では、 • CI/CDの自動化により、優れたエンジニアの「生産力」がプロダクトやサービスの 「競争力」にリアルタイムで連動するようにする • CI/CDの自動化により、「人には人でしかできない仕事」に注力してもらうことが、
他社よりも自社を選んでもらえるプロダクトやサービスを提供するうえで重要 標準化観点では、 • 開発・運用プロセス(DevOps)が自動化を中心に全社で標準化されることで、 エンジニアを社内の注力プロジェクトにアサイン、早期立ち上げ可能 ◦ 社内での「転職(転プロジェクト)機会」増加により成長のチャンスが増える ◦ 社外からの転職者が仕事に慣れるまでの時間も短縮化できる
29 Thank you.
30 ソフトウェア開発における自動化とは? 2011 2008 2007 2006 2009 2012 2015 2007
年2回の機能リリース データドリブン Infrastructure as Code (インフラの コード化) Out of the box→ Over the Air 最新コード + 履歴を クラウドに ビルドや テストの 自動化 コンテナに よる「器」 標準化 2013 コード~テスト~デプロイが自 動化で一気通貫 (リアルタイム) 今回のテーマではな い
31 紙をマグネットにした自動化が本質ではない 標本的ノウハウ 全数データを(力技で)チェック
どうしてスピーディーに できないの?
33 許せる自動化・許せない自動化・導入の文化的ハードル (川の水ならタダなのに ) 水道代がもったいない (まだ何回か洗えるのに ) 洗剤がもったいない (お湯なんか使って) ガス代がもったいない
自分は苦労したのに、 後の人が楽になるのは 許せない