什么时候该用无服务器,什么时候该用Kubernetes构建云原生应用程序?

一个好的无服务器应用场景应该是在夜间没有太多或者完全没有流量。由于无服务器平台仅在代码运行期间收费,因此可以显著降低成本。较大的应用程序不执行任何操作,无服务器便宜的可能性越大。

但是,这并不意味着无服务器就可以降低成本,如果应用程序全天候运行,可能存在一些隐性成本,比如管理API造成的额外成本和测试函数的调用成本。

没经验,怎么选?

就听而言,无服务器和Kubernetes好像已经非常成熟;但就实践而言,二者还有很多成长空间,研发人员也并未达到人人普及的程度。如果既没有无服务器也没有Kubernetes经验,那么,在无服务器平台运行Hello World应用程序应该更容易。

因为无服务器只需将精力集中在代码上即可,使用Kubernetes则通常需要等待一段时间来创建集群,配置Kubernetes以获取公共IP地址,然后再部署容器。使用无服务器平台,只需使用云提供商的Web工具即可在几分钟内上手。

有经验,怎么看?

这种难易程度也是变化的,无服务器并不总比Kubernetes更容易。使用一堆函数构建和管理无服务器应用程序比只有一个容器的简单Kubernetes应用程序更难。实际上,将Kubernetes用于更复杂的应用程序可能更容易,因为该平台更成熟。

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

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

A/B测试可能是构建云原生应用程序的关键功能,但无服务器平台并不具备这一点,Kubernetes则可以。此外,Kubernetes应用程序的监控功能更加成熟。例如,使用Istio可以看到微服务的执行时间,服务调用情况以及是否存在问题。无服务器平台因其自身的最大优势就是不需要操心基础设施,所以研发人员可做的操作也十分有限。

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

响应延迟对比

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

通过应用缓存,无服务器平台对响应时间做了改善。第一次冷启动后,不必再花费较长响应时间启动第二次,这可能足以满足应用需求。

高性能计算对比

无服务器平台通常具有某些资源限制,比如,功能不能超过512 MB的RAM,不能超过5分钟。如果这些限制对应用程序来说过于严格,则需要使用Kubernetes。有时也会在较小的功能中分解应用程序,比如,将现有单片应用程序移到云中。

结语

无服务器计算和Kubernetes对应不同的应用场景,也有着各自的缺点。如果是初学者,建议从无服务器计算开始,毕竟Kubernetes的配置过程相对繁琐。如果是企业用户,追求高性能计算、更优性能并希望运行大规模应用程序,Kubernetes依旧是最佳选择。

参考链接:https://dzone.com/articles/when-to-use-serverless-when-to-use-kubernetes

何时该用无服务器,何时该用Kubernetes?相关推荐

  1. 最热开源无服务器函数:五大Fission架构参考

    "无服务器"现在是极具诱惑的技术趋势,没有什么比管理服务器更让人痛苦.亚马逊.微软和谷歌都在云中提供无服务器专有接口.相较于这些云供应商的商业化产品,开源无服务器架构可免于被云厂商 ...

  2. 从零开始发布前端代码到服务器上_无服务器计算:让每行代码都能住上“经济适用房”...

    是时候展现真正的实力了!大胆报名吧!! 摘 要 独立的简单函数可以让开发工作变得更加容易,同时由事件驱动的执行可让操作变得更加便宜. 开发人员往往需要花费大量的时间编写代码以解决业务问题.随后,运营团 ...

  3. java se和java_Java SE 9非常适合灵活,可扩展和无服务器的未来

    java se和java 去年的JavaOne会议对许多Java SE 9新功能的讨论引起了极大的兴奋. 但事实证明,今年的活动更具开创性. 从使Oracle Java EE开源的方方面面到引入功能即 ...

  4. 构建静态服务器_为静态网站构建无服务器联系表

    构建静态服务器 介绍 (Introduction) A few years ago AWS launched static hosting service S3, which was a paradi ...

  5. node aws 内存溢出_如何使用Node.js和AWS快速创建无服务器RESTful API

    node aws 内存溢出 by Mark Hopson 马克·霍普森(Mark Hopson) 如何使用Node.js和AWS快速创建无服务器RESTful API (How to quickly ...

  6. aws lambda使用_如何使用AWS Lambda和S3构建无服务器URL缩短器

    aws lambda使用 by Daniel Ireson 丹尼尔·埃里森(Daniel Ireson) 如何使用AWS Lambda和S3构建无服务器URL缩短器 (How to build a S ...

  7. Azure编配器简化有状态无服务器工作流的创建

    Azure Durable Functions旨在通过引入编排器function概念来定义更复杂的工作流,以此来扩展无服务器计算范式.如果你曾经想过要使用它们,微软刚刚发布了一个示例,帮助开发人员开始 ...

  8. FaaS、PaaS和无服务器体系结构的优势

    本文介绍了无服务器技术,并将其与PaaS和SpaaS进行了对比,同时介绍了无服务器体系结构的收益和成本,还有框架方面的需求. \\ 最开始,"无服务器"意在帮助开发者摆脱运行后端应 ...

  9. 详细!看看顶级互联网公司都在研究的无服务器架构!

    无服务器计算(Severless computing,简称 Serverless)现在是软件架构圈中的热门话题,国外三大云计算供应商(Amazon.Google 和 Microsoft)都在大力投入这 ...

最新文章

  1. 在CentOS 6.3 64bit上安装ATS 5.3 LTS版本并测试
  2. Nat. Commun | 预测RNA-蛋白质结合偏好的深度学习框架
  3. WebServices中使用cxf开发日志拦截器以及自定义拦截器
  4. 深度学习与计算机视觉系列(10)_细说卷积神经网络
  5. 4年,我终于成了千万富翁
  6. kafka使用_Kafka生产者的使用和原理
  7. java 企业号 临时素材_查看“获取临时素材文件”的源代码
  8. CSS3背景图片百分比及应用
  9. 【深入理解JS核心技术】1.在 JavaScript 中创建对象的可能方式有哪些?
  10. 水经注地图下载器下载谷歌地图
  11. 实用工具篇--华为eNSP下载及安装
  12. 物理学原理与工程应用期末复习之公式总结
  13. 又双叒叕可以 4 折买书了!!来薅羊毛了!
  14. 投资学 U15 利率期限结构 习题解读
  15. docker run --privileged参数(容器权限全开,不利于宿主机安全,宿主机容易重启)(与/usr/sbin/init共用)
  16. docker内创建文件夹失败
  17. Windows无法安装驱动原因总结
  18. 【VB】机房收费系统(结账)
  19. php微信 开发笔记,PHP微信公众开发笔记(一)
  20. 图解MySQL数据库的部署和独霸-4

热门文章

  1. 【tensorflow速成】Tensorflow图像分类从模型自定义到测试
  2. ONE- Open Navigator Engine 开放式浏览器引擎
  3. BZOJ.4738.[清华集训2016]汽水(点分治 分数规划)
  4. iframe的子界面获取父界面的标签元素
  5. 实践1-qq邮箱主页
  6. css实现页面文字不换行、自动换行、强制换行
  7. dynamic和var的区别
  8. C#调用C++ DLL的方式
  9. javaScript 验证码代码
  10. 万字长文 | 如何做好TO B产品?