AI云原生浅谈:好未来AI中台实践

简介: 2020年云栖大会上,好未来AI中台负责人刘东东,分享了他对AI云原生的理解与好未来的AI中台实践,本文为演讲内容整理。

AI时代的到来,给企业的底层IT资源的丰富与敏捷提出了更大的挑战,利用阿里云稳定、弹性的GPU云服务器,领先的GPU容器化共享和隔离技术,以及K8S集群管理平台,好未来通过云原生架构实现了对资源的灵活调度,为其AI中台奠定了敏捷而坚实的技术底座。

在2020年云栖大会上,好未来AI中台负责人刘东东,分享了他对AI云原生的理解与好未来的AI中台实践,本文为演讲内容整理。

大家好,我是好未来AI中台技术负责人刘东东。今天我给大家带来的演讲主题是《好未来AI云原生的浅谈》。我的分享主要分成四个部分:

第一,AI服务对云原生的挑战。
第二,AI与云原生的服务部署。
第三,AI与云原生的服务治理。
最后想谈一谈, K8S与Spring Cloud的有机结合。

1、AI服务对云原生的挑战

首先,我们来讲一讲AI服务对云原生的挑战。在云原生时代,AI服务其中最大的一个特点就是,需要更大的算力支持,以及更强大的一个服务的稳定性。

 

image.png

我们的服务不单单只是原来的一个单体服务,现在已经转入到一个集群服务。同时对性能的稳定性要求,已经从3个9,开始向5个9发起了挑战。

那么这些问题,已经不再是原有的传统技术架构能够解决的。所以我们需要一个新的技术架构。

这个新的技术架构是什么呢?就是云原生。

我们来看一看,云原生对我们带来的变化。云原生带来的最大变化,我总结为四个要点和两大方面。

四大要点分别是,DevOps、持续交付、微服务、容器的四个特点。两个方面则是服务部署和服务治理。当然,它还有12个要素的整体系统总结。

 

image.png

今天重点来讲的是服务部署和服务治理。

在云原生浪潮下,我们是如何处理服务部署和服务治理呢?

首先我们通过AI与云原生的服务部署,即通过K8S,加上一个资源的虚拟化,资源的池化等技术,解决了AI服务对各种硬件资源的数量级增长需求。

第二个,AI服务与云原生的服务治理进行有机结合。通过服务治理的技术,包括服务发现、HPA、负载均衡等,解决AI服务对5个9的SLA的需求。

 

image.png

2、AI服务的云原生部署

第一点谈一下是怎么把AI与云原生的服务部署结合起来的。

首先看一下,在AI时代下服务部署有哪些特点呢?

第一个就是硬件资源需求与费用增长的一个矛盾。AI服务对于硬件的需求成数量级增长,但是硬件预算并没有成数量级增长。

第二,AI服务对硬件的需求是多样化的。如,对高GPU的需求、高CPU的需求、高内存的需求,甚至还有部分混合的需求。

第三,AI服务对资源的隔离是有需求的。每一个AI服务都能够独立使用这些资源,并且相互之间不会打扰。

第四,AI服务能够对资源池化有要求。AI服务不需要去感知机器的具体配置,一旦将所有的资源进行池化,即可降低资源碎片,提升使用率。

最后一点,AI服务对突发的资源是有请求的。因为流量是不可预知的,企业需要随时保持,能够随时扩充资源池的能力。

 

image.png

我们的解决方案是什么呢?

首先,我们使用Docker的虚拟化技术,实现资源的隔离。

然后使用GPU共享技术,将GPU、内存、CPU等资源进行池化,然后将整个资源进行统一的管理。

最后,使用K8S的resources,包括污点(taints)、容忍度(tolerations)等这些技术特性,实现服务的灵活配置。

另外,建议大家要买一些高配置的机器,这些高配置的机器,主要是为了进一步降低碎片。

当然,还要实现对整个集群硬件的监控,充分利用ECS可以各种复杂的时间规则调度特性(下图的cron是一个基于时间的作业调度任务),应对高峰流量。

 

image.png

接下来,我们更仔细地看看好未来AI中台是如何解决这些AI部署问题的。

这个页面是我们的一个Node的服务管理,通过这个业务,我们是可以清晰看到每一个服务器上面的部署情况,包括资源使用情况、部署哪些pod、哪些节点等等。

 

image.png

第二个实际上是AI中台的服务部署页面。我们是可以通过压码文件,精准地控制每一个pod的内存、CPU、GPU的使用。同时,通过污点等技术,让服务器的多样化部署得到满足。

 

image.png

