えいのうにっき

a-knowの日記です

第2回GCPUG in Tokyo に行ってきた! #gcpug

行ってきた! 場所は前回と同じく?六本木はクロスポイントビル5Fのフリークアウトさん。ありがとうございます!

なんかでっかいステッカーいただきましたー!

f:id:a-know:20150515222332j:plain

アジェンダ

↓なかんじ。

  1. GCPUGの活動状況報告
    • 吉積情報株式会社 GCP入門本著者 吉積礼敏氏
  2. Google Cloud Bigtable について
    • Google Inc プロダクトマネージャ Cory O’Connor氏
  3. FireBaseの概要と使い方(Firebase によるリアルタイムモバイル開発)
  4. Google Cloud Dataflowが描く「MapReduce後の世界」とは
  5. GCP のあまり知られてないけど便利な機能
    • カブク 大橋さん
  6. Beer Talk
    • タイムアップにより参加できず

以下、それぞれについての一口感想。

Google Cloud Bigtable について

Google Cloud Bigtable。ほんの数日前にリリース?されて、GCP のサービスにしては(失礼)えらいバズってるなー、というのを Twitter の TL を見て思った、というくらいの印象しかなかった。今日のお話を聞くまでは。

こいつの特徴をかいつまんで言うと、"HBase 1.0 クライアントに準拠" している、 "マネージドな NoSQL データベース(KVS)サービス" 、ってことでいいらしい。

HBase。僕は今の会社で、一時期、結構ごりごりに Amazon EMR を使ってた時期があったのだけど、そのときでも、HBase を使ってアプローチする必要のある問題に従事していたわけではなかった。なので、HBase は使ってないので、"HBase 1.0 クライアントに準拠" しているというこの Cloud Bigtable についても、直感的にはわかんなかった(加えて英語だったし)ところが多かった。けどまぁ、その EMR(というか MapReduce)で HBase を使うとした場合、その HBase と置換え可能(かつ、鬼速度)なクラウドサービスが Cloud Bigtable だ、と思えば良いんじゃないかな、とか思った。

とはいえ、以前 EMR を使ってアプローチしていた課題も、今や BigQuery に置き換わらんとしているので、ぶっちゃけ今回の Cloud Bigtable にはあまり興味は持てなかった。

まぁ、"Bigtable の上にまた別のデータベースを構築してる。例えば Datastore とか" という下りで、僕個人では GAE で Datastore には馴染みがあるから、"行単位のトランザクション" とか出てきて、そこでは「はいはい!」って思った。

Firebaseの概要と使い方(Firebase によるリアルタイムモバイル開発)

Firebase については、Cloud Bigtable 以上に前提知識がなかった。今日がファーストコンタクト。

で、お話を聞いてみると、Firebase とは、円滑なモバイルアプリ開発を助ける(そこに集中できるようにする)ために、そのバックエンドの仕組みをまるっと提供してくれる、いわゆる BaaS だった。

Firebase は、大きく "リアルタイムDB"、"ユーザー管理"、"ファイルホスティング" の3機能を提供・一手に引き受けてくれるプラットフォーム。なぜこの3点かというと、モバイルアプリには、

  • 多数のプラットフォームで動くし、
  • ユーザーはリアルタイム性を期待してる。
  • の割に、ネットワークの信頼性は低いし、
  • 常に接続されているそれぞれのデバイスにはアプリの状態が分散されるし、
  • 多数のデバイスがつなぎにくるということはスケーラビリティも必要。

という、チャレンジングな要素が常に付きまとうから、だそうだ。それを解決するためにはこれら3点が必要、...というか、これら3点について徹底的に突き詰めたサービスがあれば便利、ということなんだろう。

