你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 上的 SaaS 工作负载的设计原则

作为一家提供 SaaS 解决方案 的独立软件供应商(ISV),你负责该解决方案的卓越体系结构,并与客户共同负责。 它们依赖于你的解决方案,问题可以级联到它们。 如果组织已成熟且拥有已建立的客户群,可靠性和安全性很可能是你最大的担忧。 停机和安全漏洞可能会对公司的收入和声誉产生负面影响。

但许多 ISV(尤其是启动 ISV)使用有限的资源运行,以最大程度地降低成本。 如果组织处于启动阶段,可能需要做出积极的权衡,才能进入下一阶段的增长。 你可能没有用于治理、安全性或部署自动化的专用团队,但请记住规划未来的增长。 如果必须冒险,请做出计算决策。

如何设计以低规模运行的解决方案不同于大规模解决方案。 为了支持快速增长,应 设计具有灵活性和适应性的 SaaS 工作负荷体系结构。 本文介绍了在发展过程中的基本原则。 一起考虑所有五个精心构建的框架支柱,包括权衡。 所有支柱都有最低标准,因此请考虑每个支柱。 如果不应用这些原则,可以引入财务损失并减少客户信任。

可靠性

设计原则 注意事项
确定可用性的优先级。 解决方案 你的企业。 尽可能多地保持高可用性。 如果解决方案遇到服务中断,影响不仅会影响客户,还会影响客户。
明确提供客户的服务级别协议(SLA)。 为客户创建经济支持的 SLA 时,请确保可以满足这些 SLA,并确保你依赖的组件与他们兼容。 在 SLA 设计过程中查看基础 Azure 服务的复合 SLA。 不要做出假设。 在 SLA 中反映你共同的责任模型。

权衡:可靠性和成本。 若要实现较高的可靠性,通常需要部署额外的资源。 例如,可以跨多个可用性区域或区域分配资源。 某些 Azure 服务提供内置的异地复制或区域间复制,但这些功能通常具有较高的成本。

就预算允许的复原能力级别做出明智的决策。 如果工作负荷中某些组件或流的可靠性没有财务影响,请考虑低成本的机会来提高复原能力。 例如,可以使用平台服务的可用性区域,定期将数据备份到另一个物理位置,并使用基础结构即代码(IaC)在恢复过程中快速重新部署资源。

安全性

设计原则 注意事项
建立治理作为安全的基础。 从一开始就建立良好的治理做法,而不是以后解决问题。 许多因素会影响安全性,例如管理角色、组织资源以及实施策略的方式。 如果没有可靠的治理,安全控制不会保护系统。
遵循第一天起的云安全基线。 期望客户进行安全审核。 在设计早期纳入审核线索。
隔离客户,并隔离细分市场。 使用租户模型作为数据隔离的策略。 细分部署和环境。
从零信任开始,并提供尽可能少的访问。 默认为无访问权限的位置。 仅在必要时引入最低访问权限。 将此策略用于标识管理和网络流量。 定期检查流经系统,并针对异常采取措施。
尽可能避免凭据。 如果必须使用凭据,请对其进行保护。 将凭据视为责任。 使用信誉良好的标识提供者和技术来最大程度地减少凭据存储。 如果不可避免,请使用安全的云原生方法保护凭据。 最小心地处理客户凭据和机密。
将安全性作为一个持续的过程。 持续重新评估安全状况。 考虑不断变化的威胁格局、新功能和协议,以及更新的合规性或法规要求。

权衡:安全性和成本优化。 设计和操作安全解决方案的成本很高。 但是,你可以实现安全的重要步骤,例如良好的治理,并遵守安全基线,只需花费最少的费用即可。 确定成本效益与理想安全状况之间的平衡。

成本优化

设计原则 注意事项
只需为所需内容付费。 利用Microsoft成本管理功能来了解总体支出。 确定最昂贵的资源类别的优先级,以便进一步查看。 确定可能超支的区域。
使用你支付的内容。 最大化你支付的资源的价值,但你可能未使用。
为成本建模。 跟踪销售的商品成本。 了解将解决方案交付给客户的成本。 此过程类似于制造物理产品。 若要告知决策,请根据客户产生的收入监视每个客户的成本。 若要快速了解和聚合 Azure 支出,请实施治理流程,例如良好的资源组织和标记。
了解成本和收入如何相关。 避免在不相应增加收入的情况下增加成本的情况。 例如,如果添加了提供无限免费存储的新功能,成本可能会增加。 同样,如果你根据用户数向客户收费,请确保将功能与用户联系在一起。

权衡:成本优化和可靠性。 若要创建可靠的解决方案,通常需要部署额外的组件、传输更多数据并使用更具弹性的关键组件 SKU,所有这些都会增加成本。 增加的可靠性通常值得花费,但必须做出明智的决策。 若要抵消这些成本增加,请确保有效使用其他组件并最大化其价值。

卓越运营

设计原则 注意事项
了解共同的责任模型。 明确定义云提供商、客户和组织的责任。 确保每个人都知道谁负责哪些任务。
准备代表客户操作解决方案。 设置组织、团队、流程和工具,以支持大规模运营 SaaS。
采用一致的流程。 使用部署标记。 跨标记配置和体系结构推动一致性。 自动化或标准化流程。
正式化异常或差异。 定义不同的 SKU 以满足不同的需求。 使用此方法可避免不同客户的自定义部署、配置或代码。
安全地推出更改。 实现安全部署过程,以便在出现问题时用于渐进式曝光、持续监视和回滚。 对代码、基础结构和配置更改使用一致的过程。 控制在任何给定时间部署的解决方案版本数。

权衡:卓越运营和复杂性成本。 自动化管理操作可以提高解决方案的复杂性,并花费时间进行生成。 最初,自动化成本可能超过优势,尤其是使用小型客户群。 但是,随着客户数量的增长,自动化的成本将得到回报,好处也随之增加。

性能效率

设计原则 注意事项
实现全局缩放以实现全局性能。 通过多区域部署或加速流量路由为全球客户提供良好的体验。
量化预期规模。 模型最佳、平均值和最坏情况的增长方案。 分析趋势,并咨询销售团队进行实际预测。 规划灵活的缩放策略,以适应各种增长可能性。
了解缩放点。 确定可能需要灵活性的位置。 常见触发器包括每个用户的客户或租户数、用户和事务数。 了解随着业务的发展以及这些因素如何影响体系结构的变化。
横向扩展的设计。 纵向扩展有限制,但横向扩展允许更大的扩展。 并非所有内容都横向扩展,因此请考虑使用部署标记将解决方案缩放为一个单元,以避免扩展资源的限制。

权衡:性能效率和可靠性。 可靠系统通常需要跨广泛的地理区域进行数据复制。 根据复制设计,此设置可能会导致更高的延迟和较低的吞吐量。 例如,如果在两个相隔数百英里的 Azure 区域之间同步复制重要数据,则可以由于实时复制而向响应时间添加数百毫秒。

下一步

通过优化客户的计费和成本管理策略,开始学习之旅。