
皆様、こんにちは!
Mixed Reality について、連載をする予定が、まずはイベント参加ということでw、早速、Google Cloud Next Tokyo '19 プレイベントの Dev Day について書きたいと思います。
プレイベントの DevDay
このイベント、昨年もアクセンチュア在籍時に参加し、その前の年も、参加しています。昨年から、 Google Cloud Certified Professional Cloud Architect 認定戴いているので、今回も、明日からの Google Cloud Next Tokyo 本編での有資格者向けラウンジが楽しみです。今年も何か戴けるそうで、早速有効活用します。
それにしても、今回は、東京プリンスホテルの方だったのですが、10時からのセッション開始にも関わらず、9時20分頃の段階でこんなに並んでいて、なかなかに盛況でした。

セッションレポート
今回のセッションは、10時から12時半で一気に4セッションでした。これなかなかにヘビーですねw 12:30 まで5分休憩で4セッションだと、結構お腹すきますよ。
ただ内容的には、全て外国人スピーカーで中々聞き応えありました。
午前中のセッション内訳は、こんな感じでした。
DevOps、SRE / オブザーバビリティ、アーキテクチャ、ハイブリッドクラウドなど「モダンアーキテクチャ」に関するテーマとなっていました。
・Serverless containers with Cloud Run
・App Engine Standard 2nd Generation Runtimes
・Serverless Containers with Knative & Cloud Run
・Anthos for Developers

一つずつ、簡単にご紹介していきますね。
Serverless containers with Cloud Run

このセッションは、Cloud Run について、コンパクトな解説をしてくれて、中々有用でした。詳しくはこちらの資料を見ていただくと良いと思います。
https://github.com/ahmetb/cloud-run-faq
https://github.com/steren/awesome-cloudrun

Cloud Run は、簡単に言えば、Docker コンテナをサーバレス環境で実行できるサービスです。これ実は、後ほど出てくる、Knative (Kubernetes 上でサーバレスコンピューティング環境を実現するフレームワーク)をベースに作られています。
また、Cloud Runの実行環境をより詳細に管理したいケースに対応するため、Google の Kubernetes 環境に Cloud Run を実装した Cloud Run on GKE もあります。これにより Kuberenetes のレイヤで Cloud Run 環境の CPU やメモリの割り当てなどを管理できることになります。
Cloud Run は、HTTP でステートレスなサービスを提供するコンテナを、サーバレス環境で実行可能となります。これはすなわち、何も負荷がない場合にはサービスは全く起動されず、負荷が生じればそれに応じて起動して自動的にスケールするということです。課金は、およそ100ミリ秒ごとに起動しているサービス数等により計算されます。コンテナであれば、どんな言語で作られたサービスであっても関係なく利用できます。
サーバレスには2つの側面があると彼は言います。一つは運用モデルとしてのサーバレス、もう1つはプログラミングモデルとしてのサーバレスです。この2つは意識して区別しながら考えないといけないです。

そして、いったん開発しておけば、コンテナとして普通にデプロイできるし、Cloud Run on GKE で GKE コンテナにもデプロイできるのが、Cloud Run というわけです。

私としては強調しておきたいのは、この Paris が拠点(初来日だそうです)の Developer Advocate の方のプレゼンですね。この4人の中で一番こなれていて、エバ的には感心したセッションでした。
このセッションは、Cloud Run というものの紹介と、それからそのシナリオ紹介、デモ、と流れていくわけですけれども、特にシナリオ部分と、デモ、が流れが良かったですね。シナリオは、文書を変換するサービスをデプロイするというシンプルなものです。ここでは、シークレットという名前のついた .docx ファイル(実際には彼の猫に関するファイル)を PDF 変換するサービスの作成でした。

その中で、コンテナとして普通にデプロイして使う場合と、Cloud Run on GKE で、GKE コンテナにデプロイして使う場合と、結果は同じなのですが、その違いをしっかりとポータルの画面を出しながら、具体的に対比しつつデモをしていたのは、わかりやすかったです。

