课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,程序员能够接触和掌握的软件架构方法也在不断的增加,而今天我们就通过案例分析来了解一下,无服务器架构的基础和优势。
一、什么是无服务器架构?
无服务器架构是指应用程序使用其他Function和服务,但不需要管理服务器。无服务器架构主要包含了两个方面:
FaaS(FunctionasaService,Function即服务):包含服务器端业务逻辑的无状态Function。这些Function运行在独立的容器里,基于事件驱动,并由其他厂商托管,如AWSLambda或者AzureFunctions。
BaaS(BackendasaService,后端即服务):使用其他服务(如Firebase、Auth0)来达成目的。使用BaaS的应用程序通常是富客户端应用程序,如SPA或移动App。客户端负责处理大部分的业务逻辑,其他部分则依赖外部服务,如认证、数据库、用户管理,等等。
二、无服务器架构的特点
不需要管理服务器;
无状态;
自动伸缩;
没有运营成本;
成本由事件驱动;
处理一个事件需要一些启动时间;
因为运行时小,所以具有较高的安全性。
三、无服务器架构与PaaS
平台即服务(PlatformasaService)是另一个不需要开发人员管理服务器(包括硬件和软件)的架构莫斯。正因为如此,开发人员容易把无服务器架构和PaaS混为一谈。接下来,我们来看一看它们之间的相似点和不同点。
相似点
开发人员不需要管理服务器。
开发人员只要关注应用程序代码本身。
不同点
PaaS提供了更为可控的部署方式,而无服务器的部署则更为严格。
无服务器架构可以自动伸缩,而PaaS的伸缩需要进行配置。
无服务器架构的成本是由事件驱动的,而PaaS是固定的。
PaaS应用程序在部署之后会一直运行,并马上开始处理请求,而无服务器需要等待一个事件,具体取决于事件的发生频率。
四、为什么要采用无服务器架构?
使用无服务器架构和FaaS有以下这些好处。
减少服务器管理成本;
减少运营成本;
自动伸缩;
比不间断运行的服务更安全;
成本由请求或事件数来决定;
更简单的打包和部署流程;
缩短发布周期;
开箱即用的监控。
五、无服务器架构的限制
与其他任何一种技术架构一样,无服务器架构也存在同样的限制。
启动延迟;
厂商锁定,对服务器缺乏控制;
性能优化局限于代码内部;
执行时间限制(AWSLambda的执行时间限制为15分钟);
成本不可预测;
开发环境和生产环境不一样;
测试和调试更为复杂。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!