【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

何时该用无服务器,何时该用 Kubernetes?

  • 2019-01-10
  • 本文字数:1368 字

    阅读完需:约 4 分钟

何时该用无服务器,何时该用Kubernetes?

什么时候该用无服务器,什么时候该用 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


2019-01-10 13:218588
用户头像
赵钰莹 InfoQ 主编

发布了 874 篇内容, 共 604.5 次阅读, 收获喜欢 2671 次。

关注

评论

发布
暂无评论
发现更多内容

人在年轻的时候,最核心的能力是什么?

非著名程序员

认知提升 个人提升 提升自我 8月日更

架构实战营模块四作业

maybe

Java操作Office:POI之word生成

程序员架构进阶

Java Apache POI 技术应用 8月日更 代码实战

这是一次鸡肋的代码审计

网络安全学海

网络安全 信息安全 计算机 渗透测试 安全漏洞

hbase运维故障案例分析

GrowingIO技术专栏

大数据 运维 HBase

拍乐云创始人赵加雨:沉浸式音视频加持数智化未来世界

拍乐云Pano

现有市值管理机器人|交Y机器人系统源码搭建

Geek_23f0c3

做市机器人 去中心化市值管理机器人

专访融云 CTO 任杰:构建通信云全能力

融云 RongCloud

getInteger还是getIntValue,这是一个问题

FunTester

Java json Groovy

趁着课余时间学点Python(五)用课余时间提升自己关于高级数据类型的知识

ベ布小禅

8月日更

使用 MVC 架构构建 Flask CRUD 应用程序

DisonTangor

Python flask

字节跳动Android面试:2021Android大厂面试知识分享

欢喜学安卓

android 程序员 面试 移动开发

FastApi-06-请求体-3

Python研究所

FastApi 8月日更

从关门“振动”说起,在这部剧本杀综艺里,爱奇艺隐藏了多少技术“小心机”

爱奇艺技术产品团队

综艺节目 互动视频技术 爱奇艺

阿里顶级大佬整理出十六个专题的Java面试指南,金九银十不用愁!

Java 编程 架构 面试 架构师

一个算法“拿下”两个榜单!爱奇艺ICCV 2021论文提出人手三维重建新方法

爱奇艺技术产品团队

vr 论文 ICCV2021 高精度三维重建

摘下手机赛场的夏季“金牌”,荣耀的“飞人之路”

脑极体

中台的前世今生

涛哥 数字产品和业务架构

企业架构 中台架构 中台的由来

PostgreSQL正强势回归!

数据库 大数据 时序数据库 tsdb 数据智能

基于 HLS 创建 Golang 视频流服务器

声网

音视频 HLS

外包三年给整废了,备战两月终拿到4家大厂offer,阿里P6+这回稳了

Java架构师迁哥

资深大牛带你了解源码!最新Android面试题整理

欢喜学安卓

android 程序员 面试 移动开发

一周信创舆情观察(7.26~8.1)

统小信uos

使用PyTorch构建神经网络模型进行手写识别

Shirakawa

神经网络 机器学习 深度学习 PyTorch 手写识别

贝壳找房基于StarRocks构建全新统一的极速OLAP平台实践

StarRocks

数据库 数据分析 OLAP StarRocks

MQTT-消息传输协议

一个大红包

8月日更

强推!华为内部都在用的783页大数据处理系统:Hadoop源代码pdf

Java 编程 架构 面试 架构师

101道经典JavaScript面试题总结(附答案,建议收藏)

前端依依

面试 大前端 JavaScrip

云原生时代,腾讯如何做好容器安全体系建设?

腾讯安全云鼎实验室

腾讯云 容器

如何洞察出推荐的关键时刻

石云升

推荐 用户体验 体验设计 8月日更

架构实战营毕业设计

Saber

架构实战营

何时该用无服务器,何时该用Kubernetes?_服务革新_赵钰莹_InfoQ精选文章