ZKX's LAB

对网易轻舟云原生软件平台的分析和思考

2020-10-23新闻17

在前面我有一篇文章专门分析了当前主流的公有云服务厂商阿里,华为和腾讯推出的云原生解决方案,今天刚好又看到网易的基于微服务架构的网易轻舟云原生生产力软件平台,由于这个平台和我们自己规划的云原生解决方案很大地方相当类似,因此今天做下分析。

源自网易杭州研究院,是网易数字经济的创新载体和技术孵化器。依托网易集团二十余年互联网技术积累,聚合云计算、大数据、人工智能等新型数字化技术,聚焦提供数据智能、软件研发、基础设施与中间件等基础软件,致力于帮助企业客户成功实现数字化转型。

对应网易轻舟平台可以看做先是服务网易云,网易音乐,网易有道等各个产品应用,现在逐步孵化为一个可以对外服务的,协助传统企业数字化转型的云原生解决方案平台。网易当前在公有云服务市场整体一般,但是整个轻舟平台的打造值得我们参考和学习。轻舟整体架构说明

网易一站式云原生软件生产力平台,覆盖开发、构建、发布、上线运行、治理和运维等环节,源自网易内部的大规模互联网业务实践,经过金融、制造、物流等行业客户的生产环境验证。

从整体架构里面可以看到包括了容器云平台,微服务平台,低代码开发平台,DevOps混合云和中间件技术服务几个主要部分内容。对于微服务平台当前又包括了微服务框架,应用和服务监控,API网关,分布式事务处理几个关键部分的内容。

整体的功能架构可以说相当全面,和我原来对整个云原生方案沟通基本能映射上。

整个里面的差别可以看到原来我构图对我们自己的基于微服务的快速开发平台能力进行了弱化,同时又对API网关之上的OpenAPI能力开放平台进行了强化。

基于和网易轻舟的对比,我对原来的元原生整体架构图进行了重新构图,在围绕微服务,DevOps和容器云三者的基础上,重点是增加了技术服务中台。

同时应该体现出整个从开发到执行到运维监控的软件全生命周期管理能力。

在我最早的时候就谈到过。

在云原生架构里面,底层的技术平台变成了容器云平台,上层的传统单体应用开发变成了微服务架构,而中间则需要有一个承上启下的过程支撑,即我们常说的DevOps支撑平台。

在重构后可以看到,整个云原生架构核心逻辑也就更加清楚了。轻舟微服务

轻舟微服务是围绕应用和微服务打造的一站式 PaaS 平台,支持 Spring Cloud、Dubbo 和服务网格等微服务框架统一管控,提供服务开放、分布式事务管理、服务监控、日志分析等应用微服务化所需的诸多能力,帮助用户快速构建易接入、易运维的微服务解决方案。

微服务框架NSF

在前面已经谈到过,对于各个大的云服务商一般都有自己的微服务框架,比如华为开源的ServiceComb,腾讯的Tars,阿里的SpringCloud Alibaba等,对于网易的则是NSF微服务框架。该微服务框架支持Spring Cloud、Dubbo和服务网格等微服务框架统一管控,并支持平滑迁移,满足处于不同阶段的企业对微服务的需求。如下图:

从该图可以看到基本是一种去中心化的架构模式。在各个微服务中都有Agent和Sidecar的植入。因此整体的微服务框架是一种Mesher的架构实现方式,通过服务网格架构来实现类似我们常说的服务注册发现,安全,限流熔断,路由,负载均衡等关键能力。

API网关

API 网关是提供服务开放和共享的企业级 PaaS 平台,提供发布管理、统一认证鉴权、流控、协议转换、服务审计等功能,帮助用户实现内部多系统间,或者内部系统与外部系统之间实现跨系统、跨协议的服务能力互通。

对于API网关提供的关键功能如下图:

从上图来看API网关除了我们常说的服务注入接入,安全,流控,API全生命周期管理外。重点是增强了数据映射,协议转换能力,也就是说为了适应企业内部遗留系统的适配接入等情况,增加了部分传统ESB服务总线应该具备的能力。

而这些对于企业微服务架构转型往往是必须的。

全链路应用监控 APM

全链路应用监控 APM 提供集链路追踪、应用性能和业务数据于一体立体化监控平台。旨在通过数据自动化收集、数据可视化展示,使用户能够及时、全面地掌控各个产品的应用性能情况,定位性能瓶颈。

