Slide 1

Slide 1 text

Sansan株式会社 技術本部 辻⽥ 美咲 ⼭⾨ 峻 ⽴ち上げ半年で“使われる” アプリケーション開発プラット フォームの鍵とは?

Slide 2

Slide 2 text

写真が⼊ります 辻⽥ 美咲 技術本部 Platform Engineering Unit Application Platform グループ プロダクト開発エンジニア

Slide 3

Slide 3 text

写真が⼊ります ⼭⾨ 峻 技術本部 Sansan Engineering Unit 名刺メーカーDevグループ プロダクト開発Webエンジニア

Slide 4

Slide 4 text

1. オープニング 2. Platform Engineering への挑戦 3. Orbit が解決した具体的な課題と技術的アプローチ 4. 開発チームとの共創:“使われる” 5. プラットフォームの舞台裏 6. 導⼊効果と今後の展望 アジェンダ

Slide 5

Slide 5 text

01. Sansan が直⾯していた開発の「痛み」

Slide 6

Slide 6 text

Node.js, Express, React, TypeScript, Docker, Playwright 従来の開発とその課題 5 開発チームの担当範囲 $ Cloudflare, Terraform, GitHub Actions, Helm Cloud Run, Backend Service, Network Endpoint Group, Load Balancer, IAM, Cloud SQL, etc... Monitoring, Security

Slide 7

Slide 7 text

Node.js, Express, React, TypeScript, Docker, Playwright 従来の開発とその課題 6 開発チームの担当範囲 $ Cloudflare, Terraform, GitHub Actions, Helm Cloud Run, Backend Service, Network Endpoint Group, Load Balancer, IAM, Cloud SQL, etc... Monitoring, Security 認知負荷が⾼い

Slide 8

Slide 8 text

- Terraform と実環境の不⼀致 - CI/CD パイプラインの属⼈化 - ダッシュボード管理不⾜ - セキュリティ・コストへの意識不⾜ 具体的な課題

Slide 9

Slide 9 text

02. Platform Engineering への挑戦

Slide 10

Slide 10 text

⽬指す姿は、 開発者が本来の価値提供に集中できる環境

Slide 11

Slide 11 text

ソフトウェア デリバリーおよび運⽤ パフォーマンスが、 - 個⼈:8% 向上 - チーム:10% 向上 - 組織:6% 向上 プラットフォームと⽣産性の関係性 DORA Research: 2024 https://dora.dev/research/2024/dora-report/

Slide 12

Slide 12 text

- 初期に⽣産性が向上 - 中期に⼀時停滞 - ⻑期的に効果が定着 プラットフォームの年数と⽣産性 DORA Research: 2024 https://dora.dev/research/2024/dora-report/

Slide 13

Slide 13 text

- 開発者の「痛み」を取り除く - ニーズに沿った、最薄のプラットフォーム(TVP) プラットフォーム Orbit の誕⽣

Slide 14

Slide 14 text

Orbit の名前の由来 Orbit(軌道)には、 アプリケーションが軌道に乗ってスムーズに稼働する 世界観が込められています。 開発者が本来の価値創出に集中できるよう⽀援する、 そんなプラットフォームを⽬指しています。

Slide 15

Slide 15 text

03. Orbit が解決した具体的な課題と 技術的アプローチ

Slide 16

Slide 16 text

- Terraform と実環境の不⼀致 - CI/CD パイプラインの属⼈化 - ダッシュボード管理不⾜ - セキュリティ・コストへの意識不⾜ ゴールデンパスを提供 「使われる」ために課題にどう向き合ったか?

Slide 17

Slide 17 text

- ベストプラクティスを詰め込んだテンプレート > Compute / Network / Security を Platform 側で吸収 - Terraform Module > 必要なリソースを module で提供 Terraform と実環境の不⼀致への対応

Slide 18

Slide 18 text

- copier を活⽤した GitHub Actions のテンプレート > Reusable Workflows, Composite Actions の活⽤ - Argo CD による GitOps CI/CD パイプラインの属⼈化への対応

Slide 19

Slide 19 text

- Metrics Scope を使って、GKE ダッシュボードを開発チームに公開 - GKE Interactive Troubleshooting Playbook、Gemini のログ説明機能、Gemini Cloud Assist を活⽤して迅速なトラブルシューティング ダッシュボード管理への対応

Slide 20

Slide 20 text

- GKE Autopilot を採⽤ > 本番ワークロードに適したセキュリティと各種設定のベストプラクティスを⾃動適⽤ - Google Group による GKE, Argo CD の権限とアカウント管理の効率化 - Kubescape によるマニフェストの脆弱性スキャン - Conftest によるマニフェストのポリシーチェック セキュリティ・コスト管理への対応 ns-A ns-B [email protected] [email protected] - RoleBinding - Role

Slide 21

Slide 21 text

- 検証環境では Spot インスタンスを活⽤ & 夜間の⾃動停⽌ - コスト按分 > GKE のコストを namespace 単位でプロジェクトに按分し、共通リソース費⽤は namespace ⽐率で算出 セキュリティ・コスト管理への対応

Slide 22

Slide 22 text

Orbit のアーキテクチャ

Slide 23

Slide 23 text

Orbit のアーキテクチャ

Slide 24

Slide 24 text

04. 開発チームとの共創: “使われる” Platform の舞台裏

Slide 25

Slide 25 text

Platform Engineering Jumpstart に参加 - 開発チームと共に参加し、Platform Engineering への理解を深めた - スペシャリストによる Platform ⽴ち上げの サポート > 座学 > アーキテクチャ・ディスカッション > プロトタイピング Platform Engineering 実践のロードマップ

Slide 26

Slide 26 text

インセプションデッキ、ロードマップの作成

Slide 27

Slide 27 text

チームで潜在的課題や⽬的の 共通認識を持つことで、タス クの優先順位が明確になった。 インセプションデッキ、ロードマップの作成

Slide 28

Slide 28 text

- ペアプロで同期的な問題解決 - ユーザチーム毎の定例会を開催 - ⽉に 1 回、Office Hours の開催 問題の早期解決、信頼関係の構築 チーム間の協働

Slide 29

Slide 29 text

開発チームの認知負荷を取り除くための Platform。開発者のために開発されてい なければならない。 しかし、基盤は⼗分薄くあるべきである。 ユーザ中⼼主義

Slide 30

Slide 30 text

薄い Platform とは、 Platform 側の⼯数増加より、 利⽤者の⼯数削減が 多くなる施策のみで 基盤が構成されていること。

Slide 31

Slide 31 text

- 設計相談からのスタート - ⼯数削減の可能性 - 導⼊第⼀号の意義 - 新技術への挑戦 開発チーム視点:Orbit 導⼊の経緯

Slide 32

Slide 32 text

苦労したこと - 初導⼊ゆえの権限まわりのトラブル - GKE 環境でのデプロイ失敗 - アプリケーション側に必要な実装 開発チーム視点:導⼊における苦労と⼯夫 ⼯夫したこと - プラットフォーム チームとのペアプロ - 逐次フィードバックとドキュメント化 の促進 - skaffold dev の活⽤

Slide 33

Slide 33 text

05. 導⼊効果と今後の展望

Slide 34

Slide 34 text

- 構成の明⽰性とシンプルさ - 環境の⼀貫性と変更のしやすさ - 開発者体験の向上 開発チーム視点:導⼊効果の実感

Slide 35

Slide 35 text

変更のリードタイム Orbit がもたらした効果 デプロイ頻度

Slide 36

Slide 36 text

Orbit がもたらした効果 35 56% デプロイ頻度 の増加 43% リードタイム の短縮 20 ⼯数削減(⼈⽇)

Slide 37

Slide 37 text

- HEART フレームワークを⽤いた開発 者体験の測定 - SLI, SLO と KPI の策定 開発者の FB をもとに優先度、ロード マップを決定 開発者体験の可視化と継続的改善

Slide 38

Slide 38 text

今後の展望とロードマップ 37 マニフェストのポリシー 策定、CI での検証 August SLO の実装と運⽤開始 September Cloud Workstationsでの 開発環境の提供 October 継続的な改善社内での利 ⽤拡⼤ After November

Slide 39

Slide 39 text

Sansan は「データ統合」「セミオーダーの UI」「AI による気づきの提供」で、データ 活⽤の壁を乗り越えます Sansan が “使われる” Platform を⽴ち上げた鍵 38 チーム間の協働 開発チームとのコミュニケーショ ンを重要視し、実際のニーズに答 えるプラットフォームを構築した。 ユーザ中⼼主義 社内開発プラットフォームにおけ るユーザは開発者である。開発者 の視点を重視した。 Platform Engineering Jump Start の活⽤ スペシャリストによる初期⽴ち上 げのサポート。その後の継続的な サポート。

Slide 40

Slide 40 text

No content