Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Firebase Dev Summit 2017に参加してきました #FirebaseSummit

こんにちは、エンジニアの@sota1235です。 先日オランダのアムステルダムで開催されたFirebase Dev Summit 2017に参加してきたので、その詳細をお伝えできればと思います

firebase.google.com

f:id:sota1235:20171106172754p:plain

Firebase Dev Summitとは

去年からGoogleのFirebaseチームによって開催されているカンファレンスです。 新しいサービスの紹介や既存サービスの活用事例のセッションからワークショップ等があります。 ご存じの方はGoogle I/Oをイメージしていただけるとよいかもしれません。

今年のコンテンツは以下の3つです。

  • 2トラックに渡るセッション
  • Codelab Workshop
  • #Askfirebase Lounge

1つ目はFirebaseに関する様々なセッションです。 今年は2トラックに渡り行われました。 セッションは全て動画で公開されていますので、ご興味のある方はそちらをご覧ください。

www.youtube.com

2つ目はCodelab Workshopです。 GoogleにはCodelabという様々なTutorialを提供しているサイトがあるのですが、その中でFirebaseを利用しているものをエンジニアにサポートしてもらいながら進められるというものでした。

codelabs.developers.google.com

3つ目はFirebaseに関して何でも質問ができるブース、#Askfirebase loungeです。 ブースは大きく3つに別れていました。Backend, Quality, Growthに関するブースです。 いつでも好きなタイミングにFirebaseの開発者に質問することができます。

Google社のFirebaseに対する熱量

今回のカンファレンスに対して一言で感想を言うとするならば、「FirebaseはこれからのGoogleが提供する開発者向けPlatformの大きな柱の1つになっていくことを肌で感じられた」ということです。

基調講演で非常に印象的なスライドがあります。

f:id:sota1235:20171106165550p:plain

上記は基調講演の動画から切り取ったものですが、これからGoogleが開発者向けに提供していくプラットフォームの1つとしてFirebaseを定義しています。

既にiOSと対をなすAndroid、クラウドプラットフォームのGCP、そして機械学習のクラウドサービスであるTensorFlowと同等のプラットフォームとしてFirebaseを扱っています。このことからGoogleのFirebaseに対する熱量の高さが伝わるのではないでしょうか。

今回の基調講演では以下の新しい4つの機能が発表されました。

  • Firebase Crashlytics
  • A/B testing for Firebase
  • Cloud Firestore
  • Firebase Predictions

この4つのうち、Cloud Firestore以外の3つはこの日に発表されたものです。

1月に買収したFabricのCrashlyticsのFirebaseへの統合によるモバイルアプリのモニタリング強化やTensorFlowと連携することで顧客の行動予測をするFirebase Predictions等、Googleとしての強みを活かしたサービスが続々と出てきました。

既にFirebaseは10個以上の機能を提供していましたが、これらのサービスがFirebaseに加わり、モバイルアプリの開発プラットフォームとしての熱量を感じられます。

今回発表された4つの新機能

せっかくですので今回発表された4つの機能について、質問ブースで得た知識も交えつつご紹介します。

関連セッションの動画も合わせて貼っておくので興味のある方は動画も合わせてご覧ください。

Firebase Crashlytics

クライアントエンジニアであればおなじみのCrashlyticsがFirebaseに統合されます。

今年一杯は既存のCrashlyticsからのマイグレーション部分を集中して開発するそうですが、今後のCrashlyticsの新機能及びSDKはFirebase側に実装されていく予定とのことです。

既存のCrashlyticsからのimportは簡単らしいので試してみたい方は下記のリンクから試してみてください。β版のコンソールでFirebase Crashlyticsを触ることができます。

https://console.firebase.google.com/u/0/optin/devsummit

www.youtube.com

A/B testing for Firebase

A/Bテストをする機能が実装されます。具体的には作成したA/Bテストの抽選によってFirebase Remote Configの値を切り替え、効果測定することができます。

A/Bテストに対して設定できるのは以下の通り。

  • A/Bテスト自体の開放率
  • テストグループの数、及び各テストグループに適用する値
  • ターゲットとするアプリ、version
  • 目標指標
    • 何をもって効果があったとするのか
    • リテンション率やエンゲージ率等を設定できる

