Serverless,即无服务架构。是指由第三方云计算供应商以服务的方式为开发者提供所需功能,例如数据库、消息,以及身份验证等。它的核心思想是让开发者专注构建和运行应用,而无需管理服务器。
- 阿里云提供的也有Serverless服务使用,可以使用阿里云提供的服务和函数自己搭建一个,
1.创建函数和服务,在这个点击创建服务
2.输入创建服务名称和描述,选择日志功能状态和链路追踪功能,然后点击确定
3.等我们创建完函数之后,会进入到函数管理页面。在这里选择创建函数
4.当我们选择创建函数的时候,会将进入到创建函数的方式,一共有四种方式,在这里我选择使用自定义运行时平滑迁移webServer创建。输入完函数名称,选择运行环境,然后点击创建即可
- 使用标准的Runtime从零创建
- 使用自定义运行时平滑迁移webServer创建
- 使用容器镜像创建
- 使用模板创建
5.点击创建,等待服务创建即可
6.当创建完之后,我们就可以看到服务创建的详情,函数提供了一段代码,
consthttp=require("http"); constrequestListener=function (req, res) { res.setHeader("Content-Type", "text/plain"); res.writeHead(200); res.end("Hello, World!"); }; constserver=http.createServer(requestListener); server.listen(9000);
7.当我们点击测试函数,就可以看到运行函数的结果,或者就是部署代码
8.我们在概况中也可以看到函数调用的次数以及使用情况
使用 Serverless 框架
- 从刚才的示例可以发现,要想编写 函数只能在线编写,或者提前写好复制到阿里云。为了改善这种情况,现在有很多 Serverless 框架,可以让你在本地进行开发,开发完后再部署到阿里云或其他云上。
使用 Serverless优势
1.降低硬件基础设施的部署和维护成本。
2.降低应用扩展成本
3.构建和部署更简单
4.降低运维成本;
5.提高开发效率。
使用Serverless劣势
1.重复函数逻辑,函数量多
2.无状态,不适合有状态复杂场景;
3.冷启动慢&高延迟;
4.工具链(调试、开发、日志工具等)缺乏。
Serverless适用业务场景:
1.多媒体处理;
2.数据库更改或者数据捕获;
3.大规模数据流处理;
4.HTTP REST API 和Web应用程序;
5.持续集成管道;
6.机器学习及AI模型处理;
7.图片处理以及聊天极其人
Serverless函数计算核心优势
1.敏捷开发
- 使用函数计算时,用户只需聚焦于业务逻辑的开发,编写最重要的 “核心代码”
- 不再需要关心服务器购买、负载均衡、自动伸缩等运维操作;
- 极大地降低了服务搭建的复杂性,有效提升开发和迭代的速度。
2.弹性扩容
- 函数计算根据请求量自动进行弹性扩容,无需任何手动配置;
- 毫秒级调度计算资源,轻松应对业务洪峰。
3.稳定性高
- 函数计算分布式集群化部署,支持多可用区;
- 果某个可用区因自然灾害或电力故障导致瘫痪,函数计算会迅速切换到同区域其他可用区的基础设施运行函数,确保服务高可用。
4.有竞争力成本
- 函数计算提供了丰富的计量模式,帮助您在不同场景获得显著成本优势;
- 后付费模型按实际使用计算资源计费,不占用计算资源则不计费,资源利用率高达 100% ;
- 预付费模型根据业务负载估算提前预购计算力,单价更低,组合使用后付费和预付费方式将有效降低成本。
总结
Serverless 最大的优点就是弹性扩容和无需亲自管理服务器。即使它也有不少缺点,但相对于优点来说,是可以忽略的,近几年来 Serverless 技术的火热程度也证实了这一点。目前 Serverless 技术仍有很大的发展空间值得我们去探索,毕竟还是一门“出生”不久的新技术。