体验零代码搭建

国内比较好的saas平台,开发一个SAAS系统如何搭建技术架构?

4747  ·  2023-05-16 17:05  ·  所有内容  ·  阅读 1669


本文讲述了国内比较好的saas平台,开发一个SAAS系统如何搭建技术架构?国内比较好的saas平台:1.人力资源(HR)SaaS平台HRSaaS它的主要功能模块包括:人力资源、人才管理、以及人才技术。国内体量较大的HRSaaS平台有北森、泛微、薪人薪事、Moka等。2.通用办公SaaS平台通用办公主要解决企业员工之间办公协同需求。包括视频会议、即时通讯、在线文档、企业云盘等。国内体量较大的通用办公SaaS平台主要有钉钉、飞书、企业微信。3.客户关系管理(CRM)SaaS平台客户管理,亦即客户关系

本文讲述了国内比较好的saas平台,开发一个SAAS系统如何搭建技术架构?

国内比较好的saas平台:

1.人力资源(HR)SaaS平台

HRSaaS它的主要功能模块包括:人力资源、人才管理、以及人才技术。国内体量较大的HRSaaS平台有北森、泛微、薪人薪事、Moka等。

2.通用办公SaaS平台

通用办公主要解决企业员工之间办公协同需求。包括视频会议、即时通讯、在线文档、企业云盘等。国内体量较大的通用办公SaaS平台主要有钉钉、飞书、企业微信。

3.客户关系管理(CRM)SaaS平台

客户管理,亦即客户关系管理(CustomerRelationshipManagement)的简称,也可以称作CRM。CRM的主要含义就是通过对客户详细资料的深入分析,来提高客户满意程度,从而提高企业的竞争力的一种手段。国内体量较大的CRMSaaS平台主要有纷享销客、销售易。

4.市场营销SaaS平台

市场营销SaaS平台主要是企业数字化营销的工具平台。主要涵盖大数据、数据分析、市场投放平台、商业智能等。国内市场营销SaaS主要有:EC、帆软bi、神策数据分析等。

5.资源管理(ERP)SaaS平台

ERP是指以系统化的管理思想,为企业员工及决策层提供决策手段的管理平台。其核心思想是供应链管理,对于改善企业业务流程、提高企业核心竞争力具有显著作用。国内体量较大的ERPSaaS平台有***云ERP、***U8+等。

6.项目管理SaaS平台

项目协作软件帮助团队成员共同制定工作计划、成员之间进行任务分配和流转,可视化实时呈现工作进展,共享工作资料,提升团队工作效率。国内体量较大的项目管理SaaS平台主要有Teambition、Ones、云效等。

7.客服SaaS平台

国内的客服SaaS平台的功能主要有智能外呼、呼叫中心、智能客服等。服务更趋向于智能化、平台化。国内体量较大的客服SaaS平台有网易七鱼、美洽、天润融通等。

8.垂直领域SaaS平台

垂直领域的SaaS平台主要有电商零售、金融行业、医疗行业、农业等。垂直领域的SaaS平台可以为所属行业提供专业性工具服务。例如电商零售行业的有赞电商,医疗行业的决策易、物流行业的快递猫等。

Saas系统最近几年都很火。很多创业公司都在尝试创建企业级别的应用 cRM, HR,销售, Desk Saas系统。很多Saas创业公司也拿了大额风投。毕竟Saas相对传统软件的优势非常明显。

最近一年,有幸架构一个Crm saas 系统,上线了几个月来,各方面都比满意。整个系统创建过程,踩了很多坑,收获也比较多。总结一下Saas系统架构一些特点:

1.分层设计

saas系统分层大概是:

租户识别>应用层>数据访问层>缓存层>数据库

业务代码都是写在应用层。

租户识别可以用spring***实现,然后使用ThreadLocal传递给后端

数据库和缓存层对应用层应该是透明的。程序员在写代码的时候,只关心业务逻辑,不应该担心多租户的问题。

