处理960亿张照片需要怎样的技术架构支撑?

jopen 10年前

在成都天府软件园中,聚集了一大批国内外知名企业入驻,同时,随着成都创 新创业风起云涌,一时间也成为了风险投资和创业团队集结的高地。在天府软件园中,成都品果科技有限公司(以下简称品果科技)可谓是无人不知,品果科技是一 家以打造“手机摄影生态圈”为宗旨的公司,旨在为全世界的手机用户提供最实用的手机拍照软件,而Camera360就是大家最为熟悉的品果科技的产品。

据统计,截止到2015年第一季度,Camera360的全球用户数量突破了4亿,单日产生的照片数量也达到了2亿张,也许就在你看这篇文章的同时, 就已经产生了几十万张照片。每天产生如此多的照片,需要存储的不仅是照片,还有用户信息、照片元信息、用户与照片之间的信息,以及在照片合成视频时需要用 到的GPU运算等等。在如此大量存储需求以及运算能力的背后,是亚马逊AWS云服务保障了这4亿用户流畅的使用体验。

持续增长的业务带来的压力

2010年,品果科技正式成立,同时在当年发布了Camera v1.0的Android版本,紧接着在第二年,Camera360的iOS版本发布后,一举超过Instagram,成为了苹果APP Store中美国区排名第一的摄影应用。

经过了融资后,Camera360的产品家族不断扩大,已经形成了产品矩阵,即整个产品生态圈以Camera360为主,第二层主要是MIX滤镜大 师、宝贝相册以及其他一些产品,最外层是以社交为主的照片圈。而Camera360经过了5年不断的更新和积累,用户数量已经超过了4亿,覆盖全球超过 223个国家和地区,累计产生的照片数量已经超过了960亿张。

面对日益增长的用户数、每日倍增的照片数量,以及不断的功能上线、版本更新,Camera360的技术团队感到了前所未有的压力。

对云服务的渴求

面对全球4亿的用户,每秒钟就能产生上千张照片,这对Camera360的存储能力提出了新的挑战。然而,照片的存储只是一小部分,每周新功能的上线,每天的版本更新,都对服务器、数据库等IT架构带来不小的挑战。

过去,当遇到用户大规模增加、照片数量增加,或是新功能上线这些需求时,Camera360需要购买一些新的服务器和存储机器,然后进行部署。但从机 器的选购到最终上线,至少也需要一个多月的时间。业务的快速发展,让Camera360的技术团队不断反思自己的技术架构能否应对产品的高速增长,随着云 计算的逐步落地,Camera 360想借助云计算的能力,来实现持续增长的业务需求。

不同于有些客户,为了云而使用云,Camera360对云计算有着深入的理解,在选择云服务时,也是有着严苛的要求。以下是Camera 360对云服务的期望:

· 快速搭建环境、部署业务

· 能快速扩容,最好能自动扩容

· 解决存储问题(IO、容量)

· 隔离性好(CPU、内存、IO隔离)

· 网络质量好(内网、出口)

· 节点多(国内、海外)

· 安全(网络、数据安全)

· 最好有一整套解决方案

· 出了问题能快速响应

· 成本可控

从这么多的要求来看,Camera360从自己的实际业务出发,确定自己需要的技术和服务能力,从而开始了云服务的选择之路。

选型的标准:注重软实力

目前,国内乃至全球,有众多云计算服务提供商,而各家提供的服务以及服务水平也参差不齐。在选择时,Camera360副总裁刘宏伟比较看重成本、安 全性和稳定性以及海外的拓展能力等方面。在经过了多方对比考量后,Camera360最终选择了亚马逊AWS。在谈到其中的理由,刘宏伟总结了四点。

 处理960亿张照片需要怎样的技术架构支撑?



Camera360副总裁刘宏伟



首先是AWS的全球节点分布很契合Camera360的全球业务以及用户分布。AWS在全球11个区域以及28个可用区向用客户提供服务,而 Camera360的用户中有60%-70%来自海外,因此,Camera360选择了AWS的中国、新加坡、日本、美国俄勒冈四个节点,来为自己的全球 用户提供服务。

其次,AWS拥有成熟的解决方案。AWS服务于2006年推出,提供超过40种不同的计算、存储、数据库、分析、应用程序和部署服务,帮助客户快速的完成迁移、降低成本和扩展应用程序。AWS经过了多年的实践验证,用户无需再进行探索,而是可以直接使用。

