本文是一系列七篇文章中的第三部分,可帮助开发人员开始使用 Azure。
- 第 1 部分:面向开发人员的 Azure 的概述
- 第 2 篇:面向开发人员的主要 Azure 服务
- 第 3 部分:在 Azure 上托管应用程序
- 第 4 部分:将应用连接到 Azure 服务
- 第 5 部分:如何在 Azure 中创建和管理资源?
- 第 6 部分:生成 Azure 应用的关键概念
- 第 7 部分:如何计费?
Azure 提供了多种托管应用程序的方法。 本文建议满足你的要求的服务。 这不是规范性的。 灵活组合服务以满足您的需求。 大多数生产环境将服务组合在一起以满足业务和组织需求。
您选择的服务通常取决于两个因素:
- 你更喜欢简单性还是控制性?
- 你更喜欢云原生(容器)还是 Azure 原生(定制工具和集成)?
以下视频介绍了第一个注意事项:简单与控制。
简单性和控制性
Azure 托管服务涉及两个关键注意事项:
- 
              简单性和控制性
- 简单的托管平台需要较少的配置和管理,但可减少对底层基础结构的控制。
- 复杂的托管平台需要更多的配置和管理,但让你可以更好地控制底层基础结构。
 
- 
              云原生与 Azure 原生
- 可以将云原生视为具备可移植性的云技术。 使用容器和技术(如 Dapr)的开源工作负载,以便你可以将生成的应用程序部署到任何云提供商。
- Azure 原生侧重于特定于 Azure 的工具和技术来管理基础结构。 这些服务包括容器、代码优先、低代码和基础结构工具,这些工具强调跨 Azure 服务的集成。
 
简化托管
简化的托管解决方案由 Azure 完全管理。 你负责代码和环境配置。 Azure 管理基础运行时和基础结构,包括更新和修补程序。 简化托管是 Azure 原生方法。
- 逻辑应用:创建并运行自动化工作流,几乎不需要代码。
- Power Automate:自动化业务流程和工作流。
- Azure 静态 Web 应用:部署使用 Blazor 或 React 等框架生成的静态 Web 应用。
- Azure Functions 应用:运行无服务器代码或容器。
均衡托管
平衡的托管解决方案兼顾了简单性和控制的需求。 你负责代码和环境配置等功能。 Azure 管理基础运行时和基础结构,包括更新和修补程序。 你还可以将自己的容器引入服务。 均衡托管既是 Azure 原生的,也是云原生的。
- Azure 应用程序服务:全服务 Web 托管,包括语言运行时、容器和自动化工作负载。
- Azure 容器应用:无服务器容器托管。
- Azure Spring Apps:将 Spring Boot 应用程序迁移到 Azure 云。
受控托管
受控托管解决方案可让你完全控制底层基础结构。 你负责更新、修补程序、代码、资产和环境配置。 受控托管是云原生方法。
- Azure 虚拟机:完全控制虚拟机。
- Azure Kubernetes 服务:完全控制 Kubernetes 群集。
源代码托管
对于想要开始新开发的 Azure 的开发人员,请使用以下图表查找建议的托管解决方案。
              
               
              
              
            