2.数据隔离要透明

saas系统说起来很简单,任何系统似乎加个tenant_id(租户id)就变成saas系统了。比如原来的用户登录是:

select username,password from users where email='abc@qq.com'

改成

select username,password from users where email='abc@qq.com' and tenant_id =1;

对于复杂业务的saas系统,这样做法非常危险,而且开发效率很低。你想想如果那个程序员写sql时候忘了加 “ and tenant_id =1” . 结果不堪设想。

比较好做法是在数据库访问层对SQL进行改写。

TenantContext.exec("select username,password from users where email='abc@qq.com' ");

在连接池根据TenatnContext改写Sql.

这样做好处是,一来程序猿最多把系统搞down了,也不至于信息串了互相泄露。二来将来做分表分库也很方便,上层应用不用修改。

3. 租户识别方案

比较好做法是通过url识别租户。系统是给租户生成一个随机的三级域名,比如 abc.crm.baidu.com. 如果客户想使用自己的域名,可以在cname到我们生成的三级域名,并在管理系统里面做绑定。

这样一个租户可以有两个域名,访问saas,一个随机生成的三级域名,另外一个租户自己的域名.代码里面可以根据过来的域名,判断是那个租户然后初始化TenantContext.

如果不想通过域名来做,也可以通过登录名来判断。这种方式要涉及到租户切换问题。

4. 智能DNS

以后补充。

5. 租户管理系统(计费,订购,定制,充值,催缴)

Saas系统是必须考虑计费系统和租户控制系统。这个系统需要都是独立设计。比如那个租户购买了那些模块,一个月多少钱。租户可以创建最多的用户数。计费到期邮件提醒等功能。

计费方式一般有两种,周期性计费,类似月租方案,和使用量计费,用多少付多少。 周期性计费比较简单。也可以两者结合起来。

6. 定制化开发

SAAS的优势在于一套系统多人使用,似乎和定制化开发有冲突。比如A客户想要A功能,B客户不想要。但定制化开发是无法避免的,比如CRM系统这样复杂的系统,不可能一套系统满足所有公司的要求。定制化开发尽可能分系统,分模块去做。然后通过控制台中配置不同租户订购不同模块,那些模块可以在前端页面上显示。不同的子系统需要分开部署。前端可通过nginx根据url分发,比如 abc.crm.baidu.com/bi/xxx/xx这个地址,就分发到BI子系统。不要尝试OSGI去搞模块化,这个是个大坑。

还有开发和产品,现有需求一定要分析清楚,不要一上线发现后患无穷。新功能尽量做的独立可以配置。

7. 灰度升级

SAAS付费企业客户对系统问题都特别敏感。 为了减少升级可能出现问题的影响范围,一般都采用灰度升级策略。如果使用了url来区分不同租户,灰度升级配置就会很方便。可以配置nginx 来根据域名做分发,比如租户A(aaa.com)到实例1(版本1.0),租户B(bbb.com)到实例2(版本). 当需要域名配置非常多的时候,nginx配置文档会乱。这块时候可以考虑使用nignx_lua来写一些扩展模块。

8. 容量估计

想要搭建一个AI平台,需要什么样的基础架构?数据架构又该如何选择?

❶ 把原始数据从各种数据源导入到数据湖,进行数据拆分、清洗等数据预处理工作;

❷ 把数据交给AI训练集群通过机器学习神经算法框架进行训练;

❸ 训练完成后就可以把得到的最优参数设置模型,进行人工智能应用的部署;

❹ 最后把机器学习的数据进行归档。

什么是saas平台架构设计(推荐一款saas平台架构)

上文就是小编为大家整理的国内比较好的saas平台,开发一个SAAS系统如何搭建技术架构?

国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)简道云平台分析、比较及推荐。


如何打造有企业特色的ERP << 上一篇
2023-05-16 17:05
销售系统的定义是什么,销售系统的整个流程
2023-05-16 17:05
下一篇 >>

相关推荐