知识卡片

存储云与图片云:同技术却拆两个系统的真正原因

普通读书笔记卡

内容

互联网业务场景中,用户会上传多种类型的文件数据(微信朋友圈图片、微博图片视频、优酷视频、淘宝商品图片等),这些文件具备几个典型特点:数据量大(用户基数大、上传行为频繁,例如2016年微信朋友圈每天上传图片就达到10亿张)、文件体积小(大部分图片几百KB到几MB,短视频播放时长也在几分钟内)、访问有时效性(大部分文件刚上传时访问最多,随时间推移访问量越来越小)。为满足用户的文件上传和存储需求,需要用到”存储层”技术中的”小文件存储”技术,存储云和图片云通常的实现都是”CDN + 小文件存储”这套组合,现在有了云服务之后,除非达到BAT级别的业务规模,一般不建议自己重复造轮子,直接购买云服务可能是最快也最经济的方式。但一个值得注意的设计问题是:既然存储云和图片云底层技术方案完全相同(都是”CDN + 小文件存储”),为什么不做成统一的一套系统,而要拆分成存储云、图片云两个独立系统呢?答案不在底层存储访问技术的差异上,而在于上层业务复杂度的差异——这是”图片”这类业务本身的复杂性导致的:普通文件基本上只要提供存储和访问功能就够了,而图片所涉及的业务要复杂得多,还包括裁剪、压缩、美化、审核、水印等一系列图片专属处理,因此通常情况下图片云会被拆分成独立系统对用户提供服务,而不是和通用存储云混在一起。

参考来源

- 位置:《从零开始学架构》第43讲《互联网架构模板:"用户层"和"业务层"技术》"用户层技术"之"存储云、图片云"(源文件:_epub-src/OEBPS/text00003.html) - 结论依据:原文说明"既然存储云和图片云都是基于'CDN + 小文件存储'的技术,为何不统一一套系统,而将其拆分为两个系统呢?这是因为'图片'业务的复杂性导致的,普通的文件基本上提供存储和访问就够了,而图片涉及的业务会更多,包括裁剪、压缩、美化、审核、水印等处理",直接支撑本卡结论。 - 原始内容:既然存储云和图片云都是基于"CDN + 小文件存储"的技术,为何不统一一套系统,而将其拆分为两个系统呢?这是因为"图片"业务的复杂性导致的,普通的文件基本上提供存储和访问就够了,而图片涉及的业务会更多,包括裁剪、压缩、美化、审核、水印等处理,因此通常情况下图片云会拆分为独立的系统对用户提供服务