打破传统架构模式,降低成本并简化体系结构,用全新的思维更好地满足用户需求,函数计算这一无服务器计算(Serverless Computing)成为头部厂商分布式云、云原生方面的关注焦点。
IT意义上的函数计算
定义:Serverless应用是分布式云原生的重要特征,由函数计算驱动的全托管Serverless计算服务是未来分布式云的重要特点。
云原生基金会(CNCF)认为:无服务器计算是指开发者在构建和运行应用时无需管理服务器等基础设施。应用被解耦为细粒度的函数,函数是部署和运行的基本单位;用户只为实际使用的资源付费。可见,serverless 计算能够帮助应用开发者摆脱服务器等底层基础设施管理的负担,专注于业务层的创新。
定位:在未来5G/FTTH/WIFI6三千兆网络环境下边缘计算带宽瓶颈获得突破,未来分布式云算力或许是按每月函数调用次数来购买云服务,改变传统算力按核数或个数来购买的商业模式。
无服务器计算的发展历史
Serverless 不是一个新概念,计算、存储等领域的很多服务都是 serverless 的模式。用户不需要关心数据是如何存储在底层服务器上,只为实际使用的存储资源付费。
统计数据表明,近年来,各个云服务商推出的新服务/新功能,超过70% 都是 serverless 形态。随着云端 serverless 类型的服务种类越来越丰富,用户能够快速使用多种服务构建弹性高可用的云原生应用。因此,serverless 计算正变得越来越流行。
2019 年,Serverless 就曾被 Gartner 称为最有潜力的云计算技术发展方向,并被赋予是必然性的发展趋势。Serverless 从底层开始变革计算资源的形态,为软件架构设计与应用服务部署带来了新的设计思路。
O'Reilly的一份调研数据表明,Serverless具备相当高的市场接受度,且市场前景广泛:
函数计算的优势
在传统 Serverful 架构下,部署一个应用需要购买服务器,部署操作系统,搭建开发环境,编写代码,构建应用,部署应用,配置负载均衡机制,搭建日志分析与监控系统。
应用上线后,继续监控应用的运行情况,要管理云主机、操作系统接入控制及补丁,还需关心CPU数量、内存大小、IP地址等;为应对业务量的波峰波谷变化,还必须提前预配置弹性伸缩负载均衡等策略。
而为了节省成本以及资源配置最优化,开发者或运维人员必须在业务运行过程中根据实际情况不断调整弹性伸缩负载均等策略,以避免闲时资源太多。这个过程耗费大量人力成本与时间成本,而资源配置却未必能时刻达到最优。
而在 Serverless 架构下,开发者只需要关注应用的开发构建和部署,无需关心服务器相关操作与运维,在函数计算架构下,开发者只需要编写业务代码并监控业务运行情况。
这将开发者从繁重的运维工作中解放出来,把精力投入到更有意义的业务开发上。
实时弹性伸缩也是函数计算的核心优势之一,当用户负载出现波峰时,系统能实时扩张资源,平滑应对峰值访问。函数计算系统会监控用户的负载变化,各组件均能够根据用户负载动态伸缩,分配给用户匹配事件处理对应的能力。
由于函数计算采用分布式集群化部署,支持多可用区,如果某个可用区因自然灾害或电力故障导致瘫痪,函数计算会迅速切换到同区域其他可用区的基础设施运行函数,确保服务高可用,因此,函数计算还具备稳定高可用性。
函数计算在不同场景下可以使用不同的计量模式,按照实际使用资源计费,最大化提高资源利用率,有效帮助使用者降低成本。
函数计算的应用场景
第一,事件触发类场景,如定制图片, 定制事件,loT中的低频请求,音频转换文字处理,自动程序消息传递,基于定时器处理/定时器任务,日志处理, SaaS事件处理,批量任务。
第二,流量突发类场景,如弹性扩展应对突发流量,转码和流量扩容,多媒体(视频、图片等)数据备份,图片上传、裁剪、分享等。
第三,处理大数据类场景,例如数据驱动后续分发,实时文件处理, 实时数据流处理,数据库数据提取、转换、加载。
第四,后端类场景,例如Web应用程序、loT后端、移动后端、 人工触发。
函数计算可以大幅减低云计算的使用成本并提高云计算的使用效率,作为这个云计算市场向下一个阶段的进化产物,函数计算将真正帮助企业实现只专注于业务和构建应用程序而不必担心IT基础设施,这也将成为云服务商未来竞争的关键。