Azure Container Apps
Overview
Kazumi Hirose
Developer Program Manager , Azure
Subject Matter Expert
Microsoft Japan

Kazumi Hirose
日本マイクロソフト株式会社
Azure Senior Product Manager / Azure Subject Matter Expert
https://www.linkedin.com/in/kazumihirose/

略歴Azure Container Apps

最新のアプリケーションとマイクロサービスを構築するための、新しいサーバーレスコンテナ
プラットフォームAKS, KEDA, Dapr, and Envoy を基盤として、構築© Microsoft Corporation

Azure Container Apps
“Azure Container Apps は、どんなプログラミングモデルであるか、ランタイムであるかに関係なく、すべてのコンテナにパッケージされたコードを実行することができます。”• コンテナーを実行する利点を享受しつつ、クラウド インフラと複雑なコンテナー オーケストレーターの管理を不要にします。

• サーバレス（ゼロからのスケールをサポート）• HTTPリクエストに伴うスケール、イベント、もしくは、バックグラウンド処理のように常時実行• イングレス、サービス間の通信の自動暗号化• AKS, KEDA, Dapr, and Envoy を基に構築
MicrosoftMicrosoft

Azure containers ポートフォリオ

コンテナイメージ
推奨型

制限なしのコンテナイメージ

インフラ運用管理

Kubernetes API を使用して、アプリケーション開発に加えてクラスターを管理、デプロイ、およびスケーリングする

制限なしの任意のコンテナイ
メージ

定義済のコンテ
ナイメージ、プログラミングモデル

プラットフォームによる管理

プラットフォームによるオーケストレーション、アプリケーション開発に集中

Azure Kubernetes Service
Azure Container
Instances

Azure Container
Apps

Azure App
Service*

Azure
Functions*

Azure Red Hat OpenShift* When used with containers

MicrosoftMicrosoft

Microsoft

Image Build & Push

App deploy

Code Push

MicrosoftContinuous Deployment

Microsoft

Ingress traffic splitting

MicrosoftAPI Management Import
API Management will look in several locations
for an OpenAPI Specification:••••

The Container App configuration/openapi.json/openapi.yml/swagger/v1/swagger.json

https://docs.microsoft.com/en-us/azure/api-management/import-container-app-with-oas
Microsoft

Container Apps Sample

Container App Store Microservice Sample
Microsoft

KEDA - Kubernetes Event-driven Autoscaling

https://keda.sh/https://www.cncf.io/projects/keda/© Microsoft Corporation

KEDA - Architecture© Microsoft Corporation

Example© Microsoft Corporation

https://github.com/kedacore/sample-dotnet-worker-servicebus-queue

KEDA – Event Sources and Scalers© Microsoft Corporation

https://dapr.ioMicroservice ビルディングブロック
ユーザのサービスコードから http/gRPC で標準APIにアクセスできます

各サービスが実行する際に、動的にロードされる“サイドカーライブラリ”として動作します。

http://localhost:3500/v1.0/invoke/cart/method/neworder
http://localhost:3500/v1.0/state/inventory/item67

アプリケーションコード
Microservices written in
Any code or framework…

gRPC APIHTTP APIサービス
間呼び出
しステート管理

パブリッシュ
/サブスクライブ

リソースバインディングとトリガ

アクターサー
ビスモデル

オブザーバビリティ(観測可能性)シークレット
アクセス

拡張性オブザーバビリティ

サイドカーとコンポーネント

キャプチャ, トレー
ス、ログ、メトリックへのクエリ

Prometheus

AppInsightts

Jaegerバインディング
イベントのスキャン

Input/output

アプリケーション

mTLSを用いたセキュアなサービス間コミュニケーション

Dapr API

Dapr API

サービスコードA トレース, ログとサービスコードBメトリック
サイドカー

Load andsave state

Messagingステートストア

パブリッシュ&サブスクライブ

トレース, ログとメトリック

サイドカー

Microservice building blocks

サービス間呼び出し

ステート管理パブリッシュ/サブスクラ
イブ

バインディング(input/output)

アクターサー
ビスモデル

オブザーバビリティ(観測可能性)

Secrets

Perform direct,
secure, service-toservice method
calls

