今天跟大家分享易观大数据架构的变迁,包含三部分,第一先给大家讲易观的变化,也是易观产品技术的结果;第二是从技术角度来讲一下易观大数据技术架构的变迁;第三分享一点创新方向的心得。
在过去,大家谈起易观,首先想到的是分析报告。现在的易观已经跟过去不一样了。我们从底层通过易观的 SDK,采集了大量数据,经过大数据平台的计算,再经过分析师、算法专家做的算法模型,形成了标签,提供给相关的产品,千帆、万像、分析师服务、流量审计、方舟、第四张报表,还有易观零壹学院。
易观的收入,过去主要是由分析师服务和分析报告组成的,去年的产品和技术收入也占到了整体收入的一半。现在的易观,已经是一家以易观系列产品为基础,提供分析师以及第一方数据服务的大数据分析公司。
上图展示了易观的数据资源:累计覆盖 20.7 亿终端,监测 APP 200 多万,上季度末 MAU 为 4.8 亿,每秒处理 55 万条的数据。
易观大数据几乎是从零开始,是不断的随着业务增长起来的。下面给大家分享一些心得。
升级技术架构,先要革新观念,最后才是技术问题
升级技术架构,不仅仅是技术升级
说到升级架构,大家第一个都会想到,是不是对技术升级一下就可以了?
我认为不是,技术架构升级要求的是整个公司的升级。
技术架构的变化,直接映射的就是成本投入的变化。如何让其他合伙人明白你的投入是值得的?比如业务合伙人可能质疑你只花钱没有结果。所以做技术架构变化时,先给公司高管说明白,我们的目标是什么?为什么我们要做?是因为业务规模达到一定量要继续升级,还是要支持原来的产品投入?它将来的投入可能是什么样?我们现在如果不升级,会变成什么样?
这是公司的产品技术一把手应该做的。
升级技术架构,背后是人员变动
第二个,大家都会说,技术架构的变化就是升级一下技术架构呗。
其实不是。升级技术架构背后映射的是人员变动。技术架构在不断升级,有些人会跟不上技术架构的发展。怎样妥善处理这些跟不上的人员?怎样评估他对整个团队的影响?先要把未来架构的人员以及需要的底层资源准备好,再去做技术架构的升级。
技术架构变化,也要考虑节奏问题。技术的使命是什么?是打造特别牛的系统,或者特别打造特别牛的开源项目,让业界都觉得你非常牛,却可能和公司业务没有什么关系?还是要让公司的业务呈现指数级的发展,你能够升级架构支持公司的变化?我认为是后者更重要。
你的节奏有多快,步伐有多大,其实蛮有讲究。每一个做技术的小伙伴,都希望把最新最牛的技术应用到公司。当你在一把手位置的时候,你要考虑人员资源业务是不是真的能够一步到位?究竟要分几步,才能把心目的完美架构落到公司?很可能预算、人员、计划都跟不上,你冲到最前方,却把团队扔下了——这是不可取的。
所以每一个公司步伐迈多大,究竟怎样才去合适,这是每一个公司的 CTO 或者技术产品 VP 心里面要考量的问题。
升级技术架构,最后才是技术问题
技术结构的变化,到最后才是技术问题。我们会看整个架构效率怎样、扩展性如何、将来对 SLA 的影响如何?
到最后一步的技术问题,你是不孤独的,这时候还有总监,还有架构师,还有各种各样的技术人员;而在考虑前三点的时候,作为技术最高管理者,你是孤独的。所以对于每一位技术一把手来讲,我觉得都要明白,升级架构一定不是仅仅技术升级的事情。
下面要讲的就是,易观的整个技术架构是怎么一步步走完升级之路的。我刚刚接触易观是在2015年,当时整个产品技术业务还没有开展,大家还在探索业务模型。究竟怎样去做整个产品?究竟哪些产品能赚钱?技术应该做成什么样?在整个公司里,大家都不知道。CEO 非常强力的支持产品技术的转型。我也被他打动了,选择加入易观。
易观大数据架构的变迁
2015年,业务模型探索期
在2015年,整个易观架构都在阿里云上。当时就是在探索,有 30 多台虚拟机,用的是 Cloudera Hadoop,然后有一个简单的接收端,就只有一两个合作伙伴的 SDK 会接收上来,然后传输相关的数据。业务量很小,技术架构非常简单,技术人员十来个,大家水平也一般。这个时候公司处在业务模型探索期。
2016年,业务模型验证期
到2016年就不一样了。业务模型进入验证期,相关产品正式推出开始对外售卖,也有了收入。同时,易观的业务模型也驱动了合作伙伴的数据接入,数据量大概在2015年时间每天不到10亿,到2016年就接近百亿条了。
2016年的时候,原来在虚拟机的 Hadoop 运作不能支持那么大的数据量加工,于是我们自建混合云,对外服务还是在阿里云上,底下的数据接收端放到 UCloud。我们自己有 IDC,在 IDC 和两个云用光纤打通,数据从 SDK 到 UCloud,在 UCloud 通过内部项目 KickerAA 打包,打包后传回大数据机房,数据加工后的产品在阿里云展现。
当时我们买了 150 多台二手机群,搭建了大概 1.8 P 的 Hadoop 集群承载我们当时的数据,用的还是 Cloudera Hadoop,主要还是 Hive。
另外,因为数据的个性化需求,我在极客邦的 QCon 大会上也介绍过,面对用户画像标签到用户行为请求的时候,我们引入了 Greenplum。易观是 Greenplum 开源版的最早期使用者之一,也用的不错。现在我们和 Pivotal 的关系也蛮好的,也非常感谢当时他们给我们的很多帮助。相对与2015年,我们也加了 ES 这样的简单组件。随着产品越来越多、API 调用越来越乱,我们也基于Kong自己推出了 API Gateway,这样就能够知道API的调用关系和次数。其中的整个结构是随着技术团队的更新逐步建立起来。这是 2016 年的情况。
2017年,业务突飞猛进
原来的服务会有光纤被挖断的问题,我们在 2017 年全部切入 UCloud 混合云,大数据集群也全部用高端的R430XD的机器,也引入了新的架构变化。
随着人员增加,我们引入了 Spark,继续保留 Greenplum。我们有一些更复杂的查询,而我们对 Scala 还跟不上速度,所以引入 Facebook 的开源组件 Presto。基于 Presto,我们做了产品查询,这些在后面会重写。同时应用架构也用了 Dubbo。这是 2017 年的变化。
2017 年我们业务突飞猛进,效果不错。现在大家都知道易观千帆能够去查排行榜,查所有APP的活跃情况。我们的数据量级也突飞猛进,我们过去的接收带宽从几百兆到 1 G 到现在的几个 G ,日活接近一个亿,数据需求也进入了深水区。我们最近做了悬赏 10 万块钱的开源大奖赛。大家都有有序漏斗查询的方案,我们的方案我觉得是 60 分,还不够好,已经给大家开源了。最好的商业产品能做到90分了。为了鼓励开源小伙伴,我们设立了10万元奖金,欢迎感兴趣的小伙伴扫描二维码参赛。
从虚拟化来讲,我们的技术也是逐步进步,技术人员也是随着架构在不断升级。
我们在 2016 年的时候就在长沙开始做研发中心,2017 年的时候,我们的研发一半在长沙,一半在北京。
2018年,拥抱变化
放眼未来,2018 年到 2019 年,我还会做一些新的变化。
- 2017 年全部基于 UCloud 是有单点问题的,明年我可能会加上备份和多点接收方案。
- Presto 工具有各种各样的问题,我们的技术栈也特别长,我会浓缩技术栈,以后全部都基于 Spark。
- 明年会对 Spark 和 Scala 增强人员投入,今年我们也找到了阿里的小伙伴来加盟一起做。
- 明年我会把 VMware 这套东西全部废掉,转型到 Docker。随之我们会把Dubbo 直接并到 Spring Cloud 架构里面,花一年时间把整个技术栈从各种各样的开源组件逐步收缩。以上是 2018 年的。
- 2019年我们开始做双活,把 Hadoop 和 Spark 做 Docker 化。
一路走来,必须要很稳健。保证在人员投入和其他投入是线性增长的情况下,满足指数增长的收益和指数增长的需求,不能为了技术而技术,在整个布局和战略上都必须遵从公司战略,这是每一个公司CTO都面临的挑战。
易观的大数据平台架构简单来看如图中所示:
- 底下是各种各样的云端数据接受策略和数据接收组件。
- 中间有一些分布式的数据流转平台、实时队列和分布式组件。再往上是提到的平台,加载了通用查询引擎,这样产品调用就不用那么痛苦了。实时这边也有 Spark 和 Storm。
- 除了分布式查询实时处理之外,还有一个调度资源管理工具叫 EAMP ,他其实是主要负责所有任务的调度、分布式资源管理和数据监控,包括批量作业的触发,包括我们现在的服务是不是有问题并发的。在数据治理服务方面也做了一些东西,像元数据的管理、数据口径的管理、数据质量的检测、数据的鉴权和审计,这个其实都是在数据治理服务的模块里面。
- 再往上是我们刚才提到的数据发布平台,也就是我们的 API Gateway,它能够调用封装好的API,同时能够看到请求情况和次数。
- 顶层就是对外的各种服务了。
这就是易观整个的大数据平台架构。
不解释,最终要让事情发生
最后分享一个心得,其实就是这一句话:不解释,最终要让事情发生。你的决策受到各种各样资源的限制,你可以找一万个理由用来解释,用这一万个理由去不做事情。然而,作为技术和产品一把手,你不能解释,只能让事情去发生。
这也是我从总监到 CTO 的转变。CTO找总监希望找能扛事儿的,而CEO找 CTO 希望找到能成事儿的。扛事儿和成事儿是两个不同的境界。大家将来成为技术产品一把手的时候,把这句话记在心里:不解释,最终要让事情发生。
到最后,易观沉积了非常大规模的数据,现在我们有 20 多亿的用户画像,月活接近5亿,各种各样的标签都有。我们现在抱着开放的心态,拥抱各种各样的合作伙伴。
小熊财经--创建直播房间,触发财富梦想: www.gz383.com