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