SaaS是当今最具潜力的利基(niche)之一。在过去的几年当中,随着SaaS逐步替代本地部署的传统软件,市场对SaaS这种商业模式的接受度也越来越高。最近几年最大的软件公司IPO也是与SaaS相关的。
然而,实际上许多SaaS业务并不能取得成功。一个主要的原因是他们对SaaS并不了解,没有为扩展业务准备一个良好的基础。尽管许多SaaS产品功能非常出色,但很多时候,他们并不能在激烈竞争的SaaS市场空间中维持业务增长。
事实是,许多开发人员仍在努力理解SaaS交付平台的核心本质,因此无法为SaaS设计一个健全的,可扩展的安全架构。构建这样的工程基础不仅复杂,而且有着巨大的技术风险。除了巨大的经济投资外,它需要大量的经验,专业知识和时间来建立。
本文基于我从开发云服务产品Techcello获得的经验教训。强调了从传统软件转向SaaS解决方案需要注意的一些重要的事项:
在SaaS解决方案中,安全性是一个关键因素,每一位CIO都密切关注安全性。 随着黑客和安全漏洞的风险增加,可以说好的安全可信度也可以作为重要的竞争优势。
你需要确保每个客户间的数据是隔离开的,该架构必须在设计级别上具有强制执行权,以确保客户特定数据拥有足够安全性。
另一个关键方面是数据的存储和访问方式。这可以通过对软件的所有可能的接入点应用强制(enforcements)执行来解决。 你必须提供每个客户更改工作流,业务规则和数据模型的能力,因为企业结构可能因客户而异。用户访问权限根据单个租户内角色的不同提供精细级别的访问权限。
SaaS玩的就是量。为了使SaaS公司取得成功,它应该能够扩展其解决方案,与数千甚至数百万的客户进行合作。
随着你的SaaS应用变得流行,它应该能够扩展其性能,服务多种大小的客户。 因此,产品应设计成使得每层能够以无缝方式独立地缩放,以便满足不可预测的负载。在软件展示,应用,数据库,后端进程等各个层面都需要强大的架构。
SaaS可配置性是迈向多租户(multi-tenancy)的最大挑战之一。架构师经常面临着冲突的需求,这迫使他们走上自定义代码开发的道路。 这可以通过在从UI,订阅,安全,通知,数据字段和数据存储的产品中跨越各个层的可配置设计来减轻这种冲突。
企业已经有了广泛的应用。 因此,他们期望新的SaaS应用程序与现有系统无缝集成是很自然的。应该提供一组标准的API,以便与其他SaaS和/或内部部署应用程序进行集成。
大多数成熟的公司在利用云时都有多元化的思维过程。 可以在任何环境(公共云,私有云,内部部署或数据中心)上无缝部署的云中立解决方案将为您的客户提供广泛的选择,因此作为SaaS提供商,你不必强迫你的客户只有一种选择。
这些考虑对于构建精心设计,可扩展和安全的SaaS解决方案至关重要。 SaaS提供商必须尽早理解这些原则,以便能够提高收入,获得忠诚的客户并通过SaaS产品获得收益。