前面几期文章我们介绍了混合云模式,以及面向应用层的云架构解决方案的 Spring Cloud。接下来,我们就以蘑菇街的两个具体案例,来分享一下基于混合云模式的具体实践。
今天,我们先一起看一下我们最为熟悉的 CDN 和云存储建设。
CDN 和云存储
我们之前提到,CDN 应该算是最早期、最典型的公有云服务,如果我们在业务上用到了 CDN 服务,其实就已经算是在实践混合云模式了。
蘑菇街作为 ToC 的电商业务,自然会有大量的图片访问需求,其中尤以商品图片为最。为了保证用户体验,我们的产品在 2011 年上线之初,就应用了 CDN 技术,当时我们合作的都是专业的 CDN 厂商。
当然,大量的图片访问需求会带来大量的图片存储需求,且随着业务高速发展,这个需求量必然会极速增长。
图片的访问需求量往往会以几百万、几千万、几亿到几十亿、上百亿的增长态势呈现。而它所占用的存储空间也会从 G 扩展到 T,到几十 T、几百 T,再到后来的 P 级别。
所以,起初我们在业务量不大的时候,还可以把图片存在自己的硬件设备上。再往后可以利用 HDFS 这样的对象存储技术来实现,CDN 回源的请求全部回到我们自己的机房里。
因为对于蘑菇街来说,我们还是期望能够把更多的人力和物力应用到业务技术层面,而不是一味耗费在专业技术研究上。
在 2013 年左右,业界开始出现专业的云存储厂商。在专业技术层面要比我们精深很多,而且他们聚拢了一大批业界专业人才,积累了各类海量存储场景的实践经验,所以他们在产品研发和服务支持上也是能够持续深入的。
基于此,我们后来就选择了将海量的图片放到专业性更强的云存储之上。
到这个阶段,我们的图片访问和图片存储就近乎完全依赖外部第三方的服务,同时也形成了 CDN 回源访问云存储这样的云应用模式。
再往后发展,随着国内两大公有云巨头腾讯云和阿里云相继杀入 CDN 市场,这对传统的 CDN 厂商和新兴的云存储业务造成了很大的冲击。但究其主要原因,我认为还是由于云生态的规模优势发挥了作用。