Slide 1

Slide 1 text

開発効率と信頼性を両立する Ubieのプラットフォームエンジニアリング Teruya Ono

Slide 2

Slide 2 text

2 自己紹介 小野 輝也(Ono Teruya) ● SRE/Platform Engineer@Ubie ● Like ○ Google Cloud ○ Golang ● 来週のKubecon Japanが楽しみ @teru0x1

Slide 3

Slide 3 text

3 本日お話しすること ● Ubieのアーキテクチャと、そこで生じていた課題 ● 解決策としてのプラットフォームエンジニアリングとその成果 ● サービス開発者がプラットフォームを使う際の コミュニケーションを円滑にする取り組み

Slide 4

Slide 4 text

4 Ubieについて

Slide 5

Slide 5 text

5 Ubieのアーキテクチャと課題 ● Google Cloud上のマイクロサービス & モジュラモノリス ● 60以上のマイクロサービス ● 日本と北米にデプロイ ● 主にGKE & Istio上で稼働 ● マルチクラスタ・マルチGCP Project構成 ○ 事業領域、プライバシー観点などで複数のク ラスタに跨ってマイクロサービスを配置 ● サービスデプロイの構成、ログ確認方法などで 認知負荷が増大

Slide 6

Slide 6 text

6 プラットフォームエンジニアリング ”プラットフォーム・エンジニアリングとは、ソフトウェアの開発とデリバリを目的とした、セルフサービス 型の開発者プラットフォームの構築と運用に関する専門分野である。プラットフォームとは、専任のプラッ トフォーム・チームによりプロダクトとして維持される、ツール/自動化/情報から成るレイヤである。根 本的な複雑さを抽象化することで、ソフトウェア開発者やその他のエンジニアをサポートするために設計 されている“ (出典:Gartner, Inc.)

Slide 7

Slide 7 text

7 プラットフォームエンジニアリング ”プラットフォーム・エンジニアリングとは、ソフトウェアの開発とデリバリを目的とした、セルフサービス 型の開発者プラットフォームの構築と運用に関する専門分野である。プラットフォームとは、専任のプラッ トフォーム・チームによりプロダクトとして維持される、ツール/自動化/情報から成るレイヤである。根 本的な複雑さを抽象化することで、ソフトウェア開発者やその他のエンジニアをサポートするために設計 されている“ (出典:Gartner, Inc.)

Slide 8

Slide 8 text

8 Ubie Platform Engineeringの2本柱 ubieform サービステンプレートツール サービスに必要な設定(k8s manifest, デプロイ設定など) を生成 UbieHub BackStageベースの サービスカタログ サービスに関する情報を 集約

Slide 9

Slide 9 text

9 name: "myapp" service_config: { manifest: { app: { main_container: { image_path: "example-docker.pkg.dev/ubie/myapp" image_tag: "release-20240418-1" commands: ["/myapp", "start"] configs: [ … ubieformを使った デプロイの流れ

Slide 10

Slide 10 text

10 UbieHub ● BackStageで構築された サービスカタログ ○ ubieformでサービス生成をする と自動でサービスページが作成 ○ サービスリポジトリ、Cloud Logging、Grafanaなどのリン クがまとまっている ○ 「このサービスに関する情報、どこ で見れるんだっけ?」を解消

Slide 11

Slide 11 text

11 プラットフォーム整備の成果 ● こうした取り組みは認知負荷軽減のほかサービス開発エンジニアの行動変化に繋がった ○ プラットフォームチームに質問、依頼することなくサービスのインフラを変更できるように ○ ログ・メトリクスをみる習慣がつく ○ インシデントレスポンスに参加しやすくなる ○ プラットフォームチームとのコラボレーションが可能に ■ UbieHubのraycast pluginを作ってくれるエンジニアも ● よりアジリティ高く自律分散なサービス運用が可能になった

Slide 12

Slide 12 text

12 SREとプラットフォームエンジニアリングの交差点 ● SREと何が違うのか?と聞かれがち(実際Ubieではチームが同じでロールを兼任する) ● プラットフォームエンジニアリング ○ 開発者体験を改善しアジリティを高める ● SRE ○ 信頼性を制御しサービス品質を高める ● 境界は割と曖昧(トイルの削減、はどちらの役割?) ● 対立する要素ではなく相互に良い影響をもたらす ○ ubieformで生成されたマニフェスト・CI/CDパイプラインは信頼性やセキュリティの観点からもベ ストプラクティスに従う

Slide 13

Slide 13 text

13 サービス開発者とのコミュニケーション ● 「プラットフォーム上でこれどうやるんだっけ」「これが可能なの知らなかった」という事態が 起こりがち ● 良いプラットフォームを作っても使われなければ意味がない ● Ubieでの取り組み ○ 今週のPlatform News ○ 質問対応・自動応答システム「otter」 ○ Slackを使った簡単FeedBack

Slide 14

Slide 14 text

14 今週のPlatform News ● Ubieプラットフォーム上で使えるようになった新機能、ベスプラなどを紹介 ● エンジニア全員が参加する開発者定例「Tech MTG」でPlatformチームが持ち回りで発表 ● 過去にあったテーマ例 ○ FastlyのRate Limit機能について ○ ドキュメントポータルができました! ○ Log Analyticsでトラブルシューティングしよう ○ AlloyDBでもVector Searchがしたい! ● プラットフォームの機能が浸透できる他、コミュニケーションも取りやすくなった

Slide 15

Slide 15 text

15 質問対応、自動応答システム「otter」 ● 開発者からの質問や依頼を特定のSlack channel上で受けてチケット化 ○ 一元化して管理することで混乱を防ぎ、より質問しやすくなる ● 社内docsからRAG searchしてbotが自動応答 ○ botの応答を引用しつつ、人間も応答できる

Slide 16

Slide 16 text

16 Slack上でのFeedback収集 ● Slackでメッセージにinfra-feedbackのリアクションを押せば自動でリクエストが収集される ○ FBと対話を通してプラットフォームを改善していく ○ 将来的には生成AIで自動的にチケットサマリ→Agentでの初期実装 などを目指している

Slide 17

Slide 17 text

17 まとめ ● Ubieでは複雑なインフラ環境をプラットフォームエンジニアリングのアプローチで抽象化 ○ 認知負荷低くサービス開発者が自律的に運用に参加できるようにしている ○ 信頼性向上にも貢献 ● プラットフォーム↔サービス開発のコミュニケーションを支える仕組みを整備