APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【Microsoft Build】コンテナ製品全期間Updateまとめ ~更新情報サイトより~

はじめに

ACS事業部の谷合です。
米国時間5/21-5/23でMicrosoft Buildが開催されていました。
追いきれないくらいのUpdateが発表されていましたが、今回はコンテナ製品に絞って、更新情報からUpdateを拾っていきたいと思います。

azure.microsoft.com

それでは見ていきましょう。

更新情報紹介

Experimentation capabilities for Azure App Configuration now in public preview

azure.microsoft.com

ExperimentationはAzure App Configurationの新機能で、アプリケーションの機能について実験を行い、メトリクスやFeature Flagのインプレッションを収集し、本番環境で影響を判断することができます。

現在、パブリックプレビューでは、実験機能は、アプリケーションの新機能の反復を容易にします。 実験の結果は、開発者がユーザーのアクティビティやアプリケーションのパフォーマンスに対してより迅速に対応するのに役立ちます。 実験機能は次のような用途に使用できます:

  • 生成AIモデルを反復してユーザーのニーズに適応させ、AI機能を拡張するオプションを特定し、精度を向上させる。

  • 新機能のパフォーマンスと使用状況を評価し、機能ロールアウトのリスクを低減し、製品品質を向上させる - これらすべてがCI/CD機能を強化し、継続的な実験の基盤となる。

  • A/Bテストを活用し、さまざまなUI要素を比較した実証データを作成します。

  • ユーザーの嗜好や行動に合わせてパーソナライズされたコンテンツとエクスペリエンスを提供します。

実験は、Azure App ConfigurationをAzure Application InsightsおよびSplit Experimentation Workspace(Azure ISV Servicesの一部であるパートナーソリューション)と統合することで可能になります。

Generally Available: Automated deployments for AKS

azure.microsoft.com

AKSの自動デプロイが一般的に利用可能になりました。リポジトリへのワークフローの承認、スターターアプリケーションの生成、コンテナイメージとKubernetesマニフェストをビルドしてクラスタにデプロイするためのCI/CDパイプラインの設定などのプロセスを簡素化する。

ACR内のイメージをパッとデプロイできる、これは地味にうれしい機能ではないでしょうか?
ただ、GitOpsなどで運用をしたい企業も多いでしょうし、ユースケースは限られそうです。

Public preview: Deployment safeguards mutations in enforcement mode for AKS

AKSのデプロイメント・セーフガードが、パブリック・プレビューの実施モードでmutationをサポートするようになりました。
強制モードでは、デプロイメント セーフガードは個々のセーフガードに基づいてデプロイメントを拒否するか、mutation(自動的に修正)します。
mutationは、Kubernetesリソースがベストプラクティスを欠いている場合にトリガーされます。

KubernetesでもAdmission WebhookにMutatingAdmissionWebhook がありますが、内部ではこれが動いているものと思われます。

kubernetes.io

Public preview: Kubernetes version 1.30 support in AKS

azure.microsoft.com

Kubernetesの最新バージョンであるKubernetesバージョン1.30が、AKS向けにパブリックプレビュー版として公開された。バージョン1.30では、プラットフォームのセキュリティとオーケストレーション機能に焦点を当てたいくつかの機能強化が導入されている。

Kubernetesバージョン1.30のChangelogは以下を参照ください。

github.com

Generally Available: KEDA in the Azure Portal

azure.microsoft.com

Kubernetes Event-Driven Autoscaler(KEDA)はオープンソースの軽量コンポーネントで、外部スケーラのイベントに応じてコンテナワークロードをオートスケールすることができます。
KEDAはネイティブのKubernetes Horizontal Pod Autoscaler (HPA)の機能を拡張し、多種多様なスケーラとScale-to-zero機能を備えているため、ユーザーアプリケーションはより持続可能でコスト効率の高い方法で需要を満たすことができる。

