Kubernetes vs. Serverless并非零和游戏?

本文探讨了Kubernetes和Serverless两种技术的优势与局限性。Kubernetes为云规模计算提供了强大的支持,但容器化应用程序存在一定的复杂性和管理挑战。Serverless架构通过减少配置和管理开销提高了开发效率,适合按需使用的场景,但可能不适合需要持续运行和状态的应用程序。两者各有应用场景,共同推动应用程序部署的发展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作为令人兴奋和强大的平台,Kubernetes和Serverless完全配得上现在的地位。它们可以通过多种方式为组织提供敏捷性、可扩展性和计算性能方面的巨大提升。但是,我们很容易忘记Kubernetes提供了Serverless所没有的优势,反之亦然。成功部署两者的关键是知道何时以及如何确定Kubernetes或Serverless是否提供最佳匹配。

Kubernetes

Kubernetes本身就是为云规模的计算而设计的 ,就像谷歌那样的大规模部署。它已被改编为可以小规模使用,现在大多数大型云提供商都提供该服务——这可以解释Kubernetes在过去几年中的爆炸性增长。根据CNCF的用户调查,Kubernetes的增长远远超过了所有其他形式的编排软件。

Kubernetes已成为主流。但正如从大型机转移到客户端服务器一样痛苦,采用完全基于容器的架构仍然存在重大痛点,即使是由Kubernetes编排的架构。扩展不是即时的——你必须等待容器上线,而且仍然存在重大的管理问题。根据CNCF,存储、安全和网络问题是通过Kubernetes部署其架构的人们最关注的问题。

 

 

Serverless

Serverless架构(在很多方面只是对微服务架构的重新打包和重新镜像),正在与Kubernetes竞争,因为它允许扩展应用程序和部署,而不会出现Kubernetes甚至容器的复杂性和配置问题。

功能即服务(FaaS)Serverless架构仍然需要服务器来运行,更是事件驱动的架构,而容器化应用程序本质上仍然是相当传统的应用程序,只是分成许多较小的部分或服务。使用容器化应用程序,它永远不会完全关闭。即使没有人访问它,容器仍然需要存在并运行。你可以将它们缩小到单个实例,但它们仍然存在并仍然需要成本。

Serverless应用程序,如果没有任何功能请求,可以将成本降低到零。除非明确访问它们,否则它们基本上不再存在。这可以显著降低成本,并且缩放速度也更快。对Serverless应用程序的访问越多,它就扩展得越大。

但Serverless架构将取代容器化应用程序的想法并不合理。并非一切都可以简化为短暂的功能。某些应用程序总是需要能够在一个应用程序运行时保持数据和状态,而这不是Serverless架构的设计目的。

不过,对Serverless的兴趣却在快速增长。根据MarketsandMarkets Research的数据,FaaS市场预计将从2016年的1.88美元飙升至2021年的77.2亿美元。

然而,这不是一场零和游戏,Serverless的增长并不一定预示着Kubernetes和容器的死亡。实际上,它甚至可能扩展Kubernetes的使用,至少可以成为主要的FaaS提供商扩展其Serverless产品的方法。

Serverless架构很可能通过仅仅支付使用的服务而不支付运行一个容器或一组容器所需的开销来进一步降低成本,但是就像所有事情一样,需要进行权衡。不经常访问的Serverless代码虽然运行成本不高,但在运行时(如Java)或底层容器用于服务请求的情况下,可能会遇到延迟增加的问题。这些额外的延迟可能令人无法接受。

然而,从开发人员的角度来看,FaaS可以提高生产力和开发人员的幸福感。开发人员可以更快地将代码分成更小的部分推送到生产中,而无需配置和管理开销,从而提高生产力。

结论

应用程序开发和部署策略,都在不断发展。通常,从一个架构到另一个架构的转移标志着第一个实现的结束,但并非总是如此。至少目前,还没有一个通用的解决方案可以解决在廉价和大规模交付应用程序时遇到的所有问题。与任何部署模型一样,需要在成本、性能和可管理性之间进行权衡。

Kubernetes 以及一般的容器化有其优势,Kubernetes市场的迅速普及和发展证明了它正在满足市场需求。容器化和容器编排需求不会很快消失,但它并不总是正确的解决方案。

Serverless的FaaS填补了市场的需求,并且整体上呈现出显著增长。当然,增长并不一定意味着满足了目的,但市场倾向于自我纠正以弥补这。

Kubernetes vs.Serverless不是零和游戏。Serverless的增长并不表示Kubernetes的死亡。它们在现代应用程序的开发和部署中都发挥着重要作用。在过去的20年中,应用程序部署一直朝着更小、更易管理、更具成本效益和更开发人员友好的架构迈进,没有理由怀疑这种趋势不会持续下去。虽然Serverless可能是将应用程序抽象到其最基本组件的逻辑结论,但并非所有应用程序都能以这种方式提供。与此同时,由于持久性或可扩展性的原因,某些应用程序需要容器,需要编排和管理。

所以说,这两种技术都没有理由不继续显著增长。

Packt.Kubernetes.for.Serverless.Applications.1788620372.PDF Chapter 1, The Serverless Landscape, explains what is meant by serverless. Also, we will get some practical experience of running serverless functions on public clouds using AWS Lambda and Azure Functions. Chapter 2, An Introduction to Kubernetes, discusses what Kubernetes is, what problems it solves, and also takes a look at its backstory, from internal engineering tool at Google to an open source powerhouse. Chapter 3, Installing Kubernetes Locally, explains how to get hands-on experience with Kubernetes. We will install a local single node Kubernetes cluster using Minikube and interact with it using the command-line client. Chapter 4, Introducing Kubeless Functioning, explains how to launch your first serverless function using Kubeless once the Kubernetes is up and running locally. Chapter 5, Using Funktion for Serverless Applications, explains the use of Funktion for a slightly different take on calling serverless functions. Chapter 6, Installing Kubernetes in the Cloud, covers launching a cluster in DigitalOcean, AWS, Google Cloud, and Microsoft Azure after getting some hands-on experience using Kubernetes locally. Chapter 7, Apache OpenWhisk and Kubernetes, explains how to launch, configure, and use Apache OpenWhisk, the serverless platform originally developed by IBM, using our newly launched cloud Kubernetes cluster. Chapter 8, Launching Applications Using Fission, covers the deploying of Fission, the popular serverless framework for Kubernetes, along with a few example functions. Chapter 9, Looking at OpenFaaS, covers OpenFaaS. While it's, first and foremost, a Functions as a Service framework for Docker, it is also possible to deploy it on top of Kubernetes. Chapter 10, Serverless Considerations, discusses security best practices along with how you can monitor your Kubernetes cluster. Chapter 11, Running Serverless Workloads, explains how quickly the Kubernetes ecosystem is evolving and how you can keep up. We also discuss which tools you should use, and why you would want your serverless functions on Kubernetes.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值