第 3 回目になりますが、Hack Azure! ということで Ignite 2020 の Azure に関するアップデートについて話す会をやりました。Ignite 2020 開催の 1 週間前という突然の募集でしたが、多くの方に参加いただき感謝です。
今回も Q&A を行っていますが、独断と偏見で選ばれた一部の内容についてフォローアップしておきます。
- Twitter まとめと YouTube アーカイブ
- 森羅万象について書かれるブチザッキ
- App Service の Go 対応
- Azure Functions v2 のプラットフォームアップデート
- Web App for Containers の Multi Container 対応は GA する?
- Azure Orbital について
- Classic と付くと終了フラグなのか?
- デプロイに時間のかかるサービスは…
- GitHub Learning Lab がめっちゃ良い話
前回の Cosmos DB 編とは異なり、ちょっと面白系の話をピックアップしている気がします。
App Service (Premium V3 / Windows Containers / ASE v3) に関しては後日またいろいろ試して書きます。気分が乗れば試しているのを、適当に配信するのも面白いかもと思っています。
Twitter まとめと YouTube アーカイブ
例によって Togetter でツイートまとめと、YouTube でアーカイブを公開しています。時間が合わなくて見られなかった方や、さとうなおきさんの神補足ツイートはこちらから確認ください。
前後の余計な部分だけカットしているという話なので、本編は基本そのままです。
森羅万象について書かれるブチザッキ
今回もとりあえずブチザッキを読んでおけば、一通りは把握できることが証明されたと思います。
そろそろ画像の貼りすぎで WordPress の容量がやばいらしいので、ブチザッキの継続性のために GitHub Sponsor 経由でポチっと支援しておきました。
あと10回ぐらいこの手のイベントの書いたらWordpressの容量いっぱいになる気がする
— こすもす.えび (@kosmosebi) 2020年9月22日
今後もブチザッキに期待していきましょう。我々の睡眠時間のためにも。
App Service の Go 対応
Twitter ではめちゃくちゃ Go 対応について書かれていましたが、本編ではその時に ACS の話をしていたので、App Service での対応ではなく SDK レベルでの話をしてしまいました。
古くから App Service を使っていた方なら知っているかもしれませんが、Go がプリインストールされていて Git を使った CI/CD まで対応していた時代がありました。
昔は App Service (Windows) には Go 1.5 がインストールされていたんですが、利用率が低かったからか削除されたという経緯が https://t.co/krqxnGvgTU
— しばやん (@shibayan) 2020年9月25日
その頃は 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 のようにプレビューのままになるか、もしかしたら廃止される可能性もあると思っています。
プレビュー中のサービスはフィードバックが重要になるので、基本はさとうなおきさんの仰る通りです。
Azureのプレビュー機能は、GAすることが保証されていないです。廃止されることもちょいちょいありますね。プレビュー機能を使っている方は、ぜひフィードバックを送ってください。#hackazure
— SATO Naoki (Neo) / さとうなおき (@satonaoki) 2020年9月25日
古いプレビューに関してはフィードバック先が分からないという問題点はありますが、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 があったようですね。
これらのサービスは一定の移行期間を置いて、強制的に新しいサービスへの移行や廃止が行われてきました。
#hackazure クラッシックってついたらもうEOLフラグですよね。
— kkamegawa (@kkamegawa) 2020年9月25日
Classic はいずれ消されるサービス #hackazure
— 状態マシーン™ (@statemachine) 2020年9月25日
話に出た 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 で学んでおくと捗ると思います。
困った点は良くも悪くも英語ノリなのでジョークなどのネタが全く通じないことです。説明が必要。
コンテンツを完了するといろいろな種類の Octocat が見られるので、割と面白かったです。