你当前正在访问 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 区域之间同步复制重要数据,则可以由于实时复制而向响应时间添加数百毫秒。
下一步
通过优化客户的计费和成本管理策略,开始学习之旅。