根据我们的对比实验,使用云原生的方式部署对比用户自行部署,成本大概节省了65%。而且,这样的优势会随着AI集群的增长,在经济收益上和临时流量扩容上,将会受益更多。

3、AI与云原生服务治理

接下来再讨论一下AI与云原生的服务治理。

简单介绍一下什么叫微服务?其实微服务,只是服务的一种架构风格,它实际上是将单个服务,作为一整套的小型服务开发,然后每一个应用程序都有自己进程去运行,并且通过轻量级的一些,比如说HTTP、API等进行通信。

 

image.png

这些服务,实际上是围绕着业务本身去构建的,可以通过自动化的部署等手段去集中管理。同时,通过不同的语言去编写,使用不同的存储资源。

总结起来微服务有哪些特点?

第一,微服务它足够小,甚至它只能做一件事情。
第二,微服务是无状态的。
第三,微服务相互之间是相互独立的,并且它们是面向接口的。
最后,微服务是高度自治的,每个人只对自己负责。

 

 

看到这些微服务的特点之后,再去想一想,AI服务与微服务特点,我们发现,AI服务天生适合微服务。每一个微服务,其实本质上只做一件事情。比如OCR,OCR服务,只做OCR服务;ASR,主要做ASR服务。

继而,每一个AI服务的请求都是独立的。举个简单例子,一个OCR请求和另外一个OCR请求,在本质上是没有什么关联的。

AI服务对横向扩容是有天生苛求的。为什么?因为AI服务队资源的渴求非常大。于是,这种扩容就显得非常有必要性了。

AI服务之间的依赖性也特别小。比如说像我们的OCR服务,可能对NLP的服务,或者是对其它的AI服务,可能没有什么太大的要求。

所有的AI服务,都可以通过写申明式的HTTP,甚至API的方式,提供AI能力。
进一步去看一下AI服务,会发现,并不能将所有的AI服务进行微服务化。于是,我们做了什么事?

第一,需要将AI服务做成一个无状态的服务,这些无状态服务,都是有畜牲化、无状态、可丢弃,并且不采用任何的一些磁盘或者内存的请求方式,去做一些存储功能。这样就可以让服务部署在任何的一个节点,任何一个地方。

当然,并不是所有的服务都能做到无状态。如果它有状态了怎么办呢?我们会通过配置中心、日志中心、Redis、MQ,还有SQL等数据库,存储这些请求状态。同时,确保这些组件的高可靠性。

 

image.png

这个就是好未来AI中台PaaS的整体架构图。首先可以看一下最外层是服务接口层。最外层接口层是面向外部提供AI能力的。

平台层里最重要的层是服务网关,主要是负责一些动态路由、流量控制、负载均衡、鉴权等。再往下就是我们的一些服务发现,注册中心,容错、配置管理、弹性伸缩等等一些功能。

再下面是业务层,这些业务层就是我们所说的,一些AI的推理服务。

最下面就是阿里云给我们提供的K8S集群。

也就是说整体的一个架构是,K8S负责服务部署,SpringCloud负责服务治理。

 

image.png

我们是怎么通过技术手段来实现刚才说的一个整体架构图?

首先是通过Eureka作为注册中心,实现分布式系统的服务发现与注册。通过配置中心Apoll来管理服务器的配置属性,并且支持动态更新。网关Gateway,可以做到隔离内外层的效果。熔断Hystrix,主要是分为分时熔断和数量熔断,然后保护我们的服务不被阻塞。

负载均衡加上Fegin操作,可以实现整体流量的负载均衡,并且将我们的Eureka相关注册信息进行消费。消费总线Kafka是异步处理的组件。然后鉴权是通过Outh2+RBAC的方法去做的,实现了用户的登录包括接口的鉴权管理,保证安全可靠。

链路追踪,采用的是Skywalking,通过这种APM的一个架构,我们可以追踪每一个请求的情况,便于定位和告警每一个请求。

最后日志系统是通过Filebeat+ES,分布式收集整个集群的日志。

 

image.png

同时我们也开发了一些自己的服务,比如说部署服务、Contral服务。主要是负责与K8S进行通信,收集整个K8S集群里面服务的服务部署、K8S相关的硬件信息。

然后告警系统是通过Prometheus+Monitor去做的,可以收集硬件数据,负责资源、业务等相关的告警。

数据服务是主要用于下载,包括数据回流,然后截取我们推理场景下的数据情况。

限流服务是限制每个客户的请求和QPS相关功能。

HPA实际上是最重要的一个部分。HPA不单单只支持内存级别的,或CPU级别的HPA,还支持一些P99、QPS、GPU等相关规则。

