前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >何时使用Serverless,何时使用Kubernetes

何时使用Serverless,何时使用Kubernetes

作者头像
February
修改2018-11-26 11:12:41
1.7K0
修改2018-11-26 11:12:41
举报
文章被收录于专栏:技术翻译技术翻译

我经常被问到的一个问题是:我应该使用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

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

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如果使用Serverless......
    • 您有可变和不规则的工作量
      • 您需要首次体验开发人员生产力
        • 您需要固有的自动扩展性
        • 如果使用Kubernetes......
          • 您需要成熟的部署选项
            • 您需要最小的响应延迟
              • 您希望在没有资源限制的情况下实现高性能计算
                • 结束思考
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档