何时使用Serverless,何时使用Kubernetes

我经常被问到的一个问题是:我应该使用Serverless还是Kubernetes来构建云原生应用程序?两种计算选项都有利有弊,这取决于您的需求,您应该选择哪种选项。

Ansgar Schmidt和我将在下周就这个话题举行会议。我们仍在最后确定幻灯片,但已完成幻灯片,总结了何时使用Kubernetes以及何时使用Serverless。

请注意,我们不会将Serverless与容器进行比较,而是将其与Kubernetes进行比较。使用开源Serverless平台OpenWhisk,您也可以使用Docker容器构建功能。我们也没有将一个简单的Serverless功能与Kubernetes上的复杂微服务应用程序进行比较,而是将具有类似复杂性的应用程序进行比较。

如果使用Serverless......

您有可变和不规则的工作量

一个好的Serverless场景是一个本地网站,在夜间没有太多或任何流量。由于Serverless平台仅在代码运行期间收费,因此可以显着降低成本。较长的应用程序不执行任何操作,Serverless更便宜的可能性越大。

然而,Serverless并不意味着降低成本,例如当您的应用程序需要全天候运行时。还可能存在一些隐藏成本,例如API管理的额外成本或测试的函数调用成本。

您需要首次体验开发人员生产力

如果您既没有Serverless也没有Kubernetes的经验,那么在Serverless平台上运行第一个Hello World应用程序会更容易。使用Kubernetes时,通常需要等待一段时间来创建群集,配置Kubernetes以获取公共IP地址,然后部署第一个容器。使用Serverless平台,您只需使用云提供商提供的Web工具即可在几分钟内开始使用。

但是,Serverless并不总是比Kubernetes更容易。使用一堆函数构建和管理Serverless应用程序比只有一个容器的简单Kubernetes应用程序更难。实际上,将Kubernetes用于更复杂的应用程序可能更容易,因为该平台更加成熟(请参阅下文了解更多信息)。

您需要固有的自动扩展性

Serverless的强大功能之一是功能的固有自动可扩展性,因为作为开发人员,您无需采取任何措施来利用此功能。使用Kubernetes,您还可以使用pod甚至节点的自动可扩展性,但它需要一些配置并且速度稍慢,因为只有在某些规则适用时才会触发此过程。

但是,Kubernetes可能提供比某些Serverless平台更好的可扩展性功能,因为Kubernetes更加成熟,并且在不同的区域之间提供甚至HA(高可用性),这并非所有Serverless平台都提供。

如果使用Kubernetes......

您需要成熟的部署选项

我不知道任何支持A / B测试的Serverless平台,我认为这是构建云原生应用程序的关键功能。此外,Kubernetes应用程序的监控功能更加成熟。例如,使用Istio,您可以看到微服务的执行时间,哪些服务调用了哪些其他服务以及是否存在瓶颈。Serverless平台还没有真正拥有它,并且最近才开始添加Amazon Step Functions和OpenWhisk Composer等功能来定义功能之间的流程。

但是,如果您的应用程序相当简单,可能只有一个函数来提供API,则Serverless可能是更好的选择,因为部署会更容易,并且各种Serverless平台都会提供对单个函数的监视。

您需要最小的响应延迟

使用Serverless平台时,由于需要初始化代码,因此第一次调用函数需要一些时间。例如,在OpenWhisk中,您可以使用Docker容器,这些容器可以运行需要一些时间才能启动的Java应用程序。如果您需要快速可靠的响应时间,则应使用Kubernetes。

最近,OpenWhisk等Serverless平台通过大量缓存得到了显着改善。在第一次冷启动后,您不应再看到这些更长的响应时间,这可能足以满足您的应用需求。

您希望在没有资源限制的情况下实现高性能计算

Serverless平台通常具有某些资源限制,例如,功能不能使用超过512 MB的RAM,并且不能超过5分钟。如果这些限制对您的应用程序来说过于严格,则需要使用Kubernetes。

但是,有时可能会在较小的功能中分解您的应用程序。在某些情况下,甚至可能需要这样做,例如将现有的单片应用程序移动到云中时。

结束思考

我认为观察这些技术今年将如何演变将会很有趣。我听说过几个让Kubernetes变得更容易的活动以及一些使Serverless更加成熟的活动。

原文标题《When to Use Serverless, and When to Use Kubernetes》

作者:Niklas Heidloff

译者:February

不代表云加社区观点,更多详情请查看原文链接

原文链接:https://dzone.com/articles/when-to-use-serverless-when-to-use-kubernetes

原文作者:Niklas Heidloff

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

云原生应用程序:为什么,是什么和如何做

云原生是一种构建和运行应用程序的方法,可以利用云计算模式的优势 —— 按需计算的能力和即用即付的定价模式。这些应用程序是以云计算平台的快速响应为基础构建和部署的...

3847
来自专栏智能计算时代

LF EdgeX Foundry为IoT启用边缘计算

Linux基金会推出了EdgeX Foundry,该项目旨在为物联网计算和可互操作组件生态系统建立开放框架。 EdgeX Foundry旨在促进边缘计算的模式,...

3714
来自专栏Java学习网

盘点五类最受欢迎的开源云项目

  Linux.com和The New Stack曾联合起来做过一项调查:你认为的最受欢迎的开源云项目是哪些?调查涵盖了hypervisors、IaaS、Paa...

5057
来自专栏云计算D1net

那些你可能不了解的公有云风险成本

公有云强调了给企业带来的种种好处,但是它并不十全十美。企业应该意识到其不可预测的成本结构以及其他的一些缺点。 ? 公有云服务给予企业诸多优势。他们允许灵活和经济...

3879
来自专栏云原生架构实践

什么是云原生架构

云计算提供了对无限IT资源的按需付费的商业模式,但从技术架构上看,还需要一个用于构建和运行云原生应用的平台,来实践敏捷开发、DevOps、容器编排,微服务和容器...

4.2K4
来自专栏企鹅号快讯

微信小程序新功能上线 一键连Wi-Fi手机变门禁卡

原标题:微信小程序新功能上线 一键连Wi-Fi手机变门禁卡 【PConline资讯】习惯于放深夜“炸弹”的小程序团队又来了。12月16日晚间,微信小程序再次迎来...

2435
来自专栏SDNLAB

项目更新:OpenStack Neutron的下一步是什么

在最近的温哥华峰会上,OpenStack项目团队负责人(PTL)和其核心团队成员介绍了OpenStack项目的相关更新,以及如何参与并影响路线图。

782
来自专栏企鹅号快讯

惊爆!小程序连发7种新能力,开直播、连Wi-Fi、分包加载……你们想要的都来了!

昨晚沉寂已久的小程序又在深夜向我们发射了四大新能力 ? 1 升级实时音视频录制及播放能力 小程序拥有实时录制音、视频和播放音视频组件啦! 符合类目要求的小程序自...

22710
来自专栏java一日一条

谈谈业务容器化——降低接入成本

本文介绍业务方容器化的成本,同时谈谈如何降低这些成本,从而让容器化过程更为顺畅。业务方的接入成本主要有如下四种:

962
来自专栏Debian社区

Kubernetes 1.9发布:Apps Workloads通用版本与生态系统扩展

我们很高兴在今年之内进行第四次——也是最后一次版本更新公告,即Kubernetes 1.9的诞生!

1084

扫码关注云+社区

领取腾讯云代金券