Airbnb at Scale https://www.youtube.com/watch?v=pnHiVFYpLzs

Airbnbのプロダクト開発基盤についてのトーク

www.youtube.com

UIシステムに関心があるので観た

laiso.hatenablog.com

サーバーサイド

  • 初期のAirbnbはモノリシックなRailsアプリケーションとして構築されそれはThe Monorailsと呼ばれていた
  • 2018年にSOAで分割し複数DB構成になった
  • Thiftベースでサービス間通信(RPC)を定義するAPI層のフレームワークを自作
  • Powergrid: 依存するサービスを非同期に実行して入出力にしてくれる基盤
  • OneTouch: k8s上に構築されたデプロイ基盤
  • サービスディレクトリ以下に依存するyaml設定群を放り込んで魔法の k all コマンドでデプロイ完了
  • Spinnakerカナリアリリースなどに使う
  • サービス数が増えてきてFacade層の登場
  • Facade以下にServiceがつらなりカプセル化
  • ビジネスロジックのボイラープレート重複を避けるためにフロントにGraphQLサーバーが立つ
  • サービス指向からデータ指向に

クライアントサイド

  • 各マイクロサービスチームがそれぞれクライアントAPI作ってた
  • server driven uiなアプリケーションフレームワーク作った
  • APIでデータ+画面構造を返すようになったのでサービスごとにエンドポイント作る必要ない
  • JSON貼り付けるとUI描画結果確認できるツールも作った
  • iOS/Android/Webのプレゼンテーションロジックをサーバー側に持ってきたことで共通化できた