デモってオーディエンスの理解しやすさを考慮して、こういうところに気を遣って、実施する必要があるんですが、多くの人はわかっていないですね。彼のは、とてもわかりやすいデモでした。とても秀逸です。
App Engine Standard 2nd Generation Runtimes
次は、App Engine スタンダード第二世代ランタイムについてのセッションでした。

次も実は同じ Developer Advocate の方によるセッションです。こういう場合、ちょっとやりづらいですが、自分でツッコミっぽく「はい、次の方お願いします!え?あ、俺?それでは皆さん、よろしくお願いします!」的なノリでスタートしていて、この辺りも上手いですね。
GAE(Google App Engine)は、実は私が GCP のなかで最も好きなサービスの一つです。スケーラブルで、軽く、安定性があり、プログラミングに専念できる、古くから PaaS の典型例とされているサービスですよね。

第二世代では、さらに最適化されたコードベースの整備、さらなる可搬性の実現、そして最新のランタイム、になっているようです。

ランタイムはいろいろあります(Python、PHP、GO、Java、Node.js、Ruby、等)。それらは全て最新のものになっているようです。

今回は Java11、Node.js、Ruby、について詳細な解説とデモがありました。
Java は Microservices 基盤の Micronaut、Apache Groovy、それに Cloud SQL の組み合わせだそうです。
Java については、.NET レジェンドの一人としては(笑)、やっぱり環境構築が面倒くさそうで、そんなに好きではないですが、構成はわかりやすいかもしれないですね。ただやっぱり Visual Studio だけで、Mobile から、IoT、組み込み、Unity、Mixed Reality、そして Azure 各種サービスの細かいところまで一本で実装できる、そういうのがシームレスなデベロッパー体験で私は好きです。好みの問題ですね。


あと、サンプルといはいえやっぱり UX 的には厳しいなーと思いました。どうして Java ってこういう適当な(失礼)UX のアプリが多いんでしょうね。反論いただいても困りますが、率直な感想です。

続いて、Node.js のデモ。

そして、Ruby on Rails のデモでした。彼は Ruby はあまりやってないけど、全くやり方は同じようにできるよ、みたいなことをいって軽くやってました。

