汇量科技首席技术官王平:全球移动营销平台的底层基础架构

4月20日,联合亚马逊AWS,主题为“云计算助力数字营销”高端研讨会成功举办。 汇量科技CTO王平发表了题为《全球移动营销平台底层基础设施——AWS“系统部署”》的精彩演讲,分享了业务背景和场景介绍、企业运维面临的问题、架构和应用程序解决方案,以及为什么选择 AWS 服务。

汇量科技首席技术官王平:全球移动营销平台的底层基础架构(图1)

王平 汇量科技CTO

以下为演讲实录:

我想跟大家分享的是:作为一家数字营销公司,如何在AWS架构平台下实施整体系统。

整篇文章分为四个部分。 首先是介绍业务背景和场景、运维面临的问题、架构和应用解决方案,最后总结为什么选择AWS。

我从运维的角度简单阐述一下为什么分享这个。 事实上,我们也是一家初创公司。 作为一家创业型公司,我们在运维方面往往投入很大,但是在AWS上实施可以降低运维成本,让我们的系统更加健壮。

首先我们来谈谈我们的业务。 我们是一家帮助开发者推广产品并实现技术变现的全球性公司。 我们大约有 13 个办事处。 公司现有员工500余人,其中研发人员占40%。 我们是一家产品驱动的科技公司。

汇量科技首席技术官王平:全球移动营销平台的底层基础架构(图2)

由于2016年的财报数据尚未披露,所以营收11亿是2015年的数据。另外,去年8月我们公布了2016年上半年的财务报告。报告期内,公司实现了营业收入收入7.89亿元,仅半年就超过2015年年报全年数字。 这一业绩在新三板上市同行企业中排名第一。

左侧是整个系统的抽象概念图。 我们有两个业务,一个是推广,一个是变现。 推广是帮助APP开发者、移动开发者将自己的APP推广到全球,让全球用户下载安装。 。 第二个是变现,通过集成我们的SDK帮助开发者将流量变现。

汇量科技首席技术官王平:全球移动营销平台的底层基础架构(图3)

总体来看,我们的广告用户流量应该覆盖240个国家和地区,日展示量100亿,全球用户数据约20亿,目前变现的月活跃SDK数据超过3亿。 根据这些数据,我们的整体架构解决方案是由这两个业务驱动的。

我们的移动广告推广模式是在各种媒体上展示我们的广告。 用户看到广告点击后会出现各种跳转,在GP和iOS上下载,然后安装。 整个业务的商业模式就完成了,看起来比较简单。

这样的尺寸会面临哪些问题? 核心有五个:

1、我们的流量遍布全球,各地的网络也极其复杂。 如何在如此复杂的网络情况下为所有用户提供理想的广告展示和点击下载环境是首要的。 需要解决的问题。

2、海量用户下载和访问会导致高并发。 高并发带来的另一个问题是流量的不可控,这会导致爆炸,这意味着服务器可能会出现异常,企业会受到影响。

3、如何实现海量数据下的高速查询

4、如何利用云计算平台进行数据分析、挖掘及相关模型训练。

5、全球异地容灾和故障转移。

系统整体架构

汇量科技首席技术官王平:全球移动营销平台的底层基础架构(图4)

几乎所有模块都在AWS平台上,是AWS相对成熟稳定的运行模块。 首先,当用户来的时候,我们会通过DNS来做相关的路由。 当用户点击跳转到展示时,就进入了整体真实的后台服务模块。 我们已在全球11个地区部署了服务框架。 我们首先使用ELB进行负载均衡,然后通过ELB动态启停相关服务,保证容错。

然后,EMR被用于大数据部分。 所有数据都通过S3存储,相关数据通过EMR或者S3平台直接推送到业务平台,让我们的业务正常运转。

关于全球用户访问以及如何解决相关访问体验问题,主要有三个方面。 首先,我们将部署11个全球区域,然后使用Route 53找到链最短的区域,并通过该区域的负载均衡实现到相关实例。 这是我们网络优化的基本思路。

汇量科技首席技术官王平:全球移动营销平台的底层基础架构(图5)

我们取8月份一周的数据,可以看到全天的流量都有波动,同时每天的流量都有自然的增长。 最可怕的是,我们时不时会遇到浏览量突然增加的情况,有一次遇到流量突然增加,服务器宕机的情况。

系统的稳定性是我们需要解决的问题。 我们在这方面采取了多项措施。 第一个举措是从整体上重构我们的系统架构,将各个服务进行一定程度的解耦,然后部署在不同的服务器上,保证一个东西可以跨不同的业务使用。 尽可能减少对时间的影响。 尤其需要避免的问题是:次要业务影响主营业务,影响主营业务收入。 同时我们会通过方法自动扩容,这样在面对流量突然增加的时候可以直接启动服务器。 本方案通过运维人员的技术平台以及调用AWS的接口来实现这一功能。