Azure Portalは現在、メモリ、CPU、cron、Azure Service BusのスケーラーでKEDAのスケーリングをサポートしています。

また、Azure Service Busについては、ワークロードアイデンティティのデプロイと設定をPortalが行います。これにより、Portalインターフェースを通じてKEDAリソースの作成と管理が効率化されます。

Generally Available: Azure Kubernetes Fleet Manager workload orchestration

azure.microsoft.com

Azure Kubernetes Fleet Managerのワークロードオーケストレーションが、いくつかの機能強化とともに一般利用可能になり、アップグレードやワークロード配置のシナリオをよりコントロールできるようになりました。

可用性ベースのアプリロールアウトにより、Kubernetes Fleet Managerは、アップデートをロールアウトする際に、デプロイメント、ステートフルセット、デーモンセット、ジョブなどのKubernetesワークロード型リソースの可用性チェックを実行します。
これにより、ワークロードの準備が整ったときにのみ段階的なロールアウトが実行されるようになります。

また、特定のメンバークラスタへのデプロイを制限し、アプリケーションのスケジューリングを回避するために、テイントを設定できるようになりました。
柔軟性を高めるために、さらに許容値を設定して、テイントが一致するクラスタへのスケジューリングを許可することもできます。

Generally Available: Azure Functions can now run on Azure Container Apps

azure.microsoft.com

Azure Container Apps環境上でAzure Functionsを使用し、一元管理とサーバーレススケールのために設計されたクラウドネイティブなソリューションにマルチティープサービスをデプロイできるようになりました。
Azure Functionのホスト、ランタイム、エクステンション、およびAzure Functionアプリは、Core Tools、AzCLI/Portal/Code-to-Cloud、GitHubアクション、Container Appsコンピュート環境へのDevOpsタスクなど、使い慣れたFunctionsツールを使用してコンテナとして開発およびデプロイできます。

これにより、マイクロサービスを構築する際に、一元化されたネットワーキング、観測可能性、およびマルチタイプのアプリケーション開発のための構成境界が可能になる。Azure Container Apps上のAzure Functionsは、DAPRと統合し、KEDAを使用してスケーリングし、パフォーマンスの高いサーバーレスプランにプロビジョニングできます。
これにより、マイクロサービス向けに構築されたサーバーレスコンテナサービス、堅牢なオートスケール、完全に管理されたインフラストラクチャで生産性を最大化できます。

この機能は現在、一般的に利用可能です。

Public preview: SDK type bindings for Azure Blog Storage with Azure Functions in Python

azure.microsoft.com

Azure Functions のトリガーとバインディングを使用すると、イベントソースとデータソースをファンクションアプリケーションに簡単に統合できます。この機能により、サービスSDKやフレームワークの型を使用できるようになり、現在提供されている以上の機能が提供されます。

具体的には、Azure Storage BlobのSDKタイプバインディングは、以下の主要なシナリオを可能にします:

  • 大きなサイズのBlobのダウンロードとアップロード、現在のメモリ制限とGRPC制限の軽減。

  • Azure FunctionsでBlobを使用することによるパフォーマンスの向上

Public preview: Azure Functions extension for OpenAI

azure.microsoft.com

Azure Functions extension for OpenAIは現在パブリックプレビュー中で、開発者はOpenAIと統合するFunctionアプリケーションを構築できる。

OpenAI拡張機能でFunctionアプリを構築する際、以下のタスクを実行できるようになりました。以下の機能は、すべての言語(.NET、Java、Python、Node.js、PowerShell)で利用可能です。

検索拡張世代(セマンティック検索のために独自のデータを持ち込む)

  • 関数バインディングによるデータ取り込み。
  • 自動チャンキングと埋め込み作成
  • AIサーチ、CosmosDB for MongoDB、Azure Data Explorerを含むベクトルデータベースにエンベッディングを保存。
  • プロンプトを受け取り、ドキュメントを取得し、OpenAI LLMに送信し、ユーザーに返すバインディング。

