Ignite 2日目です。2日目のKeynoteということで開発者向けの話かな?Scott Hanselman氏+フレンズによるセッションです。
最初はdotnet ConfやWindows Terminalのムービーなど小ネタから。タコス好きなのかな。
まずは昨日のおさらい。Visual Studio Onlineの発表。Dev Spaces接続やFunctionsのPremiumやPowerShellサポート、App Service Managed Certificates、Spring CloudのPreviewなどなど。
最初のフレンズはMike氏。タコス。
開発はお好きな言語で。デモはクラウドなApp Scaleな感じで言語のマスコットを操作してじゃんけんするようなやつ?Kubernetes上で動作してます。それぞれのプレイヤーはそれぞれの言語でできててAPIとして提供されてる感じですね。
次はツール周り。GitHub、Visua Studio、Visual Studio Code。Visual Studio CodeはWSL(WSL2かな?)経由で接続なども話がありましたね。WIndows Terminalの話も。WSLなUbuntuも。Explorerなどホストとのやりとりも容易です。Visual Studio CodeもUbuntu上に接続するのでファイルシステムなどもUbuntu(WSL)上にあります。PowerToysも紹介。ウィンドウ配置も楽々。ブラウザでローカルホストにつないだらWSL上で動作してるアプリに接続してVisual Studio CodeでデバッグもOK。htopで見てもちゃんとUbuntu上でVisual Studio Codeが動作してるのがわかります。
次は.NET。どこでも.NET。さっきのデモのGame Manager部分かな。.NET Core 3.0でgRPC使うデモ。protoファイルから自動生成とか。ちょいちょいIntelliCodeの紹介を入れたり小ネタ入れてきますね。Visual StudioのShell部分もWindows Terminalかなこれ。KubernetesなのでAzure Dev Spacesにデプロイできたりkubectlでログをストリームしたり。
ざっくりAzureとかの位置づけ。そろそろAzure関連サービスやらも200に行きそう。ちょっとバズワードぽいけどCloud Native Appsの話。ここではコンテナライズされたアプリについてDevOps的な話についてかな。GitHub Actions使ったりTerraform使ったりもOK。
Visual Studio CodeでAzure Dev Spaces上のk8sで動作してるサービスに接続してデバッグするデモ。(Dev SpacesはまだPreviewですけど)
実際にインターネットに公開されてるエンドポイントのk8sのアプリをリモートデバッグ。次はGitHub上のPull RequestをマージしてGitHub Actionsを実行、デプロイ。デモではPrivateバージョンな環境にデプロイされるようにしてる感じですね。
GitHubのフレンズも登場。コードのセキュリティについて。キーの埋め込みコミットしちゃうとずっと残ってしまう。node.jsでの例ですけどPull Requestに脆弱性が含まれてるパッケージがあると警告だしてくれます。
次はGitHub Workflow。ビルドやジョブなどYAMLで記述してCI/CDできます。CDの中でデプロイに必要なAKSへの資格情報など入力させるように定義したりとかかな。
次はAI関連。フレンズはSeth氏ですね。ここではじゃんけんの予測かな。デモの流れからして。これまでの勝敗ログを基に予測モデルを作っていくデモですね。あとそれぞれの手の画像を取得して識別も。Custom Visionでやってます。学習させたモデルはTensorFlow形式でJavaScriptで使えるようにエクスポート。ということでこれまでのデモに組み込むとカメラからじゃんけんの手を識別して予測モデルと対決ができるようになりました。
最後はデバイス関連。今日はIoTですね。Kickstarterなマイクロコントローラー上で.NET Standardが。じゃんけんするアプリをこのマイクロコントローラー上で動かせます。
というわけでまとめ。
みんなおいでよ http://azure.com/developer
あと今日のデモはオープンソースに。http://aka.ms/rpsls
やはりデモが主軸でストーリーが出来てるので理解しやすいですね。どの言語でも環境でも開発できるのが強みになってるので興味がある人は是非サンプルを見たり実行してみたりしましょう。
という感じで2日目キーノートでした。