从2014年参加公司的SaaS软件项目算起,到今年已经整10年了。也算经历了SaaS软件从起步到快速发展再到回落的整个周期。公司的SaaS业务也随着大周期起落沉浮。在当下SaaS的关注度相对前几年已大幅下降,但我个人觉得SaaS是一种很好的软件模式,相信未来会有更好的发展。最近因为机缘巧合,就打算把这几年来SaaS软件架构设计相关的内容做一个回顾和分享。希望能够给还在从事或未来会从事SaaS软件建设的朋友们一个参考。
由于这10年我一直待在一家公司,所以必然是孤陋寡闻,见识浅薄的。所分享的内容也可能只适用于特定的场景,或者还有更好的方案,也欢迎大家批评指正。好在我经历了公司SaaS系统从无到有,租户从少到多的完整的阶段,所以不同阶段碰到的困难我都经历过,也参与了绝大部分主要架构设计的决策。我的分享会分为四个阶段展开,分别描述不同阶段碰到的问题和经验。计划阶段划分如下:
- 初创阶段(筑基):主要描述基于单体的多SaaS多租户架构;
- 单业务爆发(炼精):主要描述多租户体系下如何应对流量大增,以及如何满足个性化需求;
- 多业务发展(炼气):主要描述多个产品多业务板块同时发展带来的挑战和方案。
- 大规模租户(炼神):主要描述SaaS系统从单体重构到微服务遇到的挑战和方案。最后会描述一个基于微服务架构,能够支撑大规模租户的架构。
最后可能会针对一些技术专题进行讨论,比如:“灰度发布”、“私有化部署”、“国产化(信创)”、“国际化”等。
我的分享主要围绕SaaS架构相关的问题和方案展开,涉及到通用技术部分,我就不进行详细展开了,因为已经有很多人做过相关详尽而精彩的分享了。这可能会给部分同学造成一定的困扰,可能看上去很多东西都是点到为止。建议大家碰到不了解的知识不要气馁,保持好奇心进一步进行探索,这样才能遍览群技、融会贯通。当然也欢迎大家留言讨论。