コンテンツの要約と作成のためのテキスト補完

  • プロンプトを受け取り、LLMから応答を返す入力バインディング。

チャットアシスタント

  • LLMとチャットするための入出力バインディング。
  • 永続化されたストレージからチャット履歴を取得する出力バインディング。
  • 自然言語を通じてLLMから呼び出されるスキルトリガー。

Public preview: Get started with Azure Functions using Visual Studio Code for the Web

azure.microsoft.com

Aure Functions は、Visual Studio Code for the Web を使ったブラウザベースのスタートアップをサポートします。Azure ポータルから数回クリックするだけで、関数の開発、実行、テスト、デバッグ、Function アプリへのデプロイができるようになりました。
この機能は、Flex ConsumptionホスティングプランのPython、Node、PowerShellアプリで利用可能です。

この機能を使用すると、ローカル環境のセットアップの必要性を排除し、迅速かつ簡単にサービスを評価したり、概念実証を構築することができます。
これはまた、インテリセンス、デバッグ、サードパーティライブラリのサポートの欠如など、Azure Portalでの現在のコード編集エクスペリエンスの既知の制限に対処するものです。

この完全なエクスペリエンスには、Visual Studio Code for the WebでAzure Functionを開発するために必要なすべての依存関係が事前に設定されており、使い始めのシナリオを超えても使用できます。

Public Preview: Azure Functions brings new flexibility with Azure Functions Flex Consumption

azure.microsoft.com

Flex Consumption Planは新しいAzure Functionsホスティングプランで、利用した分だけ支払うサーバーレス課金モデルを基盤としており、既存の機能を損なうことなく、より柔軟でカスタマイズ性の高いサービスを提供します。これにより、お客様はAzure Functionsを使用してサーバーレスFaaS(Functions-as-a-Service)を構築し、より高いスループット、信頼性の向上、パフォーマンスの改善、および追加のセキュリティを独自の条件で実現することができます。

新機能には、高速かつ大規模なエラスティック・スケール、インスタンス・サイズの選択、プライベート・ネットワーキング、アベイラビリティ・ゾーン、より高い同時実行制御が含まれます。Flex Consumptionの常時利用可能なインスタンスにより、コールドスタートのレイテンシを最小限に抑えながら、イベントドリブンスケールのサーバーレスアプリを実行できます。

Generally Available: Azure Functions extension for Dapr

azure.microsoft.com

Dapr用のAzure Functions拡張機能が一般利用可能になりました。

Daprの強力なクラウドネイティブのビルディングブロックAPI(サービスディスカバリーとmTLSを備えたService Invoke、PubSub、バインディング、シークレット、アクターなど)とエコシステムのコンポーネントの数々を、ネイティブでフレンドリーなAzure Functionsのトリガーとバインディングのプログラミングモデルで使用できます。 この拡張機能は、AKSおよびACAサービス上で実行可能です。

Generally Available: Azure Functions Support for HTTP Streams in Node.js

azure.microsoft.com

Node.jsのHTTPストリームに対するAzure Functionsのサポートが一般的に利用可能になりました。この機能を使用すると、FunctionsアプリへのHTTPリクエストとアプリからのレスポンスをストリーミングできます。

HTTPストリームを使用すると、大規模データの処理、OpenAIのレスポンスのストリーミング、動的コンテンツの配信などのシナリオが可能になります。
ユーザーは、HTTPコネクションを介したクライアントとサーバー間のリアルタイムのやり取りやインタラクションが必要なユースケースで、この機能を活用できます。
アプリケーションの最高のパフォーマンスと信頼性を得るために、ストリームを使用することをお勧めします。

Node.jsのHTTP Streamsは、Azure Functions Node.js v4プログラミングモデルでのみサポートされています。

Public Preview: Monitor apps with Java metrics in Azure Container Apps

azure.microsoft.com