全体的に、GAE やっぱりいいな!使ってみたいな!と思わせる良いデモでした。(C# /.NET Core ランタイムも、エンタープライズワークロードを狙うのなら、次からぜひ入れて欲しいですw)

Serverless Containers with Knative & Cloud Run
続いては、Knative と Cloud Run によるサーバレスコンテナのお話でした。

Knative というのは、昨年春ころ発表されたもので、簡単にいえば、クラウドにおける PaaS や FaaS のようなアーキテクチャを、Knative がインストールされていれば(Kubernetes クラスタであれば)どこでも実現できるものです。

今までのオンプレミスでのワークロードにおいては、どのようにクラウドコンピューティングへ移行すればいいのかという課題を抱えるものも少なくありませんでした。しかし、Knative 及び GKE On-Prem が登場したことにより、オンプレミスからクラウドへ向いていたワークロードの移行方向が逆転または並存する可能性があります。実際にも、この後の Anthos と並び、4つのセッション中で、ハイブリッドクラウドと表現されているセッションとなります。
公式ドキュメントはこちらですので、詳しくはこちらをご覧ください。
https://cloud.google.com/knative/?hl=ja
最初に、彼が考える Serverless の定義が紹介されていました。

そして、Kubernetes の紹介と、

Dev/Ops にとっての K8s のあり方について説いた上で、

それぞれのコンポーネントの要素(serving, eventing, build)について、この後デモを交えて、紹介してくれました。

こちらは、Knative Stack の図です。Kubernetes のプラットフォーム上に、Gateway としての Istio 等があり、その上に、これらのコンポーネント(serving, eventing, build)が記載されています。
さらに上の Products のレイヤーには、IBM、Red Hat、Pivotal、SAP を始め、Google Cloud Run、Google Cloud Run on GKE が記載されています。

その後、gcloud コマンドで、Knative の作成からスタート。

そして、Serving の説明とデモ。



続いて、Eventing の説明とデモ。


そして、Cloud Storage、Cloud Pub/Sub、Knative Eventing、Knative Serving、Cloud Vision API、の組み合わせソリューションの説明。

そして、Knative Build の説明とデモ、と続いて終わりになります。


この Developer Advocate の方は、London 拠点ということで、やはり初来日だそうです。詳しい内容は、彼の Github アカウントで公開されていますので、こちらをご覧ください。こちらにスライドも内容も、全てあるとのことでした。
https://github.com/meteatamel/knative-tutorial

とても良い内容なんですが、CUI でコマンドラインでのデモが多いため、個人的には、もう少し大きなフォントサイズにするか、ズームなどを使って適宜倍率を上げたほうが良いと思います。しかし、Microsoft もそうですがそこまで気を遣って倍率を上げるのは日本だけなのかも?海外では、ほとんどズームはしないですね。まあ今回のようにソースコードが完全に公開されているのであれば、それを先にポイントして、あとはそれを見てくれ、という手も無くはないですが、生でデモをやるのであれば、やはり何らかの手段で拡大したほうが良いと思います(Microsoft エバ 時代から基本的に生デモをやることが染み付いてしまって、いま自分の弟子のエバ育成で指導するときも可及的に同じようにしていますw)。
Anthos for Developers
最後のセッションは、Anthos でした。この Developer Advocate の方は、日本語少しだけ話せて、最初と最後は日本語による挨拶でした。

Anthos というのは、今年の4月に発表されていたもので、Kubernetes をベースにアプリケーションのマルチクラウド対応を実現する新サービスです。
コンテナ化したアプリケーションをオンプレミスとクラウドのどちらでも実行可能にする、ハイブリッドクラウドおよびマルチクラウドのためのプラットフォームということになります。今回のセッションでは、GKE と Istio を、オンプレおよびクラウドで動かす、という話でした。

Google Cloud上では、Google Kubernetes Engine(GKE)上で動きます。そして、オンプレミスでは GKE on Prem 上で稼働します。さらに AWS 上で稼働することもできます。すなわち、GCP 以外のクラウドをサポートすることによるマルチクラウド対応が可能です。
ここでまずは、Kubernetes の特長について整理します。




そして、GKE の話に続きます。GKE On-Prem も紹介します。


そして、GKE On-Prem Networking のお話をしてくれました。セキュアに GCP とつなぐ方法も用意されています。


そして、Istio ですね。色々な説明をしてくれていましたが、やはり重要なのは、K8s だけだと、アプリの管理が主で、監視、管理、等の部分は、Istio がやるしかない、ということです。





これは、Anthos の管理画面から使える統合管理可能であり、オンプレミスを含め、どのクラウド上にアプリケーションがデプロイされていても、稼働状況を把握して、セキュリティポリシーを適用できます。これが Policy as Code です。

また、Google Cloud Marketplace から任意のクラウドに対して、アプリケーションやサービスを展開することができます。

Anthos と、その基盤である GKE や GKE on Prem を、Google がマネージドサービスとして提供します。したがって、ユーザーはプラットフォームに関する運用を気にせず、ハイブリッドクラウド、マルチクラウドの環境を利用できます。

このあとは、Beta 版でである、Migrate for Anthos の紹介がありました。

そして、まとめで終了です。

全体的に抽象度が高いので、説明が難しいところ、うまく纏めて説明してくれていました。流石にデモはあまりなかったようですが、私がやったとしても同じようにしたと思います。
明日からの予定
そんな感じで、最初の DevDay はなかなか面白かったです。明日は、基調講演、聞かせていただきます。今回は、プラチナスポンサー?になっているアクセンチュアの副社長の関戸さんがどんな話されるのか、おそらくそそれと連携しているであろう元上司のマネージングディレクターの山根さん達の GCP によるフルバンキングパッケージ?ソリューション?のセッションも聞かせていただきます。
それ以外は、Firebase とか、GKE、Istio、等々、聞かせて戴きたいのですが、よく考えたら、霞ヶ関勤務のため、午前中しか居られないかも...orz
それではまた!