赞
踩
技术圈中的人们一般称呼 Serverless 为“无服务器架构”。Serverless 不是具体的一个编程框架、类库或者工具。
简单来说,Serverless 是一种软件系统架构思想和方法。
它的核心思想是:用户无须关注支撑应用服务运行的底层机制。这种架构的思想和方法将对未来软件应用的设计、开发和运营产生深远的影响。
所谓“无服务器”,并不是说基于 Serverless 架构的软件应用不需要服务器就可以运行,其指的是用户无须关心软件应用运行涉及的底层服务器的状态、资源(比如 CPU、内存、磁盘及网络)及数量。软件应用正常运行所需要的计算资源由底层的云计算平台动态提供。
在传统的场景里,当用户完成了应用开发后,软件应用将被部署到指定的运行环境,用户会申请一定数量、一定规格(包含一定数量的 CPU、内存及存储空间)的服务器以满足该应用的正常运行。当应用上线后,根据实际的运营情况,用户可能会申请更多的服务器资源进行扩容,以应对更高的访问量。
在 Serverless 架构下,情况则截然不同。
一项技术被广泛认可和采纳的原因,往往不是因为这项技术有多新鲜或多酷,最重要的推动力是其能为业务带来巨大的商业或经济价值。
Serverless 的价值体现在以下几个方面:
第一,降低运营复杂度
Serverless 架构使软件应用和服务器实现了解耦,服务器不再是用户开发和运营应用的焦点。在应用上线前,用户无须再提前规划服务器的数量和规格。在运维过程中,用户无须再持续监控和维护具体服务器的状态,只需要关心应用的整体状态。
第二,降低运营成本
Serverless 的应用是按需执行的。应用只在有请求需要处理或者事件触发时才会被加载运行,在空闲状态下 Serverless 架构的应用本身并不占用计算资源。
在 Serverless 架构下,用户只需要为处理请求的计算资源付费,而无须为应用空闲时段的资源占用付费。这个特点将为大规模使用公有云服务的用户节省一笔可观的开销。
第三,缩短产品的上市时间
在 Serverless 架构下,应用的功能被解构成若干个细颗粒度的无状态函数,功能与功能之间的边界变得更加清晰,功能模块之间的耦合度大大减小。这使得软件应用的开发效率更高,应用开发的迭代周期更短。
Serverless 架构应用的上市时间(Time To Market,TTM)将大大减少。
第四,增强创新能力
应用的开发和部署效率的提升,使得用户可以用更短的时间、更少的投入尝试新的想法和创意。
1. Web 应用
Serverless 架构可以很好地支持各类静态和动态 Web 应用。通过 FaaS 的自动弹性扩展功能,Serverless Web 应用,可以很快速地构建出能承载高访问量的站点。
举一个有意思的例子:为了应对每 5 年一次的人口普查,某国政府耗资近 1000 万美元构建了一套在线普查系统。但是由于访问量过大,这个系统不堪重负而崩溃了。在一次编程比赛中, 两个大学生用了两天的时间和不到 500 美元的成本在公有云上构建了一套类似的系统。在压力测试中,这两个大学生的系统顶住了类似的压力。
2. 移动互联网
Serverless 应用通过 BaaS 对接后端不同的服务而满足业务需求,提高应用开发的效率。开发者可以通过函数快速地实现业务逻辑,而无须耗费时间和精力开发整个服务端应用。
3. 物联网
物联网(Internet of Things,IoT)应用需要对接各种不同的数量庞大的设备。不同的设备需要持续采集并传送数据至服务端。Serverless 架构可以帮助物联网应用对接不同的数据输入源。
4. 系统集成
Serverless 应用的函数式架构非常适合用于实现系统集成。用户无须像过去一样为了某些简单的集成逻辑而开发和运维一个完整的应用,用户可以更专注于所需的集成逻辑,只编写和集成相关的代码逻辑,而不是一个完整的应用。
1. 控制力
对于一些希望掌控底层计算资源的应用场景,Serverless 架构并不是最合适的选择。
2. 可移植性
Serverless 应用的实现,依赖于 Serverless 平台及该平台上的 FaaS 和 BaaS 服务。不同 IT 厂商的 Serverless 平台和解决方案的具体实现并不相同。
3. 安全性
Serverless 架构下,用户不能直接控制应用实际所运行的主机。不同用户的应用,或者同一用户的不同应用在运行时可能共用底层的主机资源。对于一些安全性要求较高的应用,这将带来潜在的安全风险。
4. 性能
应用的首次加载及重新加载的过程将产生一定的延时。对于一些对延时敏感的应用,需要通过预先加载或延长空闲超时时间等手段进行处理。
5. 执行时长
大部分 Serverless 平台对 FaaS 函数的执行时长存在限制。因此 Serverless 应用更适合一些执行时长较短的作业。
最后:
总的来说,这种新兴的云计算服务交付模式,为开发人员和管理人员带来了许多好处。它提供了合适的灵活性和控制性级别,因而在 IaaS 和 PaaS 之间找到了一条中间的路,由于服务器端几乎没有什么要管理的,Serverless 架构正在彻底改变软件开发和部署领域,比如推动了 NoOps 模式的发展。
至此,全部介绍就结束了
-------------------------------
-------------------------------
关于我(个人域名,更多我的信息)
期望和大家一起学习,一起成长,共勉,O(∩_∩)O谢谢
欢迎交流问题,可加个人QQ 469580884,
或者,加我的群号 751925591,一起探讨交流问题
不讲虚的,只做实干家
Talk is cheap,show me the code
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。