函数计算助力新浪微博完成每日数十亿次个性图片处理

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 新浪微博(Sina Weibo)是基于用户关系的社交媒体平台,用户可以通过 PC、手机等多种移动终端接入,以文字、图片、视频等多媒体形式,实现信息的即时分享、传播互动。任何用户都可以创作并发布微博,人人都是世界的主角。微博基于公开平台架构,提供简单、前所未有的方式使用户能够公开实时发表内容,通过裂变式传播,让用户与他人互动并与世界紧密相连。

客户介绍

新浪微博(Sina Weibo)是基于用户关系的社交媒体平台,用户可以通过 PC、手机等多种移动终端接入,以文字、图片、视频等多媒体形式,实现信息的即时分享、传播互动。任何用户都可以创作并发布微博,人人都是世界的主角。微博基于公开平台架构,提供简单、前所未有的方式使用户能够公开实时发表内容,通过裂变式传播,让用户与他人互动并与世界紧密相连。

客户痛点

自 2009 年 8 月上线以来,新浪微博就一直保持着爆发式增长。截止 2019 年 6 月,微博月活跃用户数高达 4.86 亿,平均日活跃用户数为 2.11 亿。业务的快速增长向微博的原有技术体系立下战书。

每年的元旦、春晚、红包飞等更是为微博带来巨大的流量挑战,这些业务场景的主要特点是:瞬间峰值高、持续时间短。每一次峰值事件的互动时间在 3 小时左右,而明星事件、红包飞等业务,经常会遇到高达几倍的瞬间峰值。微博 IT 的传统应对手段,主要是 “靠提前申请足够的设备保证冗余、降级非核心及周边的业务” 这两种,除了需要提前预知相关 IT 成本外,还有业务负载饱和度不一、扩缩容流程繁琐且周期长等问题。

与此同时,社交媒体与人们生活作息时间紧密相关,在奔波忙碌的午后,人们专心工作无暇与朋友们分享生活,请求量平缓;在闲暇安逸的傍晚,纷纷掏出手机查看当日的新鲜事,请求量激增。在生活一朝一夕的背后,微博的负载有着明显的波峰波谷,且峰值相差 5 倍以上。

如何在应对用户量飞速增长,热点事件流量暴增,请求有明显波峰波谷的同时,不影响用户体验,又不增加巨大的服务器成本投入是微博技术同学的当务之急。

解决方案

借助公有云 Serverless 架构应对爆发式峰值流量的解决方案映入微博同学的眼帘。

函数计算是阿里云提供的 Serverless 计算平台,根据请求量动态分配执行环境,毫秒级调度计算资源,确保在负载高时保持稳定的延时,在负载低时有着较高的资源利用率,且只会对代码运行时使用的计算资源付费。更棒的是函数计算与对象存储服务无缝集成,可以方便地对存储在对象存储中的图片进行实时处理。

函数计算的弹性扩容、事件触发、按量付费的特性与新浪微博一拍即合。微博决定使用函数计算部署图片处理业务。
微博.png

微博将用户上传的图片存储到阿里云对象存储中,编写函数实现个性化的图片处理。当微博的用户通过客户端获取图片时,请求通过阿里云 CDN 回源到函数计算,函数从对象存储中下载原图,根据客户端类型实时处理成预期规格的图片,并将结果图片返回。

使用效果

函数计算毫秒级伸缩计算资源确保应用在热点事件发生时仍能保证稳定的延时,用户体验完全不受访问次数的影响。

通过函数计算运行图片处理服务,微博实现了持续的成本节省。再也不需要为平滑处理业务高峰带来的流量激增而提前预留大量闲置机器资源,同时由于不需要维护复杂的机器状态,工程师可以集中精力与产品团队合作增加业务价值,而不是花时间管理基础设施。

微博的活跃用户数不断增长,截止到 2019 年底,函数计算平均每天承载微博几十亿次请求。随着微博业务规模的不断扩张,函数计算可以自动弹性地分配更多执行环境以支撑微博业务的持续发展。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
JavaScript Serverless Shell
函数计算对图片处理的例子|学习笔记
快速学习函数计算对图片处理的例子
168 0
函数计算对图片处理的例子|学习笔记
|
Cloud Native Serverless Shell
快速搭建 Serverless 在线图片处理应用
本文重点介绍如何快速地在函数计算平台上部署一个弹性高可用的图片处理服务,然后在此基础上轻松的定制化。
快速搭建 Serverless 在线图片处理应用
|
Serverless 对象存储 Python
10分钟上线 - 函数计算实现Serverless图片处理服务
阿里云函数计算服务(FunctionCompute,FC)是一个事件驱动的全托管计算服务。通过函数计算与云端各个服务的广泛集成,开发者只需要编写函数代码,就能够快速地开发出弹性高可用的后端系统。接下来我们FC,来快速实现一个图片处理服务。
9493 0
|
13天前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用之在阿里云Serverless中函数计算FC nginx 部署上去之后放置静态页面如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
219 0
|
13天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
986 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
|
13天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,在response.send()之后继续执行其它代码如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
162 0
|
13天前
|
运维 负载均衡 Java
Serverless 应用引擎产品使用之在阿里函数计算中,创建了个关于 stable diffusion 的函数服务,总是很卡如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
142 0
|
13天前
|
人工智能 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中使用自定义字体如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
139 0