しばやん雑記

Azure Serverless とメイドさんが大好きなフリーランスのプログラマーのブログ

Hack Azure! #3 Catch up Ignite 2020 Azure updates フォローアップ

第 3 回目になりますが、Hack Azure! ということで Ignite 2020 の Azure に関するアップデートについて話す会をやりました。Ignite 2020 開催の 1 週間前という突然の募集でしたが、多くの方に参加いただき感謝です。

今回も Q&A を行っていますが、独断と偏見で選ばれた一部の内容についてフォローアップしておきます。

前回の Cosmos DB 編とは異なり、ちょっと面白系の話をピックアップしている気がします。

App Service (Premium V3 / Windows Containers / ASE v3) に関しては後日またいろいろ試して書きます。気分が乗れば試しているのを、適当に配信するのも面白いかもと思っています。

Twitter まとめと YouTube アーカイブ

例によって Togetter でツイートまとめと、YouTube でアーカイブを公開しています。時間が合わなくて見られなかった方や、さとうなおきさんの神補足ツイートはこちらから確認ください。

前後の余計な部分だけカットしているという話なので、本編は基本そのままです。

森羅万象について書かれるブチザッキ

今回もとりあえずブチザッキを読んでおけば、一通りは把握できることが証明されたと思います。

そろそろ画像の貼りすぎで WordPress の容量がやばいらしいので、ブチザッキの継続性のために GitHub Sponsor 経由でポチっと支援しておきました。

今後もブチザッキに期待していきましょう。我々の睡眠時間のためにも。

App Service の Go 対応

Twitter ではめちゃくちゃ Go 対応について書かれていましたが、本編ではその時に ACS の話をしていたので、App Service での対応ではなく SDK レベルでの話をしてしまいました。

古くから App Service を使っていた方なら知っているかもしれませんが、Go がプリインストールされていて Git を使った CI/CD まで対応していた時代がありました。

その頃は Go で Web アプリケーションを作る世界になっていなかったので、使用率が非常に低く削除されたという経緯です。今なら Docker で何でもできるというスタンスです。

Docker 以外で使う方法も存在していて、アプリケーションをビルドして exe 単体で実行可能な状態かつ、環境変数などで渡されたポート番号で HTTP を受けることが出来れば App Service 上で実行できます。

実際に App Service で非対応の Deno を Windows の App Service で動かすことも簡単です。

これらは HttpPlatformHandler によって実現されています。Azure Functions の Custom Handler と同じような形で Web アプリケーションを任意のランタイムで実行できる仕組みです。

Azure Functions v2 のプラットフォームアップデート

.NET Framework 4.8 がほぼ全ての Azure のパブリックなリージョンにデプロイされましたが、次には Azure Functions v2 のプラットフォームアップデートがやってきます。詳細は以前書いた通りです。

Azure Functions Runtime v3 の v2 互換モードで実行されるようになるので、実際には .NET Core 3.1 への強制以降となります。ぶっちゃけ難しくないので、さっさと v3 へのアップデートを行った方が健全です。

Web App for Containers の Multi Container 対応は GA する?

既に Multi Container のプレビューが始まってから 2 年以上が経過しているので、このままずっと Shared Plan のようにプレビューのままになるか、もしかしたら廃止される可能性もあると思っています。

プレビュー中のサービスはフィードバックが重要になるので、基本はさとうなおきさんの仰る通りです。

古いプレビューに関してはフィードバック先が分からないという問題点はありますが、User Voice や公式ドキュメントから GitHub 経由でフィードバックが送れるようになっているので、その辺りで書いておくと分かっている人にある程度ルーティングしてくれるはずです。

Azure Orbital について

Ignite 2020 のアップデートで一番無縁なサービスが Azure Orbital だと思います。またそのままの名前です。

利用可能な衛星は GEO 以外になっているので、GEO で運用している人は諦めましょう。

Orbital can be used to schedule Contacts with Non-Geostationary Earth Orbit satellites (NGSO) which include Low Earth Orbit (LEO) and Medium Earth Orbit (MEO) Satellites.

パートナーとしては SES が有名ですね。Space X で良く打ち上げられている衛星のオペレーターです。

実際のところは一生使うことはないサービスかなと思います。衛星は流石にハードルが高すぎる。

Classic と付くと終了フラグなのか?

これまでも Azure では Classic と付くようになったサービスがいくつかあります。

例えば Azure Resource Manager 以前の API は Classic Deployment Model と呼ばれましたし、VM も第一世代は Classic と呼ばれていました。それ以外に ML Studio も Classic があったようですね。

これらのサービスは一定の移行期間を置いて、強制的に新しいサービスへの移行や廃止が行われてきました。

話に出た Application Insights も Workspace-based ではないこれまでのリソースは Classic と付くようになったので、将来的には全て Workspace-based になる可能性が高そうです。

デプロイに時間のかかるサービスは…

大体インフラの仕組みが古いので良くないサービスが多いです。以下、代表的な例。

  • API Management (Consumption 以外)
  • Azure Cache for Redis
  • Application Gateway

裏側が恐らく Cloud Services や古い VM で構築されているっぽいので、インフラ側が洗練されていません。

デプロイが遅いということは、スケーリングにも時間がかかるということなので困ることが多いです。

GitHub Learning Lab がめっちゃ良い話

GitHub Actions 絡みで少し話に出ましたが、GitHub Learning Lab がめちゃくちゃ学習に便利です。GitHub の機能について、GitHub 上でそのまま学べるので理解が早いです。

日本語は一部だけ用意されていますが、GitHub Actions の Learning については英語のみでした。

自分は DevOps 周りは一通り終わらせています。GitHub Actions の Workflow を自動生成するだけだと応用が利かないので、Learning Lab で学んでおくと捗ると思います。

f:id:shiba-yan:20200926170206p:plain

困った点は良くも悪くも英語ノリなのでジョークなどのネタが全く通じないことです。説明が必要。

コンテンツを完了するといろいろな種類の Octocat が見られるので、割と面白かったです。