リアルタイム DB

  • NoSQLのJSONデータベース
  • ミリ秒単位で更新をプッシュしてくれる
  • バイスから直接のアクセスを可能とするセキュリティモデルになっている
  • データとURLをマッピングしてくれる
  • 端末側で抱えてるデータと Firebase の間で、両方向にデータを同期することも可能。
    • 端末が複数ある場合でも容易にコラボレーションできる。
    • 一部オフラインになった端末を自動で識別し、Firebase の方で持っているデータでやりすごす。またオンラインになったら同期する。みたいなこともできる

ユーザー管理

  • 以下の様な方法でのユーザー認証機能を提供
    • メアドとパスワード
    • OAuth
    • カスタム認証トーク

ファイルホスティング

この Firebase 、今日のお話の中では一番おもしろそうに思えたので、モバイルアプリの開発の予定はまったくないけど、早めに体験しておきたいなと思った!

Google Cloud Dataflow が描く「MapReduce後の世界」とは

Google Cloud Dataflow のお話。GDF、今までにもちょこちょこと耳にする機会はあったんだけど、いつもその間隔が空いてしまって、だいたい毎回 "初耳" みたいな新鮮な気持ちで聞いてる。とてもだめ。

GDFは、ストリーム処理とバッチ処理を統合したような仕組み。GDF とは、どのような流れでデータを処理していくか、という定義である "パイプライン" を開発するための環境を指す言葉であり、また、その "パイプライン" に従って実際にデータを処理してくれる、フルマネージドな実行環境を指す言葉でもある。

例えば今日のデモでは Java コードによってパイプラインを定義していたけど、それはあくまで "パイプラインの表現" にすぎなくて、実際にその Java コードが動くことによってデータが処理されるわけではない

GDF での処理に必要なリソースは、GDF が自動で GCE インスタンスを立ち上げ、よしなにやってくれる。この光景は、Amazon EMR のそれとよく似てる。

今回認識を新たにできたのは "コードで書くのは、あくまでパイプラインの表現" というところ。今のところ Java しかサポートされてないけど、近々 Python もサポートされる予定、ということで、日頃 Ruby を書いてる僕は Python 覚えようかな・でもいきなり GDF で動くコードとか大変そうだな、とか思ってたんだけど、"パイプラインの表現" なら、それほどでもないかな。とか思うなどした。なんにせよ、おもしろそうだなと思った。

GCP のあまり知られてないけど便利な機能(大橋さん)

ご本人もおっしゃっていたけど、ここまでグーグラーが3人連続の登壇で、ここでようやく "GCP ユーザー" が登壇(笑)。様々な "あまり聞き覚えのない GCP サービス" について、紹介してくれた。

  • Google Cloud Repositories
    • フルマネージドなGitリポジトリ。500MBまで無料、Cloud Debugger とか使える
    • 設定しておくと、AppEngine の吐くログがリンクになる
  • Google Cloud Trace。Appstats が Cloud Console で触れるようになった、みたいなもん
    • うまくとってくれてない RPC コールがある、というのがよくある
  • Push to Deploy(旧 Release Pipeline)
    • Jenkinsェ...
  • Google Container Registry
    • ほぼフルマネージドな Docker Registry
    • GCS にデータを保存
    • GCS の ACL をそのまま使える
  • Google Metadata Server
    • プロジェクトやインスタンスメタデータストア
    • 簡易なKVSも
    • プロジェクトごと、インスタンスごとの設定ができる
    • 予め、IP / ssh-keys / service-account / project-id / disks / hostname / instance-tag などが登録されている

そして最後に、「実際にプロダクトを運用する、という点では、GCPAWS にだいぶ近づいてるけど、まだまだ日本語の情報が少ない」「ユーザーグループなのに、ユーザーの登壇が僕一人、というのはダメだ」「今日は僕が発表しました、次はみなさんの番ですよ!」との、アツいメッセージが。ううん、確かにそうかも。

弊社でもようやく GCP 事例が生まれ始めた段階なので、これを育てて、いつかこういうところで発表できるようになりたいものだ、と思った。

お疲れ様でした m(_ _)m