
近年,无服务器(Serverless)逐步出现在大众的视野中,受到了越来越多的关注。AWS、Azure、腾讯等云厂商相继推出了相关产品,在这一新的领域不断探索。甚至有人预言:无服务器架构会成为下一代IT基础架构。Serverless究竟是一项怎样的技术?又有着怎样的应用?
什么是Serverless
Serverless(无服务器计算)是指开发者在构建和运行应用时无需管理服务器等基础设施,它以函数为扩展单位,用户只为实际使用的资源付费。具有完全自动、一键部署、高度可扩展等特点。
Serverless有哪些优势
低成本
运营成本:Serverless将用户的服务器、数据库、中间件委托于BaaS/FaaS,用户将不再参与基础设施及软件的维护,尤其在大规模的集群运营上成本大幅度降低。
开发成本:对比IaaS或者PaaS平台的服务器或者操作系统,Serverless的架构中,用户操作的是服务化的组件比如存储服务,授权服务等,可以缩短开发周期,降低开发难度。
2
按需计费
Serverless/FaaS区别于IaaS、PaaS等预先分配计算资源的计费方式,其计费方式通常是按请求次数及运行时间,一方面可以最大程度利用资源,另一方面实现真正的按需计费可以降低用户的资源成本。
3
弹性伸缩
Serverless架构一个显而易见的优点即“横向扩展是完全自动的、有弹性的、且由服务提供者所管理”。
4
“绿色”计算
据统计,商业和企业数据中心的典型服务器仅提供5%~15%的平均最大处理能力的输出,本质上这是对社会资源的一种浪费。而在Serverless架构下,提供商将提供更细粒度的计算能力最大限度满足实时需求,资源利用率将大幅度提升,可以认为相对IaaS与PaaS,Serverless/FaaS是一种 “绿色” 计算。
5
NoOps
运维的发展经历了人肉运维,自动化运维,DevOps,AiOps等,而Serverless带来一种新的运维模式,这种模式下用户需要管理的只有Code。
目前,各大公有云厂商都上线了自己的Serverless。如:Google Cloud Functions、Azure Funcions、IBM OpenWhisk、AWS Lambda、阿里云函数计算、腾讯云SCF等。
Severless示例
这里以腾讯无服务器云函数(SCF)来简单展示Serverless的部分功能。
示例背景
客户要求对数量众多的测试环境通过非工作时间进行关机操作,每天早上工作时间提前进行开机。单纯靠人工来进行重复周期性的操作显然是不合适的,但公有云目前没有提供这种对服务器定时开关机操作的产品,只能利用一台具备公网能力的服务器来发起API调用请求。而此时刚好利用Serverless小试牛刀。
创建函数
选择地域创建函数服务
进行函数配置
填写函数名称,选择程序函数运行的环境,选择内存及函数运行的超时时间,最后可以在高级配置内配置函数环境变量,在此我将腾讯云的ak配置在环境变量中以便后续调用。
注意:在配置函数中如果选择VPC,编写的函数是具有出公网调用的能力,对应的VPC需要具备此能力。
编写功能函数代码
此处利用腾讯云CVM的SDK进行了云服务器的停止与开机操作,代码的输入支持在线编程以及本地zip上传和cos上传代码。
注意:如果为本地代码调用的二进制或可执行文件,需要打包一并上传。
完整启动代码(多个CVM可以写入event的json instance列表内)
停止的函数与此一致,其他的重启,停止以及对其他云产品的操作也都可以利用此来完成。
进行在线函数功能测试
可以利用在线函数测试功能,对功能函数进行测试
注意:在线测试的数据格式必须为json格式,其传入为event变量中。
创建触发方式
目前腾讯云支持图中的四种触发方式,在此示例中适用于定时任务进行触发。
定时任务可以选择自定义配置,和Linux下的crond服务器配置一致。
注意:定时任务形式触发不会传入event变量,需要自己函数内部指定,在创建函数配置时进行变量配置。
查看日志
函数返回值部分将显示运行结果,还将显示代码中 return 语句返回的函数执行结果。
运行信息部分将显示函数运行的时间、内存等信息。
日志部分将显示函数运行时生成的日志,包括用户代码中的打印语句、函数运行失败trace stack等,将会写入至日志模块。
此次只是最简单的SCF试用,Serverless在快速迭代的业务场景中具有很好的适用性,它能有效的对业务进行拆分,使得分工更加精细,效率得到提升。
长按指纹
关注安畅

