scorpion 2016-09-26 12248浏览量
从2006年AWS发布的第一个云服务S3开始,存储,计算等IT基础设施的能力纷纷被以服务的方式提供给用户。过去十年,云服务深刻的改变了社会获取和使用计算能力的方式,云服务自身也以极快的速度演进,新的服务形态不断涌现,无服务器计算(serverless computing)就是其中之一。阿里云函数计算,是一种事件驱动的无服务器计算服务。用户只需要编写并上传代码,阿里云函数计算会以可靠的方式执行代码,并随访问压力平滑伸缩。用户可以将代码关联多种事件源,由事件触发,也可通过http请求的方式直接调用。
以开发一款移动应用后端系统为例,采用传统的方式,用户需要:
对用户而言,采用这样的方式构建系统,大量的精力都花在了处理服务器相关的无差异化的问题上,无法聚焦打造业务上的核心竞争力。而采用serverless的模式开发,用户只需要专注于业务逻辑的实现;服务器的容量规划、部署维护、容错、扩展等方面的问题由计算服务提供商来解决。下图是使用函数计算实现一个图片服务的示例。
可以看到,基于函数计算构建业务系统,用户不再需要考虑服务器相关的问题,由此获得了相当明显的优势。
开发效率高。
运维代价低。
平滑伸缩。
成本低廉。
广义上讲,云计算的发展实际上就是一个serverless化的过程。例如使用阿里云的对象存储服务,用户实现了存储的serverless化;使用阿里云的数加计算平台,用户实现了大数据处理的serverless化。近年来涌现的平台即服务(Platform-as-a-Service, PaaS),容器即服务(Container-as-a-Service,CaaS)等,都在一定程度上实现了serverless。每一种服务,都在不同的粒度上对计算进行抽象,而阿里云函数计算,则将计算的抽象粒度提升到了函数层次,属于函数即服务(Function-as- a-Servcie,FaaS)。相对于PaaS/CaaS,FaaS支持更小的计量和伸缩的粒度,因此在成本和伸缩平滑性上具有独特的优势。
下表从不同维度对比了IaaS,CaaS,PaaS和FaaS。
维度/服务类型 | IaaS | CaaS | PaaS | FaaS |
---|---|---|---|---|
开发效率 | 低 | 中 | 中 | 高 |
可伸缩性 | 低 | 中 | 中 | 高 |
可运维性 | 低 | 中 | 高 | 高 |
成本 | 高 | 高 | 高 | 低 |
开发效率
- 低:用户需要处理机器相关的问题,包括容错,扩容缩容等问题。
- 中:用户只需要实现业务逻辑。
- 高:用户只需实现业务逻辑,并通过事件驱动的方式有效组合各项服务。例如上传图片到对象存储服务后,自动触发对应的函数处理。
可伸缩性
- 低:以机器为粒度,在数分钟内完成扩容/缩容。
- 中:以容器为粒度,在数秒内完成扩容/缩容。
- 高:以事件/请求为粒度,扩容/缩容对用户是透明的,随用户访问量自动伸缩。
可运维性
- 低:用户需要管理操作系统及以上层。
- 中:用户需要管理容器即以上层。
- 高:用户需要管理应用及以上层。
成本
- 高:按照资源规格,小时时间粒度计费。
- 低:按照资源规格,毫秒时间粒度计费。
综上,阿里云函数计算这样的FaaS,是一类非常有趣的服务。他们在易用,低成本,高可用,实时弹性伸缩等方面的优势使其在各种截然不同的场景中都极具吸引力。
虽然FaaS作为新生事物,仍然面临工具链、生态成熟度方面的挑战,但这种模式已经体现出了巨大的潜力。阿里云函数计算将致力于打造无服务器计算生态圈,最大化用户价值,敬请关注!。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
Serverless微服务应用实践分享