探索 Azure 容器应用
使用 Azure 容器应用,可以在基于 Azure Kubernetes 服务运行的无服务器平台上运行微服务和容器化应用程序。 Azure 容器应用的常见用途包括:
- 部署 API 终结点
- 承载后台处理应用程序
- 处理事件驱动的处理
- 运行微服务
基于 Azure 容器应用构建的应用程序可以基于 HTTP 流量、事件驱动型处理、CPU 或内存负载以及任何 KEDA 支持的缩放程序进行动态缩放。
借助 Azure 容器应用,你可以:
- 运行多个容器修订,并管理容器应用的应用程序生命周期。
- 基于任何支持 KEDA 的缩放触发器自动缩放应用。 大多数应用程序可以缩放到零。 (缩放 CPU 或内存负载的应用程序不能缩放到零。)
- 启用 HTTPS 入口而无需管理其他 Azure 基础结构。
- 在应用程序的多个版本上拆分流量,以实现蓝色/绿色部署和 A/B 测试方案。
- 使用内部入口和服务发现实现仅限内部的安全终结点,并包含基于 DNS 的内置服务发现。
- 构建包含 Dapr 的微服务并访问其丰富的 API 集。
- 从任何注册表(公共或专用)中运行容器,包括 Docker Hub 和 Azure 容器注册表 (ACR)。
- 使用 Azure CLI 扩展、Azure 门户或 ARM 模板管理应用程序。
- 在为你的容器应用创建环境时提供现有的虚拟网络。
- 直接在应用程序中安全管理机密。
- 使用 Azure Log Analytics 监视日志。
Azure 容器应用环境
单个容器应用部署到单个容器应用环境,该环境充当容器应用组周围的安全边界。 同一环境中的容器应用部署在同一个虚拟网络中,并将日志写入同一个 Log Analytics 工作区。 创建环境时,可能会提供现有虚拟网络。
将容器应用部署到相同环境的原因包括你需要执行以下操作的情况:
- 管理相关服务
- 将不同的应用程序部署到同一虚拟网络
- 检测通过 Dapr 服务调用 API 进行通信的 Dapr 应用程序
- 让应用程序共享相同的 Dapr 配置
- 让应用程序共享同一个 Log Analytics 工作区
将容器应用部署到不同环境的原因包括你需要确保实现以下几项操作的情况:
- 两个应用程序永不共享相同的计算资源
- 两个 Dapr 应用程序无法通过 Dapr 服务调用 API 进行通信
Azure 容器应用中的微服务
使用微服务体系结构可以独立开发、升级和缩放整个系统中的核心功能区域并对其进行版本控制。 Azure 容器应用为部署包含以下功能的微服务提供了基础:
- 独立缩放、版本控制和升级
- 服务发现
- 本机 Dapr 集成
Dapr 集成
实现由微服务组成的系统时,函数调用将分布在网络中。 若要支持微服务的分布式性质,你需要考虑到故障、重试和超时。 虽然容器应用具有用于运行微服务的构成要素,但 Dapr 的使用提供了更丰富的微服务编程模型。 Dapr 在相互 TLS 和重试等功能中加入了可观测性、发布/订阅以及服务到服务调用等功能。