无代码或低代码
Azure 支持无代码解决方案作为其云方法的一部分。
- 逻辑应用:使用具有预构建操作的可视化设计器为你的企业和企业对企业方案开发工作流。
- Power Automate(如 Power Apps):当你需要在 Microsoft 365 组织内自动化业务流程和工作流时使用。
代码与容器
低代码托管解决方案旨在允许你在不管理应用程序基础架构的情况下实现代码功能。
- Azure 静态 Web 应用:部署生成的静态 Web 应用。
- Azure Functions:在不管理应用程序基础结构的情况下以支持的语言部署代码函数。
代码优先 托管解决方案提供代码托管服务,使您可以直接将代码部署到服务上。
- Azure 应用服务:完整服务 Web 托管。
- Azure Spring Apps:Spring Boot 应用程序。
容器优先托管解决方案旨在托管容器。 该服务提供特定于容器的配置选项和功能。 你负责容器内使用的计算。 托管容器的服务从托管控制转变为全权负责,因此你只需承担所需的容器管理量。
以 Kubernetes 为中心的业务流程托管包括:
| 服务 | 侧重点 | 使用 | 
|---|---|---|
| Azure Kubernetes 服务 | 云原生 | 使用配置文件和外部项目通过声明性方法用于 Kubernetes 群集。 | 
| Azure Service Fabric | Azure 原生 | 使用命令性方法跨计算机群集部署微服务。 它提供了一个编程模型,使开发人员能够编写描述系统所需状态的代码,Service Fabric 运行时负责使系统与该状态相匹配。 | 
预配置的容器托管意味着已为你预配置业务流程选项。 你在容器或容器群集之间进行通信的能力可能需要额外的服务,例如 Dapr。
| 服务 | 使用 | 
|---|---|
| Azure 应用程序服务 | 完整服务 Web 托管 | 
| Azure Spring Apps | Spring Boot 应用程序 | 
| Azure 容器应用 | 无服务器容器托管 | 
| Azure 容器实例 | 简单的单容器托管 | 
Azure 提供容器注册表来存储和管理容器映像,你也可以使用第三方容器注册表。
| 服务 | 使用 | 
|---|---|
| Azure 容器注册表 | 生成并托管自己的容器映像时,这可以通过源代码提交和基础映像更新来触发。 | 
无服务器
无服务器托管解决方案旨在运行无状态代码,其中包括一个基于消耗的定价层,在不使用时可缩放到零。
| 服务 | 使用 | 
|---|---|
| Azure 容器应用 | 容器托管 | 
| Azure Functions | 代码或容器托管 | 
微服务
微服务托管解决方案运行独立的小型服务,这些服务协同工作以构成更大的应用程序。 微服务通常部署为容器。
| 服务 | 使用 | 
|---|---|
| Azure 容器应用 | 用于无服务器容器化微服务。 | 
| Azure Functions | 用于无服务器代码或容器化微服务。 | 
云边缘
云边缘是一个术语,用于指示云服务是否适用于用户(客户端)或应用程序(服务器)。
客户端计算机
客户端计算在 Azure 外部的客户端上运行。 客户端计算通常用于客户端呈现和客户端处理,例如基于浏览器或移动应用程序。
| 服务 | 使用 | 
|---|---|
| Azure 静态 Web 应用 | 用于使用客户端呈现的静态 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 容器应用 | 用于在无服务器平台上托管托管的微服务和容器化应用程序。 | 
| Azure 容器实例 | 对于不需要容器业务流程的简单容器方案,请使用此选项。 | 
| Azure Kubernetes 服务 | 需要 Kubernetes 群集时使用此服务。 管理群集的控制平面已创建并免费提供给你。 | 
服务器终结点管理
服务器终结点管理允许通过添加版本控制、缓存、转换、API 策略和监视的网关来管理服务器终结点。
| 服务 | 使用 | 
|---|---|
| Azure API 管理 | 当你使用 API 网关(包括配额和速率限制、身份验证和授权、转换和缓存响应)将 REST、OpenAPI 和 GraphQL 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 服务)触发的计算。 基于事件的计算通常用于后台处理、批处理或长时间运行的进程。
| 服务 | 使用 | 
|---|---|
| Microsoft Copilot Studio | 当你需要创建具有无代码界面的聊天机器人时使用。 | 
| Azure Functions | 当你需要根据定时计划运行代码或响应其他 Azure 服务中的事件时使用。 | 
| Azure 服务总线消息传递 | 当你需要分离应用程序和服务时使用。 | 
CI/CD 计算
CI/CD 计算是用于生成和部署应用程序的计算。
| 服务 | 说明 | 
|---|---|
| Azure DevOps | 使用 Azure DevOps 与 Azure 云紧密集成,包括对生成和部署应用程序的托管代理的身份验证和授权。 | 
| GitHub 活动 | 使用 GitHub Actions 生成和部署 GitHub 存储库应用程序。 使用 Azure CLI 在操作中安全地访问 Azure。 | 
| Azure 虚拟机 | 如果使用另一个 CI/CD 系统,则可以使用 Azure 虚拟机来托管 CI/CD 系统。 |