畅捷通多租户多数据中心架构演进总结
公司与产品特点
畅捷通作为中国领先的小微企业财税及业务云服务提供商,服务超600万家客户,产品特点包括:业务实时在线、多租户模式、全场景移动化。客户规模大、分布广,产品以云原生技术构建,支持多租户数据隔离和共享资源。
高可用挑战与改造目标
高可用是业务稳定性的基础。影响业务连续性的因素包括业务变更、云设施故障(硬件、网络、中间件)、自然灾害等。业务规模增长导致技术故障损失增加。改造目标为:一级一类核心功能数据不丢、服务不停(SLA,RPO=0,RTO<20m),同时保证业务连续性、性能和成本可控。
架构演进历程
- 单体架构(2012年前):所有业务放在中心服务器,稳定性差。
- 单租户虚机架构(2013-2017):每个租户单独虚机部署,资源利用率低。
- 微服务架构(2017-2019):基于Dubbo的微服务架构,支持多租户和公有云部署。
- 云原生架构(2020以后):基于云原生技术体系,支持多中心部署和多租户模式。
高可用多活架构改造策略
- 总体思路:根据业务属性拆分中心,通过多端路由寻址实现流量转发和故障切换。
- 中心划分:按业务属性(身份认证、通用服务、核心业务)进行分片,支持水平分库。
- 流量路由:多可用区网关屏蔽多中心,灰度网关实现应用路由转发。
- 前端与数据源寻址:动态寻址,支持多域名和水平分库。
数据高可用方案
- 利用云原生数据库(如RDS)跨可用区热备能力,实现数据存储高可用。
- 多租户存储热备,通过三副本集群和跨区互备份数据。
多中心DevOps流水线
- 发布策略:分中心逐步更新,通过流水线指定中心实现灰度轮转验证。
- 实现价值:分中心逐步更新五步法,减少人工沟通成本,提高发布效率。
故障切换方案
- 接入层故障切换:监控健康度,修改ZK配置和路由策略切换流量。
- 可用区故障切换:监控数据库健康度,进行主备切换和流量切换。
影响因素与解决思路
- 业务变更:通过全链路灰度发布,小范围体验新特性,降低风险。
- 云设施故障:通过微服务限流、降级、熔断技术隔离故障,保证核心应用稳定。
- 数据分片:按业务属性分片,支持水平扩展和多活部署。
核心问题解决
- 数据源动态路由:单可用区接入故障时,利用多中心路由机制实现快速修复。
- 可用区差异上线:通过统一流水线分阶段更新,确保当前可用区验证充分。
- 中心灰度轮转:通过流水线动态指定上线中心,支持灰度中心按季度轮转。
- 多可用区可互切换:最多1天差异时,通过新库老代码方案支持快速切换。
客户价值提升
- 业务价值:利用云原生红利,数据强一致,业务请求同区闭环,减少受影响用户范围,逃逸速度快。
- 产品整体稳定性提升:通过扩容、升配、路由切换等技术,实现快速故障恢复。
研发提效方案
- 工具化、自动化:自动化测试平台、监控可视化、中心标签系统、灰度圈选等,降低研发影响。
- 标准化:12Factor原则,实现开发、线上、多中心环境等价,提高效率。