Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google Cloud を用いたソフトウェア開発の内製化組織の早期立ち上げの実現 / Rap...
Search
Yuichi Goto
August 02, 2024
Technology
1
520
Google Cloud を用いたソフトウェア開発の内製化組織の早期立ち上げの実現 / Rapid Establishment of In-House Software Development Teams Using Google Cloud
August 2, 2024 @ Google Cloud Next Tokyo '24
Yuichi Goto
August 02, 2024
Tweet
Share
More Decks by Yuichi Goto
See All by Yuichi Goto
[Teaser] Type-Safe Lightweight DDD with Effect Schema
yasaichi
1
61
[EN] Robust and Scalable API Gateway Built on Effect
yasaichi
3
210
Effectで作る堅牢でスケーラブルなAPIゲートウェイ / Robust and Scalable API Gateway Built on Effect
yasaichi
8
1.7k
あるRailsエンジニアがビジネスリーダーに転身するまで
yasaichi
8
2.7k
Active Recordから考える次の10年を見据えた技術選定 / Architecture decision for the next 10 years at PIXTA
yasaichi
50
20k
Active Recordから考える次世代のRuby on Railsの方向性 / Directions for the next generation of Ruby on Rails: From the viewpoint of its Active Record
yasaichi
38
20k
ピクスタのエンジニアリングとCircleCI / Software Engineering with CircleCI at PIXTA
yasaichi
1
370
Ruby on Railsの正体と向き合い方 / What is Ruby on Rails and how to deal with it?
yasaichi
143
89k
SSR以後の世界へ / techcamp05
yasaichi
3
1.7k
Other Decks in Technology
See All in Technology
イベントをどう管理するか
mikanichinose
1
120
Nihonbashi Test Talk #3_WebDriver BiDiと最新の実装状況 / WebDriver BiDi latest status
takeyaqa
1
150
大規模サーバ移行を成功に導くための事前調査フェーズの工夫事例
fukuchiiinu
2
110
[GDG DevFest Bangkok 2024] - The Future of Retail E-commerce with Gemini AI
punsiriboo
0
300
日本全国・都市3D化プロジェクト「PLATEAU」とデータ変換OSS「PLATEAU GIS Converter」の公開
nokonoko1203
4
370
re:Invent2024のIaC周りのアップデート&セッションの共有/around-re-invent-2024-iac-updates
tomoki10
0
620
40歲的我會給20歲的自己,關於軟體開發的7個建議
line_developers_tw
PRO
0
2.5k
最近のUplift Modeling手法にRでトライ
hskksk
0
130
How is Cilium Tested?
yutarohayakawa
5
300
Replit Agent
kawaguti
PRO
2
200
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
52k
Kubernetesを知る
logica0419
18
5.3k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Visualization
eitanlees
145
15k
Speed Design
sergeychernyshev
25
650
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
890
What's in a price? How to price your products and services
michaelherold
243
12k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
A Tale of Four Properties
chriscoyier
157
23k
Transcript
Proprietary Google Cloud を 用いたソフトウェア 開発の内製化組織の 早期立ち上げの実現
02 Google Cloud Next Tokyo ’24 後藤 優一 株式会社EARTHBRAIN 技術開発グループ
03 Google Cloud Next Tokyo ’24 Proprietary 2015 年 ピクスタ入社
大学院修了後、エンジ ニアとして入社。 同年、同社は当時の 東証マザーズ市場に 上場。 スピーカーについて 2020 年 執行役員 CTO 就任 EM を経て当時最年少の 執行役員に就任。 100 名弱規模の企業の 経営の執行に従事。 2023 年 EARTHBRAIN 入社 ビジョンと事業内容に 惹かれて入社。 入社 3 日目に渡米し、 現地で内製化組織立ち 上げに従事。 2024 年 Data Platform 担当 後述する Data Platform チームへ異動。現在に 至る。
04 Google Cloud Next Tokyo ’24 Proprietary EARTHBRAIN について •
2021 年 7 月創業 • コマツ、NTTコミュニケーションズ、 ソニーセミコンダクタソリューションズ、 野村総合研究所による合弁会社 • Smart Construction® を開発、提供、保守
05 Google Cloud Next Tokyo ’24 Proprietary Smart Construction® とは
• 建設生産プロセスの生産性・安全性の 向上を実現するデジタル ソリューション • 相互連携する複数のソフトウェア・ハード ウェアの形で提供 • プロダクトの一部は世界 20 カ国以上で利用
Google Cloud Next Tokyo ’24 Proprietary Q. 開発の内製化を担当 されていますか?
07 Proprietary 本発表の目的 対象の方 • ソフトウェア開発の内製化組織の 立ち上げを推進されている方 • ソフトウェア開発の内製化組織で 働く開発者の方
ゴール • Google Cloud を活用した内製化 組織の早期立ち上げ例を知ること • 内容を担当のプロジェクトで活用 しよう、と思えていること
08 Proprietary 01 EARTHBRAIN での 開発内製化について 02 内製化組織の早期 立ち上げのポイント 03
今後の課題と挑戦 アジェンダ
09 Google Cloud Next Tokyo ’24 Proprietary 01 EARTHBRAIN での開発 内製化について
010 Google Cloud Next Tokyo ’24 Proprietary ソリューション概観
011 Google Cloud Next Tokyo ’24 Proprietary 旧 Data Platform
の課題 機能追加の柔軟性 外部ベンダーのパッケージを 利用していたため、機能の 追加に制限があった。 開発にかかる時間 期待する速度で機能追加が 進んでいなかった。 開発にかかる費用 機能追加の度に高い開発費が 発生していた。 仮に費用が許容できても、 対象のパッケージが継続的に 開発される保証はない。
012 Google Cloud Next Tokyo ’24 Proprietary ソフトウェア開発という経済活動を 対象としたコントローラビリティを、 リーズナブルな範囲の予算
/時間という 入力条件の中で、 ビジネス上必要な システムの機能追加 をしつづけられる ことと定義しましょう。 ” 一般社団法人日本 CTO 協会理事 広木 大地 氏 出典: https://qiita.com/hirokidaichi/items/64b444a89410190d965f(引用・顔写真の掲載許諾取得済)
013 Google Cloud Next Tokyo ’24 根本課題はコントローラ ビリティの低さ 本課題を解決するため、 Data
Platform 開発の内製化を実施。
014 Google Cloud Next Tokyo ’24 Proprietary 2021 年 12
月 開発内製化に着手 開発パートナー主導の 体制で開始。 内製人員 3 、外製人員 12 名という構成。 開発内製化のタイムライン 2022 年 11 月 仕切り直し 開発進捗が悪かった ため、EARTHBRAIN 主導の体制へ変更。 内製・外製人員の比は 1:1 に。 2023 年 9 月 開発内製化の着手 新システムの本番環境 へのリリース完了。 内製・外製人員の比は 2:1 に。 2024 年 1 月〜 自立自走体制へ 初期より参画していた 開発パートナー人員が 0 名になる。
015 Proprietary • 社外ではなく社内の専属の内製チームに 開発ノウハウが蓄積するようになった • 開発にかかる時間が短縮できた(2 週間に 1 回の頻度で成果物をリリース)
• Application / Digitization Layer の要望に 対して柔軟に対応できるようになった 結果 開発内製化により、 DX 時代に最低限 必要なソフトウェアのコントローラ ビリティを獲得できた。
016 Google Cloud Next Tokyo ’24 技術スタック カテゴリ 主な技術要素 言語・ランタイム
TypeScript / JavaScript / Node.js / Go フレームワーク React / Next.js / NestJS パブリッククラウド DevOps GitHub Actions / Docker / Kubernetes / Terraform / SonarCloud
017 Google Cloud Next Tokyo ’24 Proprietary 02 内製化組織の早期立ち 上げのポイント
018 Google Cloud Next Tokyo ’24 Proprietary 1 2 コア業務・技術を中心に内製化
2 つのポイント フルマネージド サービスの積極採用
019 Google Cloud Next Tokyo ’24 Proprietary なぜコア業務・技術を内製化? A. コア業務・技術のシステムのコントローラ
ビリティが高ければ、変化の激しい環境下 でも利益を増大したり、競争優位性を維持 できる可能性が高まるから
020 Google Cloud Next Tokyo ’24 Proprietary スタートアップに限った話ではない ICT スタートアップ
• 経済合理性だけでは説明 できない顧客のニーズの 仮説検証を行うため • 更なる利益増大のために 隣接市場に参入するため メガベンチャー・大企業 • 自社の持つ市場を他社に 奪われないため • 顧客が持つ自社製品の 継続的な改善への期待に 応えるため 規模によらず高いコントローラ ビリティが重要
021 Google Cloud Next Tokyo ’24 Proprietary EARTHBRAIN の場合 •
コア業務・技術は Data Platform と 3D 技術の根幹となるプロダクト群と判断 • 最初にこれらの内製化に集中した ことで、 内製化組織を早期で立ち上げられた
022 Proprietary & Confidential Google Cloud Next Tokyo ’24 出典:
https://speakerdeck.com/hirokidaichi/nei-zhi-hua-falsekotutowana?slide=25(使用許諾取得済)
023 Google Cloud Next Tokyo ’24 Proprietary 1 2 コア業務・技術を中心に内製化
2 つのポイント フルマネージド サービスの積極採用 再掲
024 Google Cloud Next Tokyo ’24 Proprietary ノンコア業務・技術はどうする? A. なるべく内製化しない。
※ コア業務の中にノンコア技術が含まれうる ことに注意。
025 Google Cloud Next Tokyo ’24 Proprietary Data Platform 開発の場合
• インフラ領域において Google Cloud の フルマネージド サービスを積極採用 • インフラ構築・運用工数の削減 により、 内製化組織を早期で立ち上げられた
026 Google Cloud Next Tokyo ’24 Proprietary ※画像の置換方法 グレーボックスを選択し、 右クリックで「画像を置換」
を選択し、配置したい画像に差し替えてください。本テ キストは削除してください。
027 Google Cloud Next Tokyo ’24 Proprietary 2 つのプロダクトの概要 AlloyDB
PostgreSQL との完全な互換性を 持つフルマネージド データベース サービス。 ストレージ層の分離をはじめとした 設計レベルの改善により、通常の PostgreSQL より機能・性能が向上 している。 Cloud Run コンテナとしてパッケージ化された ウェブサイト、アプリケーション、 ジョブを実行するフルマネージド サーバーレス プラットフォーム 。 特定の言語では、ソースコードから 直接デプロイにも対応している。
028 Google Cloud Next Tokyo ’24 Proprietary AlloyDB 採用のメリット 高可用性
プライマリ インスタンスの スケールアップ・ダウンが 1 秒未満で実行できるため、 事前の厳密なキャパシティ プランニングが不要。 高速な分析クエリ カラム型エンジンにより分析 クエリが自動で高速化される ため、分析用の DB スナップ ショットや DWH の構築が 不要*。 移植性 前述の通り PostgreSQL との 完全な互換性があるため、 Cloud SQL や他のパブリック クラウドに移行できる。 * RDB 以外のデータを掛け合わせた分析や、サービスを横断した分析ニーズがある場合、 DWH が必要となる。
029 Google Cloud Next Tokyo ’24 Proprietary Cloud Run 採用のメリット
クラスタ運用不要 4 ヶ月に 1 回の Kubernetes (K8s)アップデート業務が 不要になるため、運用工数が 小さい。 オートスケール コンテナが自動的にスケール アウト・インするため、運用 工数が小さい。 移植性 OSS の Knative を基盤として いるため、GKE や他のパブ リック クラウドに移行できる。
030 Google Cloud Next Tokyo ’24 Proprietary これまでの話を抽象化すると • どちらも事業の競争優位性に繋がる領域に
経営資源* を効率よく投下すべき点で共通 • 国内のエンジニア採用の難易度を鑑みると 「メリハリをつける」ことはとても重要 *「[新版]企業戦略論【上】基本編」(ジェイ B.バーニー、ダイヤモンド社)によると、経営資源は「財務的資源」「物的資源」 「人的資源」「組織的資源」の 4 つに分類できる。
031 Google Cloud Next Tokyo ’24 Proprietary “言うは易く行うは難し ” •
今から内製化を実施するとしたら「まずは OS レベルから作ろう」とはならない • 一方で、Internal Developer Platform のうち どこを内製化すべきか?というような判断 =コア技術の見極めは難しい
032 Google Cloud Next Tokyo ’24 Proprietary 03 今後の課題と挑戦
033 Google Cloud Next Tokyo ’24 Proprietary ソフトウェア開発という経済活動を 対象としたコントローラビリティを、 リーズナブルな範囲の予算
/時間という 入力条件の中で、 ビジネス上必要な システムの機能追加 をしつづけられる ことと定義しましょう。 ” 一般社団法人日本 CTO 協会理事 広木 大地 氏 出典: https://qiita.com/hirokidaichi/items/64b444a89410190d965f(引用および顔写真の掲載許諾取得済) 再掲
034 Google Cloud Next Tokyo ’24 Proprietary 内製化後の課題解決の難しさ • 内製化前は解決すべき課題が明確
• 内製化後は不明確になる(下手すると そのまま社内受託化する) • 内製開発・組織のあるべき姿と現状の ギャップを分析し、注力課題を設定して 解決していく動きが必要
035 Google Cloud Next Tokyo ’24 Proprietary 課題設定にあたり参考になるもの State of
DevOps 2014 年から DORA が年次で 発行しているレポート。 企業へのアンケート結果に 基づく調査。 State of Software Delivery 2019 年から CircleCI が年次 で発行しているレポート。 主に CircleCI の実データに 基づく調査。 DX Criteria 日本 CTO 協会が監修・編纂 している企業のデジタル化と ソフトウェア活用のための ガイドライン。
036 Google Cloud Next Tokyo ’24 Proprietary DORA とは •
DevOps Research and Assessment • Google Cloud 傘下の研究・調査チーム • ソフトウェアのデリバリーや組織の パフォーマンスを改善するプラクティスを 研究
037 Google Cloud Next Tokyo ’24 4 つの指標とクラスタ 出典: https://zenn.dev/google_cloud_jp/articles/state-of-devops-report-2023(使用許諾取得済)
038 Google Cloud Next Tokyo ’24 Proprietary 新 Data Platform
での課題設定 • 各指標における Elite の値と現状の値の ギャップを解決すべき課題と定義 • 中でも特にギャップの大きい指標の改善を 注力課題として設定
039 Google Cloud Next Tokyo ’24 2 つの指標改善に注力 出典: https://zenn.dev/google_cloud_jp/articles/state-of-devops-report-2023(使用許諾取得済)
040 Google Cloud Next Tokyo ’24 Proprietary 改善にかかる労力の違い デプロイ頻度 •
大きな労力が必要 • 自動テストの信頼性・ パフォーマンスの課題に 帰着するため • テストカバレッジと CI の パフォーマンスの可視化 から一歩ずつ実施中 サービス復旧にかかる時間 • 相対的に少ない労力で可能 • 関連する Google Cloud の プロダクトが存在するため • システムの性質にもよるが、 こちらが短縮できれば オンデマンドデプロイに 移行できる場合もある
041 Google Cloud Next Tokyo ’24 Proprietary 障害発生 「サービス復旧にかかる時間」の構造 障害検知
対処開始 障害復旧 Time To Detect (TTD) Time To Engage (TTE) Time To Fix (TTF) 出典: 「SREの探求」(David N. Blank-Edelman著、株式会社オライリー・ジャパン)
042 Google Cloud Next Tokyo ’24 Proprietary TTD / TTF
改善の施策 Cloud Deploy の導入 TTF 短縮に寄与 各環境へのデプロイの度に コンテナイメージをビルド しなくて済むようにする。 Burn-rate Alerting TTD 短縮に寄与 Burn-rate に基づく SLO アラートを設定することで、 障害に早く気づけるように する。 カナリアリリース TTF 短縮に寄与 新しい変更を一部の顧客へ リリースし、問題があれば 自動でロールバックできる ようにする。 実施済 実施済
043 Google Cloud Next Tokyo ’24 Cloud Deploy の導入
044 Google Cloud Next Tokyo ’24 Burn-rate Alerting
045 Google Cloud Next Tokyo ’24 Proprietary おわりに
046 Google Cloud Next Tokyo ’24 Proprietary 1 2 3
EARTHBRAIN では、コアシステムのコントローラ ビリティ向上の ため、その開発の内製化を実施し、2 年弱で完了できた 本発表の要旨 内製化組織の早期立ち上げのポイントは、事業の競争優位性に 繋がる領域に経営資源を効率よく投下すること 内製化後は更なるコントローラ ビリティ向上のため、 DORA が 提唱する指標の一部の改善を注力課題として、解決に挑んでいる
Thank you 047 Proprietary