BDTC 2019成功举办 智领云分享云原生架构数据中台建设实践

by Tina 2020-04-29


2019 年 12 月 5 日,由中国计算机学会(CCF)主办,CCF 大数据专家委员会承办,CSDN、中科天玑数据科技股份有限公司协办的中国大数据技术大会(BDTC 2019)在北京长城饭店拉开序幕。已经走过十余载的 BDTC,从当时仅 60 余人参加的技术沙龙到如今数千人的技术盛宴,俨然已成为国内规模空前、水平领先和影响力非凡的大数据技术盛会。

本次大会由中国科学技术大学教授、大数据学院执行院长陈恩红,滴滴出行高级副总裁、云平台事业群负责人章文嵩,微众银行首席人工智能官、香港科技大学讲席教授杨强担任大会主席,大会程序主席为微软亚研院副院长刘铁岩,北京深尚科技有限公司、前百度大数据实验室主任浣军,悉尼大学工程学院教授、澳洲科学院院士陶大程以及中国科学院计算技术研究所副研究员查礼。

大会开始由程序主席查礼主持,随后程学旗研究员、杜子德研究员、陈恩红教授为大会做开场致辞。现场,大数据和人工智能领域的顶尖专家齐聚一堂,星光熠熠,为 1000+ 参会嘉宾带来精彩的技术分享和思想碰撞。

在大会第三天举办的大数据与AI中台论坛上,传统互联网企业百度、阿里、滴滴,大数据及AI的创业企业科大讯飞、明略、智领云、星环、中科天玑以及传统软件开发企业华为、东方国信等企业的技术专家济济一堂,将自身在大数据、AI系统或平台层面的独到见解和心得经验,与与会的数百名听众进行了分享。

而作为本次论坛的特邀嘉宾,智领云CTO&联合创始人宋文欣博士在此次论坛上做了题为《云原生架构数据中台建设实践》的演讲,从云原生架构的角度,完整的阐述了智领云在数据中台建设方面的见解、观点,并分享了智领云在数据中台建设方面的经验和心得。

什么是云原生?

作为拥有二十多年软件研发一线经验,长期在硅谷大数据和云计算领域打拼、曾经在Ask.com、EA(艺电)主要从事大数据平台相关工作的宋文欣,首先阐释的并不是大数据平台或者是数据中台,而是介绍了云原生架构。
之所以采用这样的方式来作为演讲的开头,是因为宋文欣认为未来十年甚至二十年,软件开发、开源软件以及云计算等技术都将会在云原生架构下演进。

宋文欣认为,不能单纯理解云原生架构只是纯粹的技术,它是技术+方法论的结合体。举例来说,云原生中比较重要的微服务如何理解?传统的软件开发是把所有的功能放到一个大型的软件中去,而微服务的概念是解耦,把相对集中的功能做成一个微服务来开发。微服务的好处是它可以单独测试和部署,微服务间通过API接口进行通讯;微服务最好的载体是容器,容器是一个轻量级的虚拟化的技术,它产生和消亡的代价是很低的,而且提供资源隔离等便于发布和管理的特性,所以微服务+容器就加速了软件的开发、测试、生产、发布的流程。但仅有这两个技术不行,还要有DevOps来实现自动发布和稳定高效的系统运维,来轻松部署微服务和容器应用;同时需要的是一个CI/CD的架构,持续集成和持续发布,把代码提交到github代码仓库后,自动触发微服务构建、容器构建以及打包过程,然后发布到半生产系统进行集成测试,最后进入生产系统去部署。

数据中台是什么?

宋文欣接着讲述了智领云对于数据中台的理解。在讲述的过程中,宋文欣以自己在硅谷游戏公司EA的工作经历为例子,阐述了中台的重要性。宋文欣表示,作为一家知名的游戏公司,EA每年都能高效地生产出许多素质过硬的游戏作品,而这样高效率的背后,则是EA引以为傲的一整套的技术中台,即“寒霜引擎”。“寒霜引擎”提供了酷炫的拖拽式可视化开发界面,所有的工作流、实时运行、脚本都是以配置化的方式去进行设置。同时,该引擎可很方便地集成大量的地图,有统一的动画渲染效果设置、统一的声音效果配置,支持各种类型的天气设置,如下雨、下雪、大雾等等。最开始“寒霜引擎”只是为射击类游戏“战地风云“而开发,后来它逐步演进,被赛车类游戏使用,2017年开始,成为FIFA足球游戏的后台开发引擎。到现在,几乎所有EA主流游戏都使用了它,所有游戏工作室都在使用这个统一的技术中台”寒霜引擎“去开发游戏。因此,EA的游戏研发速度和迭代速度有了极大的提升。

而阿里提出的“大中台、小前台”的概念,是用业务中台、数据中台支撑其庞大的业务,比如,淘宝要做打折券的活动只需要1、2周时间就可以上线,因为他们已经通过中台把各种服务都集成在了一起。而传统的企业或者部门要做这样的工作可能需要以月为单位,这就是有无中台的区别。实际上,在硅谷没有“数据中台”的概念,但是一直都有这种以统一的数据和技术中台去支撑业务的技术思维。

从业务部门的角度来看,数据中台首先要有高效的数据存储机制,第二,要有方便的数据处理流程,有一套数据标准,能够很方便的做数据处理,第三,有数据服务,数据处理把数据提炼出有价值的数据以后,要通过数据服务的方式把它开放出来进行共享和复用,第四,要有快速开发数据应用的功能,能轻松的做AB测试,做大屏、做数据监控等。最后,业务部门需要能以自助的方式随时使用这样的能力,不需要事先申请资源。这样他们就可以很快速地去开发、验证、迭代,做自己业务所需要的数据服务及应用,这就是业务部门对数据中台的普遍需求。

对于管理者而言,数据中台首先要支持产品线的快速迭代,比如双十一马上要做促销活动,需要11月11号上线,如果有数据中台,就可以轻松满足管理者的要求,这样的业务一、两周就可以上线。第二,数据中台应该可以解决重复造轮子的问题,能够被反复使用,比如,双十一针对年轻客户的促销活动,在双十二需要推出中年客户推销活动的时候,就应该复用双十一开发的服务,仅仅经过微调就能够快速上线,而不需重新开发。第三,从公司数字化运营角度来看,数据中台应该能够给管理层提供数字化的报表来反映各条业务线的情况,比如说,告诉管理层哪个广告渠道带来的转化率最高,而且应该能够快速的提供可视化报表。另外通过数据中台,管理层可以清晰的看到公司目前有哪些数据资产,哪些业务已经有了数据、应用和接口,如果要提升某条业务线的运营效率,还有哪些数据需要收集处理和分析。第四,管理层需要知道数字化运营的投入产出比。这些都是管理层希望数据中台能够解决的问题。

数据中台的定义

综合以上的分析,智领云认为,数据中台的核心功能就是数据能力的抽象、共享和复用。

那么,如何理解数据数据中台的核心功能?这就需要从几方面讲起。

首先,要弄清楚什么是数据能力,所谓数据能力就是指数据本身就是能力,数据存储、治理、分析、服务也都有工具,这是工具层面提供的能力。从业务部门来讲,与业务相关的数据都是能力。

接下来,如何做数据的共享?这就需要,第一,要有统一的数据规范,使数据生产者、数据消费者通过这个规范达成共识。宋文欣以其进入EA大数据团队时的例子说明了这种规范建立的重要性,EA花了一年时间整理了像字典那么厚的数据规范,形成了连接生产数据的游戏工作室和消费业务数据的分析部门之间的桥梁。比如,最简单的像游戏里各种代码的含义,它们表示的是战车、手榴弹、手雷、机关枪、还是冲锋枪等这些武器,业务分析部门通常是看不懂的。另外,各类不同工作室传上来的游戏数据格式都有统一的规范,有一些是通用的基础指标,还有一些是不同游戏自带的特殊数据。有了这种统一而详细的数据规范标准,各业务分析部门就可以轻松整合所有的游戏数据,形成公司整体层面的数据资产,然后去挖掘和分析,进一步得到各业务需要的有价值的数据。

抽象就是把数据能力进行抽象。抽象的方式有两种,一种是大数据部门做顶层设计来实现。举例来讲,不少游戏都存在作弊玩家,通过创建僵死账号来收集奖励币,然后在黑市上转卖这些游戏币,这将会给游戏公司带来巨大的损失,每个月会流失超百万美元。而作为大数据部门就要通过顶层设计来解决这类反欺诈的问题。所以EA大数据平台设计了一个反向索引的分析系统,EA各游戏工作室拿信用卡到黑市买了游戏币以后,只要把这些游戏币ID输入到系统里就可以通过反向索引,把这些僵死和收集帐号查到并清除掉。这就是从顶层做设计来抽象数据能力,帮助各业务部门解决问题的一个例子。

另一种抽象的方式是业务部门开发出来的给自己使用的服务,后来发现其他业务部门也需要,然后再做抽象这种服务供大家来使用。举例来讲,FIFA游戏推广团队有一个需求,希望每天能够快速的给特定的客户人群以电子邮件的方式推送打折券。以往,做这个事情需要很复杂的查询才能得到用户的ID,从几百万用户中得到几百个用户,而且一天可能只能做一次。而FIFA团队和大数据团队合作开发,利用一套标签系统,就可以快速的定位这几百个客户。比如这个群体是35-45岁之间,年收入在5-8万美元,是北美加州的用户,过去7天平均玩游戏超过1小时,游戏内消费大约2000-3000美元,这样的标签选出来以后,几秒钟就可以实现层层过滤,锁定目前玩家群体,然后只要很简单贴入一个模板、点一个发送,推销打折券就发出去了,一天可以做十几次。后来,其他的业务部门发现他们也需要这个功能,FIFA团队就将这个功能扩展到其他游戏,其他游戏的推广部门也可以将这个功能拿来使用。那么,这个功能就是业务部门自行开发,然后再进行抽象的过程。

宋文欣指出,在数据能力复用的过程中,有一点要注意的是,协调复用和效率的矛盾。也就是说,如果一个业务部门因为要满足其他部门复用某个服务的需求,做了大量的工作,反而影响了自己的工作效率,这样就得不偿失了,这里需要有一个协调和平衡的机制。

最后回过头来看数据中台的定义,数据中台就是公司数字化运营的数据能力平台,为全公司业务部门提供自助式的数据运营工具,同时在公司层面管理数据能力的共享,抽象和复用。

数据中台的评判标准

那么,数据中台有哪些评判标准?怎么评判一个公司的数据中台是否建设得好?智领云认为有以下几个比较明显的标准:
* 数据和数据应用的全覆盖和高复用率
* 建设方式必须是快速落地,快速迭代
* 新的业务场景必须能够快速复用现有数据能力,快速得到数据反馈
* 数据/人员/业务发生变化时有可靠的管理方式
* 业务部门可以自助使用数据能力,同时可以安全和方便共享
* 能精确地量化数据在系统中的使用情况
* 业务部门/IT部门/数据部门的责权利清晰

宋文欣认为,绝大多数的传统数据平台目前还是主要集中在基础数据能力的实施和运维上,而一个面向数据中台的建设工具必须要考虑到以上的这些方面。

数据中台与云原生

那么,数据中台与云原生什么关系呢?宋文欣认为,首先,云原生概念里的微服务、容器是软件研发方式的变革,是把复杂架构拆分成微服务的一些小模块,然后放到轻量级的容器上进行发布。因为有了这些技术,再加上快速稳定的DevOps和CI/CD流程,整个应用开发和部署变得非常快,开发到上线的流程非常流畅 。所以云原生架构的这种特性就已经表明它是支持数据中台建设最好的一个开发基础。

云原生架构对于共享复用的意义在哪里?首先是资源和数据的隔离,每个业务部门都有意愿做数据分享工作,每个业务部门都可以开发自己的应用,这些应用里有些敏感的内部数据和代码,业务部门希望它们是受到保护的。另外很重要的一点是,各业务部门可能开发应用水平各有高低,但在容器环境下这些应用将不会互相影响。在云原生架构中,数据平台都会实现多租户,在多租户的环境下,每个业务部门在使用的过程中都受到了保护,所以在云原生架构下,业务部门都有意愿去做数据的共享和复用。

此外,在云原生架构下做数据服务有天生的好处,就是微服务和容器化的方式发布数据服务,能够实现非常快速的部署和迭代。另外,数据中台能够实现数据服务弹性的扩展。在容器编排像K8s等架构下,一个操作就可以把一个数据服务容器实例变成多个实例,比如双十一的时候,一个API Service可以轻松的进行横行扩展,双十一结束后又可以轻松释放,这样可以支撑动态的访问量的增长,这就是云原生架构对数据中台的好处。

在数据中台,业务部门可以快速开发和部署大数据应用,但这些应用也需要被纳入IT部门的整体监控系统,还要能够有一个监控面板看到监控指标的变化。而在云原生架构下,实现统一的自动监控系统,是很简单的事,因为发布应用是以容器的方式,很多东西都可以标准化,监控系统、控制面板、日志都可以通过标准的方式去配置出来,不管是用Mesos进行资源管理,还是用Marathon或者Kubernetes进行容器编排管理,标准配置都可以很轻松的实现,这是云原生架构提供给业务部门自主开发应用很大的好处。