第三,技术领先。Camera360在2011年开发了云相册,而云相册业务的可用性非常高,并且要求磁盘有高性能的IO水平。然而,国内众多云计算 服务商提供的磁盘IOPS不能满足Camera360的需求,而AWS的最新的EBS(磁盘存储)可以满足Camera360上万次的读写请求,达到每秒 20000次。其次,AWS的弹性计算可以快速解决Camera360的需求,GPU运算减少云视频合成时间等。

第四是技术团队的支撑,这也是刘宏伟最注重的软实力。AWS提供了7*24小时的技术支持,帮助Camera360进行平滑的迁移、快速的扩容以及一 些技术上的帮助。刘宏伟表示,“正是因为依靠着AWS的技术支持,我们现在才有胆量和魄力马上将业务整体迁移到AWS上。技术支持不像是机器,这些都是看 不见摸不着的东西,但是实际上对我来说是最重要的东西。”

在选择了AWS后,Camera360将环境做成系统镜像,部署恢复只需几分钟即可完成;通过AWS Auto Scaling功能,自动扩容提升了服务的稳定性;Snapshot备份让Camera360每天都可以进行备份,并且恢复时间在1、2个小时内即可完 成;AWS中的身份认证管理(Identity and Access Management ,IAM)可以为每个研发人员分配账号,不会出现多人使用同一账号的情况,并且权限控制粒度更加细致,每个资源都可以单独控制。此外,Camera360 还将GPU的运算放在了AWS上,支撑了云特效、云视频合成以及云作图三个业务。Camera360的云特效在AWS上实现可以达到毫秒响应,而云视频合 成基本可以在一秒内完成,这在过去都是需要二、三十秒才能完成。

平滑的向AWS迁移

每一个要使用云计算的客户,都会担心一个问题,那就是迁移的平滑性、业务的稳定性。毕竟,大规模的数据和业务,从一个本地环境迁移到云上,不是简简单 单的点几个按钮就可以完成的事情。保证用户的持续使用,业务上不出现中断,是非常有挑战性的。对于Camera360这样对个人用户提供服务的客户来说, 可用性下降,用户体验变差,将会直接影响公司的品牌以及业务。

对于向云迁移,刘宏伟认为,首先企业要有勇气和魄力,需要很高的意愿来完成迁移的工作,在得到公司领导的支持和同意后,先要进行前期的调研,和云服务 商的技术团队沟通,做出所有可能的风险点预估以及相应的解决方案,然后建立测试集群,进行探索性的测试,要将所有的问题在测试环节中解决,包括风险点的排 除,最后再迁移到真实的环境中。

在Camera360的迁移过程中,AWS的技术专家寄予了很多的支持,不但将每一个迁移过程中可能出现的风险点列出,还逐一向Camera360的技术人员进行讲解,提供相关资料,并且每周进行一次讨论,当所有的风险点达到可控之后,再启动迁移。

刘宏伟强调,“Camera360此次迁移过程非常平滑,没有出现任何的事故或问题,是凭借AWS的技术支撑,这不光是硬件方面,毕竟产品都是现成的,迁移过程如此顺滑,这与AWS多年积累的技术经验是分不开的。”

很多客户迁移到公有云后,原有的IT基础设施就闲置了,而Camera360的机器却另有价值。Camera360技术副总监刘朝辉表示,拍卖可能是一种好的办法,但是可以利用旧机器搭建小的测试集群,让公司的技术研发人员在其中进行创新。


 处理960亿张照片需要怎样的技术架构支撑?


Camera360技术副总监刘朝辉



过去,Camera360是自建私有云以及使用其他公有云厂商的服务,但是未来,新业务将会全部直接放在AWS上,而老业务也会逐步都迁移到AWS上。

未来

在业务的底层基础架构迁移到AWS后,刘宏伟还希望通过AWS挖掘更大的业务价值。

首先是利用AWS的DevOps提升工作效率,通过深入了解AWS上的各种操作以及工具集,让开发人员在AWS上更加便捷的工作,提升工作效率的同时也提升了公司的核心竞争力;

其次,利用基于RedShift进行大数据挖掘,目前Camera360使用的是开源的集群架构,需要大量的人力维护并进行二次开发,未来计划将大数据业务移植到AWS中,节约成本,并且提高效率和能力;

第三是基于GPU进行照片数据挖掘,Camera360每天产生两亿张照片,但是Camera360的运算能力有限。刘宏伟表示,未来会通过AWS的资源进行大数据挖掘,例如情景识别功能,帮助用户更好的发现自己的照片。

本文来源:51CTO 作者:鸢玮 </p> </span>