保险产品SaaS化实践之路(中)

简介: 保险产品SaaS化实践之路

三板斧 3


有的场景下,客户的定制化需求,需要改变产品基线的核心逻辑,而这些需求又无法抽象成可枚举的一些情况,因此Configuration模式无法适用这样的场景。那么如何在不改变产品基线代码的情况下,改变其核心逻辑呢?答案就在我们的第三块基石 – Plugin(可插拔)


我们自研了我们的Plugin Framework,能够在无代码入侵的情况下,实现产品基线的扩展点(Extension Points),同时可以让不同的客户需求以Plugin的形式接入。Plugin Framework按客户实现、国家实现、产品默认实现了三层分层:


Plugin及Lookup机制




需要注意的是,Plugin容易被滥用;因此我们在架构上规定,尽可能用Configuration和Composition模式,仅在不得已的情况下使用Plugin模式,并且需求产品基线架构委员会进行需求和设计审核,才能在产品基线开出Extension Point扩展点。

 

综合上述的三板斧设计模式,我们实现了满足开闭原则的可扩展产品基线:


综合使用三种模式的可拓展产品基线




3  从项目化向SaaS化(产品化),我们如何推进架构设计最终落地?


架构设计很丰满,现实和技术很骨感,我们知道目标在哪里是不够的,我们需要知道通向目标的正确路径。那么在2年前我们还是以大项目交付为核心模式的时候,我们是如何推进上述架构设计最终落地的呢,怎样的路径才是通往目的地的最优路径呢?下图是我们最终选择的方式,它支持了我们今天的成功转型。



我们上面讨论过三板斧的3种模式:Configuration,Composition,Plugin;Plugin模式作为一种尽可能不要用的模式,却是一种兜底的模式;没有Plugin,就支持不了我们产品化的最后一公里,因此它的重要性不言而喻。那么如何无侵入地做到呢?我们自研了众安国际的Plugin Framework(我们计划把该框架开源):


① 引入plugin框架

②定义扩展点-

只需要让你的扩展点接口继承ExtensionPoint 即可


③使用扩展点-

简单的面向接口编程和Spring DI(Autowired)


④项目交付实现扩展点-

还是简单 Annotation,除了业务,你什么都不用关心!

图注:实现扩展点,从而改变基线default的功能

⑤ 可协同,易管理

图注:基线和项目协同的开发、打包、部署



好了,看到这里,我们如何用一套代码,支持所有客户的需求,真正做到产品化和核心精髓相信你已经理解。那么我们就是一家SaaS公司了?等等,还没有!


4  多租户设计与框架


SaaS产品不仅要求一套代码,还要求一套部署支持多客户。这里有另一个极其重要的点,那就是多租户


支持多租户,有其最核心的三要素


多租户三要素1-Security 之 Authentication


多租户三要素2-Context


多租户三要素3.1

数据隔离在Data Model层面进行了第一层隔离,采用tenant_id进行租户的逻辑隔离。


多租户三要素3.2

虽然tenant_id已经做了租户逻辑隔离,但数据库模式还是采用了Per-Tenant的租户隔离模式,以保证更安全的数据隔离,这是第二层的数据隔离。


多租户三要素3.3

数据的二层路由 2-Layer Sharding。


多租户三要素3.4

下图是其它需要多租户改造的数据存储,也要对他们进行多租户改造,才能在多租户架构下实现隔离和安全。


如果大家对我们的多租户框架感兴趣的话,有一个好消息是,我们计划把它们开源,敬请期待!


除了多租户外,高可定制的SaaS订阅模式,也是SaaS产品非常重要的一环:


架构设计一个To B企业级SaaS产品,上面的任何一环都不可或缺,但这就是全部吗?敬请期待我们的《保险产品SaaS化实践之路(下)》!

相关文章
|
4天前
|
Cloud Native Serverless 开发者
阿里云助力开发者创新:探索云原生技术的新境界
阿里云开发者社区推动云原生技术发展,提供丰富产品(如容器服务、Serverless、微服务架构、服务网格)与学习平台,助力企业数字化转型。开发者在此探索实践,共享资源,参与技术活动,共同创新,共创云原生技术新篇章。一起加入,开启精彩旅程!
260 2
|
4天前
|
存储 调度 云计算
云计算:技术解析与实践应用
云计算:技术解析与实践应用
31 0
|
存储 设计模式 安全
保险产品SaaS化实践之路(中)
保险产品SaaS化实践之路
142 0
|
前端开发 安全 API
保险产品SaaS化实践之路(上)
保险产品SaaS化实践之路(上)
143 0
|
机器学习/深度学习 人工智能 分布式计算
拥抱开源,云原生时代下的开源牧码人的初心与坚守
王峰 阿里巴巴开源委员会大数据AI领域副主席 阿里云开源大数据平台负责人 Flink中文社区发起人
99276 26
拥抱开源,云原生时代下的开源牧码人的初心与坚守
|
机器学习/深度学习 分布式计算 负载均衡
大数据SaaS应用落地经验分享
在过去几年中,我们自己开发的大数据SaaS应用大数据实验室采用混合云体系结构在全国各地进行了几十次部署。在实际使用过程中,遇上了非常多的问题。本文主要分享在实际软件开发和维护过程中遇上的各种问题和解决方案分享。
720 0
大数据SaaS应用落地经验分享
|
消息中间件 运维 Cloud Native
饿了么资深架构师分享云上基础架构演进
从单体应用到微服务体系再到多活架构,从用云到IaaS全面上云再PaaS上云,最后全面拥抱云原生,这就是饿了么的云上基础架构演进之路。
饿了么资深架构师分享云上基础架构演进
|
弹性计算 运维 应用服务中间件
飞天助力成长,平台助力实践
阿里云平台为用户提供虚拟服务器平台,在开发者社区有相应的问题解决方案,让初学者易学易懂,毫无障碍额进行学习。飞天加速计划是一个很好的平台,让更多的人了解、使用、更多的是接触并通过阿里云开发出更好的属于自己的网站,发挥自己的想象力,锻炼自己的代码编写能力。
|
运维 监控 Cloud Native
深度解读畅捷通云原生架构转型实战历程
畅捷通公司是用友集团旗下的成员企业,专注于服务国内小微企业的财务和管理服务。一方面,畅捷通将自己的产品、业务、技术架构互联网化;另一方面,畅捷通推出了畅捷通一站式云服务平台,面向小微企业提供以数智财税、数智商业为核心的平台服务、应用服务、业务服务及数据增值服务,致力于建立“小微企业服务生态体系”。
深度解读畅捷通云原生架构转型实战历程