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


我是做全栈工程师的 。我个人现在看市场和行情 。前端主流是vue.js,react.js两者都有自己生态圈和体系 。并且入门简单 。
后端推荐使用java 。大项目还是小项目java都可以做 。推荐使用springboot脚手架 。框架可以使用微服务框架springcloud 。可以根据不同的业务划分单服务 。独立部署 。日后好维护 。
大公司才有时间和金钱玩中台 。中小型直接前后对接 。
其他观点:
市场在变动 。公司用人与技术方案没有最佳 。以下仅为个人推荐 。
前中后顺序 。
(Vue, React) + (NodeJS, PHP) + (Java, PHP) 。
前端取决于国内环境还是国外 。当前国内推荐 Vue 。国外则 React 。不推荐 Angular 上手成本太高 。
中间层推荐 NodeJS 。这样可以前后端都涉及维护与讨论 。
后端在 hold 住情况下 。能上 Java 直接上 Java 。避免后面再转 Java 。快速开发则优先上 PHP、Python 或 Ruby 等(遇到过最终因为市场问题又把 Java 作为核心 PHP 等转中间层情况) 。我不喜欢 Java 。但是要承认人家这么多年的经验与市场 。在招人等各方面会有一定的优势 。
仅做参考 。有问题欢迎讨论 。
其他观点:
该问题非常好 。因为它代表了纯粹开发技术类科技 。但同时也从技术向运营服务的延伸 。
任何SaaS系统的最终目的都是为入驻到SaaS系统的客户服务 。为客户提供价值的 。而任何开发架构都是为了让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系统服务平台的最佳开发架构是?

文章插图
(2)对于运营系统 。客户服务及时性和有效性比较重要 。需要在消息机制上进行优化 。建议后台加入RabbitMQ框架 。对用户的咨询、投诉和其他服务做好消息队列处理;
(3)SaaS后台服务由于属地关系 。可能会设立各地方的服务团队 。因此 。系统会涉及到分布式部署的问题 。此时Dubbo分布式服务框架就可以很好的解决将来SaaS系统大规模分布式的情况 。

推荐阅读