单体->微服务架构演进之路

参考:https://mp.weixin.qq.com/s/q8N2N0aMzaANj0Hh5Zkqaw  

关键字:

技术架构发展历程:单体、应用与数据分离、应用集群部署、读写分离、前后端分离、 NOSQL运用、数据垂直切分、应用垂直切分、SOA、聚合查询、数据水平切分、微服务架构、

 

底层技术能力会提出怎样的要求?

1)由于系统被拆成多个服务,所以需要具备:服务注册和相互发现的能力;

2)为了提供可用性,采用了集群部署模式,所以需要具备:应用实例的故障发现与隔离能力;

3)采用分布式部署后,多个服务间需要具备:统一的配置发布与热生效能力;

4)系统拆分后有多个应用端点,对外需要:统一入口来收敛访问端点并提供统一鉴权等能力;

5)集中式系统内部通过内存地址引用可以直接调用,在分布式架构下则会变成网络调用,因此需要具备:点对点通讯能力,由于服务都是集群形态,调用还需要支持软负载均衡的能力;

6)考虑到标准服务器的故障率、大量网络通信带来的稳定因素,以及可能存在的突发大规模流量等场景需求,分布式架构需要具备:服务的限流、熔断和降级等处置能力;

7)由于多模块间调用会导致系统请求链路的增长,降低了系统的性能与不稳定性,增加了运维复杂度,因此需要增加:全链路可观测与故障节点定位的能力;

8)应用拆分部署后,由于一次交易变成了多进程访问数据库,从而产生事务一致性问题,需要具备:分布式事务能力;

【1-8】是根据架构演进过程中针对应用服务侧所需要具备的通用技术能力,对标TSF的产品能力。

9)为降低数据库压力,需具备:读写分离能力;

10)数据的垂直拆分属于业务领域设计与数据库能力关系不大,但数据库或中间件需要具备:数据的水平分片能力;

11)同样由于数据库的拆分,需要数据库或中间件具备:分布式事务能力以及聚合查询能力;

12)集中式数据库拆分为多个数据库集群后,需要具备数据库或中间件具备:统一的数据库集群运维、监控告警与故障检测能力;

【9-12】为数据层所需要具备的通用技术能力,对标TDSQL产品能力。从产品规划来看,LibraDB可通过列式存储特性来支持查询业务,使TDSQL同时支持联机与分析能力,可以应对聚合查询场景。

上述内容侧重系统在运行态架构所需要具备的能力。除此之外,一个分布式系统的设计还需要考虑研发效能体系、生产运维体系、混沌测试能力,以及计算、存储、网络、调度的底座能力,还有偏场景的能力,如:服务编排、分布式序号生成、批量任务调度能力等等。因为与本文主题关联不大,便不展开叙述。

那么,当具备上述能力之后,微服务体系还有哪些能力需要增加?下一章节,我们重点讲一下微服务架构在大型银行核心系统中落地时面临的挑战。

其它能力体系与对应产品关系说明:

13)研发效能体系包括从需求->设计->研发->测试->发布->生产的全链路生产工艺与价值流增效能力对标Coding/蓝鲸DevOps;

14)生产运维体系包括从数据采集与分析->定制化监控->自定义监控->自动化运维->智能化排障等能力对标蓝鲸;

15)混沌测试体系包括从场景设计->原子故障编排->故障半径控制->故障分析与复盘等能力对标Oscar;

16)底座与安全体系,即TCE/TCS,TCE侧重全栈云,TCS侧重云原生,以客户实际情况选择输出即可。

17)通用场景能力像服务编排、分布式序号、批量调度等,一般由ISV侧平台产品输出,形成联合方案。

 

大型微服务系统面临的问题

两地三中心是未来的标准架构。即:同城为双活,异地为灾备,一共三个数据中心。

 

posted @ 2024-03-27 08:50  飞翔在天  阅读(5)  评论(0编辑  收藏  举报