最后是统计服务,主要是用于统计相关调用量,比如请求等。

 

image.png

我们通过一个统一的控制台,对AI开发者提供了一站式的解决方案,通过一个平台解决了全部的服务治理问题,提升了运维的工作自动化,让原来需要几个人维护的一个AI服务的情况,变成了一个人能够做到维护十几个AI服务。

这个页面展示的就是服务路由、负载均衡、限流相关的配置页面。

 

image.png

这个页面展示的是我们在接口级别的一些告警,以及部署级别的硬件告警。

 

image.png

这是日志检索,包括实时日志相关功能。

 

image.png

这个是手动伸缩和自动伸缩操作页面。其中自动伸缩包括CPU、内存级别的HPA,也包括基于相应响应时长制定HPA、定时的HPA。

 

 

4、K8S与Spring Cloud的有机结合

最后来聊一下K8S与SpringCloud的有机结合。

 

image.png

可以看一下这两张图。左图是我们SpringCloud数据中心到路由的图。右边是K8S的service到它的pod的图。

这两个图在结构上是非常接近的。我们是怎么做到呢?实际上是将我们的Application与K8S的service进行绑定,也就是说最终注册到我们SpringCloud里面LB的地址,实际上是把它转成了K8S service的地址。这样就可以将K8S与SpringCloud结合起来。这是路由级别集合。有了这个集合,就能达到最终的效果

 

image.png

SprigCloud它是一个Java的技术语言站。而AI服务的语言是多样化的,有C++、Java,甚至有PHP。

为了实现跨语言,我们引入了sidecar技术,将AI服务与sidecar通过RPC去通信,就可以屏蔽语言的特性。

Sidecar主要的功能有,应用服务发现与注册、路由追踪、链路追踪,以及健康检查。

今天我的演讲到此结束,非常感谢各位的聆听。谢谢大家。

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直击“上云”痛点的 MSP 新生意,万博智云发布云原生迁移工具 HyperMotion 3.0

作者 | 宋慧 出品 | CSDN云计算 头图 | 付费下载于IC photo CSDN 在 4 月对德勤《2021 年技术趋势报告》的报道时,德勤分析师曾提到,在中国近 20 年的 IT 历程中,经历 ERP 和 toC 浪潮之后的中国企业,对云计算的认识却停留在降低…

我看技术人的成长路径

简介: 有一句诗词说:宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒。其实就是讲内心修炼到了一种心境平和,淡泊自然的境界。 作者 | 儒枭 为什么要成长 成长是为了在职场升值,提升职场竞争…

KubeVela 正式开源:一个高可扩展的云原生应用平台与核心引擎

美国西部时间 2020 年 11 月 18 日,在云原生技术“最高盛宴”的 KubeCon 北美峰会 2020 上,CNCF 应用交付领域小组(CNCF SIG App Delivery) 与 Open Application Model (OAM) 社区,以及来自阿里云、微软云的 OAM 项目维护者们在演…

ESL:我们如何使用首云混合云产品实现提效降本

背景ESL Play是世界上最大也是历史悠久的电子竞技独立联盟,成立于1997年。ESL Play负责组织和举办电子竞技赛事,并提供在线直播。在所有电子竞技平台中,收看时间长期位居行业第一。其举办赛事覆盖PS、PC、移动端等多个平台。ESL Asia是ESL Pl…

鹰角网络全球海量数据,一键轻松统一存储与处理

简介: 对于鹰角网络遇到的数据激增以及数据统一收治方面的问题,阿里云对象存储 OSS 为其提供了统一的数据存储 池,方便鹰角网络将全球收集到的海量不同数据进行统一存储,同时阿里云对象存储 OSS 可无缝对接 云原生数据湖 分析 DLA…

直击“上云”痛点的 MSP 新生意

作者 | 宋 慧出品 | CSDN 云计算头图 | 付费下载于 IC photoCSDN 在 4 月对德勤《2021 年技术趋势报告》的报道时,德勤分析师曾提到,在中国近 20 年的 IT 历程中,经历 ERP 和 toC 浪潮之后的中国企业,对云计算的认识却停留在降低 …

申通完美支撑“双11”——亿级包裹背后的云基础设施

简介: 亿级包裹洪峰过境,千万级订单毫秒级响应,系统稳如泰山。今年双11,申通的系统前所未有的流畅与平稳。 今年双11,申通的系统前所未有的流畅与平稳 “双11全站跑在阿里云上,亿级包裹洪峰过境&#xff0…

