Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

Google Cloud Next '19 in Tokyo で新サービスにおける GCP サーバーレス活用事例について話してきました

DSOC Development Group の木田です。Google Cloud Next '19 in TokyoGCP サーバーレス サービスと Sansan データ化技術 〜 少数チームによる高速な事業立ち上げ というセッションに登壇させていただきました。

登壇に至った背景なども本ブログに書いていますので、あわせてお読みいただければと思います。

buildersbox.corp-sansan.com

セッションについて

新規サービスにおける、弊社のGCPサーバーレスサービスの活用事例をご紹介させていただきました。

  • GCPサーバーレスサービスを選択した理由
  • アーキテクチャ
  • 開発における細かい Tips
  • 得られたメリット

などもお話しました。

セッション動画はこちらで公開されているので、スライドと合わせてぜひご覧ください。

当日の様子

30分前に会場に入ると、スタッフの方が丁寧に対応してくださいました。 舞台からは、みなさんの方を向きながら現在のスライドとスピーカーノートを確認できるようになっていました。

マイクはハンドマイクとピンマイクが用意されていて、レーザーポインター付きのプレゼンテーションリモコンもあり、至れり尽くせりという感じでした。

初めてピンマイクを使いましたが、プレゼンテーションリモコンと合わせると、自由な姿勢で話すことができて、とても良かったです。レーザーポインターも、図の説明がしやすくて良かったですね。

会場の奥の方は暗くなっていて、奥の先の方の表情までは見えませんでした。そのおかげで、逆に、緊張しなくて済んだかもしれません。

セッション中に実は足の指をつってピンチな時間帯がありました。なんとかバレずに(?)乗り切れてよかったです。

f:id:mokuoz:20190813111206j:plain

開発言語について(余談)

今回ご紹介したプロジェクトでは、フロントエンドは React、サーバーサイドは Node.js で、どちらも TypeScript を使っています。 「なぜ Node.js にしたんですか?」とよく聞かれるので、その理由を説明してみたいと思います。

まず、フロントエンドの処理がある程度必要になることは想定されたので、jQuery だと辛いだろうと考え、React を使うことは先に決めていました。*1

次に、フロントエンドとサーバーサイドの処理を両方書くのは大変なので、Firebase の活用を検討しました。 しかし、実装面と運用負荷も含めて検討を進めていく中で、Google App Engine と Cloud Firestore の組み合わせで、DB アクセスはサーバーサイドで行う構成に落ち着きました。

サーバーサイドの言語には、部署としても個人としても慣れている Ruby が第一候補に上がりますが、当時 Google App Engine のスタンダード環境が Ruby に対応していなかったので、他の言語を検討しました。

そして、フロントエンドとサーバーサイドの垣根を低くしたいという思いから、サーバーサイドにもフロントエンドと同じ TypeScript(Node.js)を採用することになりました。*2

今のところ、スイッチングコストは少なくて済んでいるというメリットは感じています。その他の点については、今後どうなっていくか、だと思っています。

おわりに

みなさんにとって、少しでも参考になるセッションとなっていましたら、幸いです。

今回お話しさせていただいたことについては、サービスの成長とともに、アップデートしたお話を、どこかの場でお届けできればと思っています。

お楽しみに!

*1:弊社は Eight で React を使っていて、個人的にも React に慣れていて、かつ、良いと思っています。

*2:「フロントエンドとサーバーサイドの垣根を低くしたい」というのは、開発メンバーが少ない間は特に当てはまることかと思っています。

© Sansan, Inc.