另外,云原生架构还能够轻松集成各种开发工具。数据中台一个重要的能力是能够快速集成新功能,比如交互式的机器学习或人工智能的开发工具,在云原生架构下就很容易引入进来,不需要向IT部门申请资源、帮忙安装、调试、接入Hadoop、接入Spark等。各业务部门可以轻松地把这样一些开源工具引入进来,快速尝试、迭代,这是数据中台一个很重要的功能。而共享复用的基础,是业务部门要能够自助式地做这样的尝试。最后,在数据中台里,数据计算能力、计算程序的调度能力都需要一种分布式的架构,这样的架构在云原生架构下能够很轻松的去实现。

智领云的数据中台实践

宋文欣最后重点分享了智领云产品在云原生架构下的实践,宋文欣介绍说,智领云的BDOS大数据操作系统是基于Mesos的资源管理,支持Marathon和Kubernetes的容器编排框架,采用云原生架构的数据中台。底层是对容器化的支持,以及对Hadoop、Spark、Kafka、Tensorflow、Hive等这些大数据开源组件的容器化发布,智领云的特点就是容器化的大数据运营平台。

在架构方面来看,BDOS是一个面向变化的架构,一个开放的架构,用户能够轻松地开发和部署自己的容器应用,也可以以容器的方式接入很多开源或者第三方提供的应用,这是智领云基于云原生打造的数据中台的一个很大的好处。另外,对容器技术的支持保证了向前的兼容性,这也很重要。未来在云原生架构的技术下,智领云的系统还会得到进一步的扩展。

智领BDOS的核心功能之一是大数据容器云平台,重点是在大数据组件部署和运维方面做了容器化工作。应用集成是自动配置所有的组件,能够自动进入监控系统。在大数据运维方面,因为其基于云原生架构,非常高效可靠,成本非常低。

宋文欣还解释了BDOS的容器自动化监控框架,他表示,业务部门开发一个应用,通常需要能够自动的将这个应用接入监控系统,那智领云是如何实现的呢?首先,智领云会要求应用开发者提供一整套标准的配置文件,这是最基础的文件,其中包括Dockerfile,然后是一个Prometheus监控配置文件和Grafana监控面板文件。智领云采用了Prometheus的开源框架,目前很多开源软件都提供标准的Grafana监控面板文件,开发者也可以自己来写控制面板文件。在配置文件中,应用开发者还需要标注对外服务的端口,哪些端口是开放给服务的,哪些端口是用来做监控的。最后,如果需要纳入报警系统的话,还需要配置报警文件。

BDOS的数据服务架构(如下图所示)可便于企业各部门之间实现方便的数据共享,其中绿色部分全部是以容器化的方式来部署的。例如,用Kafka做任务队列 ,用SparkStreaming做业务查询处理,用Redis缓存数据,也就是说数据访问是在缓存里面拿到结果直接返回,不需要到底层的数据仓库里做计算 。这样一个架构在云原生架构很容易进行扩展以适应不断增长的数据服务访问需求。

数据中台需要有一个可扩展的分布式离线计算处理框架,FlowMan就是智领云在云原生架构下开发的分布式容器工作流调度平台(如下图所示)。 与传统的工作流调度系统(类似于Oozie) 不同的是,FlowMan的所有组件都是以容器方式运行:首先是master容器运行多实例,实现了高可用和弹性扩展;其次,FlowMan支持Spark、Hive、Python及自任意定义语言运行的计算作业作为容器来进行调度,没有对worker框架和环境的限制,而且当计算任务增多的时候可以把worker容器进行横向扩展,所以调度不会成为瓶颈。

最后,因为BDOS是基于云原生的架构来构建整个数据平台,我们可以把用户、数据、应用、资源都统一管理起来,以一个全局的视图来管理他们之间的关联。例如,对于数据中台来说,安全审计工作非常重要。各个业务部门在数据中台做数据的共享和复用时,非常重要的一个任务是保证他们的操作是安全的。对安全的管控就需要有一个审计体系,对BDOS的操作和使用、对网关的访问、安全认证申请、数据访问等都要进入全链路的用户审计系统,云原生架构使得BDOS非常方便地实现了这样的一个全链路审计体系。

数据中台 未来可期

纵观本次中国大数据技术大会,大数据与AI中台论坛是所有论坛中参与厂商最多的论坛之一,也是观众最火热的论坛之一,这也从一个角度说明了数据中台的热度以及业界对于数据中台未来发展的看好,而在如此众多厂商和用户的关注和支持下,数据中台的未来可期!

留言

评论

${{item['author_name']}} 回复 ${{idToContentMap[item.parent] !== undefined ? idToContentMap[item.parent]['author_name'] : ''}} · ${{item.date.slice(0, 10)}} 回复

暂时还没有一条评论.