服务调用依赖:服务上下游依赖和接口依赖数据,进行依赖梳理,包括识别易故障点、性能瓶颈、强依赖等问题;并根据链路流量调用比例进行峰值 QPS 评估容量.

异构系统监控:通过对 Java、Go、Python、NodeJS、C# 等诸多异构技术栈的统一监控和调用链追踪,实现异构系统全链路监控。

因此从功能来看主要是APM和链路监控内容,无中间件和资源层的监控。

分布式事务 GTXS

分布式事务服务 GTXS 是微服务场景下高性能、高可靠、接入成本低的分布式事务中间件支持低成本框架托管式事务,支持 MySQL、Oralce、TiDB、分库分表中间件等多种数据源。

从材料来看支持事务补偿方式,也支持基于消息中间件的BASE最终一致性方案。暂时不清楚是否也将我们常说的类似Mysql进行了数据库拆分后构建的上层DaaS纳入。

日志服务 LogSeer

轻舟日志服务是一站式日志全生命周期管理平台,统一采集、管理海量日志,提供日志采集、清洗、存储、检索、监控、告警等多项功能,辅助开发测试及排障工作,提升运营效率。

在我很早谈PaaS平台和容器云的文章就谈到,在容器云分布式环境下,日志服务能力是必备能力。由于容器资源都是动态分配和扩展的,对于容器中的应用中间件日志必须实时采集并进行集中存储,在存储完成后构建全文检索能力,方便出现问题的时候进行快速的问题定位分析。

从上图里面可以看到,日志服务通过 Filebeat 开源技术实现日志的实时采集并将日志信息汇集到日志服务平台,进行统一管理。通过Flink流处理对日志进行分析和查询。日志服务支持多维度组合条件的快速实时搜索,支持全文检索,可使用字段、数值范围和布尔检索,查询指定时间范围内的日志。轻舟中间件

轻舟中间件是基于 Kubernetes 构建的云原生 PaaS 平台,提供基于容器的数据库、缓存、消息等高 SLA、高性能、低成本的分布式中间件。支持混合云多云部署、运维自动化、故障自愈等云原生特性。帮助企业构建容错性好、易于管理、易于观察、易于扩展的中间件 PaaS 平台,彻底解决企业中间件存在的 SLA 保障难、运维难、成本高等一系列问题。适用于数字化转型、业务中台、工业互联网、集团云、行业云等多种场景。

对于轻舟中间件我们可以看作是中间件技术服务能力平台。可以看到既包括了传统公有云服务提供的类似数据库,消息,缓存等各类技术服务能力外,也包括了我们常说在企业私有云架构里面应用比较多的4A引擎和流程引擎能力,如下:

轻舟中间件 RDS MySQL

轻舟中间件 RDS MySQL 版提供网易基于 MGR 深度优化的服务高可用、数据高可靠的云数据库服务,支持跨数据中心高可用、自动化运维、故障自愈等云原生特性,广泛应用于安全容灾、读写分类等场景。

从上图可以看到Mysql实现一个读写分离集群,通过Kubernetes来实现集群管理和调度。Mysql节点全部装载在Pod中。但是Mysql节点装载在Pod容器中的性能和IO是如何满足高并发下的性能要求的,暂时无法看到。

轻舟业务流程管理 BPMS

业务流程管理 BPMS 以支持 BPMN 2.0标准的智能云流程引擎为核心,基于模型驱动设计思想,为企业提供可视化编排人工、系统间复杂流程的建模能力,业务开发人员无需复杂编码即可搭建流程应用并实现快速发布。

统一身份管理

轻舟统一身份管理旨在为企业内各个信息系统提供用户账号、认证、权限、审计的统一管控能力,减少企业管理成本、增强应用安全性,实现企业内统一的身份权限管理和应用访问控制。

将轻舟的中间件平台和我原来谈私有云PaaS平台的总体架构做对比如下:

可以看到轻舟PaaS中间件平台基本覆盖了私有云PaaS平台的核心内容。即中间件资源池,消息缓存共性技术服务,流程和4A技术服务能力。

而在传统PaaS中的SOA服务总线已经被更加轻量的API网关所代替。轻舟混合云

轻舟混合云实际包括了两大部分的内容,一个是容器云平台,一个是DevOps持续集成和持续部署平台,这个和我前面的云原生整体架构图是一致的。

