保险产品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化实践之路(下)》!

相关文章
|
3月前
|
消息中间件 数据采集 NoSQL
秒级行情推送系统实战:从触发、采集到入库的端到端架构
本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。
380 3
秒级行情推送系统实战:从触发、采集到入库的端到端架构
|
2月前
|
存储 Prometheus 监控
136_生产监控:Prometheus集成 - 设置警报与指标选择与LLM部署监控最佳实践
在大语言模型(LLM)部署的生产环境中,有效的监控系统是确保服务稳定性、可靠性和性能的关键。随着LLM模型规模的不断扩大和应用场景的日益复杂,传统的监控手段已难以满足需求。Prometheus作为当前最流行的开源监控系统之一,凭借其强大的时序数据收集、查询和告警能力,已成为LLM部署监控的首选工具。
|
3月前
|
存储 网络协议 算法
ISIS协议详解
ISIS协议是一种链路状态路由协议,广泛用于大规模网络中。它最初基于OSI模型设计,后经扩展支持TCP/IP协议。ISIS通过SPF算法计算最短路径,使用NSAP地址进行设备寻址,具备灵活的区域划分和分层结构。协议通过L1、L2及L1/2路由器实现区域内部与骨干区域的通信,支持P2P和广播网络类型,具备邻接建立、LSDB同步、路由计算等核心机制,广泛应用于运营商和企业骨干网中。
|
9月前
|
测试技术 持续交付 开发者
Logic Error: 如何识别和修复逻辑错误
识别和修复逻辑错误是软件开发中的重要技能。通过理解程序需求、使用调试工具、打印日志和编写单元测试,可以有效地识别逻辑错误。修复逻辑错误时,需仔细阅读代码,回溯错误来源,并进行全面的重新测试。遵循最佳实践,如保持代码简洁、进行代码审查和使用持续集成,可以进一步减少逻辑错误的发生,提高代码质量。希望本文能帮助开发者更好地识别和修复逻辑错误,编写出高质量的软件。
735 16
|
消息中间件 SQL 大数据
Hologres 在大数据实时处理中的应用
【9月更文第1天】随着大数据技术的发展,实时数据处理成为企业获取竞争优势的关键。传统的批处理框架虽然在处理大量历史数据时表现出色,但在应对实时数据流时却显得力不从心。阿里云的 Hologres 是一款全托管、实时的交互式分析服务,它不仅支持 SQL 查询,还能够与 Kafka、MaxCompute 等多种数据源无缝对接,非常适合于实时数据处理和分析。
408 2
|
数据采集 人工智能 数据可视化
云上数据可视化:解锁数据价值,洞见未来趋势
五、未来展望 随着技术的不断进步和应用场景的不断拓展,云上数据可视化将迎来更加广阔的发展前景。未来,云上数据可视化将更加注重数据的实时性、交互性和智能化。同时,随着人工智能、大数据等技术的深度融合,云上数据可视化将更加
669 7
|
机器学习/深度学习 人工智能 自然语言处理
机器学习系列1 机器学习历史
 人工智能(AI)作为计算机领域与机器学习的历史交叉点,随着支撑机器学习的算法和算力的增长,AI的发展也得到进步。值得关注的是,虽然这些研究从1950年代已经开始出现,但重要的算法:统计,数学,计算等相关技术理论的发现远早于这个时代。事实上,人们已经思考这些问题数百年 。本文将讨论“思考机器”概念的历史知识基础。
488 0
|
NoSQL 算法 Java
技术好文:Redis实现分布式锁的7种方案
技术好文:Redis实现分布式锁的7种方案
|
消息中间件 监控 Java
【Kafka节点存活大揭秘】如何让Kafka集群时刻保持“心跳”?探索Broker、Producer和Consumer的生死关头!
【8月更文挑战第24天】在分布式系统如Apache Kafka中,确保节点的健康运行至关重要。Kafka通过Broker、Producer及Consumer间的交互实现这一目标。文章介绍Kafka如何监测节点活性,包括心跳机制、会话超时与故障转移策略。示例Java代码展示了Producer如何通过定期发送心跳维持与Broker的连接。合理配置这些机制能有效保障Kafka集群的稳定与高效运行。
526 2
|
图形学
【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇3(附项目源码)
【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇3(附项目源码)
465 0