2018年第一季度,销售易推出了一系列新产品功能。除了更智能的应用,我们的基础架构团队也为大家带来了多租户数据存储架构的全面升级,目的是为我们的用户提供更好、更流畅的用户体验,以及更加安全的数据存储。和现在市面上大多数SaaS企业相同,销售易在创始之初使用的也是多租户(多个逻辑空间)共享同一数据存储结构(同一物理空间)的模式。这种模式最大的好处就是简单且成本低。然而,随着我们的客户规模越来越大,这种模式逐渐出现了一些问题。

SaaS企业数据运算减速的三大原因

我们都知道,数据库指的是计算机中保存的一组结构化数据,尤其指可以通过各种方式访问的数据。对于SaaS企业来说,数据运算减速主要有三个原因:
第一是逻辑空间的冲突。多个逻辑空间意味着存在对于其特定业务模式和数据格式阐释的差异,共享同一物理空间则意味着这些差异的阐释会彼此发生冲突。最简单的一个例子:自定义字段可以是一个数值,也可以是文字。这两个在逻辑和格式上完全不同的内容置于同一个字段下将会给数据库的检索带来困扰,从而严重降低运行速度。第二是物理空间的限制。即使计算机的运行速度远远高于人脑,更多的数据,总是需要更大的运算量。当数据达到一定级别,超过了其所在物理空间能够承受的极限,运算将变得极其迟缓。 第三是业务空间的制约。随着租户的增加,我们的数据存储需要支撑更多的业务。如果将所有业务(实体)都置于同一空间里并做索引,这些新增索引对于存储体系的运行速度将会带来指数级影响。

多租户数据存储混合架构

所以,我们采用了国际上的多租户数据存储混合架构来解决这三个难题:
1、通过分割逻辑空间进行数据隔离
当数据量达到一定程度的时候,无论采用多么先进的算法,运算时间都会受到显著影响。这就跟我们用人脑可以轻而易举做一位数加减法,但到四位数的时候所需的脑力将显著增长的道理一致。并且不同于只需要做加法,由于前文提到各租户的业务各异,将逻辑上差异显著的数据置于同一空间,会给数据库检索带来混乱,从而降低运行效率。逻辑空间隔离正是解决这一问题的最佳方案。将不同的租户置于不同的逻辑空间,既减轻了总体数据运算负荷,又通过更为同质化的数据分类提升数据库运行效率。
2、通过分割物理空间进行数据隔离
大数据量的客户可以独享一个数据空间。并且,这个数据空间可以根据客户的数据量弹性伸缩。因此,无论客户自身业务如何变化,数据如何增长,弹性数据空间均可确保无论其自身业务如何变化,数据如何增长,企业的独享空间都能够满足他们的运算需求。对于中小客户而言,这也是非常有利的,因为它们不需要再和占用大量资源数据处理请求的大客户共享同一数据空间,数据的处理速度将会更快,性能也会更加稳定。针对那些对于数据安全有很高要求的客户,独享物理空间也同样可以帮助其在不损耗性能的前提下实现安全加密。在租户没有进行物理空间隔离的情况下,加密是不可能实现的。在使用新多租户数据存储架构技术以后,独享物理空间的客户可以通过原始物理空间加密+导入数据的方式实现租户数据完整加密,并且自行管理独享物理空间对应的数据库,在不影响性能的情况下完全保障其数据安全。这在没有新架构之前是无法实现的。
3、通过分割业务空间进行数据隔离
每一个业务(例如商机、线索)都是自成体系的,数据库运转的前提是对其中很多实体进行索引。当我们将所有业务置于同一个空间,需要索引的字段会成倍增加,严重影响数据库运行速度。将这些业务空间进行隔离以后,会很好地解决上述问题,并且各空间可以通过外键互联,完成用户的业务请求。

小结

在销售易,我们一直致力于与我们的客户一同成长。所以我们坚持持续投入大量研发资源为客户提供更好更安全的客户体验。多租户数据存储混合架构是为了能够给客户提供更稳定卓越的性能,更自主的管理,以及更安全的数据存储。我们也会在今年下半年对系统进行更多的升级换代,敬请大家期待。