在 Azure 上托管应用程序

Azure 提供了多种不同的方法来托管应用程序,具体取决于你的需求。 本文建议与要求匹配的服务。 它不是禁止性的。 你可以混合和匹配服务以满足你的需求。 大多数生产环境使用服务的组合来满足其业务和组织需求。

简单性和控制性

Azure 托管服务有两个注意事项:

  • 简单与控件
    • 简单的托管平台需要更少的配置和管理,但对底层基础结构的控制更少。
    • 更复杂的托管平台需要更多的配置和管理,但提供对底层基础结构的更多控制。
  • 云原生与 Azure 原生
    • 可以将云原生视为使用开源工作负载(如容器和开源技术(如 Dapr)的云可移植。 生成的应用程序可以部署到任何云提供商。
    • Azure 原生特定于 Azure,它投资了特定于 Azure 的工具和技术来管理该基础结构。 虽然这些服务包括容器工作负载,但它们还包括特定于 Azure 的代码优先、低代码和基础结构工具,重点是在 Azure 服务之间连接和集成。

简化的托管

简化的 托管解决方案由 Azure 完全管理。 你负责代码和环境配置等功能。 Azure 管理基础运行时和基础结构,包括更新和修补程序。 简化的托管是 Azure 原生方法。

均衡的托管

平衡 的托管解决方案平衡了简单性的需求,并需要控制。 你负责代码和环境配置等功能。 Azure 管理基础运行时和基础结构,包括更新和修补程序。 还可以将自己的容器引入服务。 均衡托管既是 Azure 本机托管,也是云原生托管。

  • Azure App 服务:包括语言运行时、容器和自动化工作负载在内的全服务 Web 托管。
  • Azure 容器应用:无服务器容器托管。
  • Azure Spring Apps:将 Spring Boot 应用程序迁移到 Azure 云。

受控托管

受控 托管解决方案可让你完全控制底层基础结构。 你负责更新和修补程序以及代码、资产和环境配置。 受控托管是云原生方法。

  • Azure 虚拟机:完全控制 VM。
  • Azure Kubernetes 服务:完全控制 Kubernetes 群集。

源代码托管

对于想要开始 新开发的 Azure 的开发人员,请使用以下图表查找建议的托管解决方案。

Diagram showing no code, low code in the first box, code in the second box and container in the third box with recommended services for each box.

无代码或低代码

Azure 支持无代码解决方案是其 Azure-Cloud 方法的一部分。

  • 逻辑应用:将可视化设计器与预生成操作配合使用,为企业和企业到企业方案开发工作流。
  • Power Automate (例如 Power Apps):在需要自动执行 Microsoft 365 组织中的业务流程和工作流时使用。

代码与容器

低代码 托管解决方案旨在让你无需管理应用程序基础结构即可实现代码功能。

代码优先 托管解决方案旨在托管代码。 可以直接将代码部署到托管解决方案。

容器优先 托管解决方案旨在托管容器。 该服务提供特定于容器的配置选项和功能。 你负责容器中使用的计算。 主机容器从托管控制转移到完全责任的服务,因此你只需承担所需的容器管理量。

以 Kubernetes 为中心的 业务流程托管包括:

服务 侧重点 用途
Azure Kubernetes 服务 云原生 使用配置文件和外部项目通过声明性方法用于 Kubernetes 群集
Azure Service Fabric Azure 原生 使用命令性方法跨计算机群集部署微服务。 它提供了一个编程模型,使开发人员能够编写描述系统所需状态的代码,Service Fabric 运行时负责使系统匹配该状态。

预配置的 容器托管意味着已为你预配置业务流程选项。 在容器或容器群集之间通信的能力可能需要其他服务,例如 Dapr

服务 用途
Azure 应用服务 完整服务 Web 托管
Azure Spring Apps Spring Boot 应用程序
Azure Container Apps 无服务器容器托管
Azure 容器实例 简单、单个容器托管

Azure 提供容器注册表来存储和管理容器映像,也可以使用第三方容器注册表。

服务 用途
Azure 容器注册表 生成并托管自己的容器映像时,可以使用源代码提交和基础映像更新触发这些映像。

无服务器

服务器托管解决方案旨在运行无状态代码,其中包括一个基于消耗的定价层,在不使用时可缩放到零。

服务 用途
Azure Container Apps 容器托管。
Azure Functions 代码或容器托管。

微服务

微服务托管解决方案旨在运行小型独立服务,这些服务协同工作以构成更大的应用程序。 微服务通常部署为容器。

服务 用途
Azure Container Apps 用于无服务器容器化微服务。
Azure Functions 用于无服务器代码或容器化微服务。

云边缘

云边缘是一个术语,用于指示云服务是否适用于用户(客户端)或应用程序(服务器)。

客户端计算

客户端计算 是在客户端上从 Azure 云中运行的计算。 客户端计算通常用于客户端呈现和客户端处理,例如基于浏览器或移动应用程序。

服务 用途
Azure Static Web Apps 用于使用客户端呈现的静态 Web 应用,例如 React、Angular、Svelte、Vue 和 Blazor。

客户端可用性

服务 用途
Azure Front Door 用于所有面向 Internet 的应用程序,为静态和动态资产提供全局缓存和安全网络,包括 DDoS 保护、端到端 TLS 加密、应用程序防火墙和异地筛选。

服务器计算

服务器计算 资产是服务器在提供给客户端之前由服务器处理的文件。 动态资产是使用后端服务器计算开发的,可以选择与其他 Azure 服务集成。

服务 用途
Azure 应用服务 将此服务用于典型的 Web 托管。 这支持一组广泛的功能 API 终结点、全堆栈应用程序和后台任务。 此服务附带了许多编程语言运行时,以及从容器提供自己的堆栈、语言或工作负荷的功能。
Azure Functions 使用此服务为 Azure 服务中 HTTP 终结点或基于事件的触发器提供自己的支持语言的代码。
Azure Spring Apps 用于部署 Spring Boot 应用程序,而无需更改代码。
Azure Container Apps 用于在无服务器平台上托管托管微服务和容器化应用程序。
Azure 容器实例 对于不需要容器业务流程的简单容器方案,请使用此选项。
Azure Kubernetes 服务 需要 Kubernetes 群集时使用此服务。 用于管理群集的控制平面是创建并免费提供的。

服务器终结点管理

服务器终结点管理 是能够通过网关管理服务器终结点及其计算。 此网关提供版本控制、缓存、转换、API 策略和监视等功能。

服务 用途
Azure API 管理 在将 REST、OpenAPI 和 GraphQL API 与 API 网关(包括配额和速率限制、身份验证和授权、转换和缓存响应)产品化时,请使用此服务。
Azure 应用程序网关 用于 区域负载均衡 (OSI 第 7 层)。 它可用于基于 URL 路径或主机标头路由流量,并支持 SSL 卸载、基于 Cookie 的会话相关性和Web 应用程序防火墙 (WAF) 功能。
Azure Front Door 用于 全局负载均衡 (OSI 第 7 层),为静态和动态资产提供全局缓存和安全网络,包括 DDoS 保护、端到端 TLS 加密、应用程序防火墙和异地筛选。
Azure 流量管理器 用于将 DNS(OSI 第 7 层)的流量分发到全球 Azure 区域面向公众的应用程序。 流量管理器使用 DNS 根据流量路由方法将客户端请求定向到适当的服务终结点。 它支持各种流量路由方法,例如优先级、性能和地理路由。 它非常适合跨多个区域或数据中心管理流量。

自动计算

自动化计算 由某个事件(例如计时计划或其他 Azure 服务)自动执行,通常用于后台处理、批处理或长时间运行的进程。

服务 用途
Power Automate 需要自动执行业务流程和工作流时使用。
Azure Functions 如果需要根据计划运行代码或响应其他 Azure 服务中的事件,请使用。
容器服务(Azure 容器实例Azure Kubernetes 服务Azure 容器应用 用于标准可自动执行工作负荷
Azure Batch 需要高性能自动化时使用。

混合云

混合云是一种计算环境,可将公司的本地私有云服务和第三方公有云连接到单个灵活的基础结构,用于运行组织的应用程序和工作负载。

服务 用途
Azure Arc 需要管理整个环境(包括安全、治理、清单和管理)时使用。

如果不需要维护自己的基础结构,可以使用 Azure Stack HCI 在本地运行虚拟机。

高性能计算

高性能计算(HPC)是使用并行处理来高效、可靠、快速地运行高级应用程序程序。 该术语尤其适用于在 teraflop 或每秒 10^12 个浮点运算之上运行的系统。

服务 用途
Azure Batch Azure Batch 可创建和管理计算节点(虚拟机)池、安装要运行的应用程序,以及计划要在节点上运行的作业。 开发人员可以使用 Batch 作为平台服务,在需要大规模执行的情况下生成 SaaS 应用程序或客户端应用。
Azure BareMetal 实例 如果需要在具有对操作系统、存储和网络的根级访问权限的非虚拟化环境中运行,请使用。
Azure Quantum 工作区 在需要开发和试验量子算法时使用。
Microsoft 基因组学 用于 ISO 认证的符合 HIPAA 的基因组处理。

详细了解 Azure 上的高性能计算。

基于事件的计算

基于事件的计算 是由某个事件(例如计时计划或其他 Azure 服务)触发的计算。 基于事件的计算通常用于后台处理、批处理或长时间运行的进程。

服务 用途
Power Virtual Agent 使用无代码接口创建聊天机器人时使用。
Azure Functions 如果需要根据计划运行代码或响应其他 Azure 服务中的事件,请使用。
Azure 服务总线消息传送 需要分离应用程序和服务时使用。

CI/CD 计算

CI/CD 计算 是用于生成和部署应用程序的计算。

服务 说明
Azure DevOps 使用 Azure DevOps 与 Azure 云紧密集成,包括对托管代理的身份验证和授权,以生成和部署应用程序。
GitHub Actions 使用 GitHub Actions 生成和部署 GitHub 存储库应用程序。 使用 Azure CLI 在操作中安全地访问 Azure。
Azure 虚拟机 如果使用另一个 CI/CD 系统,可以使用 Azure 虚拟机托管 CI/CD 系统。

Java 资源

其他资源