近年来,在企业数字化转型进程不断提速背景下,云原生技术飞速发展,已在众多行业和领域都有了许多成功落地案例,以kubernetes、微服务、服务网格、serverless、DevOps为代表的云原生技术已走向成熟和广泛应用,顺势而为全面拥抱即将到来的云原生时代。云原生的微服务架构落地过程也展示在大众面前。
Dubbo & Spring Cloud两大主流的开源微服务框架。鉴于Dubbo相对Spring Cloud框架的简单和轻量型以及在性能上的优势,我们选择了Dubbo框架,然后兴致勃勃的开始了服务Dubbo化之路。
Dubbo & Spring Cloud都属于JAVA技术栈,对于完全使用C++开发的tuxedo服务,跨语言是我们面临的第一道坎。我们痛苦的选择将tuxedo服务使用JAVA语言重写,但最终工作量及重写风险,让我们止步于查询功能重写,而大部分核心功能仍然无法摆脱Tuxedo,只能通过RocketMQ来尽量将同步调用改为异步调用的C++消费者。
随着容器化技术的普及,kubernetes生态的不断完善,基于kubernetes的微服务架构也应运而生。在经历了账务中心服务dubbo化的痛苦之后,我们也终于找到了新的出路,即基于k8s的Istio & Grpc。
由于kubernetes与Istio的天源互补,Isito是CNCF云原生基金会首推的云原生微服务架构,经过几年的发展,Istio已成为服务网格众多实现方案中当之无愧的最佳开源实践,成为大家在服务网格技术选型时的默认选项。
云原生的微服务架构k8s+istio+grpc,凭借其应用无侵入、语言无关、框架无关、服务治理能力完备、开箱即用、与k8s天然融合互补等独特优势,提供了一个普适度广、应用改造成本小、风险最低、服务治理功能完备。