但是对于网易给出的DevOps平台这块,感觉能力偏弱,从给出的介绍材料和架构图来看只能看到常说的源代码管理,持续集成和流水线,持续部署,代码检查等关键能力。

持续交付平台 CICD

基于 Kubernetes 等云原生技术打造的企业级持续交付平台,集网易 DevOps 实践、业界前沿的研发理念,提供可视化流水线,通过工具协作和服务协同,让软件开发简单高效,帮助开发者提升效率和质量。

容器平台 NCS

轻舟容器平台是基于云原生打造的企业级容器 Paas 平台,支持多租户、多集群管理,提供多种便捷可靠的网络及存储方案,支持与用户的基础设施网络和存储系统整合,并提供企业级镜像仓库、分布式日志管理。

而对于我们自己的容器云平台,前面给过一个参考架构如下:

整个容器云平台基于Docker容器,Kubernetes和Harbor,提供应用、镜像、容器的统一管理平台。同时通过可视化的编排工具简化应用部署流程、缩短上线周期。该平台还提供自动化运维能力,减少人工成本、保障业务连续性。同时支持和当前主流的公有云容器平台的对接,内部环境向公有云环境的持续交付。低代码开发平台

轻舟低代码应用开发平台是国内首个面向微服务架构设计和实践的低代码平台,提供基于接口设计的可视化搭建能力,拥有丰富可复用的IT资产,并提供一键发布等特色功能,助力企业快速开发应用。

低代码开发平台基于模型驱动设计思想,通过可视化建模技术完成数据结构、流程、逻辑的定义与前端页面的搭建。业务分析人员梳理业务模型,应用开发人员无需复杂编码即可快速搭建出应用,平台使用门槛低。

基于可视化工作台,开发者可通过模板生成、图形化组件拖拽、参数配置、逻辑规则定义等方式,快速搭建出企业应用,将开发效率提升数倍以上,大幅提高软件迭代速度和市场竞争力。

而对于我们自己的快速开发平台是使用 Spring Cloud 作为微服务分布式系统,并且基于 Spring Boot 进行了通用性模块的封装,例如鉴权服务、调度服务、消息服务等等;前端使用 VUE 作为开发组件进行二次封装和改造并自研了前端组件库,使之更适合企业级应用系统的使用体验。

如上图,我们自己的平台不算完全算作完整意义上的低代码开发平台,但是实现了各类共性技术组件能力的积累,共性技术服务能力提供,同时实现我们常说的数据模型,流程,权限,UI界面表单的灵活可配置能力。其核心架构亮点包括:

统一服务注册、配置中心

前后端分离主流开发模式

系统全面微服务接口化

业务解耦,微服务独立部署

表单控件组件化开发

表单业务数据接口化交互

可扩展的分布式部署,无缝集成容器云

要完成传统企业IT系统的设计和开发,实际上真正需要的就是上面这种快速开发平台,这种平台完全基于标注的SpingCloud架构,不进行黑盒封装,代码可见,也足够可移植能力。轻舟云原生平台总结

通过前面的分析,可以看到当前网易推出的轻舟云原生平台解决方案基本覆盖了开发,执行和运行监控整个软件开发生命周期。也覆盖了我们常说的微服务,DevOps和容器云三大关键云原生技术能力。下面简单再总结下整个平台方案的优缺点。

优点总结

整个云原生解决方案可以看到实际基于网易内部各个应用长期实践总结和孵化,因此可以看到类似流程和4A,技术服务能力,API网关的协议转换能力增强,低代码开发框架等都可以更好的适应企业微服务架构改造和开发。

因此整个云原生解决方案和架构都值得需要进行微服务架构转型和云原生解决方案转型的大企业参考,整体架构规划仍然具备符合当前云原生架构典型特点。

不足地方

整个解决方案在外部企业应用的成功实践还是偏少,包括里面提到的一些微服务框架暂时没有看到开源代码可供参考,和当前整体网易技术平台绑定比较紧密。其次就是前面提到的,实际上对于DevOps持续集成和交付能力这块整体还是偏弱,包括持续交付这块和各大公有云平台的自动集成和交付能力,在当前材料里面仍然无法看到。

对于类似Mysql等数据库服务方案虽然在网易得到实践和严重,但是和类似阿里的Mysql数据库服务,PolarDB数据库服务成功案例比较仍然偏少,当前应用的企业并不多。

#行业互联网#网易#阿里巴巴

随机阅读

qrcode
访问手机版