ガベージコレクションやメモリ使用量などの Java メトリクスで、アプリのパフォーマンスと健全性を監視できるようになりました。これらのメトリクスは自動的に収集され、Azure Monitor にレポートされ、統合されたダッシュボードで確認できます。
また、これらのメトリクスに基づいて、アラートを設定したり、問題をトラブルシューティングしたりすることもできます。

Public Preview: Set Java log levels in Azure Container Apps

azure.microsoft.com

アプリを再デプロイまたは再起動することなく、Azure Container Apps で Java アプリケーションのログレベルを設定できるようになりました。
現在パブリックプレビューで利用可能なこの機能により、ログの冗長性を動的に調整し、問題のトラブルシューティングをより簡単に行うことができます。

Public preview: Dynamic sessions in Azure Container Apps

azure.microsoft.com

Azure Container Appsは、パブリックプレビューでダイナミックセッションをサポートするようになった。この高速でサンドボックス化されたエフェメラルなコンピュート機能は、敵対的なマルチテナンシーシナリオで信頼できないコードを大規模に実行するのに適している。各セッションは、Hyper-Vを使用して完全にコンピュート分離されています。

ダイナミックセッションには、コードインタプリタとカスタムコンテナの2つのモードがサポートされています。

コードインタープリターセッション: ダイナミックセッションでは、サンドボックス化されたコードインタプリタに高速かつ簡単にアクセスし、信頼できないコードを実行できます。Pythonコードを実行することができ、多くの一般的なPythonパッケージにプリインストールされています。今後、さらに多くの言語とランタイムを追加する予定です。

高度なAIエージェントやコパイロットを構築するために、大規模言語モデル(LLM)はしばしばコード・インタープリターと組み合わされる。
コードインタプリタによって、エージェントやコパイロットのアプリケーションは、LLMの能力を拡張して、数学的・推論的な問題を解いたり、データを分析したり、グラフィックスやチャートを生成したりといった複雑なタスクを実行できるようになる。
動的セッションのコードインタプリタは、LLMが生成したコードを本番環境で安全に実行するためのサンドボックスを提供します。

LangChain、LlamaIndex、Semantic Kernelのような一般的なフレームワークにコードインタプリタセッションを追加することで、わずか数行のコードで独自のコピロットを構築できます。

カスタムコンテナセッション: 動的セッションでは、独自のカスタムコンテナを実行することもできます。カスタム・コンテナを使用して、依存関係のプリインストールや異なる言語のサポートなど、特定のニーズに合わせたコード・インタープリタを作成できます。

また、セキュアなサンドボックス環境を必要とするアプリケーションを実行するカスタムコンテナを構築することもできます。シナリオの例をいくつか挙げます:

  • ウェブベースのコード編集用サンドボックス
  • エンドユーザーがカスタムコードスニペットで拡張できるSaaSアプリケーション
  • ホスト型Jupyter Notebookサービス

Public preview: Azure Functions support for HTTP streams in Python

azure.microsoft.com

Azure FunctionsがPythonでHTTPストリームをサポートするプレビュー版がリリースされました。この機能では、FastAPIリクエストおよびレスポンスAPIを使用して、Function AppsへのHTTPリクエストとFunction Appsからのレスポンスをストリームできます。これまでのHTTPリクエストでは、送信できるデータ量はSKUインスタンスのメモリサイズで制限されていました。HTTPストリーミングでは、大量のデータをチャンキングで処理できます。

この機能により、OpenAIレスポンスの大容量データストリーミング処理や動的コンテンツの配信など、新たなシナリオが可能になります。HTTP接続を介したクライアントとサーバー間のリアルタイムのやり取りやインタラクションが必要なユースケースで、この機能を活用できます。さらに、FastAPIレスポンスタイプもこの機能でサポートされます。

Public preview: Aspire dashboard support in Azure Container Apps

azure.microsoft.com

Azure Container Appsは、パブリックプレビューで.NET 8のAspireダッシュボードをサポートし、クラウド上のプロジェクトとコンテナに関するライブデータにアクセスして、アプリケーションのパフォーマンスを評価し、包括的なログ、メトリクス、トレースなどでエラーをデバッグできるようになりました。

