一个SAAS系统服务平台(前后端+中台)的最佳开发架构是?

互联商理学


我是做全栈工程师的,我个人现在看市场和行情,前端主流是vue.js,react.js两者都有自己生态圈和体系,并且入门简单。

后端推荐使用java,大项目还是小项目java都可以做,推荐使用springboot脚手架,框架可以使用微服务框架springcloud,可以根据不同的业务划分单服务,独立部署。日后好维护。

大公司才有时间和金钱玩中台。中小型直接前后对接。


龙川本地资讯


该问题非常好,因为它代表了纯粹开发技术类科技,但同时也从技术向运营服务的延伸。


任何SaaS系统的最终目的都是为入驻到SaaS系统的客户服务,为客户提供价值的,而任何开发架构都是为了让SaaS能更好的实现、提供更好的服务的。

从系统开发需要达到的目的,我们追踪溯源,列出SaaS平台需要实现的目标:

  • 实现入驻客户的功能需求
  • 满足SaaS系统本身的运营需求
  • 实现SaaS可扩展性

明白需要实现的目标后,我们再将相关技术框架做个归纳列表:

限于篇幅,每个技术框架介绍请读者自行查阅网上资料。此处只介绍选择最佳框架的思路。

1、根据SaaS系统入驻客户规模和可能的数据量大小,来选择技术开发架构

SaaS开发系统技术开发架构,首先需要考虑系统的可扩展性,作为SaaS系统,本身具有行业特性,不仅仅是为某一单独客户的自定义,而是需要考虑一类主要需求都相同的客户,实现大家的共性需求,如:CRM的SaaS平台,财务管理的SaaS平台,销售管理的SaaS平台等,在此基础之上,如果有特别特殊的客户,在根据客户的个性化需求,提供企业自定义功能。

同时SaaS系统需要根据技术发展、行业需求演化等因素,能通过最小的代价实现版本升级迭代,大家都知道,只要在技术架构不变更的情况下,其他技术功能的升级迭代成本相对都是比较小的。如何选择一个合适的技术开发架构,以满足将来一段时间内的用户需求,就是SaaS系统设计时需要考虑的问题。可从以下几个方面来选择:

(1)先明确后台采用

.Net

技术还是Java技术;

(2)确定表现形式后,选择前端框架。Web前端是必须得,如果SaaS系统需要移动端,则前端还需要选择移动端开发框架;

(3)后端框架目前主流采用Java框架居多,有助于将来框架升级和自定义维护;

(4)前端框架如果涉及移动端,建议采用原生 + 混合的方式开发,对一些需要动态Web页面,采用H5相应的框架;

2、根据入驻客户功能需求,选择对应的框架

入驻SaaS系统客户,都属于同类功能需求的用户,但根据客户规模不同,对SaaS设计和框架选择不同:

(1)如果用户量大,对性能要求高,建议后端增加Redis框架,做好内存管理;

(2)如果SaaS系统在提供服务前一年时间,系统需要修改或增加的地方会相对多一些,此时建议后端加上Log4j,有效管理输出日志,根据日志快速定位和分析功能点情况;

(3)如果客户离散化程度较高,行业非标准,建议在Spring的基础上,采用目前主流的Spring Boot微服务技术框架;

(4)如果采用Java开发,选择Maven框架作为项目管理、自动部署的技术框架,可大大提高开发便捷性;

3、技术框架的选择,要尽量满足SaaS系统运营服务要求

SaaS系统的核心是后一个S(即:Service),在满足系统功能开发的基础上,需要一整套和前端功能相匹配的SaaS系统运营服务系统,该系统对任何SaaS运营来讲都是不同的,不同的行业需要针对提供不同的服务,但有以下几点需要在选择技术架构时考虑:(1)需要有开放接口功能,便于对接第三方系统,如:呼叫中心、服务器监控平台等;

(2)对于运营系统,客户服务及时性和有效性比较重要,需要在消息机制上进行优化,建议后台加入RabbitMQ框架,对用户的咨询、投诉和其他服务做好消息队列处理;

(3)SaaS后台服务由于属地关系,可能会设立各地方的服务团队,因此,系统会涉及到分布式部署的问题,此时Dubbo分布式服务框架就可以很好的解决将来SaaS系统大规模分布式的情况。


以上三个方面权衡后,还需要考虑是否需要中台,根据笔者经历,普通规模(如:入驻用户量在10万以下)的SaaS系统,使用中台的价值并不大,但大规模系统,是有必要开发自己的中台的,关于中台的开发和选择,技术开发商和前后端开发是相似的,此处不再深入。


IT骆驼


市场在变动,公司用人与技术方案没有最佳,以下仅为个人推荐。

前中后顺序。

(Vue, React) + (NodeJS, PHP) + (Java, PHP)。

前端取决于国内环境还是国外,当前国内推荐 Vue,国外则 React,不推荐 Angular 上手成本太高。

中间层推荐 NodeJS,这样可以前后端都涉及维护与讨论。

后端在 hold 住情况下,能上 Java 直接上 Java,避免后面再转 Java。快速开发则优先上 PHP、Python 或 Ruby 等(遇到过最终因为市场问题又把 Java 作为核心 PHP 等转中间层情况)。我不喜欢 Java,但是要承认人家这么多年的经验与市场,在招人等各方面会有一定的优势。

仅做参考,有问题欢迎讨论。


程序员有点田


全栈开放。前端react,后台nodejs


国外观世界


中台是大公司玩的,小公司就算了吧。前端vue,react之类,后端java


分享到:


相關文章: