最初的动机 - SaaS 架构基础知识

最初的动机

要理解 SaaS,让我们从创建 SaaS 业务时想要实现的目标这个简单的概念开始。最好首先了解下传统(非 SaaS)软件是如何创建、管理和运营的。

下图提供了有关几家供应商如何打包和交付其解决方案的概念视图。

此图描绘了打包和交付软件解决方案的传统模式。

打包和交付软件解决方案的传统模式

在此图中,我们介绍了一系列客户环境。这些客户代表已购买供应商软件的不同公司或实体。每一位客户实际上都是在独立的环境中运行的,并且他们已经在环境中安装了软件提供商的产品。

在此模式下,每个客户的安装都被视为专用于该客户的独立环境。这意味着客户将自己视为这些环境的拥有者,他们可能会要求一次性定制或独特的配置来支持他们的需求。

同时,这种想法通常会带来这样的结果:客户将控制他们正在运行的产品版本。这是由多种原因造成的。客户可能对新特征心存顾虑,或者担心采用新版本会带来中断。

您可以想象这种动态会如何影响软件提供商的运营足迹。您允许客户拥有的一次性环境越多,管理、更新和支持每位客户的不同配置就越困难。

这种对一次性环境的需求通常要求组织创建专门的团队,为每位客户提供单独的管理和运营体验。虽然可能会在客户之间共享其中一些资源,但这种模式通常会让每位新加入客户的支出越来越多。

让每位客户在自己的环境(云端或本地)中运行解决方案也会影响成本。虽然您可以尝试扩展这些环境,但这种扩展只能局限于单个客户的活动。从本质上讲,您的成本优化仅可以在单个客户环境范围内实现。这也意味着您可能需要单独的扩展策略来适应客户之间的活动差异。

最初,一些软件企业会将这种模式视为一种强大的结构。他们把提供一次性的定制功能作为销售工具,允许新客户提出特定于其环境的要求。尽管客户数量和业务增长不多,但这种模式似乎完全可持续。

但是,随着公司开始取得更大的成功,这种模式的限制逐渐带来了真正的挑战。例如,想象一下,您的业务显著增长、达到峰值,这会让您迅速增加大量新客户。这种增长将会带来运营开销、管理复杂性、成本和许多其他问题。

最终,这种模式的整体开销和影响可能会开始从根本上破坏软件业务的成功。第一个痛点可能是运营效率。与维护客户相关的人员配备和成本逐渐增加,进而开始侵蚀业务的利润率。

但是,运营问题还只是挑战的一部分。真正的问题是,随着这种模式的扩展,它直接开始影响企业发布新特征和跟上市场步伐的能力。如果每个客户都有自己的环境,提供商在尝试将新功能引入客户的系统时,就必须平衡大量的更新、迁移和客户需求。

这通常会导致更长、更复杂的发布周期,因此往往会减少每年发布的数量。更重要的是,由于这种复杂性,团队在向客户发布每个新特征之前,往往会投入更多时间对其进行分析。团队开始更多地关注验证新特征,而不是关注交付速度。发布新特征的开销变得如此之大,以至于团队更加关注测试机制,而不是关注推动其产品创新的新特征。

在这种更慢、更谨慎的模式下,团队的周期往往会很长。因此,一个想法从诞生到在客户身上投入使用之间的时间会越来越大。总的来说,这可能会阻碍您对市场动态和竞争压力做出及时的反应。