当前位置:首页 > 问答 > 正文

无服务器计算好像真挺火,感觉云原生的发展可能就靠它了吧

“无服务器计算好像真挺火,感觉云原生的发展可能就靠它了吧”这个说法在技术圈里挺常见的,反映了很多人对当前云计算发展趋势的一种直观感受,无服务器计算确实非常火热,但它和云原生的关系,可能比“靠它”这个说法要更复杂、更有趣一些,我们可以把它理解成,无服务器是云原生理念发展到一定阶段后,一个非常自然且强大的产物,甚至可以说是云原生理想形态的一种重要体现。

无服务器计算好像真挺火,感觉云原生的发展可能就靠它了吧

要理解这个,得先简单说说云原生到底是想干什么,云原生不是一个具体的技术,而是一套方法论,一套思想,它的核心目标其实就是怎么更好地利用云的能力,让应用在云上跑得更快、更稳、更容易扩展和管理,你可以想象一下,早些年大家只是把在物理服务器上运行的那套程序,原封不动地搬到云上的虚拟机里,这就像是把汽油车直接开上了高速公路,虽然路好了,但车还是那辆车,并没有发挥出高速公路的真正潜力,云原生呢,就是希望重新设计一辆适合在高速公路上跑的“车”,这辆车应该能自动适应车流变化,哪个零件坏了能自动替换,而且还能轻松地组成车队协同工作,为了实现这个目标,云原生有一系列的技术和实践,比如把应用拆分成一个个小的微服务、用容器把每个服务打包成一个标准化的单元、再用像Kubernetes这样的容器编排工具来统一管理这些容器,让它们可以自动部署、伸缩和修复。

而无服务器计算,比如像AWS Lambda、阿里云函数计算这样的服务,可以说是把这个“自动伸缩”和“无需管理服务器”的理念推向了极致,在无服务器的模式下,开发者真的完全不用关心底层是哪些服务器在跑自己的代码,不用去配置服务器数量,不用去操心操作系统更新、打补丁这些琐事,你只需要把写好的代码函数上传上去,设定好什么事件触发它执行就行了,比如一个用户上传了图片,就触发一个函数去处理图片;一笔支付成功了,就触发一个函数去发通知,云服务商会负责在所有后台资源里自动分配计算力来运行你的函数,用多少算多少,按实际执行的时间来付费,如果没人用,费用就是零。

无服务器计算好像真挺火,感觉云原生的发展可能就靠它了吧

你看,这岂不是完美契合了云原生“充分利用云弹性”的核心思想吗?它把运维的复杂性降到了最低,让开发者可以百分百聚焦在业务逻辑上,从这个角度看,说无服务器是云原生发展的一个重要方向或者说是关键推动力,是完全正确的,它让云原生的好处变得对开发者更直接、更触手可及,以前可能还需要学习复杂的Kubernetes概念才能享受到一些自动伸缩的好处,现在通过无服务器,很多场景下可以更简单地实现类似的效果。

如果说云原生的发展“就靠”无服务器,可能就有点片面了,为什么呢?因为无服务器并不是万能的,它有自己的适用场景,它特别适合那种突发性的、事件驱动的、短时间就能完成的任务,比如处理一次API请求、处理一个消息队列里的消息,但对于需要长时间运行、或者有稳定资源需求的复杂应用,比如一个大型的在线游戏服务器、一个需要常驻内存的数据库,目前的无服务器架构可能就不是最佳选择了,在这些场景下,反而是容器编排平台(如Kubernetes)提供了更灵活、更精细的控制能力,你可以决定容器怎么部署、网络怎么配置、存储怎么挂载,虽然这需要更多的运维知识,但换来的是对复杂应用更强的掌控力。

更准确的描述可能是:无服务器计算和容器技术(特别是Kubernetes)并不是谁取代谁的关系,它们是云原生这把“宝剑”上两颗璀璨的“宝石”,各自闪耀,又相辅相成,它们共同构成了云原生技术栈的核心部分,服务于不同类型、不同阶段的应用需求,很多现代的云原生应用架构,其实是混合使用了这两种模式,用Kubernetes来部署和治理那些核心的、需要长时间运行的微服务,同时用无服务器函数来处理一些边缘的、事件驱动的任务,这种组合模式能最大限度地发挥云平台的弹性优势。

根据InfoQ中文站的一篇综述性文章提到,无服务器计算正在成为云原生生态系统中增长最快的领域之一,而CNCF(云原生计算基金会)的云原生全景图中,无服务器技术已经成为一个独立且庞大的分类,包含了大量的开源项目和商业产品,这本身就说明了它在云原生体系中的关键地位。

无服务器计算的火爆,确实极大地推动了云原生理念的普及和实践的深入,它让“按需使用、免运维”的云理想变得更加真实,但云原生是一个广阔的生态,它的发展是靠容器、服务网格、微服务、无服务器等一系列技术和理念共同推动的,无服务器是其中非常亮眼、极具颠覆性的一环,但还不是全部,未来的趋势很可能是各种技术更深度的融合,让开发者可以根据业务需要,像搭积木一样自由选择最合适的计算形态,而这,正是云原生追求的最终目标。

无服务器计算好像真挺火,感觉云原生的发展可能就靠它了吧