Serverless,后端小程序的未来

作者简介:张鑫,ZStack创始人,于2006年加入Intel开源软件技术中心,从事Xen虚拟机开发,是世界上最早一批虚拟化开发者。《系统虚拟化》一书的主要作者。2010年,张鑫赴硅谷加入IaaS初创公司Cloud.com,是CloudStack核心开发人员,负责Oracle VM,Barematel,Baremetal VPC等核心功能。之后随Cloud.com并购加入了软件巨头Citrix,继续从事CloudStack的核心技术研发。2015年回国推出了全新的下一代开源IaaS:ZStack,2016年获阿里云数千万A轮战略投资,与阿里云在混合云方面深度战略合作。

自从2014年AWS推出Lambda服务后,Serverless一词越来越热,已经成为一种新型的软件设计架构,即Serverless Architecture。作为一种原生于公共云的架构,Serverless有什么优缺点?是否能应用于传统企业程序?是否适合私有云场景?是否像很多文章宣称的一样,会成为未来改变云计算的中坚力量?作为一名云计算行业的老兵,作者想在此文中分享一些自己的观点。

什么是Serverless

Serverless并不神秘,用一个简单的例子就可讲明。我们设计了一个AI应用,可以识别出图片中人物的人种,我们把它作为一种SaaS服务架设在公共云上提供给客户使用,其典型的后端架构设计如下:

图片描述

在该架构中,我们购买的云主机上运行了Tomcat Web Server,用于承载Java编写的AI应用。用户通过API上传图片。受限于云主机的本地存储空间,为了满足大量客户同时上传图片,AI应用实现了一个存储网关将图片导入公共云的对象存储。图片导入完成后,AI应用从对象存储读入图片进行识别,并将结果存入公共云的数据库中(例如RDS),用户使用API查询结果。

AI应用上线一段时间后受到了用户的欢迎,越来越多的公司开始使用该服务。根据统计数据,大多数公司在上午9点~11点、下午2点~5点集中上传图片,为了满足该时间段的突发访问量,我们设置了公共云的Auto-Scaling策略,在访问增加时动态创建更多的云主机来响应客户。AI应用的架构演化成:

图片描述

在这个架构中,我们需要做如下事情:

  1. 管理云主机。我们要关心CPU数量、内存大小、IP地址等等系统级的配置。同时还要关心云主机的操作系统,为部署AI应用拟定策略。操作系统和Tomcat的安全补丁也不能忽视,否则竞争对手可能雇佣黑客来攻击我们的系统。
  2. 配置公共云的Auto-Scaling的策略,应对高峰期突发访问量。
  3. 使用公共云的对象存储和数据库。
  4. 编写AI应用。

要完成这些工作,我们既要开发AI应用,又要营运支撑业务(例如管理云主机生命周期、管理操作系统)。这是当前架构的现实:为20%的核心业务营运80%的支撑业务。

下面用Serverless架构改写AI应用:

图片描述

使用公共云提供的Serverless框架(例如AWS的Lambda)改写应用后,我们不再需要云主机和Tomcat了。用户也可以直接将图片上传到对象存储,AI应用注册了对象存储的一组事件,当图片上传完成后,代码会被触发运行在一个全新的进程内,对图像识别并将结果存入数据库。图片识别

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值