Camera360是七牛的早期用户,是一家科技与艺术相结合的公司,以帮助用户用最便捷的方式捕捉和分享生命里美好珍贵的瞬间为使命,由于在产品各个细节都尽力为用户提供良好体验,而深受喜爱。从2010年发展至今,在全球已经拥有超过4.5亿用户,并先后发布MIX滤镜大师、照片圈、宝贝相册、Camera360 Sight、HelloCamera、Movie360、Pink360、Camera360 Cloud和Web Camera360等多款产品,打造“手机摄影生态圈”。如何在维护用户高速增长的同时,不断丰富产品线,发布众多新品,不免引人思考。本文中,Camera360技术副总裁刘宏伟将为大家详细讲述其中缘由。
结缘七牛,借力云服务
身为Camera360技术副总裁的刘宏伟,是公司多个核心技术团队的组建者,长期关注研发效率,先后成立多个特别小组,解决团队效率需求,确保团队始终保持着高执行力和凝聚力。这无疑是开篇中所描述的一切得以实现的基本前提,而善用云服务更将其夯实。“作为创业公司,人力物力十分有限,我们应该将优势资源投入到自己最擅长最具有竞争力的业务上去,借力七牛提供的云服务能帮助我们节省大量的时间和成本。”访谈伊始,刘宏伟笑着说到。
与七牛的结缘是在2012年,当时两家公司都处于创业初期。对Camera360来说,七牛创始人许式伟在行业内的知名度以及七牛在存储领域的创新理念十分具有吸引力,但决定最终选用七牛的服务是经过一系列对比和深思熟虑的。“由于我们必须将研发精力集中在产品业务上,所以我们对所选云服务的可用性、易用性、扩展性等有非常苛刻的要求。七牛不仅有非常棒的存储技术实力,并且能够快速地支持我们在产品上的定制需求,提供7*24小时的技术支持,很好地满足了我们的要求,同时在成本方面,七牛也相当具有竞争力。”他强调,“现在我们的用户已达到几亿级,相对以往有很大增长,哪怕是一秒钟的闪断都是不能容忍的,而七牛提供的服务始终高效稳定。”
目前,Camera360基本使用了七牛提供的所有产品和服务,例如Camera360云相册使用了存储、CDN、缩略图和音频转码等业务。除了稳定的存储服务和上传下载双向加速的CDN服务,七牛提供的图片和音频实时转码特性被刘宏伟连连称道。七牛有非常强大的转码集群,在产品需要扩展一种新的图片规格时,转码集群能很快完成,并且将转码生成的新规格图片放在七牛提供的缓存层供App调用,不用占用存储空间。Camera360每天产生的照片数量已达2亿张,累计照片数达到千亿张,这种服务器端只需存储一份原图,其他规格实时生成且不占用存储空间的机制,自然给Camera360带来诸多益处,成本是一方面,良好的用户体验也是不言而喻的。
小选择,大收益
“类似于CDN、缩略图、音视频转码等贴心业务,让我们从基础业务中解脱出来,使我们少受干扰、更加专注,更重要的是七牛让我们具备了选择权。”刘宏伟的言谈中略显兴奋。选择权?这个说法,在云服务领域第一次听到。对此,他给出了以下解释。在2014年上半年,有段时间Camera360频频收到用户反馈,图片加载速度慢,经认真分析对比后,刘宏伟及其团队发现,应对大图片加载慢这个问题,他们选用在图片没有加载成功时用Camera360的logo来做填充的处理方法,形成了不够好的用户体验。由此,他们想尝试采用业界经常提到的“平均色”,来解决这一问题。平均色的用途是在照片还未加载完成的情况下,先用色块填充照片区域,暗示用户照片正在加载,减少用户焦虑,从感性的角度减少加载时长。
在做完充分的分析和调研之后,Camera360研究院很快拿出了平均色算法程序。但考虑到Camera360云相册每日上传规模较大,照片上传完成后再做运算成本高、延迟长,而且自己部署和运维程序的话,也要消耗团队大量的时间和精力,于是刘宏伟与七牛技术团队进行了深入的交流和探讨。最终一致决定,由Camera360发挥自身专业优势提供效率高、通用性强、感官自然的平均色计算算法,由七牛团队在存储集群中提供高性能、高可用性部署,向所有使用七牛业务的开发者们分享该成果,大家可以通过“魔法变量”中的“imageAve”参数获取平均色(具体参见技术文档:http://developer.qiniu.com/docs/v6/api/overview/up/response/vars.html)。
由于七牛采用的分布式存储架构本身具有很强的可扩展性,平均色算法程序交给七牛之后,七牛技术人员用一周时间就将Daemon做出来了,后面用了不到一周时间来做调试和优化。总共花费两周不到的时间,这项服务就正式上线了,为Camera360和其他需要此项服务的七牛小伙伴均带来了很大方便,在图片上传后调用之前,就完成了平均色的计算和填充,极大地改善了用户体验。
他山之石,可以攻玉
“自Camera360与七牛建立合作关系以来,已经进行了多次深入的技术交流,每一次都很有启发性,特别是七牛CEO许式伟和CTO韩拓分别做的技术分享,对我们团队的成长帮助巨大,至今历历在目。”刘宏伟回忆道。有次许式伟在分享中提到,设计方案评审和技术债等概念,强调了过度设计会产生很多并不需要的设计,有时会导致工期延误、开发成本变高等问题,而设计不足,则会导致架构的可扩展性极差,后期做架构调整困难等问题,并基于此给出了自己的经验和技巧。刘宏伟带着团队的人一起深入学习了这次分享,目前团队所有的子系统设计方案都会经过讨论PK的,并且由于对技术债有了更加客观准确的理解,他们已能做到有目的地“借债”有计划地“还债”,在日益增长的业务需求与有限的人力资源中寻找平衡,灵活应对。
而韩拓分享的运维自动化和研发流程自动化等方面的经验同样令刘宏伟的团队受益匪浅。受韩拓的自动化思路的启发,Camera360结合自身的业务特点,很快建立了自己的自动化工作流,不仅包括上线自动化,还包括Andriod&iOS打包自动化,从研发提交最新代码到粉丝下载体验最新包,最快能在3分钟内完成,完整地实现了“代码提交->单元测试->自动打包->上传包到服务器->发送新包推送->下载安装统计”无人值守的自动化流程,对团队的工作效率有非常积极深远的影响。
结语
根据App Annie的最新数据,Camera360现名列全球前30大应用,超过Twitter、Amazon等,与Camera360同列全球前30还有WhatsApp、Facebook、Line、Snapchat等。刘宏伟表示,海外业务已成为Camera360的业务重心之一,目前已经着手展开全球化部署计划的完善阶段,同时会加大对存储的投入力度以及与七牛的合作深度。