前端的扩展相对容易,但后端收到请求后有一系列复杂的算法计算。 这个消耗存在,后端系统相对会比较困难。 然后我们将使其异步。 在一些核心环节,我们会在请求到来后做出必要的响应,同时将请求扔到相关文件或队列中,以异步的方式进行消费。 这样前端的完整性会得到更好的提升,不会因为突然的波动导致业务增加,造成后端数据计算崩溃的连锁反应。

解决海量数据高速查询

海量数据高速查询。 我简单介绍一下一家2013年成立的公司到现在经历的阶段。 它每秒处理 5-10K 写入。 如何完成毫秒级的查询就是这样一个课题。

一开始我们的数据量是几十万,我们用的是简单的单点。 优点很明显,快速简单,缺点是单点问题造成很大的读写压力。

当数据量增长到百万级时,这个模型就不再适用。 我们在基础上添加了Set。 第一个好处是读写分离。 二是消除了单点问题。 然而,这却存在一个隐患。 因为是全数据,随着业务的增长,后续的横向扩展会受到限制。

然后到了千万级别,我们在这个基础上又做了一遍,本质上是分表和数据库。 这样就实现了真正的分布,但是整体硬件和后期维护的成本非常高,或者一旦重新调整分片,整个时间会非常长。 这是千百万人面临的问题。

当最终达到亿级的时候,最终的选择就是解决快速查询的问题。 它几乎很好的解决了上面的问题,也是我们现在使用比较广泛的查询服务。 优点是几乎不需要人为干预,不需要考虑人为干预。

使用后,最上面一行是我们预留的资源,下面一行是实际运行的资源。 整体贴合度比较接近。 从这一点来看,当时保留的多,浪费的也多。 现在,它几乎更适合这条线,并且很好地控制了成本。

大数据分析与统计

汇量科技首席技术官王平:全球移动营销平台的底层基础架构(图6)

例如大数据分析的技术运维部署就是整体的变现框架。 前端是一些SDK和API,中间还有一些广告展示。 当用户看到广告并点击后,自然会进入全球部署的各个区域。 相关日志数据将集中在新加坡节点。 所有数据集中在新加坡节点。 处理。 整个分析平台建立在 EMR之上,底层是。 里面的数据挖掘和机器学习都是在这个平台上完成的。 后续输出模型涉及在线服务,到达全球各个节点。 这是基本的系统部署。

这里的核心还有两个模块,一个是EMR,一个是。 适合报表查询,可以通过快速查询相关数据进行各种维度分析。 EMR 是一个平台。 所有的数据都是按照这个数据流进行处理的。 全球数据存储在S3上,然后在新加坡节点中心进行整体聚合。 S3是一个全局透明的文件系统。 对我们来说是一个整体,使用起来也更加方便。 在这个过程中,你进入了平台,最终进入了业务集群。 它在快速查询方面做得非常好。 优点是表自动分区,中间扩容不需要停机。 还支持相关备份,兼容性好。

本来我们尝试自己搭建一个分布式平台,过程中的所有问题都解决了,但是我们发现我们在维护上投入了太多的资源。 后来我们迁移到 EMR。 这样做的好处是:整个EMR平台非常方便。 当需要的时候,10分钟左右就可以运行整个服务器,运行完就可以退出。

汇量科技首席技术官王平:全球移动营销平台的底层基础架构(图7)

现在我们平台上一直有数十万个任务在运行。 在这种情况下,我们就不会经常关机。 我们有一个集群每天24小时运行相关任务。 对于初创公司来说,这样的快速入门是非常方便的,整体使用起来也非常方便。 完成一个正在运行的任务大约需要四个步骤。 整个集群有AWS支持团队,大大降低了维护成本。

全球异地容灾与故障转移

最后简单说一下机房的容量如何划分。 第一个DNS会检查各个之间的健康状况,找到效果最好的,并通过各个内的负载均衡模块检查各个状态。 选择最好的一个。 这是一个大的机房或者是一个大的区域,当出现问题的时候可以解决问题。

汇量科技首席技术官王平:全球移动营销平台的底层基础架构(图8)

为什么选择AWS

我工作的公司之前内部构建了许多模块。 我一开始也有一个想法,有些东西还是需要自己去打造,但是当我真正进入创业公司看业务和产出效率时,我更关注投入产出比、效率等因素。和成本。 从这些角度来看,我更看重愿意选择AWS。

这是我们在做出选择时的一些考虑。 总的来说,第一是方便,第二是成本相对可控,第三是作为一个公司从2013年到现在,从小到大,我们会发现AWS在每个阶段都有很多优势。 有相应的配套工具可以支撑我们的业务,至少到目前为止我们还没有发现任何脱节。

同时,我们现在公司有500多人,技术团队150多人,还有在线服务器。 每月的总费用会非常高。 但在这种情况下,我们的运维团队只有6人左右,6人的运维团队要求很高。 维护团队已支持数百亿台显示器,维护了近千台服务器。 一定程度上来说,AWS上必须有第二个运维团队来支持我们的相关工作。 这也是我们选择AWS的原因之一。

谢谢你们!

部分文章来自互联网,如有侵权请联系删除。发布者:28预订网,转转请注明出处:https://www.28368.cn/yingxiao/21547.html