Mobvista处理10亿日均触达移动终端用户需求的技术之谜
在众多互联网公司出海需求强大的新赛道领域,Mobvista依托扎实的营销经验与深厚技术优势,跻身全球第三方移动广告平台的第一阵营。据业绩报告显示,截止2018年第四季度,Mobvista移动广告业务日均触达的独立设备数量超过10亿,较去年同期增长140%。不同于传统意义上的广告公司,Mobvista是以大数据和AI技术驱动的科技公司,技术研发是其发展的基础和根本。Mobvista在移动营销业务中能够一路高歌猛进,实际上离不开其通过自身技术优势,可以说,持续的、大力度的研发投入、以技术驱动业务增长是Mobvista发展的关键所在。据年报显示,Mobvista研发支出占总支出比重较大,2018年Mobvista研发投入占销售额的6.7%,2017年这一数据为6.1%。同时,公司研发人员占比达49.5%。
作为一家在全球16大城市设立办公室、团队规模超过700人的公司,Mobvista从创业一开始就迁移到AWS全云架构之上,2017年开始全面转向全云原生软件架构体系,2013年到2015年,Mobvista经历了三次大的系统架构升级,分别对应系统承载点击量达到100万次、1000万次和1亿次三个节点。而到了2018年底的10亿日均触达移动终端用户,不仅系统架构需要重构,其所使用的云资源费用也需要不断降低。
2017年起,Mobvista一方面展开架构向微服务为代表的云原生构架迁移,另一方面则探索在全面采用云服务的前提之下如何节省更多的成本。Mobvista刚开始只使用了少量Amazon EC2和AWS的简单数据存储服务,随着业务的快速发展和系统架构的升级,陆续采用了AWS在新加坡、日本、北美、欧洲等多个区域的服务,包括Amazon EC2、Elastic Load Balancing、Amazon Redshift、Amazon DynamoDB、Amazon S3、Amazon RDS、Amazon EMR等一系列产品,建成了覆盖全球236个国家和地区的移动广告网络平台。此前Mobvista已经使用了几乎所有的AWS技术,获得了全球化云计算架构的高可用、高可扩展、高可靠和可维护性等收益,这些都是Mobvista处理10亿日均触达移动终端用户庞大需求的技术基础。
随着系统规模的日益扩大,Mobvista的更大挑战来自于不断攀升的云资源成本。以往Mobvista的几大业务系统,都是架设在云端的大型单体系统。虽然单体系统可以在云端不断扩展规模,但当某一个功能成为瓶颈而需要扩展该功能时,只能不断复制整个单体系统从而达到对单一功能扩展的效果,这就浪费了大量的计算资源。因此,Mobvista开始了从云单体系统向云原生架构的改造,包括采用微服务、无服务器计算等多种云原生技术。此外,Mobvista在构建云原生架构的时候,引入了面向容错、面向故障恢复的架构和混沌工程,从而构建一个可用的微服务架构。这让系统架构更加具有弹性,从而可以更好利用云端的高弹性资源,而高弹性计算资源往往具有更好的价格优势。例如,利用AWS Spot Instance竞价实例。Spot Instance本质上来说是开放AWS闲置资源供使用,当资源紧张的时候会被回收,并且只给两分钟的提前通知时间。大多数情况下,Spot Instance能比按需使用的Instance节省80%-90%的成本。但为了保持系统服务的可持续性和SLA服务水平,就需要有效的应对Spot Instance回收而产生的系统集群容量变化,这就是面向容错和恢复的架构以及混沌工程。目前,Mobvista的在线系统集群中70%的Instance都是Spot Instance,单次广告请求的成本降低了65%。
如今,Mobvista还把使用Spot Instance的经验和实践进行了对外的产品化输出:SpotMax。Mobvista的SpotMax解决方案和服务,包括了MaxArch、MaxChaos和MaxGroup三大部分。其中,MaxArch是一种架构咨询服务,主要是Mobvista为客户提供的其现有架构评估以及向云迁移和云原生架构设计;MaxChaos是基于开源软件及Mobvista自研的服务框架之上,提供混沌工程服务,让客户可以持续提高生产系统可用性;MaxGroup则是Spot Instance管理服务,通过集群防退化、Spot Instance集群推荐及基于强化学习的混合机群负载均衡等,帮助云上系统进一步节省成本。
随着研发投入的不断加大,战略布局的优化以及业务实力的精进,Mobvista或将继续构建更加开放、多元化的生态系统服务平台,提供更丰富的产品与服务,从而占有更大的海外营销市场份额。