Skip to content

Instantly share code, notes, and snippets.

@tenntenn
Created September 19, 2018 12:33
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tenntenn/d8da71b44c5a4888b48243395ddb05d1 to your computer and use it in GitHub Desktop.
Save tenntenn/d8da71b44c5a4888b48243395ddb05d1 to your computer and use it in GitHub Desktop.
Dogrun - サーバレス
GCFの違い
firebaseの方が高い視点で~
PythonとかGoはFirebaseの方は対応予定なし
GCPの方が早い
Cloud TaskやスケジューラーはFirebaseの方から使えるようになるのか?
Firebaseはモバイル向けだから取り込む予定はないけど、GCPと組み合わせてスムーズに使えるようにする予定はある
Firebaseはモバイル、GCPはインフラ、その間をつなぐためにGCFがある
Cloud TaskとスケジューラーはFirebaseのUIに統合する予定はない
FirebaseとGCPの権限周りはどうなるのか?
FirebaseのAdmin APIを使うとGCPの権限まわりとつなげて使える
GCFからのリクエストであることを認証・確認するためのベストプラクティス
GAEのX-Appengine-Inbound=Appid header的なもの
アルファでFunctionをInvokeできるための権限を設定できる機能ある
IAMのやつを使うとリジェクトされた呼び出しは課金されない
それはFromじゃなくね
GCF Identity というのがあってファンクションごとに権限がつけれるサービスアカウントを紐付けられる
アルファ
メタデータサーバを使うと...
GCFで他の言語の対応は?
PHP(7?)はあとの方
Go Python3? Node10も速やかに対応される
言語コミュニティのリリーススケジュールに追従される
サーバレスコンテナ
コンテナを呼び出し単位で課金
どんな言語でも動く
GAE/SEとの違いは?
シンプルな開発者の体験を提供する
関数を書いているように開発できる
HTTPサーバとか気にしなくて良い
Pub/SubやGCSのイベントのサポートがされている
制限は強いけど、上手く使うとパワフルな機能を簡単に書ける
スケーリングのモデリングが違う。関数の呼び出しごとにインスタンスが起動している。
FlexはVMが動いているけど、SEみたいなスケーラビリティがない、イベントのGCFみたいなのが恩恵が受けやすいような仕組みを提供していきたい
GoやPythonのGCFのエミュレータ
どうやってローカルで開発しやすくするのかという質問?
今のところはローカルに準備できるという見込みはない。ユーザからのFBは多い。
ユニットテストとか統合テストとかで代替にしてほしい。
ローカルにサーバ上のものと同じものは作るのは難しい。90%くらいなら十分かもしれないので、今後どういうものが良いかを考えていきたい。
PythonやGoのエミュレータを直近で提供する予定はない。どういうものを提供すればいいか考えてから。
サーバ上で動いてるライブラリとか全部ローカルに持ってくる必要があるので難しい。
イベントのサポートが難しい。ローカルでエミュレーションするのは難しい。
Cloud Functions と Cloud Endpointの連携予定は?
これも副業的にやってる。
これはリクエストが多い。
HTTPは標準サポートがされているので、まずは取り組んだ。
マイクロサービスみたいに、きちんと設定したいというのは分かるので楽しみにしておいてください。
FirestoreのDBは1つのプロジェクトで複数つくれるようになるのか?
やる予定はあるけど時期はきまっていない
Datastoreモードの場合はNamespaceがあるのでそれを使ってほしい
Firebase CLIとgcoudの統合は?
予定はない。
Firebaseはモバイル向けの理想の開発環境を提供することを考えているから。
gcloud fireabseのエイリアスをくれ
<会場は2つに別れているものでOK>
1つの方が認証がGCPとFirebaseで別々になってあっちゃーとかがない。
今日のアナウンスされたけど、Firebaseイベントについてはgcloudコマンドからできる
現状移行予定のないGAEのサービスは廃止されますか?
話すと長い
2008年にGAEにリリースしたときに戻る
Google CloudがなくてGAEしかなかった
キャッシュやサーチが必要だったらGAEに組み込む必要があった
10年経ってGCEとかGKEとかが増えそれぞれから使えるようなものができてきた
お客さんからはGAE用のコードを書く必要があってポータブルではないというFBがきた
GAEのために書けばGKEやGCEでも動くようにしたいと考えている
Cloud Task -> Taskque, Cloud Scheduler -> cronのように提供している
memcacheとかredisは対応してきている
まだアナウンスされてないものがあるけど、他のサービスからアクセスできるようにする計画はある
Image APIとか、なにも発表されていないものがあるが、特に急に使えなくなるわけではない。
Searchはチームが編成されているが、まだアナウンスできるものはない。
Googleの製品としてSearchが提供されていないのは恥ずかしいことだと思っている
GAEのSearch APIは良くないけど、どうなるの?
GAEのSearch APIは新しい機能が提供されていないけど、新しいチームが編成されているので、きちんと使いやすいものにしていく予定。
GCFからVPC networking を使ってもmemory storeにアクセスできないけど今後の対応予定は?
アルファがQ4ぐらいに対応する。VPCがサポートされるといろいろからGCFからアクセスできるようにする。
それではロードバランサの奥にいるものにはアクセスできないけど、それにも対応する予定ではある。
Cloud Scheduler -> GCFはHTTPのエンドポイントがいるけど、エンドポイントなしでできないのか
Pub/SubのPubみたいなことができないの?
Pub/Subを使うとできる。-> ?
イベントの方でできるようにすればいけるような気がする。Cloud Schedulerがイベントを発生させればOK。
Cloud Schedulerのロードマップにはあるが、優先度は低い。
Cloud SchedulerチームはいまはGAにすることに集中している。
HTTPエンドポイントで行ける状態にはなってるが、それで満足しているわけではない。
イベントで対応する気持ちはある。
FirestoreでReal Database onDisconnectは実装されるのか?
ない。
予定もない。
Server Side CacheをGCFでどうやってやるのか?
VPCのサポートが入るとGCF -> Cloud Memstoreができるようになる。
GCEをプロキシを立てることもできるけど、それはサーバレスではない。
Cloud Memstoreの対応は必要だということは分かっているので、VPCのサポートによって対応されていく
GAEの1st genランタイムはそのうち廃止されますか?
2020にはPython2.7は言語コミュニティからのサポートされなくなる。
なのでGAE 1st genが廃止されるかどうかによらず、アップデートしていく必要がある
ndbの3系がほしい
やってるけど、GAE特化じゃなくて、他のサービスからも使えるようにできるように考えている
ndbと同じものを提供する予定ではない。他のサービスで必要な機能もサポートした上で提供する。
Google 2.7と仲良しでinternalコードを置き換える必要がある
いっぱいある。
Googleほどどんくさくないことを祈っている。
Googleとしても言語のコミュニティに寄り添ってアップデートサイクルを考慮していく
1st genの将来は決まっていないので、検討中。1st genの死んだわけではない。
他の言語も?
はい。
言語コミュニティが提供する機能をGCP上で使えるようにしていきたいと思っている。
個人的にもPython3がいいと思っているので、ぜひPython3に移行していってほしい
GCFとKnativeやCloud Eventsは将来的にマージされていくのか?
k8sはどのクラウドでも動く、GCPではフルマネージドサービスとしてGKEがある。
Knative...<難しくて分からなかった>
サーバレスのサービスはたくさんの選択しがあって大変。
混乱しちゃうのでそれは避けたい。
たくさんの選択肢も尊重していきたい。
自分自身の環境で動かすことができるという選択肢も維持していきたい。
現在は局所最適的なものとしてサービスが提供されているが、今後は全体最適なものを模索していくので期待しててほしい
いろいろあるのは大変だろうけど、現在提供しているものはユーザの問題解決のために提供されていて、実際にそれを使っている人たちもいる。なので、ご容赦頂きたい。
より全体最適になるようにコンテナベースでだいたい作っているし、言語コミュニティに寄り添っている。
この2つを軸にすすめている。
KnativeはオープンソースなGCFではないので、開発者がどんどん使いたいわけではない。
GCFとかIBM Cloud FunctionとかはKnativeの上のレイヤー。
Knativeの上に自分たちがほしい形で構築していくことが可能。
Cloud FunctonsでStatckdirver Debuggerの正式サポートはあるか?
ある。
決めないといけないことが多い。
どの言語をサポートするかとかパフォーマンスに影響がないかとか。
GCFからは、Debugger,ログ,Traceなどを妥当な初期値で簡単にスムーズに使えるようにするように計画しているところ。
いくつかは使えるようになっている。たとえばログはstdoutに出すとログとして扱われる。
Traceも今やっているところ。
デバッガーも頑張ってる
なわとびちゃんについてどう思う?
Tシャツほしいよね
Firebaseのベータ版の機能はC++で対応されてないけど予定は?
FirestoreはC++のライブラリもある。UnityのC++対応でやってるチームがある。
C++は開発の範囲に入ってる。
FlutterからFirebaseとFirebase Authを使ってるけどうまくいかない。ベータだから?
<ちょっと質問が分からなかった>
Stackoverflowに書いてね
GCFのコールドスタートについて(?)<質問聞いてなかった>
スケールアウトしたときに起こるのでコールドスタートを避けることはできない。
依存関係は必要なときに読み込むようにしたほうがいい。
初期化時にすべてやっちゃうとよくない。
開発チームも対応しているが完全に避けることはできない。
定期的にリクエスト送っても逆に悪化する恐れがある。
ライブラリをグローバルでロードするのはよくない。
Stackdriver ProfilerやTraceなどを使って問題の箇所を探すとよいかも
Firestoreのバックアップの機能は提供予定はあるのか?
exportができる。
コンソールから叩く必要 or REST APIがあるのでそれを使ってくれ。
GASからも叩ける。
Mediumの記事がある。
GAE/Goをデプロイする際に一番ベストなコマンドは?
gcloud app deployが推奨。
他の方法でも動くけど、新しい機能が入らないかも。
vendorのサポートはされてないが今後のバージョンでサポートする予定である。
Go1.11のmodulesを対応していく。go.modにも。
Firebase Functionsはリージョンの指定はできるのか?
できる
複数の指定したリージョンにデプロイできるのか
コピペでできる
複数のリージョンにFunctionがデプロイされてるときに叩き分ける良い方法は?
ユースケースは?
近いリージョンのFunctionを叩きたい
今はできないけど、ロードバランサでできるようにする予定がある(?)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment