无服务器计算是在无需最终用户管理的基础设施上托管应用程序的新方式,是
IaaS(基础设施即服务)演进的下一个阶段。它将底层基础架构从开发人员中分离出来,基本上虚拟化了运行时(虚拟机的一种,一般指进程级别的虚拟机)和运营管理。这通常被称为 FaaS(功能即服务)无服务器架构允许您执行给定的任务而不必担心
服务器、
虚拟机或底层计算资源。
定义
无服务器计算是一种
云服务,托管服务提供商会实时为你分配充足的资源,而不是让你预先为专用的服务器或容量付费。无服务器计算不是不需要服务器(无服务器字面上的意思是,不用去管服务器),只是立足于云基础设施之上建立新的抽象层,仅使用完成任务所需的非常精确的计算资源来执行开发人员编写的代码,不多也不少。当触发代码的预定义事件发生时,无服务器平台执行任务。最终用户不需要告诉无服务器提供商事件或者函数将发生多少次。函数每执行一次,客户就付一些钱。有些人认为函数即服务(功能即服务)或者事件驱动的计算是更好的名称。从基础架构角度看,它有不同的抽象层,而开发人员可以和这些抽象层进行互动。有裸机、虚拟机和容器。对于某些工作负载,我们要抽象出所有的管理,以便您可以执行代码,而不用担心服务器的基础架构或者管理。这就是无服务器。
采用无服务器计算技术的优势
敏捷:由于开发人员在使用服务器时不部署、管理或扩展服务器,因此组织可以放弃基础设施管理。这极大地减少了操作开销。无服务器与微服务架构高度兼容,这也带来了显著的敏捷性好处。
可伸缩性:无服务器升级和添加计算资源不再依赖于DevOps(运维)团队。没有服务器的应用程序可以快速、无缝地自动扩展,以适应流量峰值;反之,当并发用户数量减少时这些应用程序也会自动缩小规模。
计费模式:在使用无服务器平台时只需为需要的计算资源付费。无服务器架构引入了真正的按次付费模式,即客户只在执行某个功能时才付费。无服务器的计费模式使其成为具有较小负载要求的微服务器和具有“spikey”流量模式的应用程序的理想选择。与传统环境不同的是,不需要为经常闲置的虚拟机或容器付费。
安全:无服务器架构提供了安全保障。由于该组织不再管理服务器,DDoS 攻击的威胁性要小得多,而且无服务器功能的自动扩展功能有助于降低此类攻击的风险。
无服务器计算并不只是尖端科技公司的小众解决方案。它正在改变开发者部署和管理复杂软件的方式,对企业如何交付应用程序有着巨大的影响。其中一个有趣的领域是物联网应用,它涉及数十亿计的终端设备同时使用计算资源。随着成本节约和提高效率,无服务器计算将成为大规模采用此类技术的关键。
机遇与挑战
无服务器计算生态系统在两个方面在增长:
平台:与大型云服务供应商一道,涌现出大量的平台和开源框架,为开发者提供了托管、部署和运行他们的无服务器应用的能力。
技术促进者:这些解决方案通过提供更简单的使用和与无服务器环境的集成,来支持无服务器平台和框架的采用。启动器包括开发和监控工具,以及专门的
网络安全解决方案。
“无服务器计算”并不是不用操作的。操作不仅仅是管理和扩展服务器,它还包括监控、打包、安全、部署等。它仍处于起步阶段,有一些固有的挑战。这些挑战为初创公司提供了机遇,让他们可以创建新的解决方案。可以创新和解决以下问题:缺少工具—监控、日志记录、开发和调试工具还没有或不成熟。供应商锁定—在云计算供应商之间存在不同功能,每个供应商都有自己的集成点、配置等特色。为了更换供应商,客户可能需要更改代码和操作工具,甚至可能要更改软件架构。性能——服务水平协议不能保证性能,而且功能可能需要很长时间才能做出响应,特别是在它们上一次调用时已经有一段时间的情况下。对于许多应用程序来说,这可能是一个破坏因素。
云服务
云服务是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。云服务指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。