你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
专为云托管工作负载设计的应用程序解决了解决方案的业务要求,并整合了云原生组件和功能。 设计良好的云应用程序涵盖了可靠性、安全性、成本、运维和性能因素。 这些注意事项符合业务要求、云托管平台的特定特征以及平台提供的功能。
无需使用特定的应用程序样式(例如微服务)为云工作负载设计应用程序。 但是,云托管使许多应用程序设计模式比托管解决方案更接近,这些解决方案本身不提供多种应用程序和数据平台选项、缩放功能、安全控件和消息传送选项。 云工作负载受益于按设计分解为更小的分散式服务的应用程序。 这些服务通过 API 或者使用异步消息传送或事件传送进行通信。 当需求增加时,应用程序通过添加新实例来横向扩展。
利用云应用托管平台、信息传递功能和分解服务的应用程序面临分布式系统的常见问题。 在这些系统中,应用程序状态是分布式的,作以并行和异步方式执行。 发生故障时,应用程序必须具有复原能力。 恶意参与者连续针对应用程序进行攻击。 部署必须自动化且可预测。 监视和遥测对于深入了解系统至关重要。
以下列出了本地部署设计和云设计的一些常见特征。
典型的内部部署设计
- 整体式和并置功能和数据
- 设计用于可预测的缩放或者预配过度的情况
- 关系型数据库
- 同步处理
- 旨在避免故障并测量故障之间的平均时间(MTBF)
- 通过 IT 函数预配资源
- Snowflake 服务器和 PET 服务器
典型的云设计
- 被分解和分布的功能与数据
- 专为弹性缩放设计
- 使用多种存储技术实现多语言持久化
- 异步处理
- 设计为承受故障和测量 MTBF
- 为故障做好准备并测量平均修复时间
- 资源根据需要通过基础结构即代码进行预配
- 不可变且可替换的基础结构
为 Azure 设计应用程序
云架构师在云托管方面具有专业知识,并且可以做出战略权衡决策,应设计云应用程序。 Azure 提供了资源来帮助架构师开发应用程序并指导开发团队实施它们。 若要实现良好的工作负载和应用程序设计,架构师需要:
- 符合组织云采用标准。
- 确保设计遵循 Azure Well-Architected Framework。
- 了解典型的 体系结构样式、 工作负载和 最佳做法。
- 使用设计模式解决常见问题并引入战略权衡。
- 做出明智的技术选择。
- 评估参考体系结构。
- 查看特定于服务的指南。
可以使用 Azure 来托管和重新托管未针对云设计的应用程序。 你可以调整工作负荷应用程序以使用云功能,但重新托管专为固定资源和缩放设计的应用程序并不被视为云原生部署。
符合组织云采用标准
应用程序是可能需要满足组织标准和治理的工作负荷的一部分。 任何规模和云成熟度的组织都可以使用 适用于 Azure 的云采用框架 来正式化其 Azure 范围的采用策略、就绪性、创新、管理、治理和安全计划。 此方法的目标是为不同工作负载建立一致的标准化方法,例如使用 Azure 登陆区域。 Azure 登陆区域提供组织范围的治理,并为工作负荷团队和架构师提供对资源的民主访问,以实现本地化的业务目标。 作为设计应用程序的架构师,全面了解宏环境及其对工作负载操作(例如应用程序登陆区域)的期望至关重要。
组织的 Azure 采用策略不应影响你选择的体系结构风格,但它可能会限制技术选择或安全边界。
遵循 Well-Architected 框架
可以通过各种镜头评估任何工作负荷的设计和实施。 使用 Well-Architected Framework 评估决策并将其与这五个关键体系结构支柱中的设计原则保持一致:
通过遵循这些原则并评估这些体系结构支柱之间的权衡,可以生成满足业务需求的设计,并且经过充分持久、可维护、安全且成本优化,可在 Azure 中运行。 这些决策应告知体系结构风格选择,并帮助缩小技术选择或安全边界,因为它们与特定工作负载的需求相关。
你的团队或组织可能有其他设计原则,例如 可持续性 和道德,可用于评估工作负荷。
了解典型的体系结构样式
了解应用程序将存在于的组织环境以及基于 Well-Architected Framework 的良好体系结构设计的基础之后,需要确定要生成的体系结构类型。 它可能是微服务体系结构、更传统的 N 层应用程序,或大数据解决方案。 这些体系结构样式是不同的,专为不同的结果设计。 评估体系结构样式时,还应选择数据存储模型来解决状态管理问题。
评估各种 体系结构样式 和 数据存储模型 ,以了解每个选项的优点和挑战。
Well-Architected 框架中的工作负荷
本文 Well-Architected 框架工作负载 介绍了不同的工作负荷分类或类型。 可以找到有关 任务关键型工作负荷、 AI 和机器学习工作负载或 软件即服务工作负荷的文章。 这些特定于工作负荷的文章将 Well-Architected Framework 的五大核心支柱应用于特定域。 如果您的应用程序属于与这些记录的模式相匹配的工作负载,请查看相应的指南,通过遵循一套特定于工作负载的设计原则和建议来改进您的设计,涵盖应用程序平台、数据平台和网络等常见设计领域。 某些工作负荷类型可能受益于选择特定的体系结构样式或数据存储模型。
最佳做法
有关各种设计注意事项的详细信息,包括 API 设计、自动缩放、数据分区和缓存,请参阅 云应用程序中的最佳做法。 查看这些注意事项并应用适用于应用程序的最佳做法。
使用设计模式解决常见问题并引入战略权衡
应用程序具有特定的业务要求、目标和成功度量。 应将这些功能和非功能要求分解为协同工作的离散活动,以实现满足你和客户期望的解决方案。 这些活动通常遵循软件行业已建立的模式。 软件设计模式是可应用于处理或数据存储的命名和可重复方法。 这些模式经过证实可以解决已知权衡的特定问题。
Azure 的 云设计模式目录 解决了分布式系统中的特定挑战。
做出明智的技术选择
确定要生成的体系结构类型以及要使用的设计模式后,可以选择体系结构的主要技术组件。 以下技术选择至关重要:
计算 是指运行应用程序的计算资源或应用程序平台的托管模型。 有关更多信息,请参阅选择计算服务。 有关特定应用程序平台,请参阅专用指南,例如 选择 Azure 容器服务和Azure 混合选项。
数据存储 包括文件、缓存、日志以及应用程序可能保存到存储的其他任何内容的数据库和存储。 有关详细信息,请参阅 数据存储分类 和 查看存储选项。
消息传递 技术支持系统组件之间的异步消息传送。 有关详细信息,请参阅 异步消息传送选项。
AI 技术解决了在传统应用程序代码中实现的计算复杂问题。 有关详细信息,请参阅 “选择 Azure AI 服务技术”。
你可能会在此过程中做出其他技术选择,但计算、数据、消息传递和 AI 是大多数云应用程序的核心,并确定设计的许多方面。
评估参考体系结构
Azure 体系结构中心汇集了有关解决方案的构思、示例工作负载和参考体系结构的文章。 这些文章通常列出了与 Well-Architected Framework 一致的常见组件和注意事项。 其中一些文章包括 GitHub 上托管的可部署解决方案。 尽管其中任何一种方案都不太可能正是你要构建的内容,但它们是一个很好的起点。 你可以根据具体需求调整指南。
在 Azure 体系结构中心浏览 体系结构目录 。
查看服务专属指南
选择核心技术并查阅参考体系结构后,请查看特定于体系结构中服务的文档和指南。 使用以下资源获取特定于服务的指南:
Well-Architected 框架服务指南: Well-Architected 框架提供有关许多 Azure 服务的文章。 本文将体系结构的五大支柱应用于每个服务。
Azure 可靠性指南: Azure 可靠性中心有深入的文章,专门解决许多 Azure 服务的可靠性特征。 这些文章记录了一些最关键的可靠性主题,例如可用性区域支持和不同类型的中断期间的预期行为。
来自另一个云?
如果你熟悉如何在另一个云提供商中设计应用程序,则许多相同的基础知识适用。 例如,体系结构样式和云设计模式在概念上与云无关。 有关详细信息,请参阅以下服务映射和体系结构指南文章: