摘要:实现服务自治,提升服务可维护性、可扩展性
嘉宾 |高红霞 整理 | 黄引红
出品 | CSDN云原生
2022年6月9日,在CSDN云原生系列在线峰会第8期"华为云云原生实践与应用峰会"上,华为云数字化平台技术专家高红霞分享了华为CBC微服务代码重构&独立发布的实践案例。
云原生概念
- 云原生:概念定义(来自云原生基金会CNCF):云原生是指在各种云计算环境中使用包括容器、服务网格、 微服务、不可变基础设施和声明式API技术,构建和运行可弹性扩展的应用的一种软件开发方法。
- 云原生解读:云原生是描述面向“弹性应用(Scalable Application)” 如何构建、维护以 及持续演进的一个治理组织、一套架构理念、一套软件技术、一套参考架构、一套标准规范,乃至一个OS操作系统。
- 微服务:主要特征就是自治,它可以根据自己的需要进行弹性扩容,也可以选择自己的技术站,有自己的开发团队,数据域可以自行进行维护自己演进。微服务的颗粒度是由团队的实际需要来进行决定的。
CBC 遇到的问题
CBC(Cloud Business Center)云运营平台,负责华为云的交易平台和运营平台能力,涵盖官网、订单、计费、CRM、伙伴云等业务模块,涉及上百个微服务。CBC可以理解为是一个大的集群,各个集群之间由统一的服务进行注册、发行和管理。
CBC的建设目标是:实现服务自治,提升服务可维护性、可扩展性,需求可独立上线,不用齐步走。
但在实践过程中,我们遇到了一些问题:
- CBC存在一些不好管理的“超级微服务”,划分的定义为:拥有100+的接口(API),10W+行代码的微服务。
- 服务中,有些接口和信息的变化相对比较频繁,有些十分稳定,虽在同一个服务管理中,但变更节奏不一致。
- 领域模型划分不清晰,存在散弹式修改,修改一个问题却引入新问题等情况。
- CBC版本采用火车模式(集成发布部署),所有微服务按照特定节奏交付(1个月2个版本),一起联调一起上线,部分需求TTM被拉长。