数字化转型进入深水区,云原生在行业落地应用随之深入,中间件与此相应的进化也成为了时尚。在企业级云原生中间件技术实战中,除了中间件本身,还涉及分布式基础、Kubernetes、高可用、扩展性方、稳定性、可观测性等一系列技术,以及Golang编程语言,挑战巨大。
近日,网易数帆云原生首席架构师冯常健接受InfoQ《极客有约》直播访谈,结合轻舟中间件研发及业务实践,深入解读了云原生中间件技术进化的路径、难点解决和应用心得,如研发代码量如何降低80%,网易云音乐 Redis资源成本如何节约 30%+,以及可观测性的探索等。本文整理了此次访谈中尤为精彩的核心观点,供关注中间件云原生化的读者参考。
云原生中间件的本质:运维经验和能力的沉淀
1、运维标准化:一方面重新定义了传统中间件运维人员的工作界面,使得基础能力下沉到Kubernetes,大量常规运维操作被抽象成Kubernetes上的一个个资源定义,对于运维人员来说,扩缩容和迁移重建、故障恢复等高频操作都可以通过kubectl统一操作,极大降低运维门槛和工作量,标准化的好处;另一方面云原生化的中间件天然能够进行跨云跨异构基础设施的部署交付,用户体验保持极致一致。
2、其他一系列的高可用、稳定性、扩展性、易运维特性都是建立在这样的标准化之上的。
不同类型中间件的云原生路径
我们对中间件的定义是说连接业务应用和操作系统的系统软件,一般都是带点状态或者微状态的。云原生中间件一般是指构建在Kubernetes平台上的中间件,包括中间件本身及其配套的管控系统。不同中间件的云原生形态有相同的通用基础框架,包括:
1、Kubernetes的Operator框架以及Operator托管平台OLM,负责中间件集群的生命周期管理。
2、Kubernetes上资源管理和调度:CPU、内存、磁盘。
3、使用中间统一访问入口:基于headless-service和service的内部访问;基于LB或者Nodeport的外部访问。
4、通用弹性扩缩容,实例迁移、动态配置等。
5、要实现更高层次的高可用,比如多机房,多集群,依赖像扩展调度系统和集群联邦这样的组件等。
6、建立在云原生平台上的可观测性,包括监控告警、日志采集、事件管理等。
各中间件因为本身对资源依赖不同,集群拓扑管理不同,所以在通用基础框架下,云上实现和管理各不相同,其内在的运维管理方式,需要在通用基础框架之上进行扩展。
网易数帆云原生中间件发展历程
注:为行文、阅读方便,数帆及其前身统称为“网易数帆”
云原生中间件与2012 年PaaS中间件云化、2015 ~ 2019年容器化&在线业务网格化一脉相承:
a)2019年,基于 Operator 实现基础中间件的生命周期管理,以及扩缩容、迁移、监控、动态配置参数、故障恢复、单集群多机房高可用等。
b)2020年,多集群架构的高可用,国产化软硬件平台适配,包括主流ARM架构和x86架构国产芯片和国产操作系统。
c)2021年,稳定性巡检产品化,两地三中心和多活能力建设。
总体来说,先满足最基本的中间件管理需求,实现对虚机PaaS中间件的替换,并通过Kubernetes跨机房实现中间件多机房高可用。再把长期运维和DBA经验产品化,形成了与传统中间件平台的差异化能力。然后完成应用单元化架构需要的中间件多活能力支持,帮助业务实现容量的水平扩展,提升业务容灾能力。
采用多集群架构虽然极大增加架构复杂性,但是收益也非常明显。
云原生中间件研发的核心经验
高性能方面包括:多种负载均衡模式,代理层、快速扩缩容,本地盘,参数级调优;稳定性方面包括:合理的资源利用率、Operator自愈、可观测性、稳定性巡检、混沌测试。
例如,当中间件集群因为各种不可预料的原因宕机时,Operator会快速检测到集群健康状况,并且立即进行修复,因此云原生中间件集群具备极强的自愈能力。
运维稳定性管控产品的底层逻辑
云原生化中间件平台的优势在技术供给方式发生变化。稳定性问题不解决,无法体现平台优势,只是责任的转移而已;真正实现复杂度降低的是配套稳定性治理,主要包括稳定性巡检和异常事件监控及根因分析。运维经验的沉淀和复用是云原生的天然优势,我们希望通过运维稳定性管控产品,一是将我们内部多年的“运维经验”沉淀到系统,为用户提供监控、告警的最佳实践,可能的根因判断与处理建议等,二是建立“稳定性改进循环”, 不断进行经验沉淀和规则迭代。
云原生中间件在企业落地进展
一些大型国有银行和头部股份制银行早在2019年开始探索并实践有状态应用的容器化,目前已有一定线上应用规模,更多的证券、银行也在2021年开展试点项目。
以某股份制银行为例,遇到问题有基础技术能力重复建设,中间件运维效率低,应用系统健康度、接口调用、异常等缺乏自动化的量化和全链路能力,实时预警能力需要进一步提升。为此,该行与网易数帆合作建设云原生基础技术支撑平台,涵盖缓存、代理、消息、注册中心等基础技术能力服务化,并提供统一的文件服务、全链路监控、日志查询等基础服务。
其收益是:建设服务化的云原生中间件平台,避免在基础技术能力上重复建设、各自维护带来的人力成本增加、研发效率受限等问题,为所有应用系统建设提供按需使用、灵活伸缩的能力,使得应用系统在建设中仅需关注业务需求的实现,从而大幅提升应用交付效率,提升应用大规模扩展能力。
核心经验是:一要有能力保持运行稳定,二要适应现有组织和IT流程。
云原生中间件未来发展趋势
第一,一切中间件都可以云原生化,中间件云原生化的成本要降低。
第二,轻舟中间件研发将跟随云原生趋势:
1、多集群架构扩展到多机房/多云基础设施。
2、和金融客户一起做多活,帮助业务实现容量的水平扩展,同时提升容灾能力。
3、网格化——目前还没有特别实际的生产场景,但是它描绘的愿景非常美好。
此外,往小说,实现更多可以支撑微服务架构的中间件云原生化;往大说,希望基于开源开放的技术栈,助力我国实现对核心中间件的国产化。