智能计算、边缘计算环境下的云原生进化之路

云计算的发展,经历了虚拟化、商业IaaS、商业PaaS,到开源IaaS、开源PaaS、云原生等阶段,核心组成部分也经历了从服务器到虚拟机再到容器的演变。

2015年创立的CNCF发布的开源平台Kubernetes,让云原生技术得到长足发展,越来越多的行业、场景采用云原生技术,企业和个人开发者4年增长了近20倍,来自超过2k个公司的3.5万多个开发者向开源社区贡献了14万余行代码。

今天,在5G、AI &大数据应用日渐普及的背景下,为适应多云混合云、智能计算、边缘计算、异构计算等计算环境,云原生正在迎来新的进化。

在华为开发者大会2020(Cloud)期间,来自华为云、才云科技、中国联通的技术专家,带来了云原生技术的最新发展成果和趋势走向。

Kubeflow + Volcano 加速机器学习平台容器化进程

近10年来,AI发展迅速。在AI训练过程中,涉及到硬件、操作系统、驱动、编程语言和运行时、存储和数据库、框架、上层应用预算法等多层技术堆栈,应用K8s,则能让用户屏蔽编程语言以下的所有堆栈,更多关注上层技术实现。

K8s长于任务调度,在分布式AI训练过程中,能把训练任务分布到不同的集群上执行。但K8s默认的调度器存在诸多问题,如:

•资源的争抢问题

•Head-of-Line Blocking问题

•优先级问题

•部分任务的亲和性问题

•PS Worker 的带宽很大程度上影响训练问题

•拓扑问题

另一方面,随着AI应用需求的增加,人们开始考虑如何进一步简化上层的存储、框架技术堆栈,让AI训练更加容易,Kubeflow应运而生。

Kubeflow定位于K8s平台上ML工作负载管理工具,如数据存储、框架选择均能通过Kubeflow获得管理,实现分布式训练、分布式实验、分布式服务、管道服务等功能,进一步简化堆栈。

使用Kubeflow,流程更加清晰简单,用户只要关心业务逻辑、算法、模型代码的开发,就能完成从模型训练到模型发布一整套流程,不必关注底层。

Volcano是在Kubernetes 上针对大数据、深度学习等场景设计的调度系统,能够解决部分分布式训练任务调度的痛点问题。Volcano基于K8s,具有高扩展性,且容易学习上手。

才云科技机器学习平台工程师、Kubeflow开源社区维护者高策介绍,分布式AI训练任务的资源争抢成本极高,等待时间长达10秒级,采用Volcano PS-Worker 亲和性调度之后, PS和Worker之间的通信速度变快,任务执行效率提高,等待时间有大幅度下降。

高策分析这一显著提高来自两个方面原因:一方面任务执行时间缩短,资源很快被释放,其他任务获得资源的等待时间变少;另一方面与默认调度器比较,Volcano解决了资源争抢问题,不会再发生任务无谓等待甚至锁死的情况。

基于 KubeEdge 的边缘计算平台帮助客户降本增效

随着5G通信的商用,万物互联时代快速到来,网络边缘的设备数量、产生的数据爆发增长,集中式的数据中心(包括公有云服务)将面临实时性、带宽、能耗、数据隐私的挑战,越来越多的场景需要应用边缘计算。

在K8s上,可以通过K3s、Microk8s、KubeEdge三种架构实现边缘计算,KubeEdge以云边协同、边缘侧的轻量和边缘自治能力而获得更多应用。

联通云计算有限公司容器团队负责人、KubeEdge开源社区Approver张杰,负责在联通云的容器和KubeEdge落地工作,他介绍了一个汽车保养门店车位绩效AI识别的典型应用案例:

客户是一家汽车保养连锁机构,每个门店都有多个保养车位,每个车位都需要记录车辆维护数量、时间,以评估每工位、每门店的业务绩效。如果采用通常做法,额外购置智能摄像头或者使用云识别服务的话,成本会非常高昂。

联通云计算通过KubeEdge部署的边缘计算系统,采用工位摄像头来抓取车辆进出的照片,实时识别车辆信息、计算车辆停留保养时间,实现全天统计无遗漏,最后汇总报表推送至云端的运营中心,实现门店乃至车位的业绩效率统计、实现KPI考核,以及门店地域的汽车维修热点统计分析,实现门店资源的全局调度等功能。

这一边缘计算方案,继续采用原有系统的IP摄像头,不需额外购置智能摄像头,只需一次性投入,运营过程中每次识别几乎不产生使用费用,很好地保护了客户投资。

这是一个典型的云端向云边端迁移的过程中,联通云在边缘侧加入几台arm 服务器,实现就近计算,只上报统计结果,即解决了延迟问题,又提高了敏感数据的安全性问题。

