狠狠撸

狠狠撸Share a Scribd company logo
Azure の PaaS 型
コンテナ?プラット?フォーム
Azure Container Apps の
ご紹介と Java 対応について
マイクロソフト?コーポレーション
Sr. Cloud Advocate
寺田 佳央
Introduction of Azure Container Apps for Java Developers
Classified as Microsoft Confidential
Azure Spring Apps
完全 Managed な Spring Boot アプリケーション
Azureのエコシステムとサービスへの完全統合
完全マネージドなインフラ 組み込みのアプリケーション?ライフサイクル管理 運用監視が容易
エンタープライズ対応
マイクロソフトとVMwareが共同で構築?運用?サポート
3
?2024 VMware, Inc. and Microsoft Corporation. All rights reserved.
Azure Spring Apps の提供終了のお知らせ
? 2024 年 9 月 30 日:Standard 従量課金および専用プランは 6
か月の提供終了期間に入り、2025 年 3 月 31 日に廃止
? 2025 年 3 月中旬:全ての Azure Spring Apps プラン が 3 年
の提供終了期間に入り、2028 年 3 月 31 日に廃止
2 段階計画で廃止
Azure Spring Apps の移行先
プライマリの移行先として Azure Container Apps をお勧め
Azure Spring Apps にマイグレーション機能を提供
※ 2024 年 10 月中旬から利用可能
はじめに
Why cloud-native
is important
Azure における Cloud-Native の構築
AI
Applied AI Machine Learning
Cognitive Services
Azure
Kubernetes
Service
Azure
Container
Apps
Azure
Functions
Containers and serverless
Security
Azure
Active
Directory
Azure
Policy
Microsoft
Defender
Managed databases
Azure
PostgreSQL
Azure
Cosmos DB
Azure
SQL family
Azure
MySQL &
MariaDB
Cloud operations anywhere
Azure Arc
Development tools
GitHub
Azure API Management
Azure Container Registry
Visual Studio Code
Community
Storage
Azure
Storage
Azure DevOps
Introduction of Azure Container Apps for Java Developers
ビジネス?ユースケースに応じて選択
Azure App Service
(PaaS)
Azure Kubernetes Service
(Container)
Azure Container Apps
Serverless containers
OSS を利用したアプリのモダナイズ
アプリ開発に集中(インフラ管理軽減)
イベント駆動によるスケーリング
Envoy
Kubernetes KEDA DAPR
Kubernetes の学習や管理は不要
マイクロサービス対応
K8s 上で稼働するが
k8sを隠蔽
Azure Container Apps で何ができる??
AUTO-SCALE CRITERIA
HTTP の同時接続数によるス
ケーす
CPU やメモリの使用状況
によるスケール
KEDA のスケール設定に基づ
きマイクロサービス毎にス
ケール
HTTP の同時接続数によるス
ケール
キューに届くメッセージ
数によるスケール
API エンドポイント バックエンド処理
マイクロサービス
Web
Apps イベント駆動
2つのリビジョンを持つ
アプリの振り分け
バックエンドでDBデータ変換
マイクロサービスの構築
Dapr も利用可能
カスタム?ドメイン、認証、
TLS が必要な Webアプリ
HTTP TRAFFIC
REVISION 2
REVISION 1
80% 20%
MICROSERVICE B
MICROSERVICE C
MICROSERVICE A
キューに届いたメッセー
ジの処理
Web アプリ、マイクロサービスが容易に !!
API エンドポイント バックエンド処理
マイクロサービス
Web
Apps イベント駆動
2つのリビジョンを持つ
アプリの振り分け
バックエンドでDBデータ変換
マイクロサービスの構築
Dapr も利用可能
カスタム?ドメイン、認証、
TLS が必要な Webアプリ
HTTP TRAFFIC
REVISION 2
REVISION 1
80% 20%
MICROSERVICE B
MICROSERVICE C
MICROSERVICE A
キューに届いたメッセー
ジの処理
開発?運用がとても簡単 !!
Azure Container Apps Env と Instance
Azure Container App Env
Container App 1
リビジョン 1 リビジョン 2
レプリカ
Container App 2
リビジョン 1 リビジョン 2
レプリカ
レプリカ
レプリカ
Azure Container App Env
? 複数のコンテナアプリを管理するグループ
? 共通の設定を一元管理(ネットワーク、ログ)
? 同一環境のアプリ間で通信が容易
Azure Container App
? 実際に稼働するコンテナ化アプリケーション
? 個々のアプリケーションのスケーリングやリ
ソースの割り当てを管理
リビジョン
? アプリの特定バージョン
? 新しいリビジョンを作成し、アプリの更新や
設定変更を実施
? リビジョン毎に設定を保持
レプリカ
? 実行中のインスタンス
? 負荷に応じスケールアウト?スケールインを
実施
az containerapp up --name $CONTAINER_APP_NAME 
-g $RESOURCE_GROUP 
--location $LOCATION 
--environment $CONTAINER_ENVIRONMENT 
--artifact ./target/**.jar
--ingress external 
--target-port 8080 
--query properties.configuration.ingress.fqdn
jar, war の成果物から Container App を作成
2
az containerapp env create --name $CONTAINER_ENVIRONMENT 
--enable-workload-profiles 
-g $RESOURCE_GROUP 
--location $LOCATION
Container Apps Env 構築
1
初めはたった2コマンド(YAML 不要)
リビジョンを利用したカナリアリリース
Ingress
リビジョンを利用したカナリア?リリース
Mode を single から multiple に変更
az containerapp update -n $CONTAINER_APP_NAME -g $RESOURCE_GROUP 
--artifact ./target/aaa.jar --revision-suffix test1 
--min-replicas 0 --max-replicas 10 --enable-java-agent
新しいリビジョンでデプロイ (注意:up ではなく update)
1
az containerapp ingress traffic set -n $CONTAINER_APP_NAME 
-g $RESOURCE_GROUP
--revision-weight latest=20 OLD_REV_NAME=80
80:20 の比率でリクエストの振り分け (新規:20, 既存 : 80)
2
HTTP
{
"name": "http-rule",
"http": {
"metadata": {
"concurrentRequests": 50
}
}
}
CPU
{
"name": "cpu-rule",
"custom": {
"type": "cpu",
"metadata": {
"type": "Utilization",
"value": "50"
}
}
}
Memory
{
"name": "mem-rule",
"custom": {
"type": "memory",
"metadata": {
"type": "AverageValue",
"value": "512"
}
}
}
Event-driven
artemis-queue, kafka,
aws-cloudwatch, aws-
kinesis-stream, aws-sqs-
queue, azure-blob, azure-
eventhub, azure-
servicebus, azure-queue,
cron, external, gcp-
pubsub, huawei-cloudeye,
ibmmq, influxdb, mongodb,
mssql, mysql, postgresql,
rabbitmq, redis, redis-
streams, selenium-grid,
solace-event-queue, ..
Support for scale to zero and specifying minimum/maximum replicas Support for specifying minimum/maximum replicas
KEDA
TCP
水平方向への自動スケール
Application autoscaling made simple
Open-source, extensible, and vendor agnostic
Kubernetes-based Event
Driven Autoscaler
Drive the scaling of any container
based on a growing list of 35+
event sources, known as: scalers
keda.sh
Intelligently scale your event-driven
applications
Out-of-the-box scalers for various vendors,
databases, messaging systems, telemetry
systems, CI/CD, and more
Event-driven Built-in scalers
Support for triggers across variety of cloud
providers & products
Bring rich scaling to every workload
Vendor-agnostic Rich capabilities
Metrics Adapter | Controller | Scaler
Azure Functions の統合
Pub/Sub の開発、環境構築が容易 (Dapr)
API エンドポイント バックエンド処理
マイクロサービス
Web
Apps イベント駆動
2つのリビジョンを持つ
アプリの振り分け
バックエンドでDBデータ変換
マイクロサービスの構築
Dapr も利用可能
カスタム?ドメイン、認証、
TLS が必要な Webアプリ
HTTP TRAFFIC
REVISION 2
REVISION 1
80% 20%
MICROSERVICE B
MICROSERVICE C
MICROSERVICE A
キューに届いたメッセー
ジの処理
イベント駆動処理
Azure Function の ACA への統合
Azure Function
※ Azure Service Bus, Event Hub, Event Grid, CosmosDB
Azure Queue などのトリガーを利用
Microservices using any language or framework
Any cloud or edge infrastructure
Distributed Application
Runtime
Portable, event-driven, runtime for
building distributed applications
across cloud and edge
dapr.io
Microservices written in any code or framework
HTTP API gRPC API
Service-to-
service
invocation
State
management
Publish
and
subscribe
Resource
bindings
and triggers
Actors Observability Configuration
Secrets
Hosting infrastructure
Azure Arc On-premises
My App
Dapr components
Observability
Prometheus AppInsights Jaeger
Zipkin
Bindings
& Triggers GCP
Storage
AWS
S3 Kafka
Azure
Storage Twilio
Swappable YAML files with
resource connection details
Over 100 components available
Create components for your resource at:
github.com/dapr/components-contrib
State
Stores Firebase Cassandra
Redis
Azure
CosmosDB
AWS
DynamoDB
Secret
Stores AWS
Secrets Manager
Azure
KeyVault
GCP
Secret Manager
HashiCorp
Vault
Kubernetes
Secret
PubSub
Brokers Redis
AWS
SQS
Azure
Service Bus
RabbitMQ
GCP
Pub/Sub
Any Dapr
pub/sub
Publish and subscribe
Create event-driven,
loosely coupled
architectures where
producers send events
to consumers via topics.
Container App A (Publisher)
Containerized application sidecar
Container App B (Subscriber)
Containerized application sidecar
Dapr を利用した Pub/Sub
手動の長時間処理?スケジューリング処理
API エンドポイント バックエンド処理
マイクロサービス
Web
Apps イベント駆動
2つのリビジョンを持つ
アプリの振り分け
バックエンドでDBデータ変換
マイクロサービスの構築
Dapr も利用可能
カスタム?ドメイン、認証、
TLS が必要な Webアプリ
HTTP TRAFFIC
REVISION 2
REVISION 1
80% 20%
MICROSERVICE B
MICROSERVICE C
MICROSERVICE A
キューに届いたメッセー
ジの処理
バックエンド処理?時間指定処理
Jobs
Run containerized tasks
that execute for a finite
duration and exit
E.g. data processing,
machine leargnin, etc.
本番环境への适用に向けて
GitHub Actions
integration
Container app 1
Revision 1 Revision 2
Buildcontainer
usingGitHubAction
GitHubrepository
Code check-in
AzureContainer Registry
Env
Replica Replica
Container(s) Container(s) Container(s) Container(s)
Replica Replica
CI/CD 環境の容易な構築
レジリエンス(障害復旧)機能 – プレビュー
? タイムアウト
? 再試行
? サーキット?ブレーカー
? 接続プール
az containerapp resiliency create 
-g $RESOURCE_GROUP n $CONTAINER_APP_NAME 
--recommended
デフォルトの推奨レジリエンスポリシーの作成
※ デフォルト?ポリシーは変更可能
Application Logging
Container Console Logs: stdout/stderr from your
application containers
System Logs: generated by Azure Container Apps service
Azure Monitor Metrics
CPU, Memory, Network in/out, Replica count, etc. for a
Container App
Environment Logging
System logs of the Container Apps Environment
Log Streaming
? Container App: Near real-time system and console logs
? Environment: Near real-time system logs
Container Console
Connect to debug and run shell command inside the
container
Azure Monitor Log Analytics
? Ingest application logs with a small delay
? Run queries to see logs
Alerts
Alerts based on metrics and log data
障害対応?監視 (Observability)
Log Stream (ログのリアルタイム表示)
Console ログイン、メトリクス表示
セキュリティ:パスワードレス - Managed ID
Azure Container Apps に対する
Java の拡張機能
ソースコード/成果物からデプロイ
? Java
? C#
? JavaScript
? Python
? Go
? Dockerfile
az containerapp up --source .
ソースコードからコンテナ?ビルド、デプロイ
az containerapp up --artifact ./target/aa.jar
jar, war 成果物からコンテナ?ビルド、デプロイ
Container Apps 内の Java アプリでメモリを
効率的に使用 (プレビュー)
https://paketo.io/docs/reference/java-reference/#memory-calculator
? 単一 Java アプリケーションがコンテナーで実行されている場合
? ソース?コードまたは JAR からデプロイする場合
? コンテナーのメモリが 1 GB 未満の場合
? JVM 引数でメモリに関する引数が指定された場合
? BP_JVM_FIT=“false” が指定された場合
有効になる条件
無効になる条件
Calculated JVM Memory Configuration: -XX:MaxDirectMemorySize=10M -Xmx1498277K
有効な場合下記をログに出力
JVM のメトリクスを自動収集
jvm.memory.used
jvm.memory.total.used
jvm.memory.total.committed
jvm.memory.total.limit
jvm.memory.committed
jvm.memory.limit
jvm.buffer.memory.usage
jvm.buffer.memory.limit
jvm.buffer.count
jvm.gc.count
jvm.gc.duration
jvm.thread.count
az containerapp update -n $CONTAINER_APP_NAME 
-g $RESOURCE_GROUP 
--artifact ./target/aaa.jar 
--revision-suffix test1 
--min-replicas 0 --max-replicas 10 
--enable-java-metrics 
--enable-java-agent
サービス?レジストリ (Eureka Server)
az containerapp env java-component 
eureka-server-for-spring create 
--environment $CONTAINER_ENVIRONMENT 
--resource-group $RESOURCE_GROUP 
--name jjug-eureka-server
Azure Spring Apps で提供していた機能を
Azure Container Apps 側で再実装
Config Server
az containerapp env java-component 
config-server-for-spring create 
--environment $CONTAINER_ENVIRONMENT 
--resource-group $RESOURCE_GROUP 
--name jjug-config-server 
--configuration 
spring.cloud.config.server.git.uri=
https://github.com/aa/spring-config
Azure Spring Apps で提供していた機能を
Azure Container Apps 側で再実装
その他の Spring Component
Azure Spring Apps で提供していた機能を
Azure Container Apps 側で再実装
az containerapp env java-component --help
ご兴味をお持ちくださった方へ
OpenAI に接続する Java アプリを ACA にデプロイ
Fine Collection with Azure Container Apps (Dapr を利用)
aka.ms/acaJavaWorkshop
Fine Collection with Azure Container Apps
Let’s start!
Azure に関するご質問、ご相談
GitHub Copilot や AI にご興味のある方(展示会場2)
5番でお待ちしています!
Azure の PaaS 型
コンテナ?プラット?フォーム
Azure Container Apps の
ご紹介と Java 対応について
マイクロソフト?コーポレーション
Sr. Cloud Advocate
寺田 佳央

More Related Content

Similar to Introduction of Azure Container Apps for Java Developers (20)

Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
kekekekenta
?
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Boss4434
?
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
?
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
Amazon Web Services Japan
?
[de:code 2018] [AD35] オープンソースのマイクロサービス/コンテナー プラットフォーム「Azure Service Fabric」の使...
[de:code 2018] [AD35] オープンソースのマイクロサービス/コンテナー プラットフォーム「Azure Service Fabric」の使...[de:code 2018] [AD35] オープンソースのマイクロサービス/コンテナー プラットフォーム「Azure Service Fabric」の使...
[de:code 2018] [AD35] オープンソースのマイクロサービス/コンテナー プラットフォーム「Azure Service Fabric」の使...
Naoki (Neo) SATO
?
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
Masaki Yamamoto
?
SQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain JapaneseSQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain Japanese
Microsoft
?
[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所
[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所
[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所
de:code 2017
?
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Yuki Morishita
?
Web サーバー管理者のための Azure App Service 再入門
Web サーバー管理者のための Azure App Service 再入門Web サーバー管理者のための Azure App Service 再入門
Web サーバー管理者のための Azure App Service 再入門
Osamu Monoe
?
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
Issei Hiraoka
?
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
Microsoft Azure Japan
?
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
日本マイクロソフト株式会社
?
Azure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionAzure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox Edition
Kazuki Takai
?
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
Takao Tetsuro
?
リソーステンプレート入门
リソーステンプレート入门リソーステンプレート入门
リソーステンプレート入门
junichi anno
?
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックTech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
kumo2010
?
20190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #420190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #4
Issei Hiraoka
?
20180309 azure+container
20180309 azure+container20180309 azure+container
20180309 azure+container
Miho Yamamoto
?
ハイフ?リットクラウト?环境におけるモタ?ンアフ?リケーション开発
ハイフ?リットクラウト?环境におけるモタ?ンアフ?リケーション开発ハイフ?リットクラウト?环境におけるモタ?ンアフ?リケーション开発
ハイフ?リットクラウト?环境におけるモタ?ンアフ?リケーション开発
政雄 金森
?
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
kekekekenta
?
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編Aws summits2014 エンタープライズ向けawscdpネットワーク編
Aws summits2014 エンタープライズ向けawscdpネットワーク編
Boss4434
?
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
?
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
Amazon Web Services Japan
?
[de:code 2018] [AD35] オープンソースのマイクロサービス/コンテナー プラットフォーム「Azure Service Fabric」の使...
[de:code 2018] [AD35] オープンソースのマイクロサービス/コンテナー プラットフォーム「Azure Service Fabric」の使...[de:code 2018] [AD35] オープンソースのマイクロサービス/コンテナー プラットフォーム「Azure Service Fabric」の使...
[de:code 2018] [AD35] オープンソースのマイクロサービス/コンテナー プラットフォーム「Azure Service Fabric」の使...
Naoki (Neo) SATO
?
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
Masaki Yamamoto
?
SQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain JapaneseSQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain Japanese
Microsoft
?
[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所
[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所
[AC07] 米国マイクロソフト本社で体験したノウハウを伝授!マイクロサービス実行基盤Azure Service Fabricの勘所
de:code 2017
?
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Yuki Morishita
?
Web サーバー管理者のための Azure App Service 再入門
Web サーバー管理者のための Azure App Service 再入門Web サーバー管理者のための Azure App Service 再入門
Web サーバー管理者のための Azure App Service 再入門
Osamu Monoe
?
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
Issei Hiraoka
?
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
Microsoft Azure Japan
?
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
日本マイクロソフト株式会社
?
Azure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox EditionAzure Arc Jumpstart Update - HCIBox Edition
Azure Arc Jumpstart Update - HCIBox Edition
Kazuki Takai
?
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
Takao Tetsuro
?
リソーステンプレート入门
リソーステンプレート入门リソーステンプレート入门
リソーステンプレート入门
junichi anno
?
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックTech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
kumo2010
?
20190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #420190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #4
Issei Hiraoka
?
20180309 azure+container
20180309 azure+container20180309 azure+container
20180309 azure+container
Miho Yamamoto
?
ハイフ?リットクラウト?环境におけるモタ?ンアフ?リケーション开発
ハイフ?リットクラウト?环境におけるモタ?ンアフ?リケーション开発ハイフ?リットクラウト?环境におけるモタ?ンアフ?リケーション开発
ハイフ?リットクラウト?环境におけるモタ?ンアフ?リケーション开発
政雄 金森
?

More from Yoshio Terada (20)

AI-Java-for-Financial.pdf
AI-Java-for-Financial.pdfAI-Java-for-Financial.pdf
AI-Java-for-Financial.pdf
Yoshio Terada
?
Java-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdfJava-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdf
Yoshio Terada
?
Cloud Native Architecture ことはじめ 最適な実行環境を選ぶポイント
Cloud Native Architecture ことはじめ 最適な実行環境を選ぶポイントCloud Native Architecture ことはじめ 最適な実行環境を選ぶポイント
Cloud Native Architecture ことはじめ 最適な実行環境を選ぶポイント
Yoshio Terada
?
Jakarta EE Microproile Update JJUG 2020 May
Jakarta EE Microproile Update JJUG 2020 MayJakarta EE Microproile Update JJUG 2020 May
Jakarta EE Microproile Update JJUG 2020 May
Yoshio Terada
?
Azure RedHat OpenShift - Red Hat Forum 2019
Azure RedHat OpenShift - Red Hat Forum 2019Azure RedHat OpenShift - Red Hat Forum 2019
Azure RedHat OpenShift - Red Hat Forum 2019
Yoshio Terada
?
JakartaOne 2020 Japan Announce
JakartaOne 2020 Japan AnnounceJakartaOne 2020 Japan Announce
JakartaOne 2020 Japan Announce
Yoshio Terada
?
Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring CloudJjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring Cloud
Yoshio Terada
?
Sapporo Developer Festa 2019
Sapporo Developer Festa 2019Sapporo Developer Festa 2019
Sapporo Developer Festa 2019
Yoshio Terada
?
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
Yoshio Terada
?
Java on Azure 2019
Java on Azure 2019Java on Azure 2019
Java on Azure 2019
Yoshio Terada
?
Java on Azure 2019
Java on Azure 2019Java on Azure 2019
Java on Azure 2019
Yoshio Terada
?
Oisix ra Daichi Microservice with Kubernetes
Oisix ra Daichi Microservice with Kubernetes Oisix ra Daichi Microservice with Kubernetes
Oisix ra Daichi Microservice with Kubernetes
Yoshio Terada
?
Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual Node
Yoshio Terada
?
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
Yoshio Terada
?
Java on Kubernetes on Azure
Java on Kubernetes on AzureJava on Kubernetes on Azure
Java on Kubernetes on Azure
Yoshio Terada
?
The Experience of Java on Kubernetes with Microservices from HackFest
The Experience of Java on Kubernetes with Microservices from HackFestThe Experience of Java on Kubernetes with Microservices from HackFest
The Experience of Java on Kubernetes with Microservices from HackFest
Yoshio Terada
?
Application Development Vision
Application Development VisionApplication Development Vision
Application Development Vision
Yoshio Terada
?
How to face the Kubernetes ?
How to face the Kubernetes ? How to face the Kubernetes ?
How to face the Kubernetes ?
Yoshio Terada
?
JavaOne 2016 Report for Java EE
JavaOne 2016 Report for Java EEJavaOne 2016 Report for Java EE
JavaOne 2016 Report for Java EE
Yoshio Terada
?
Istio on k8s on Azure (AKS)
Istio on k8s on Azure (AKS)Istio on k8s on Azure (AKS)
Istio on k8s on Azure (AKS)
Yoshio Terada
?
AI-Java-for-Financial.pdf
AI-Java-for-Financial.pdfAI-Java-for-Financial.pdf
AI-Java-for-Financial.pdf
Yoshio Terada
?
Java-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdfJava-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdf
Yoshio Terada
?
Cloud Native Architecture ことはじめ 最適な実行環境を選ぶポイント
Cloud Native Architecture ことはじめ 最適な実行環境を選ぶポイントCloud Native Architecture ことはじめ 最適な実行環境を選ぶポイント
Cloud Native Architecture ことはじめ 最適な実行環境を選ぶポイント
Yoshio Terada
?
Jakarta EE Microproile Update JJUG 2020 May
Jakarta EE Microproile Update JJUG 2020 MayJakarta EE Microproile Update JJUG 2020 May
Jakarta EE Microproile Update JJUG 2020 May
Yoshio Terada
?
Azure RedHat OpenShift - Red Hat Forum 2019
Azure RedHat OpenShift - Red Hat Forum 2019Azure RedHat OpenShift - Red Hat Forum 2019
Azure RedHat OpenShift - Red Hat Forum 2019
Yoshio Terada
?
JakartaOne 2020 Japan Announce
JakartaOne 2020 Japan AnnounceJakartaOne 2020 Japan Announce
JakartaOne 2020 Japan Announce
Yoshio Terada
?
Jjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring CloudJjug CCC 2019 Fall Azure Spring Cloud
Jjug CCC 2019 Fall Azure Spring Cloud
Yoshio Terada
?
Sapporo Developer Festa 2019
Sapporo Developer Festa 2019Sapporo Developer Festa 2019
Sapporo Developer Festa 2019
Yoshio Terada
?
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
Yoshio Terada
?
Oisix ra Daichi Microservice with Kubernetes
Oisix ra Daichi Microservice with Kubernetes Oisix ra Daichi Microservice with Kubernetes
Oisix ra Daichi Microservice with Kubernetes
Yoshio Terada
?
Virtual Kubelet and Virtual Node
Virtual Kubelet and Virtual NodeVirtual Kubelet and Virtual Node
Virtual Kubelet and Virtual Node
Yoshio Terada
?
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
Yoshio Terada
?
Java on Kubernetes on Azure
Java on Kubernetes on AzureJava on Kubernetes on Azure
Java on Kubernetes on Azure
Yoshio Terada
?
The Experience of Java on Kubernetes with Microservices from HackFest
The Experience of Java on Kubernetes with Microservices from HackFestThe Experience of Java on Kubernetes with Microservices from HackFest
The Experience of Java on Kubernetes with Microservices from HackFest
Yoshio Terada
?
Application Development Vision
Application Development VisionApplication Development Vision
Application Development Vision
Yoshio Terada
?
How to face the Kubernetes ?
How to face the Kubernetes ? How to face the Kubernetes ?
How to face the Kubernetes ?
Yoshio Terada
?
JavaOne 2016 Report for Java EE
JavaOne 2016 Report for Java EEJavaOne 2016 Report for Java EE
JavaOne 2016 Report for Java EE
Yoshio Terada
?
Istio on k8s on Azure (AKS)
Istio on k8s on Azure (AKS)Istio on k8s on Azure (AKS)
Istio on k8s on Azure (AKS)
Yoshio Terada
?

Recently uploaded (8)

滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?

Introduction of Azure Container Apps for Java Developers

  • 1. Azure の PaaS 型 コンテナ?プラット?フォーム Azure Container Apps の ご紹介と Java 対応について マイクロソフト?コーポレーション Sr. Cloud Advocate 寺田 佳央
  • 3. Classified as Microsoft Confidential Azure Spring Apps 完全 Managed な Spring Boot アプリケーション Azureのエコシステムとサービスへの完全統合 完全マネージドなインフラ 組み込みのアプリケーション?ライフサイクル管理 運用監視が容易 エンタープライズ対応 マイクロソフトとVMwareが共同で構築?運用?サポート 3 ?2024 VMware, Inc. and Microsoft Corporation. All rights reserved.
  • 4. Azure Spring Apps の提供終了のお知らせ ? 2024 年 9 月 30 日:Standard 従量課金および専用プランは 6 か月の提供終了期間に入り、2025 年 3 月 31 日に廃止 ? 2025 年 3 月中旬:全ての Azure Spring Apps プラン が 3 年 の提供終了期間に入り、2028 年 3 月 31 日に廃止 2 段階計画で廃止
  • 5. Azure Spring Apps の移行先 プライマリの移行先として Azure Container Apps をお勧め
  • 6. Azure Spring Apps にマイグレーション機能を提供 ※ 2024 年 10 月中旬から利用可能
  • 9. Azure における Cloud-Native の構築 AI Applied AI Machine Learning Cognitive Services Azure Kubernetes Service Azure Container Apps Azure Functions Containers and serverless Security Azure Active Directory Azure Policy Microsoft Defender Managed databases Azure PostgreSQL Azure Cosmos DB Azure SQL family Azure MySQL & MariaDB Cloud operations anywhere Azure Arc Development tools GitHub Azure API Management Azure Container Registry Visual Studio Code Community Storage Azure Storage Azure DevOps
  • 12. Azure Container Apps Serverless containers OSS を利用したアプリのモダナイズ アプリ開発に集中(インフラ管理軽減) イベント駆動によるスケーリング Envoy Kubernetes KEDA DAPR Kubernetes の学習や管理は不要 マイクロサービス対応 K8s 上で稼働するが k8sを隠蔽
  • 13. Azure Container Apps で何ができる?? AUTO-SCALE CRITERIA HTTP の同時接続数によるス ケーす CPU やメモリの使用状況 によるスケール KEDA のスケール設定に基づ きマイクロサービス毎にス ケール HTTP の同時接続数によるス ケール キューに届くメッセージ 数によるスケール API エンドポイント バックエンド処理 マイクロサービス Web Apps イベント駆動 2つのリビジョンを持つ アプリの振り分け バックエンドでDBデータ変換 マイクロサービスの構築 Dapr も利用可能 カスタム?ドメイン、認証、 TLS が必要な Webアプリ HTTP TRAFFIC REVISION 2 REVISION 1 80% 20% MICROSERVICE B MICROSERVICE C MICROSERVICE A キューに届いたメッセー ジの処理
  • 14. Web アプリ、マイクロサービスが容易に !! API エンドポイント バックエンド処理 マイクロサービス Web Apps イベント駆動 2つのリビジョンを持つ アプリの振り分け バックエンドでDBデータ変換 マイクロサービスの構築 Dapr も利用可能 カスタム?ドメイン、認証、 TLS が必要な Webアプリ HTTP TRAFFIC REVISION 2 REVISION 1 80% 20% MICROSERVICE B MICROSERVICE C MICROSERVICE A キューに届いたメッセー ジの処理 開発?運用がとても簡単 !!
  • 15. Azure Container Apps Env と Instance Azure Container App Env Container App 1 リビジョン 1 リビジョン 2 レプリカ Container App 2 リビジョン 1 リビジョン 2 レプリカ レプリカ レプリカ Azure Container App Env ? 複数のコンテナアプリを管理するグループ ? 共通の設定を一元管理(ネットワーク、ログ) ? 同一環境のアプリ間で通信が容易 Azure Container App ? 実際に稼働するコンテナ化アプリケーション ? 個々のアプリケーションのスケーリングやリ ソースの割り当てを管理 リビジョン ? アプリの特定バージョン ? 新しいリビジョンを作成し、アプリの更新や 設定変更を実施 ? リビジョン毎に設定を保持 レプリカ ? 実行中のインスタンス ? 負荷に応じスケールアウト?スケールインを 実施
  • 16. az containerapp up --name $CONTAINER_APP_NAME -g $RESOURCE_GROUP --location $LOCATION --environment $CONTAINER_ENVIRONMENT --artifact ./target/**.jar --ingress external --target-port 8080 --query properties.configuration.ingress.fqdn jar, war の成果物から Container App を作成 2 az containerapp env create --name $CONTAINER_ENVIRONMENT --enable-workload-profiles -g $RESOURCE_GROUP --location $LOCATION Container Apps Env 構築 1 初めはたった2コマンド(YAML 不要)
  • 18. リビジョンを利用したカナリア?リリース Mode を single から multiple に変更 az containerapp update -n $CONTAINER_APP_NAME -g $RESOURCE_GROUP --artifact ./target/aaa.jar --revision-suffix test1 --min-replicas 0 --max-replicas 10 --enable-java-agent 新しいリビジョンでデプロイ (注意:up ではなく update) 1 az containerapp ingress traffic set -n $CONTAINER_APP_NAME -g $RESOURCE_GROUP --revision-weight latest=20 OLD_REV_NAME=80 80:20 の比率でリクエストの振り分け (新規:20, 既存 : 80) 2
  • 19. HTTP { "name": "http-rule", "http": { "metadata": { "concurrentRequests": 50 } } } CPU { "name": "cpu-rule", "custom": { "type": "cpu", "metadata": { "type": "Utilization", "value": "50" } } } Memory { "name": "mem-rule", "custom": { "type": "memory", "metadata": { "type": "AverageValue", "value": "512" } } } Event-driven artemis-queue, kafka, aws-cloudwatch, aws- kinesis-stream, aws-sqs- queue, azure-blob, azure- eventhub, azure- servicebus, azure-queue, cron, external, gcp- pubsub, huawei-cloudeye, ibmmq, influxdb, mongodb, mssql, mysql, postgresql, rabbitmq, redis, redis- streams, selenium-grid, solace-event-queue, .. Support for scale to zero and specifying minimum/maximum replicas Support for specifying minimum/maximum replicas KEDA TCP 水平方向への自動スケール
  • 20. Application autoscaling made simple Open-source, extensible, and vendor agnostic Kubernetes-based Event Driven Autoscaler Drive the scaling of any container based on a growing list of 35+ event sources, known as: scalers keda.sh Intelligently scale your event-driven applications Out-of-the-box scalers for various vendors, databases, messaging systems, telemetry systems, CI/CD, and more Event-driven Built-in scalers Support for triggers across variety of cloud providers & products Bring rich scaling to every workload Vendor-agnostic Rich capabilities Metrics Adapter | Controller | Scaler
  • 21. Azure Functions の統合 Pub/Sub の開発、環境構築が容易 (Dapr) API エンドポイント バックエンド処理 マイクロサービス Web Apps イベント駆動 2つのリビジョンを持つ アプリの振り分け バックエンドでDBデータ変換 マイクロサービスの構築 Dapr も利用可能 カスタム?ドメイン、認証、 TLS が必要な Webアプリ HTTP TRAFFIC REVISION 2 REVISION 1 80% 20% MICROSERVICE B MICROSERVICE C MICROSERVICE A キューに届いたメッセー ジの処理 イベント駆動処理
  • 22. Azure Function の ACA への統合 Azure Function ※ Azure Service Bus, Event Hub, Event Grid, CosmosDB Azure Queue などのトリガーを利用
  • 23. Microservices using any language or framework Any cloud or edge infrastructure Distributed Application Runtime Portable, event-driven, runtime for building distributed applications across cloud and edge dapr.io Microservices written in any code or framework HTTP API gRPC API Service-to- service invocation State management Publish and subscribe Resource bindings and triggers Actors Observability Configuration Secrets Hosting infrastructure Azure Arc On-premises
  • 25. Dapr components Observability Prometheus AppInsights Jaeger Zipkin Bindings & Triggers GCP Storage AWS S3 Kafka Azure Storage Twilio Swappable YAML files with resource connection details Over 100 components available Create components for your resource at: github.com/dapr/components-contrib State Stores Firebase Cassandra Redis Azure CosmosDB AWS DynamoDB Secret Stores AWS Secrets Manager Azure KeyVault GCP Secret Manager HashiCorp Vault Kubernetes Secret PubSub Brokers Redis AWS SQS Azure Service Bus RabbitMQ GCP Pub/Sub
  • 26. Any Dapr pub/sub Publish and subscribe Create event-driven, loosely coupled architectures where producers send events to consumers via topics. Container App A (Publisher) Containerized application sidecar Container App B (Subscriber) Containerized application sidecar Dapr を利用した Pub/Sub
  • 27. 手動の長時間処理?スケジューリング処理 API エンドポイント バックエンド処理 マイクロサービス Web Apps イベント駆動 2つのリビジョンを持つ アプリの振り分け バックエンドでDBデータ変換 マイクロサービスの構築 Dapr も利用可能 カスタム?ドメイン、認証、 TLS が必要な Webアプリ HTTP TRAFFIC REVISION 2 REVISION 1 80% 20% MICROSERVICE B MICROSERVICE C MICROSERVICE A キューに届いたメッセー ジの処理 バックエンド処理?時間指定処理
  • 28. Jobs Run containerized tasks that execute for a finite duration and exit E.g. data processing, machine leargnin, etc.
  • 30. GitHub Actions integration Container app 1 Revision 1 Revision 2 Buildcontainer usingGitHubAction GitHubrepository Code check-in AzureContainer Registry Env Replica Replica Container(s) Container(s) Container(s) Container(s) Replica Replica CI/CD 環境の容易な構築
  • 31. レジリエンス(障害復旧)機能 – プレビュー ? タイムアウト ? 再試行 ? サーキット?ブレーカー ? 接続プール az containerapp resiliency create -g $RESOURCE_GROUP n $CONTAINER_APP_NAME --recommended デフォルトの推奨レジリエンスポリシーの作成 ※ デフォルト?ポリシーは変更可能
  • 32. Application Logging Container Console Logs: stdout/stderr from your application containers System Logs: generated by Azure Container Apps service Azure Monitor Metrics CPU, Memory, Network in/out, Replica count, etc. for a Container App Environment Logging System logs of the Container Apps Environment Log Streaming ? Container App: Near real-time system and console logs ? Environment: Near real-time system logs Container Console Connect to debug and run shell command inside the container Azure Monitor Log Analytics ? Ingest application logs with a small delay ? Run queries to see logs Alerts Alerts based on metrics and log data 障害対応?監視 (Observability)
  • 36. Azure Container Apps に対する Java の拡張機能
  • 37. ソースコード/成果物からデプロイ ? Java ? C# ? JavaScript ? Python ? Go ? Dockerfile az containerapp up --source . ソースコードからコンテナ?ビルド、デプロイ az containerapp up --artifact ./target/aa.jar jar, war 成果物からコンテナ?ビルド、デプロイ
  • 38. Container Apps 内の Java アプリでメモリを 効率的に使用 (プレビュー) https://paketo.io/docs/reference/java-reference/#memory-calculator ? 単一 Java アプリケーションがコンテナーで実行されている場合 ? ソース?コードまたは JAR からデプロイする場合 ? コンテナーのメモリが 1 GB 未満の場合 ? JVM 引数でメモリに関する引数が指定された場合 ? BP_JVM_FIT=“false” が指定された場合 有効になる条件 無効になる条件 Calculated JVM Memory Configuration: -XX:MaxDirectMemorySize=10M -Xmx1498277K 有効な場合下記をログに出力
  • 40. サービス?レジストリ (Eureka Server) az containerapp env java-component eureka-server-for-spring create --environment $CONTAINER_ENVIRONMENT --resource-group $RESOURCE_GROUP --name jjug-eureka-server Azure Spring Apps で提供していた機能を Azure Container Apps 側で再実装
  • 41. Config Server az containerapp env java-component config-server-for-spring create --environment $CONTAINER_ENVIRONMENT --resource-group $RESOURCE_GROUP --name jjug-config-server --configuration spring.cloud.config.server.git.uri= https://github.com/aa/spring-config Azure Spring Apps で提供していた機能を Azure Container Apps 側で再実装
  • 42. その他の Spring Component Azure Spring Apps で提供していた機能を Azure Container Apps 側で再実装 az containerapp env java-component --help
  • 44. OpenAI に接続する Java アプリを ACA にデプロイ
  • 45. Fine Collection with Azure Container Apps (Dapr を利用) aka.ms/acaJavaWorkshop
  • 46. Fine Collection with Azure Container Apps Let’s start!
  • 47. Azure に関するご質問、ご相談 GitHub Copilot や AI にご興味のある方(展示会場2) 5番でお待ちしています!
  • 48. Azure の PaaS 型 コンテナ?プラット?フォーム Azure Container Apps の ご紹介と Java 対応について マイクロソフト?コーポレーション Sr. Cloud Advocate 寺田 佳央