查看原文
其他

云计算进化进行时,Serverless会成为终极形态吗?丨科技云·视角

云视角 科技云报到 2023-08-09

继OpenStack、Docker、MiscroService、Unikernel、Kubernetes和Mesos之后,Serverless正成为Google、Amazon乃至创业公司暗战的新战场。



说到Serverless,这个概念的诞生由来已久,其首次出现是在2012年。云基础设施服务提供商Iron.io的副总裁Ken Fromm在一篇文章中阐述了为什么他认为Serverless是软件的未来。事实上,Iron.io自2012年以来就对这个概念和框架抱以支持态度。2014年,亚马逊发布AWS Lambda,在这之后,Serverless开始变得流行起来。


2016年,伦敦举办了首届Serverless大会。在最近几年的发展中,业界对Serverless的概念定义也逐渐清晰稳定下来。经过多年发展,云计算逐渐进化到用户仅需关注业务和所需的资源。通过Swarm、K8S等编排工具,容器服务让开发者的体验达到日臻完美的境界。


随着Docker技术的爆发,很多从业者一度认为,Docker可以替代虚拟机,用户只要关注自己的计算和需要的资源就可以,不需要操心到机器这一层。但因为Docker对资源的隔离不够好,各大云厂商的做法还是一个Docker对应一台虚机,不仅成本高,而且给用户暴露虚拟机也就显得十分多余了。


Serverless乍一看感觉荒谬,但其实际意义在于,部署软件无需涉及基础设施建设,它让人们不再操心运行所需的资源,只需关注自己的业务逻辑。Serverless平台可以根据需要自动构建、部署和启动服务的整个过程用户只需注册所需的业务功能及其资源需求。


许多新技术专家指出,Serverless架构具有缩短交付时间,改善操作和安全实践等功能,以及创造出一种革命性的付费模式——按资源消耗付费。可以说,Serverless架构的兴起,云计算发展拉入到了下一个纪元时代。



Serverless两种基本形态


Serverless最早用于描述那些大部分或者完全依赖于第三方(云端)应用或服务来管理服务器端逻辑和状态的应用。这些应用通常是富客户端应用、单页应用或者移动端App,他们建立在云端服务生态之上,实现对逻辑和状态进行管理,包括云端数据/文件存储(例如Parse、Firebase)、消息推送(例如极光推送、个推)、应用数据分析等等,这些服务最早被称为Backend as a Service(BaaS,后端即服务)。


开发者通过使用这些服务,实现自身业务功能的同时,也会对服务的能力进一步提出要求,促进后端服务的发展。BaaS是在PaaS和SaaS之间,为了满足移动互联网快速发展的需要,将后端的能力以服务形式提供,是在PaaS平台开发能力的基础上,用SaaS的思路,将后端能力服务化,让开发者在此基础上开发自己的解决方案。

 

Serverless还可以指代这种情况:应用的一部分服务端逻辑依然由开发者完成,但是不像传统架构那样运行在一个无状态的计算容器中,而是由事件驱动、短时执行、完全由第三方管理,对此有一个叫法是Functions as a service(FaaS,函数即服务)。AWS Lambda 是目前的热门FaaS实现之一。

 

彼时,大家对Serverless概念的认知是后端即服务(BaaS),或移动后端即服务(Mobile Backend-as-a-Service,MBaaS)。甚至有一种观点认为,只要使用了第三方云服务就是Serverless的一种。


但第三方云服务的范畴很广,包含IaaS、SaaS、PaaS三种,单纯认为使用第三方云服务就是Serverless是错误的看法,Serverless是更精细化的一个方向,而不是更大的范畴。


现在看来,Serverless处在技术曲线的早期阶段,尚未达到炒作期的峰值,市场应用上还处于初级阶段。但是,大则如同云、小则如同微服务,Serverless将会是技术的未来趋势。云的进化有很多种方向,Serverless更是应用层面的进化方向。 


积极关注与跟进 

         避免纯技术导向的盲目尝试


总体看来,Serverless具有低运营成本、简化设备运维、提升可维护性、更快的开发速度等优势。在业务突发性极高的场景下,系统为了应对业务高峰,必须构建能够应对峰值需求的系统,这个系统在大部分时间是空闲的,这就导致了严重的资源浪费和成本上升。


在Serverless架构下,服务将根据用户的调用次数进行计费,按照云计算pay-as-you-go原则,如果没有东西运行,就不必付款,节省了使用成本。同时,用户能够通过共享网络、硬盘、CPU等计算资源,在业务高峰期通过弹性扩容方式有效的应对业务峰值,在业务波谷期将资源分享给其他用户,有效的节约了成本。


Serverless架构中,开发人员面对的将是第三方开发或自定义的API和URL,底层硬件对于开发人员更加透明化,技术团队无需再关注运维工作,能够更加专注于应用系统开发。


在可维护性方面,Serverless架构中,应用程序将调用多种第三方功能服务,组成最终的应用逻辑。目前,登陆授权服务,云数据库服务等第三方服务在安全性、可用性、性能方面都进行了大量优化,开发团队直接集成第三方服务,能够有效的降低开发成本,同时使得应用的运维过程变得更加清晰,有效的提升应用的可维护性。

 


虽然Serverless架构平台听起来不错,但目前仍存在一些技术弱点。平台会提供Serverless架构给大客户,比如AWS Lambda,运行它需要使用AWS指定服务,一旦用户在这些服务上开发一个复杂系统,便会被AWS粘牢,以后只好任由厂商涨价定价或者下架等操作,个性化需求很难满足,同时不能进行随意迁移,其迁移成本较大。


2016年1月,Facebook关闭曾经花巨额资金收购的Parse,造成用户不得不迁移在这个平台中产生一年多的数据,无疑需要花费较大的人力和时间成本。


另外,Serverless当前并没有太多实践经验,只适合简单的应用开发,缺乏大型成功案例的推动,市场对于Serverless也缺乏统一的认知以及相应标准,无法适应所有的云平台。

 

伴随面向服务架构(SOA)以及微服务架构(MSA)的盛行,造就了Serverless架构的迅猛发展。虽然Serverless架构至今混淆了许多人,但这并不妨碍其成为未来云计算的主要趋势之一。


Serverless正在经历爆发期,新产品和功能纷纷出现,有很多可能性等待发掘,其与所有主要平台提供者提供的集成,成为当今最受欢迎的技术之一。Serverless是否会成为云计算的终极形态我们并不知道唯有让时间证明一切。对于Serverless,我们给大家的建议是:积极关注与跟进,谨慎结合自己的实际需求使用,避免纯技术导向的盲目尝试。

 



 相关阅读


蓄势待发的Serverless,需要关注这四个要点

无服务器计算趋于成熟,“容器时代”要过时了吗?


【科技云报道原创】

转载请注明“科技云报道”并附本文链接


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存