1. 产品背景与意义

近年来,随着人工智能、大数据和云计算技术不断发展,未来的优秀互联网服务系统和通信系统需要机器学习来处理更加复杂的数据并且要求系统需要更高的吞吐量和处理海量信息的能力,这对云计算架构技术提出了更高的要求,相比基于虚拟机的云计算平台和通过硬件虚拟化实现的服务器集群由于占用大量空间和资源并且虚拟显卡设备存在瓶颈已经难以保证系统运行大计算量的机器学习程序;维护庞大的单体虚拟化云服务器更加困难,在计算能力上造成部分冗余;启动和恢复速度慢在一定程度上拖慢了服务的响应速度,间接造成了经济损失。对拥有庞大客户量的服务而言,使用基于虚拟机的虚拟化云计算无非是要增加更多的开支并且持续交付周期更长,扩展性更差,构造更复杂。
与此同时,小而精的Kubernetes容器云在架构上的高效、低成本、高效率、高可用等特点,使其已经成为了大型互联网企业争相使用的高性能容器编排系统。区别于基于虚拟机的服务架构将所有的功能存放在单一进程中,该架构通过容器化将每个功能放进独立的服务中,并且通过跨节点分发服务扩展支持调用宿主机显卡驱动以提高机器学习相关程序的运行速度,使得服务拥有更强的并发性和高效的管理能力。
当今屈指可数的容器编排系统中,Kubernetes是非常成熟的容器编排工具并且广泛应用于云计算平台。它的优秀之处在于可以有效的节省资源,可以根据需要快速水平扩展和收缩业务微服务;响应速度快,能够适应失败、容错和高可用;不受限于任何技术栈;易于开发、维护;故障隔离,安全性高,一个服务出现问题不会影响整个编排系统。

2. 国内外发展现状

Kubernetes是Google公司在2014年开源的容器编排框架,在推出之后受到了很多软件工程师的追捧并且推动了微服务架构设计理念的落地,将一个原本很庞大的单体应用拆成一个个基于业务功能的完全独立的小程序并且分布式部署在一个集群中,以增加系统的稳定性和水平扩展的能力。Kubernetes的出现也推动了云计算平台的发展,从基于虚拟机的云计算平台过渡到混合云再到如今的单一容器云平台,容器技术不仅仅推动了平台的变革,而且在加速侵入IT的各个领域,潜移默化的改变着整个IT的生态圈并萌发新的软件设计理念。
目前,阿里云、思科、IBM、微软等知名云计算企业和老牌软硬件巨头都在使用Kubernetes为他们的数据中心、云和专业服务领域提供更好的服务能力。经过Kubernetes等容器技术的发展,云计算领域推出了一个新的理念——微服务。微服务就是一些协同工作的小而自治的服务通过SOA设计思想应用于一些庞大的单体应用程序。服务拆分的足够小,保证伸缩性并有效隔离故障;拆分应用组件化,将这些组件单独变成一个个服务,即“多服务”,降低耦合性,提高灵活性。因此微服务的出现和Kubernetes技术的应用也是为了解决互联网蓬勃发展出现的问题,拆分成一个个微小的服务,才能更好的管理,让每个团队灵动,促进团队的合作,间接催化云技术的发展。
当云环境的更多地方需要调用显卡设备来运行机器学习程序时,需要一个强大的管理平台去调度、监控管理各个容器运行的情况、监控每个每个容器的工作并合理地分配宿主机上的各个资源。
当前很多的云计算公司都没有设计属于专门用于机器学习的Kubernetes机器学习平台,高昂的管理费用依然使得很多小企业望而却步,因此设计并实现一个基于Kubernetes的机器学习平台是十分必要的。至今,各大云计算公司和IDC平台也并没有推出一个安全、稳定、易用的Kubernetes机器学习平台来维护容器高效运行并提高机器学习程序的运行速度,当服务遍及世界各地,不得已使用高可用和负载均衡服务时,如何保障这些容器的正常运行就成为了难题,因此这不仅仅是市场的空缺,更多的是技术的需要和产品革新。