人工智能|专访小米崔宝秋:云原生与大数据、AIoT、开源的碰撞之路( 三 )


《新程序员》:你认为未来云原生技术会向哪些方向发展?开发者可以关注哪些方面?
崔宝秋:从小米的角度,我们认为云原生有以下几个发展方向。
其一,容器周边技术的核心突破,包括计算存储分离、资源隔离、混合部署、软硬件结合、安全技术等,解决容器承载有状态应用以及提升资源利用率一系列问题。
其二,非Java生态的微服务开发框架。目前微服务体系最完善的是Java技术栈,其他主流研发语言还需要有更加成熟、民主化的方案来普遍应用。
其三,在数字化转型的大背景下,传统架构向微服务架构迁移的工具和解决方案,以及当前主流的低代码等新技术与云原生的结合。
其四,业务逻辑和基础服务极致分离。云原生的不可变基础设施偏IaaS层面,未来PaaS和SaaS层面也会有大量的无状态服务逐渐孵化和发展,目前典型的例子就是Serverless的大面积使用。
运维和基础软件开发者可以关注第一点和第四点,服务端和前端开发者可能更需要关注第二点和第三点。

云原生与AIoT密不可分
《新程序员》:小米集团是从什么时候开始布局云原生的?目前在云原生方向做了哪些事情?
崔宝秋:早在2015年我就让团队开始研究容器和微服务,之后很快就开始在一些场景中落地这些技术。有很长一段时间,集团内部同时布局Mesos和Kubernetes,早期的Mesos比较成熟,但我一直更看好当时不太成熟的Kubernetes,现在看来当时的判断是对的。
基于这些云原生技术,我们在降低了研发和运维的工作量的同时能支撑业务的高速发展。目前我们在公司范围内扩大这些技术的应用,在原有研发、运维效率带来的价值被提升之外,我们也更加注重资源效率的改善,通过云原生技术为业务带来实质性的成本降低。
这个过程中,我们要解决云原生技术研发以及企业架构治理这两类挑战。云原生技术研发包括业务间的混布、利用公有云资源进行弹性伸缩等;企业架构治理包括推进存量服务的服务化治理与改造、规范研发流程、精细化治理资源成本等。
《新程序员》:小米机器学习平台基于Kubernetes构建,而Kubernetes概念多且复杂,你们在开发过程中有没有遇到技术难题或者典型问题?另外在使用Kubernetes时,有哪些建议可以给到其他企业?
崔宝秋:小米在2016年开始根据内部机器学习和深度学习需求,基于Kubernetes构建小米的深度学习服务。开发者可以在云端使用GPU训练模型,秒级启动分布式训练任务,兼容TensorFlow等深度学习框架,也可以一键部署训练好的模型,或者创建基于GPU的开发环境,提供模型开发、训练、调优、测试、部署和预测一站式解决方案。
因为CPU机器普遍比较贵,遇到核心问题如何加速深度学习训练及提升GPU集群资源利用率?我们主要使用RDMA网络提升、训练网络性能,在Kubernetes调度框架的基础上实现机器学习场景的调度器,支持更加灵活的GPU调度策略和资源抢占,训练任务支持公有云弹性等,有效提升GPU集群的资源利用率。
云原生生态已经日趋成熟,CNCF社区也已包含基础设施的项目,建议新的企业更加积极拥抱云原生和Kubernetes,加入云原生生态,利用生态红利,站在巨人肩膀上构建自己的业务。
《新程序员》:小米的硬件产品有很多,硬件+云原生技术是否会列入小米集团下一步的发展计划中,计划做哪些事情?
崔宝秋:“硬件+云原生”技术早已是小米集团的一部分。众所周知,“手机×AIoT”是小米的核心战略,这里面不管是手机还是任何AIoT设备,都是智能硬件、智能设备,而智能设备的一大特点就是互联互通,并利用云计算、大数据和人工智能给用户提供各种智能服务。所以,小米硬件和云原生技术一直是密不可分的,这也一直是小米技术发展的方向。