访蘑菇街:自建存储系统后为何还要选用第三方云存储?
蘑菇街早期主要为女性导购平台,在为广大女性提供有效信息的同时,也为各大电商平台带去精准的流量。但随着电商综合平台流量入口的关闭和移动端的发展,蘑菇街成功转型女性垂直电商,深受1.3亿女性用户的喜爱,成为大家眼中最受亲睐的“时尚买手街”。如此强劲的发展势头,让蘑菇街在资本寒冬之际,一举拿下金额超过2亿美元的D轮融资,并于近日宣布与另一女性快时尚电商平台“美丽说”合并。事实上,蘑菇街不仅页面清丽、内容时尚前卫,骨子里,它其实是一家科技型公司。
导购转型电商的背后是灵活变通的技术策略
蘑菇街2013年底开始从导购平台转向电商平台,在转型的过程中,业务发展迅猛成为团队关注的焦点,而技术层面,他们考虑的更多的便是如何能支撑起业务的快速发展。
电商平台涉及交易、支付等功能,对业务数据的及时性要求和系统稳定性要求很高。而蘑菇街团队不论是从最初的开源工具的使用、改造,还是到后续开源软件无法达到系统要求时对系统的自我研发,甚至自建了存储系统、CDN管理系统。在满足业务发展的道路上,蘑菇街技术团队的每一步都走得非常扎实。
但电商平台与导购平台不同的地方在于:
一方面,电商平台的图片文件会更多,每张图片都会涉及压缩、多种格式、不同分辨率等。尤其图片的各种转码方面,需求非常大,传统的做法是让后台运维工程师将图片所需要的规格都列出来,上传全部图片后再进行转化。当图片有改动时,运维人员再遍历所有图片,生成一个新规格。这时,运维人员的工作量很大,也需要大量存储空间。在移动互联网时代,用户的移动设备种类繁多,屏幕分辨率不一致,就需要越来越多的规格,随之而来的工作量和存储压力也会越来越大。
另一方面,电商的访问量及并发量很高,导致带宽占有高,从而对存储的空间要求更大。随着用户量的不断增长,数据的存储和处理问题也越来越凸显。然而,在业务快速发展面前,技术也需要以同样的速度予以支撑。这时侯,如果技术上面全部考虑自建,除建设周期较长外,还会耗费团队很大精力和巨额资金成本。
那么,蘑菇街的技术团队应该用何种方法应对产品及业务的快速变更呢?
在想到用第三方存储服务作为应对方案后,蘑菇街技术团队开始了调研工作,但那时,成熟的云存储方案商却寥寥可数。在功能需求、成立时间、技术积累及口碑等多方面因素的综合对比下,最终,七牛以稳定可靠的性能,图片处理API全面及快速的文件上传下载而赢得了蘑菇街技术团队的青睐。为了对七牛进行性能和压力测试,蘑菇街技术团队精心设计了压力测试程序,并选取了线上小部分流量进行测试,从各项数据指标来看,七牛表现非常稳定。于是,蘑菇街正式将大量图片数据迁移到七牛平台。
七牛提供图片实时转码功能,能实时扩展一种新的图片规格,并且将转码生成的新规格图片放在七牛提供的缓存层供App调用,不用占用存储空间。这种服务器端只需存储一份原图,其他规格实时生成且不占用存储空间的机制,能帮助蘑菇街节省大量的存储成本,同时用户体验也能得到很好的提升。
此外,七牛对于客户的反馈处理非常及时。蘑菇街技术负责人苏武回忆道,“蘑菇街平台上图片的分辨率达几百种,最开始使用七牛时,七牛的分辨率支持一百多种,所以蘑菇街无法进行更多分辨率的添加,于是我们将该问题反馈给了七牛,七牛这边响应很快,可以算是立即修改,立刻使用”。
成熟一体化源站解决方案的应用
图片相关的很多数据均具有价值,因此,蘑菇街自己也会对图片相关数据进行一些处理。所以,他们会备份一份全量的数据,方便其内部程序使用内部的存储。例如,团队内部对图片的处理、一些图片算法工程、鉴别广告及对图片上某些对电商有影响的算法的预演等。同时,他们也使用了七牛的一体化源站解决方案。
即针对图片存储,大的网站都会做多机房的冗余,使用七牛,蘑菇街可以在自己的主机房里做一份备份,其它的数据全部存储到七牛,由七牛的多副本机制保证蘑菇街数据的完整性,降低成本,并自然地达到多机房冗余技术方案的效果。
在该方案中,七牛的“镜像存储”服务有着非常重要的作用。蘑菇街利用镜像存储功能,可以非常简单地把源站数据被动同步到七牛对象存储平台。被动同步即只有在资源被访问时,七牛才会回源站获取一次,此后对该资源的访问都不会再发生回源动作,而是直接从七牛对象存储平台拿到数据。如果七牛对象存储平台上没有用户需要读取的数据,则七牛的服务器会从蘑菇街源站拉取资源,再返回给终端用户。
此外,使用第三方云服务还能使产品的整个技术架构可以平衡扩展,轻松应对流量爆发或者其它的突发性事件。对于电商平台来讲,各种促销活动以及“双十一”则是蘑菇街需要打的另一场技术硬仗。在“双十一”这天,蘑菇街承担的压力和流量是平时的几十倍甚至几百倍,如果为了双十一采购过多的机器,等到双十一结束时又会造成该批机器的闲置。使用七牛云存储服务则能保证其弹性伸缩及按需付费,从容应对突发业务的流量,同时还避免了技术及成本上的资源浪费。