今はまだよくあるA/Bテストの域を出ないですが、将来的にはTensorFlowとの連携による自動化や最適化を視野に入れているとのことです。

www.youtube.com

Cloud Firestore

リアルタイム同期を備えたクラウドKVSデータベースです。

類似サービスとして既存のFirebase Realtime Databaseがありますが、これとは別物であり、以下の特徴を備えています。

  • スケーラビリティ
    • バックグラウンドでオートスケールする
    • 管理者によるスケールアウトがいらず、1プロジェクト1インスタンスのままスケールする
  • よりリッチなQuery Interface
    • SQLライクなデータ操作がSDKを通してクライアントから可能

一方でRealtime Databaseの方が優位な点もいくつか存在します。

  • リアルタイム同期のLatencyが速い
  • 細かいI/Oが大量に発生するアプリケーションの場合、Cloud Firestoreの方がPricingが高くなる可能性がある

質問してみたところ、Cloud FirestoreはRealtime Databaseの次世代版という位置づけではないようです。

実装するアプリケーションの規模や予算感覚によってどちらを選択すべきかは変わってくるのでしっかりリサーチをして選定する必要がありそうです。

www.youtube.com

Firebase Predictions

TensorFlowを活用した機械学習によるユーザ行動の予測システムです。

過去100日間のユーザの行動データを元に次の7日間の行動を予測し、ターゲティングできるという機能です。

過去データの学習元としては現在はGoogle Analytics for Firebaseが挙げられており、実際のユースケースとしては以下の例が挙げられます。

  • リテンションが低いと予想されるユーザ群にクーポンを配る
  • 課金意欲が高いと予想されるユーザ群に表示する広告を変える

この際のターゲティングユーザの数は細かく調整することができ、アプリケーションのGrowthに大きく貢献できるとしています。

現在はまだできませんが、将来的にはFirebase Predictionsによるターゲティングを元にA/B testingの自動化等を検討しているようです。

www.youtube.com

#Askfirebase Lounge

簡単に今回の目玉である機能を紹介しましたが、これらの情報はYouTubeにアップされている動画を見ることでほとんどキャッチアップすることができます。 今回の参加で一番価値が高かったのは現地でFirebaseの開発者と実際に話ができたことです。

これだけ新しい機能や活用例が紹介されると、当然それだけ疑問もたくさん出てきます。例えばFirebase Predictionsで実現できることは何なのか、Crashlyticsを既に使ってるユーザはどうすべきなのか、Cloud Firestoreはどれくらいスケールするのか、等です。

また、私は現在所属しているチームでFirebaseを利用しているのですがその過程で抱えている問題を直接相談するチャンスでもあります。

実際に私は以下のような質問をしました。

  • 自社で既にA/Bテストの基盤を持っているが、移行するとしたら簡単にできそうか
  • Cloud FunctionsのTransactionが今のサービスのユースケースで使えそうか
  • Firebase Predictionsの今後の展望的に他機能との連携はあるか

Firebaseに関することだけでなく普通に開発の雑談や相談もでき、とても刺激的でした。

いくら出張とは言え、決して安くない旅費がかかるカンファレンス参加でしたが、このブースで聞きたいことを聞けたのは非常に大きな価値だったと感じています。

まとめ

セッションの内容や参加者の熱量、Firebaseの開発者の勢いから感じられたのはとにかくFirebaseはモバイル開発プラットフォームとして天下を本気で取りに来ているということです。 サーバ、分析基盤、エラーログ、機械学習エンジン、データベース、ありとあらゆるものを1つのプラットフォームから提供されます。

このカンファレンスに参加した後、すぐに家に帰ってアプリを作りたいぐらいにはワクワクさせてくれるイベントでした。

メルカリではまだFirebaseを使っている部分は多くはないですが、アプリの開発を加速、効率化していく上で積極的に導入を提案しようと思います。

最後に

メルカリでは新しい技術のキャッチアップに貪欲なエンジニアを募集しています。

採用情報 | 株式会社メルカリ