Create longrunning, statelessand statefulservices

Secure, scalable
messaging
between services

Trigger code throughevents from a large
array of inputs

Encapsulate codeand data inreusable actor
objects as acommonmicroservices
design pattern

See and measure themessage calls acrosscomponents andnetworked services

Securely accesssecrets from yourapplication

Input and output バイ
ンディング to external
resources including
databases and queues

Dapr: 分散アプリケーションランタイム
どの言語、どのフレームワークの組み合わせでもアプリケーションの開発が可能
アプリケーションコード
Microservices written in
Any code or framework…

HTTP APIサービス
間呼び出
しステート管理

パブリッシュ
/サブスクライブ

gRPC APIバインディング(input/output)

アクターサー
ビスモデル

オブザーバビリティ(観測可能性)

どのクラウド、エッジのインフラストラクチャでも動作

シークレットアクセス

拡張性Dapr Kubernetes hosted
Daprの管理とデプロイ

1Components
アクターパーティションの配置と更新

Dapr ランタイム挿入

証明機関

コンポーネントの変更、更新

Pod

Pod

Pod

Pod

CONTAINERCONTAINERCONTAINERCONTAINER

Sidecar Injector

SentryActor Placement

Operator

バインディング
Input/output

Componentmanagement

ステートストアmTLSによるサイドカー、システムサービス間通信

Pod
Pod
CONTAINER

Healthz API の準備とLiveness Probeで、Dapr の正常性状態を判断する

Dapr APICONTAINER

Publish & subscribe

HTTP or gRPC

KubeletSidecarApplication code

Use components

Any cloud or edge infrastructure

オブザーバビリティ

Prometheus

AppInsightts

JaegerAzure Container Apps
with DaprApp
Insights

Log
Analytics

Microsoft

https://github.com/clarenceb/tutorial-dapr-cli

© Copyright Microsoft Corporation. All rights reserved.

KEDA - Kubernetes Event-driven Autoscaling

https://keda.sh/https://www.cncf.io/projects/keda/© Microsoft Corporation

KEDA - Architecture© Microsoft Corporation

Example© Microsoft Corporation

https://github.com/kedacore/sample-dotnet-worker-servicebus-queueScaledObject CRD – Deployment, StatefulSets, Custom Resources© Microsoft Corporation

ScaledObject CRD – Job© Microsoft Corporation

Triggers© Microsoft Corporation

Trigger Authentication (Env Var, Secret, Pod Identity, Vault)© Microsoft Corporation

KEDA – Event Sources and Scalers© Microsoft Corporation

Dapr primer© Microsoft Corporation

State of enterprise developers

Deploying scale-out
apps for flexibility,
cost, and efficiency

Developing resilient,scalable, microservicebased apps thatinteract with services

Focusing on
building applications,
not infrastructure

Trending toward
serverless platforms
with simple code tocloud pipelines

Using multiple
languages andframeworks duringdevelopment

What is holding back microservice development?

Limited tools and runtimes tobuild distributed applications

Runtimes have limited
language support and tightly
controlled feature sets

Runtimes only target specificinfrastructure platforms withlimited portability

Distributed app development
E-commerce app

Inventory

EmailPayment

RCMD

Frontend

Cart

CheckoutInternetAzure
CosmosDB

ShippingKafkaDistributed Application
RuntimePortable, event-driven, runtime forbuilding distributed applications
across cloud and edge
dapr.ioDapr Goals

Microservice building blocks
HTTP API

Serviceto-service
invocation

Statemanagement

Publishandsubscribe

Resource
bindings
and triggers

gRPC API

ActorsObservability

Secrets

Extensible

Any cloud or edge infrastructure
Application code
Microservices written in
Any code or framework…

gRPC APIHTTP API

Serviceto-service
invocation

Statemanagement

Publishandsubscribe

Resource
bindings
and triggers

ActorsObservability

Secrets

Extensible

Hosting infrastructure
Azure ArcOn-Premises

Dapr components

StateStores

PubSubBrokers

My AppBindings& Triggers

SecretStores

Observability
Prometheus

AppInsights

ZipkinJaeger© Copyright Microsoft Corporation. All rights reserved.