爱奇艺内容中台之Serverless应用与实践

本文从内容中台角度出发 , 以图片生产服务为切入点 , 结合对Serverless的理解 , 讨论其应用场景落地与实践 。
01什么是Serverless
Serverless , 顾名思义 , 就是无服务器 , 是一种按需提供后端服务的方法 。 Serverless提供程序允许用户编写和部署代码 , 而不必关心底层基础结构 。 尽管称为无服务器 , 但仍使用物理服务器 , 只是开发人员无需了解它们 。 总结下来 , 评判一个服务是否是Serverless的 , 最关键的一点是是否需要关心服务器 。 下面我们举个例子找找感觉 。
比如CDN , 我们把静态资源发布到CDN之后 , 就不需要关心CDN有多少个节点、节点如何分布 , 也不需要关心它如何做负载均衡、如何实现网络加速 。 那它就是一个Serverless的服务 。
我们似乎对Serverless找到了一些感觉 , FaaS , BaaS又是什么?他们和Serverless有什么关系呢?
FaaS(Functionasaservice) , 函数即服务 。 FaaS显然是Serverless的 , 但不能狭隘地认为Serverless=FaaS 。 举个经典的例子 , 我们写一段helloworld代码并部署到FaaS平台 , 不依赖任何后端服务 。 这种自嗨式的服务就是FaaS本尊 。
BaaS(Backendasaservice) , 后端即服务 , 代表了一些后端的云服务 , 比如云数据库、对象存储、消息队列等 。 我们在使用他们的时候 , 不需要关心他们是如何部署的 , 能抗住多大的并发 。 因此BaaS也是Serverless的实际的业务开发中 , 我们很少遇到单纯的FaaS应用场景 , 通常需要依赖一些后端的服务 , 比如日志服务、数据库、缓存、存储等等 。 因此从技术角度讲 , Serverless=FaaS+BaaS 。
爱奇艺内容中台之Serverless应用与实践
文章图片
02内容中台为什么使用Serverless
开发人员的基本诉求
节约服务器资源 , 实现降本增效 。
快速迭代、极速部署 , 作为服务开发者 , 都希望可以把精力放到业务之上 , 减少CI/CD的投入 。
HA、动态扩缩容 , 现在是微服务开发 , 服务拆分得越来越多 , 越来越细 , 如果每个服务都考虑HA、扩容的问题 , 意味着投入更多精力 。
内容中台属性
从内容中台角度讲 , 通用服务可以更好地服务于业务 , 这也是中台的战略方向 。 通用服务建设的好坏 , 直接影响中台建设质量 。 图片生产服务目前在爱奇艺服务100多个业务方 , 因此服务的稳定性、HA、动态伸缩能力至关重要 。 这种前提下 , 减少定制化开发、部署 , 就能节约不少工作量 。
图片生产服务属性
图片生产的特点使得服务的拆分粒度更细 , 除了微服务之外 , 还需要提供上面提到的自嗨式FaaS服务 , 比如图片的裁剪、缩放、打水印、生成二维码服务 。 服务多且杂 , 亟需降低对服务的各种成本 。
因此对内容中台来讲 , 这种细粒度的服务越多 , 使用Serverless带来的收益就越大 。
03图片生产应用案例
自嗨型FaaS
这种服务只提供图片处理的相关操作 , 主要服务于内部编辑 , 目的是提供同步的图片制作工具 。 例如图片合成、裁剪缩放、二维码生成、视频抽帧等等 , 目前总共提供了12+FaaS服务 , 应用于20+个业务场景 。 这些FaaS服务为编辑的线上工作提供了方便 , 将编辑线下的制作(如使用PS)迁移到线上 。
爱奇艺内容中台之Serverless应用与实践
文章图片
对于图片生产开发人员来说 , Serverless可以说最大程度降低了其工作成本 , 开发人员只需把精力专注在图片的生产逻辑上面 , 之后只需简单填写一些服务名称、资源配额、扩缩容策略 , 即可完成服务的部署 。