作为引领数字化潮流的技术,“云原生”的热度自2020年起就居高不下,身系万千宠爱,但同时其内涵和价值也是众说纷纭。 在上周举行的ArchSummit全球架构师峰会上海站主会场,网易副总裁、杭州研究院执行院长,网易数帆总经理汪源提出旗帜鲜明的观点:“真正的云原生,必须能够以一套技术体系支持任意负载,运行于任意云环境。”他结合网易的实践,提出了“云原生操作系统”的设想,诠释了网易数帆基于Kubernetes技术生态打造的一套云原生操作系统,以及中间件、微服务、大数据等“云原生系统软件”。
云原生操作系统 源自业务发展与技术演进的自然交汇
云原生操作系统的诞生源自网易自身的实践和需求。2018年,网易进入私有云、大数据、微服务大规模普及的阶段,私有云、大数据平台都超过5000节点,微服务数量超1000,RDS、MQ等PaaS服务也有10个左右。 由此带来了四大问题。首先是效率低,虚拟化技术过重,导致微服务迭代慢,一次部署发布需要十分钟以上。其次成本高,一方面,系统割裂导致资源利用率低,另一方面,每个PaaS服务都需要3-5人长期维护。再次是弹性差,既反映在自有 IDC 资源不足,也反映在系统割裂导致无法跨集群资源调配。最后是由中间件与应用耦合所衍生的维护难。 与此同时,技术环境也在不断演变,不论是高速网络、智能网卡和多云等硬件环境的普及,还是社区云原生技术如Kubernetes、容器、Istio及Envoy等不断成熟,尤其是Kubernetes对云基础设施的抽象与融合,都预示了一个新的技术方案——那就是云原生操作系统,它将带来自主可控、标准统一、降低成本、提高弹性等四大价值。
云原生操作系统的五大核心技术
在汪源看来,云原生操作系统需要解决五大核心技术问题:计算,为业务和操作系统各自提供性能高且稳定的环境,相互不会干扰;网络,提供高带宽、高 PPS、低抖动;存储,提供高可用、高性能,支持存算分离架构;调度,实现跨集群多层调度,支持多 IDC、混合云、多云架构;混部,实现不同负载之间资源隔离,保证 QoS 和 SLA。
网易数帆的实现方案有三个核心:云原生,云原生,还是云原生。 以网络为例,针对容器网络,网易数帆提供SR-IOV VF直通方案支持高性能应用,同时提供内核态veth转发方案满足普通场景需求,实现小包处理能力超过250万PPS。在引入Sidecar导致通信更复杂的服务网格(Service Mesh)场景,则基于eBPF、用户协态协议栈加速等技术降低延迟并提升QPS。 调度层面,网易数帆充分利用Kubernetes virtual-kubelet的设计,先针对空闲资源实现两层资源聚合,再对所有负载实现基于 Label 的统一调度。 混部层面,网易数帆的方案也是基于Kubernetes实现的调度,即基于Kubernetes Operator扩展,解决原生Kubernetes的静态调度问题,可移植到任意 Kubernetes 集群。当然还要配合CPU、虚拟内存、L3 Cache及网络等多重隔离的优化,解决弱隔离性问题,才能保障在线业务的稳定性。(了解更多)
云原生系统软件已贯穿中间件、微服务、大数据
运行于云原生操作系统上的负载,网易数帆已完成了PaaS中间件、微服务和大数据等领域的实现。 中间件负载,网易数帆复用云原生生态能力实现实例生命周期管理、高可用部署、故障自愈等能力,实现 Redis、Kafka、MySQL、RocketMQ、RabbitMQ、Elasticsearch、ZooKeeper等中间件云原生化,单个PaaS 研发代码量减少50%以上。 大数据负载方面,目前网易数帆Spark/Flink on Kubernetes支持YARN、 Kubernetes 等多种资源管理平台,基于资源大盘及作业历史,实现错峰调度。网络隔离,则是基于Kubernetes hostNetwork 实现,保证了在线业务QoS。
坚持开放开源
网易数帆设计云原生操作系统的最大特点,就是采用开源技术,基于开放标准。
汪源表示,作为面向云环境而设计的技术架构,云原生意味着弹性、资源池化,对于中大型企业也意味着混合云/多云环境,更安全、更灵活云原生的实现,一定是统一的操作系统及相适配的基础软件,管理调度所有计算。这个统一的系统,就是Kubernetes。另一方面,当然是基于Kubernetes生态,实现存算分离和强大的存储基础设施,让基础软件都能提供弹性服务。
同时,网易数帆也积极将自研增强技术开源,反哺云原生及大数据生态:针对服务网格负载开源了Slime,简化了Istio运维;针对大数据负载开源了Kyuubi,是实现融合调度的一项核心技术支撑;存储底层开源了Curve,Curve支持Spark Remote Shuffle Service实现存算分离(进而支撑融合调度)方面也发挥了很大作用;此外,网格加速技术MeshEngine项目也即将开源。
除了以上在进行的开源项目,汪源还透露,未来网易数帆在云原生领域的三大计划:持续扩大存算分离架构的应用范围;持续扩大混部和资源池化,降低集群数量;持续开源。