Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
© 2024 Wantedly, Inc. Wantedly のバックエンドの 将来に向けた取り組みと課題 Wantedly Tech Night 2024/5 May 24 2024 - Ryota Egusa
Slide 2
Slide 2 text
© 2024 Wantedly, Inc. #wantedly_tn
Slide 3
Slide 3 text
© 2024 Wantedly, Inc. © 2024 Wantedly, Inc. Ryota Egusa @gedorinku Quality Control Squad https://www.wantedly.com/companies/ wantedly/post_articles/459966
Slide 4
Slide 4 text
© 2024 Wantedly, Inc. ●
Slide 5
Slide 5 text
© 2024 Wantedly, Inc. gRPC in Ruby https://docs.wantedly.dev/fields/the-system/grpc-in-ruby
Slide 6
Slide 6 text
© 2024 Wantedly, Inc. gRPC in Ruby gRPC Service ActiveRecord Protobuf Serializer Rails Application
Slide 7
Slide 7 text
© 2024 Wantedly, Inc. ●
Slide 8
Slide 8 text
© 2024 Wantedly, Inc. GraphQL Gateway ● 個別の App とは疎結合な API を提供する ○ 一度 API を作れば App 側の変更だけでできることが増える ● GraphQL リクエストを受け、各マイクロサービスへ gRPC リ クエスト ○ その結果を集約して返す
Slide 9
Slide 9 text
© 2024 Wantedly, Inc. GraphQL Gateway の型生成 Protobuf message JobPost { uint64 id = 1; string title = 2; } type JobPost { id: String! title: String! } GraphQL
Slide 10
Slide 10 text
© 2024 Wantedly, Inc. 今後の課題 ● リアーキテクチャのコスト ○ アプリケーションの移行は比較的にスムーズ ○ ログの互換性の維持が高コスト ● GraphQL Gateway の扱いにくさ ○ Protobuf から GraphQL への型変換の制御が難しい
Slide 11
Slide 11 text
© 2024 Wantedly, Inc. ログの例 ● アプリケーションのアクセスログ ● 色々なイベントログ ○ ページの表示 ○ ボタンのクリック ○ …
Slide 12
Slide 12 text
© 2024 Wantedly, Inc. ログの継続性 ● プロダクト指標の計算にも使われる ● ログの互換性が失われるとこの指標の追跡ができない ○ 例: Rails が HTML を返すアーキテクチャ→Next.js ■ 「ユーザーがページを開いた」ログのタイミングが変わ る
Slide 13
Slide 13 text
© 2024 Wantedly, Inc. まとめ ● Wantedly のアーキテクチャ ● リアーキテクチャをやって見えてきた課題 ○ ログの移行の難しさ ○ …