Public preview: Managed Prometheus visualizations for Azure Monitor container insights

azure.microsoft.com

コンテナ・インサイトのビジュアライゼーションは、これまでLog Analyticsのメトリック・データを使用していましたが、この新機能では、Log Analyticsの代わりに管理されたPrometheusのデータのみを使用してビジュアライゼーションすることができます。

このリリースにより、お客様は以下のことが可能になります:

  • Log AnalyticsベースのメトリクスからマネージドPrometheusへの移行によるコストの最適化
  • メトリクス・クエリのロード時間の短縮によるパフォーマンスの向上
  • 最近発表されたPrometheusベースの推奨アラートとの統合

Azure portal now offers in context observability for AKS object overviews

azure.microsoft.com

AKSポータルブレードは、Azure Monitorマネージドサービスfor Prometheusによって提供される観測可能性データを表示します。これにより、お客様はより簡単に以下のことができるようになりました。

  • クラスタのパフォーマンスを監視
  • 主要なワークロードが健全で最適に実行されていることを確認する
  • 保留中のポッドや故障したポッドに関する問題のトラブルシューティング

NamespacesとWorkloadsのリストの詳細が強化されます。

CPUとメモリの使用率を表示し、調査するデプロイメントを選択します。

ノード、ネームスペース、ワークロード、およびPodブレードのリソース使用率を経時的に分析します。

イベントと利用状況のサマリーは、ポッドのパフォーマンスのスナップショット・ビューを提供します。 * 機能のロールアウトは来週にかけて進行中であり、すぐに利用できない可能性があります。

Public preview of the App Configuration Extension for AKS

azure.microsoft.com

Azure Kubernetes Service(AKS)用のAzure App Configurationエクステンションのパブリックプレビューをご紹介できることを嬉しく思います。
この拡張機能を使用すると、Azure Resource Manager(ARM)を介してAKSクラスタにAzure App Configuration Kubernetes Providerをインストールして管理できます。
このプロバイダは、AKSクラスタ内のアプリケーション設定と機能フラグの一元管理を可能にし、ConfigMapsとSecretsを使用して合理的な管理を実現します。
この拡張機能を使用すると、アプリケーションコードを変更することなく、Azure Source Configurationの運用効率を高めることができます。

主なメリットは以下のとおりです:

動的構成:アプリケーションを再デプロイすることなく構成を更新し、より迅速な反復とダウンタイムの削減を可能にします。
不変のスナップショット:変更不可能な構成スナップショットにより、安全なデプロイメントを実現します。
機能管理:機能展開をシームレスに制御し、安全かつ段階的な機能展開を可能にします。
実験:堅牢な実験機能により、継続的な改善を促進し、ビジネス価値を高めます。
運用効率の向上:AKSクラスタで稼働するすべてのサービスの構成データを一元管理し、全体的な効率を向上させます。
レプリカの自動検出とフェイルオーバー:スケーラビリティを実現し、一過性の障害や地域的な停止に対する回復力を強化します。

さいごに

いかがでしたでしょうか?
今回はMicrosoft Build全期間のコンテナ製品Updateをまとめてみました。
皆さんの運用で使えそうな機能が追加されていたら、嬉しいです!

ACS事業部のご紹介

私達ACS事業部はAzure・AKSなどのクラウドネイティブ技術を活用した内製化やGitHub Enterpriseの導入のご支援をしております。
www.ap-com.co.jp www.ap-com.co.jp また、一緒に働いていただける仲間も募集中です!
我々の事業部のCultureDeckはコチラ。

www.ap-com.co.jp 今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。 www.ap-com.co.jp

本記事の投稿者: 谷合純也
AKS/ACA、GitHubをメインにインフラ系のご支援を担当しています。
junya0530さんの記事一覧 | Zenn