您的位置: 网界网 > 周报全文 > 正文

[周报全文]DynamoDB征战100毫秒

2014年05月19日 16:17:35 | 作者:网界网记者 于翔 | 来源:网界网 | 查看本文手机版

摘要:在移动广告领域,实时竞价(Real Time Bidding,简称为RTB)的技术竞争日趋激烈。新一代广告营销模式的背后,每天都在上演着以100毫秒为单位的计算速度追逐赛。

标签
亚马逊
DynamoDB

伴随着移动互联网的普及,RTB(Real Time Bidding,实时竞价)成为一种快速蹿红的在线营销技术。所谓RTB,就是利用第三方技术在数以百万计的网站上,针对每一个用户的展示行为进行评估以及出价的竞价技术。RTB模式能够规避无效的受众到达,只针对有意义的用户进行广告位购买。也正是这种精准营销的能力,让RTB在2009年前后于美国市场强势崛起,并迅速风靡全球。

在RTB领域,有一个时间长度总被频繁地提及,同时它也是支撑RTB业务运营的一个关键指标,这就是100毫秒。所谓“100毫秒”,指的是当用户访问一个网站时,广告供应方平台即向Ad Exchange广告交易平台发送用户访问讯号,随后广告位的具体信息会经过数据管理平台的分析匹配后发送给需求方平台,需求方平台将以此展开竞价,价高者将会获得该广告位的展现机会,并且广告会被目标用户看到。而从开始竞价到完成广告投放,全过程仅耗时100毫秒。

4月3日,木瓜移动正式发布了其名为AppFlood的移动实时竞价广告平台。与同类平台相比,AppFlood最大的特点在于,这是一个完全基于亚马逊AWS(Amazon Web Services)云服务的平台。在数据库方面,AppFlood选用了Amazon DynamoDB数据库服务。

云数据库选型

木瓜移动在2008年由两位清华学子沈思和钱文杰创办,早期从手机游戏起步,逐步形成大型游戏社区。2012年,木瓜移动进入RTB领域,开始研发AppFlood移动实时竞价广告平台。目前,木瓜移动已经在旧金山、伦敦和北京设立了办公室,全球雇员超过100人,业务覆盖北美、欧洲、亚洲和中东等地区。

据木瓜移动CTO及联合创始人钱文杰介绍,区别于其他RTB平台,AppFlood提供了让广告客户查看广告发布商级别信息的透明机制,以方便广告客户实时鉴别和获取高价值客户。品牌商和代理机构可以在单一仪表盘上进行实时竞价的流量买卖,且不需要进行任何的技术集成。与此同时,AppFlood还支持富媒体和视频广告资源,并且提供反恶意软件监测服务。

作为AppFlood平台的核心部件之一,数据库的性能表现在很大程度上决定着该平台的实时竞价能力。“100毫秒的时间限制对于每个RTB平台都是严峻的挑战。网络通信的延迟,数据库数据读取的延迟,以及定价算法的计算延迟,都可能会造成竞价过程的超时,进而导致竞价失败。因此,在完善平台基础通信能力和强化算法之外,选择一个高性能的键值(Key-Value)数据库,对于RTB平台的建设和运营至关重要。”钱文杰说。

在开发AppFlood平台前,木瓜移动已经拥有近5年使用键值数据库的经验。先开始是使用MySQL和Redis,后来又尝试过Riak和MongoDB,陆续遭遇了一些问题。“以Riak为例,首先遇到的问题就是运维成本高,且十分耗时,不适合移动互联网业务的要求。另外,还出现了各种各样节点失效的问题。”钱文杰说。

经过了半年时间的考察,木瓜移动最终将目光锁定在亚马逊的DynamoDB。钱文杰表示,DynamoDB在性能方面能够满足RTB业务快速反应的要求,同时使用、扩展和管理都非常方便。“DynamoDB提供可控的读写延迟和并发数,以及传统键值数据库所无法提供的索引和查找功能,包括AppFlood在内的木瓜移动生产数据目前已经全部存储在DynamoDB上。”他说。

将全部的生产数据从MySQL迁移到DynamoDB,木瓜移动花费了六个月以上的时间。在初期,他们先把一部分数据放在DynamoDB上,并且和MySQL做“双启”。在进一步的性能测试完成后,真正的数据迁移才开始进行。为了支持全球化的业务运营,木瓜移动对DynamoDB进行跨区,具体的方法是通过“Redis+Storm”实现跨区备份。

“借助托管型数据库服务(+本站微信networkworldweixin),我们的团队不再需要处理节点失效等形形色色的故障,也不用担心数据遗失的问题,还能够实时调整I/O。这样一来,开发团队可以将更多的精力投入在改进产品和算法方面。”钱文杰说。

云上的软件开发商

目前,木瓜移动所有产品均构建在亚马逊AWS之上。钱文杰坦言,这样的平台选择与木瓜移动在创建伊始即主要发展海外移动互联网业务密切相关。

“我们选择在云上构建实时竞价广告系统,是从价格和交付能力两方面来考虑的。”钱文杰说。在价格方面,在云服务平台上不需要开发团队投入精力去维护硬件,运维成本大幅降低。企业还可以根据当前流量自由调整服务器数量。在亚马逊AWS平台上,Spot Instance和Auto Scaling是价格低廉的解决方案。另一方面,云服务商在全球范围内建设的机房,以及CDN节点能够确保应用交付的性能,从而用最低的成本降低系统延迟,并且可以进行便捷的异地备份。

钱文杰强调,基于公有云[注]的软件开发,可以让开发团队更专注于产品功能的改进,实现敏捷开发、快速迭代的目标。与此同时,依托公有云平台的全球同质化服务,真正做到本地开发,服务全球。谈到为什么选择亚马逊AWS作为单一的云服务平台,钱文杰坦言,早期木瓜移动也曾在北美地区小范围实验过GCE(Google Compute Engine)、微软Windows Azure等公有云服务。但经过评估,开发团队认为其他的公有云服务在价格和产品的丰富程度上逊于亚马逊AWS。

“亚马逊AWS的产品线丰富,运维服务也非常多,基本上覆盖了我们完整的开发需求。在亚马逊AWS上,我们可以利用多种服务器的类型构建理想的服务器集群,并且利用多地机房配合Route53将网络延迟降至最低。”钱文杰说。目前,木瓜移动主要使用的是亚马逊AWS在北美、欧洲等地区的区域服务。据悉,木瓜移动已经进入亚马逊AWS中国区域服务首批客户的名单,将在该项服务正式交付时率先使用中国区域服务。(更多内容详见: http://www.cnw.com.cn/P/5671)

参考资料

1.公有云:(Public Cloud)是第三方提供一般公众或大型产业集体使用的云端基础设施,拥有它的组织出售云端服务,系统服务提供者借由租借方式提供客户有能力部署及使用云端服务。它能...详情>>

[责任编辑:孙可 sun_ke@cnw.com.cn]