3.1.1.3 图片存储架构
3.1.1.3.1 客户痛点
以某图文社交平台为例,自该图文社交平台上线以来,其在线用户数一直处于爆 发式增长的状态。截止2019年中,该平台的月活跃人数几乎可以达到5亿的级别,平 均日活跃用户数为2亿多。业务的急速增长对该客户的原有技术体系造成了极大的冲 击,例如:
1、流量激增:一些已知的业务高峰场景例如:重要节日、重要活动等场景则会 带来巨大的流量挑战,这些业务场景的主要特点是:瞬间峰值高、持续时间短。每一 次峰值事件的互动时间在3小时左右,而明星事件等业务,流量经常会增加至原来几 倍的瞬间峰值。
2、流量峰谷差大: 社交媒体与人们生活作息时间紧密相关, 在奔波忙碌的午 后,人们专心工作无暇分享生活,流量请求量平缓;在闲暇安逸的傍晚,人们纷纷掏 出手机查看当日的新鲜事,流量请求量激增。在生活的一朝一夕背后,该图文社交平 台的负载有着明显的波峰波谷,且峰值相差5倍以上。
应对流量激增问题,平台的开发者的传统应对手段,主要通过以下几种方式:
1、提前申请足够的设备保证冗余。
2、降级非核心及周边的业务。
但以上解决方案需要提前预知相关IT成本,造成业务负载饱和度不一及扩缩容流 程繁琐且周期长等问题。如何在用户量飞速增长、热点事件流量激增及请求有明显波 峰波谷的情况下,既不影响用户体验,又不增加服务器成本投入是该平台开发人员的 当务之急。
3.1.1.3.2 解决方案
公有云Serverless架构具有应对爆发式峰值流量的优点。函数计算是阿里云提供 的Serverless计算平台,函数计算可以根据请求量动态分配执行环境,毫秒级调度计 算资源,确保在负载高时保持稳定的延时,在负载低时有较高的资源利用率,且只会 对代码运行时使用的计算资源付费。函数计算还可以与对象存储服务无缝集成,可以 方便地对存储在对象存储中的图片进行实时处理。
该图文社交平台使用函数计算的弹性扩容、事件触发、按量付费的特性部署图片 处理业务,将用户上传的图片存储到对象存储中,编写函数实现个性化的图片处理。 当平台用户通过客户端获取图片时,请求通过阿里云CDN回源到函数计算,函数从 对象存储中下载原图,根据客户端类型实时处理成预期规格的图片,并将结果图片返 回。
3.1.1.3.3 架构效果
函数计算可以毫秒级伸缩计算资源确保应用在热点事件发生时仍能稳定地运行, 使用户体验不受访问次数的影响。
通过函数计算运行图片处理服务,客户实现了持续的成本节省。无需再为平滑处 理业务高峰带来的流量激增而提前预留大量闲置机器资源,同时开发人员无需花费精 力管理及维护基础设施,只需集中精力与产品团队合作提升业务价值。随着社交平台 活跃用户数不断增加,客户的业务规模不断扩张,函数计算可以自动弹性地分配更多 执行环境以支撑社交业务的持续发展。
《云上社交行业技术服务白皮书》——第三章 云上社交典型场景与架构——3.1 通用大社交媒体——3.1.1 文字与图像社交(下) https://developer.aliyun.com/article/1232428?groupCode=supportservice