系统改造后,在云端会有应用服务的管理平台以及业务的运营平台。控制层面由k8s master和kubeedge的cloudcore管理。每个线下门店的ARM服务器上都安装kubeedge的边端组件:mqtt、edgecore服务等,管理pod的生命周期以及对应的终端管理。

所有的应用都经过容器化改造,使用KubeEdge统一管理和下发。使用KubeEdge本身提供的能力,既能最大化发挥容器的快速部署的优势,也能实现云边协同和边缘自治的能力。很好的满足了客户对于运维和运营的需求。

借助边缘计算系统,单张图片识别时间开销 < 50ms,且在网络质量不佳时,也可以离线使用。同时,利用IoT感知技术,可以实时监控轮胎等可燃物料存储区域的温度状态,如果店面出现明火及烟雾时,会及时推送报警短视频到门店管理人员及运营平台,达到自动报警的目的。

火了这么久,2020年云原生将走向哪里?

王泽锋是华为云云原生开源负责人、KubeEdge项目联合创始人,他是国内最早的一批K8s Maintainer,是KubeEdge项目和Volcano项目开源的主导者。

王泽锋预测了2020年云原生在企业落地的3大趋势,他认为:更多企业采用多云混合云,以避免厂商绑定;更多的AI &大数据应用开始云原生开发;5G + AI +边缘将成为云原生向外延伸的新机遇。

近年来K8s在中国的发展迅速,5G、AI、边缘计算正在创造新体验、新应用、新产业,促进智能在诸多行业的普及和应用。KubeEdge和Volcano正是在这个过程中创立,并在应用实践过程中,逐渐得到完善。

边缘计算具有连接的广泛性、数据带宽优化、边缘的自治性、业务的实时性、安全与隐私保护等优势。但在落地实现中,每个应用场景的具体设备、网络通信等条件都不尽相同,需要面对资源有限、网络不畅、离线自治、设备接入和管理等现实问题。

KubeEdge是K8s上更好地实现边缘计算的工具,针对边缘侧的实际环境做了诸多优化:实现了边缘侧节点的离线状态自治;云边消息传输默认使用websocket,支持云边协同;同时支持云端集群和边缘端集群的管理;在边缘侧节点Edgecore 的内存暂用率大约是70M,极致轻量;同时兼容k8s 的核心api功能等等。

KubeEdge由华为开源并于2019年3月捐给CNCF基金会,是K8s IoT Edge Working Group 的关键参考架构之一,目前有超过250位贡献者参与维护。

以KubeEdge为核心构建的华为云智能边缘平台,具有大规模、轻量化、边缘智能、超强算力等特点。平台支持十万节点、百万应用,云端统一管理、配置、升级;资源占用小于128mb,支持轻量化容器和函数管理;集成40+ AI算法,边缘流计算以及时序型数据库;支持华为鲲鹏/华为昇腾算力调度,边缘AI推理算力提高3倍。

AI&大数据近年来成为新的热点,云原生能带来诸多好处:实现自动化、标准化、易扩展;支持异构硬件,降低复杂度;提高利用率和性价比等等。

但AI&大数据的云原生技术还不完善,目前主要解决了各个计算框架容器化的问题,仍有许多能力需要完善,如:改善资源分配的孤立性,避免作业死锁;针对资源的拓扑优化;作业任务间的依赖关系支持。

Volcano开源项目基于K8s构建Batch系统,提供针对AI大数据的复杂作业管理和高级调度能力。

Volcano项目基于华为云容器平台大规模高性能计算应用管理的最佳实践,在原生 K8s 的基础上,补齐了作业 (Job) 调度和设备管理等多方面的短板。目前,Volcano 在华为云上对接了包括一站式 AI 开发平台 ModelArts、云容器实例 CCI、云容器引擎 CCE 在内的多款服务,是整个高性能计算领域不可或缺的基座。自开源以来,项目已经吸引了来自腾讯,百度,快手以及 AWS 等多个公司的贡献者。

云原生代表了新一代的技术方向,其在中国的发展如火如荼,CNCF的会员数量从2015年只有华为1家初创&白金会员,到今天已经发展到50家。全球1/4认证的K8s服务提供商来自中国;全球1/3的K8s培训发生在中国。

在云原生热度持续上升的过程中,其生态获得发展,超过90个厂商提供了认证的K8s的云服务或者发行版,Kubernetes的南向有多种运行时、存储、网络等插件供用户选择,北向的应用管理和数据服务生态也持续丰富——业界主流的CICD工具链、数据库、消息中间件等都支持对接K8s或直接在K8s上运行。

2020年已经过去四分之一,云原生在多云混合云,边缘计算,智能计算等领域的强劲发展势头,值得所有开发者关注。

_____END_____