java map是大括号_Java8如何基于flatMap处理异常函数

Java8的flatMap函数,作用是:如果有值,为其执行mapping函数返回Optional类型返回值,否则返回空Optional。见到的映射函数往往都只有一句话,连大括号都不需要加的,如下:String personValue Optio…

AI 赛道“新选手”锐捷发布新一代 AI SaaS 云平台,支撑百万级零售货柜

编辑 | 宋慧 出品 | CSDN 云计算 头图 | 付费下载于 IC photo 近几年,传统零售模式经历了几轮深层次变革,2016 年是新零售的元年,2017 年无人零售在国内又刮起了一阵大风,从传统零售到新零售再到无人零售等概念的革新&#xff0c…

2019 年 CNCF 中国云原生调查报告

简介: 在 CNCF,为更好地了解开源和云原生技术的使用,我们定期调查社区。这是第三次中国云原生调查,以中文进行,以便更深入地了解中国云原生技术采用的步伐及如何在庞大且不断发展的社区中赋能开发者并作出变革。本报告…

快手基于 Apache Flink 的优化实践

本次由快手刘建刚老师分享,内容主要分为三部分。首先介绍流式计算的基本概念, 然后介绍 Flink 的关键技术,最后讲讲 Flink 在快手生产实践中的一些应用,包括实时指标计算和快速 failover。 一、流式计算的介绍 流式计算主要针对 u…

探索交通治理新思路,广州黄埔智能交通治“堵”

路口车辆平均延误下降20%、主干道平均行程时间下降25%、有轨电车每趟行程时间节省约28%……随着政府科学管理与人工智能技术的结合,广州黄埔越来越多交通路口正在逐渐AI化,市民出行效率得以大幅提升。在共建共治共享理念指导下,广州黄埔正在拓…

Flink 双流 Join 的3种操作示例

在数据库中的静态表上做 OLAP 分析时,两表 join 是非常常见的操作。同理,在流式处理作业中,有时也需要在两条流上做 join 以获得更丰富的信息。Flink DataStream API 为用户提供了3个算子来实现双流 join,分别是: join…

云原生趋势下的迁移与容灾思考

作者 | 孙琦 导读:下一个云原生颠覆的领域会不会是在传统的容灾领域呢?在云原生的趋势下,如何构建应用系统的迁移与容灾方案? 趋势 1. 云原生发展趋势 云原生(Cloud Native)是最近几年非常火爆的话题&…

深度盘点Python11个主流框架:Pandas、Django、Matplotlib、Numpy、PyTorch......

六月份TIOBE编程语言排行榜,位居第二名的Python与第一名C语言之间的差距正在逐渐缩小。Python如此受欢迎一方面得益于它崇尚简洁的编程哲学,另一方面是因为强大的第三方库生态。要说杀手级的库,很难排出个先后顺序,因为python的明…

从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目

2020 年 11 月 19 日,由 InfoQ 主办的“2020 中国技术力量年度榜单盛典”隆重召开,并正式揭晓了“开源杰出贡献人物”、“开源新锐项目”和“云原生行业落地典范”等重大奖项。在此前的入围赛中,仅“开源新锐项目”单项,阿里云原生…

揭秘双11丝滑般剁手之路背后的网络监控技术

简介: 本篇将重点介绍Hologres在阿里巴巴网络监控部门成功替换Druid的最佳实践,并助力双11实时网络监控大盘毫秒级响应。 概要:刚刚结束的2020天猫双11中,MaxCompute交互式分析(下称Hologres)实时计算Flin…

OpenKruise:阿里巴巴 双11 全链路应用的云原生部署基座

简介: Kruise 是 Cruise 的谐音,K for Kubernetes,寓意 Kubernetes 上应用的航行和自动巡行,它满载着阿里巴巴多年在大规模应用部署、发布与管理最佳实践,以及阿里云 Kubernetes 服务数千客户的需求沉淀。 来源 | 阿里…

AI 如何推动双碳目标达成?施耐德电气这么说

以当前的排放总量而言,中国是全球碳排放第一大国。如何兼顾经济转型与能源低碳转型成为国家重要的发展战略之一,因此中国提出 2030 年碳达峰以及 2060 年碳中和的目标,并被写进《政府工作报告》中,成为各行各业关注的热点话题。 …

轻松玩转全链路监控

简介: 好的产品总是能给予用户最轻松的使用体验,并在实际生产中发挥出巨大的业务价值。我们不妨从现在开始,就将所有微服务应用通过无侵入的方式接入ARMS,构建一体化的全链路监控体系,而不是等到真正遇到生产故障的那一…