Serverless 会终结 Kubernetes 吗?

摘要:在运维的世界中,Kubernetes 是基础架构管理的终极解决方案吗?还是说我们更加需要 Serverless?究竟哪种技术能够解救运维团队?在本文中,作者将深度比较这两种争论不休的技术。

作者 |  Daniele Fontani

译者 | 弯月,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

不好意思,用这般博眼球的标题来吸引各位的注意,对此表示抱歉。我只是想和各位一起认真反思这个大主题。你觉得 Kubernetes 是开发运维世界里最好的技术吗?它是终极解决方案吗?当然,这个世界上没有终极解决方案,以前没有今后也不会有,技术都是瞬息万变的,我们需要时刻做好准备。我很喜欢 Kubernetes,很高兴再次讨论这个话题。Kubernetes 是当前开发运维世界里最热门的技术。在本文中,我们将共同探讨这样一个问题:

Kubernetes 是基础架构管理的终极解决方案吗?还是说我们更加需要 Serverless?究竟哪种技术能够解救运维团队?不要忘记,无运维的世界即将到来。

我认为变革是技术世界里的常态。我们的祖先出门骑马,而我们乘坐飞机。这就是技术进步的象征。

在过去的几年中,技术世界发生了一次小小的革命,越来越多的应用程序从虚拟机移到了容器中,这主要归功于 Kubernetes 部署。 

在这场革命发生期间,还有一个虽小却很强大的技术流行了起来,那就是“Serverless”。大多数人将其视为恶魔,而有些人则认为它是拯救开发人员于运维噩梦的“白马王子”。下面就让我们一起来看一看这究竟是机遇还是麻烦。

Kubernetes 和 Serverless 之间有什么区别?

Serverless 是一种云模型,可以帮助你摆脱服务器和基础架构的束缚。其目的是省却一定的成本,缩短产品上市的时间,减少运维与开发团队之间的摩擦。具体来说,你可以想象有一堵墙能够吸收你的代码,并负责执行代码,这堵墙就是无服务器。

你提供代码,供应商负责所有其他工作。

最常见的 Serverless 实现是带有SDK的无状态容器,负责将你的代码集成到系统中,并根据资源的使用情况向你收费。在大多数情况下,我们只需将我们的函数上传到云(函数即服务,Functions as a Service,即FaaS),然后通过HTTP调用这些函数。主流云提供商都提供了类似的云体验:

  • 亚马逊:AWS Lambda(https://aws.amazon.com/lambda/)

  • 微软 Azure:Azure Functions(https://azure.microsoft.com/en-us/services/functions/)

  • 谷歌云:Cloud Functions(https://cloud.google.com/functions/)

当然并不是真的没有服务器。只不过你看不到它们,因为它们被供应商藏了起来,并用它们来提供服务。服务器仍在运行,但是你看不到内存、CPU 或磁盘空间。你只需关注代码,将精力放在真正需要的地方。

那么,什么是 Kubernetes?你可以将 Kubernetes 视为运行分布式系统的框架,这些系统源自 Docker 镜像。Kubernetes 能够满足规模扩展的需求,还能够管理好部署以及负载平衡。Kubernetes 利用简洁且可重复使用的 YAML 文件来书写配置,部署出来的环境可轻松复制。

Kubernetes 是非常便捷的基础设施。

你只需要更改一些配置文件,就可以全权掌控容器实例(服务和Pod)、网络以及部署。Kubernetes 的功能包括扩展规模、故障转移以及部署模式等等。

与无服务器同样,Kubernetes 可以帮助系统管理员轻松地完成复杂的体系结构。这项技术可以将费时费力的传统部署转变成智能快捷的方式。无运维的时代就要来了!

Kubernetes 有哪些优点?

Kubernetes 最大的优势在于,你可以像处理常规服务器一样处理集群,同时还无需管理物理机器。从逻辑上讲,服务器和集群组件是对等的关系。你可以把 Pod 和服务当成虚拟机来实例化。此外,你还拥有网络、存储等等。因此,你可以通过操控底层的集群来深入控制所有组件。

与无服务器平台相比,Kubernetes 的优势如下:

  • 与过往技术有良好的兼容性。如果你正在使用容器,那么毫不费力就可以移动到 Kubernetes上;如果你没有使用容器,那么也只需将应用程序组件容器化。

  • 良好的控制。

  • 供应商的限制较少,Kubernetes 就是单纯的 Kubernetes,而 Docker 容器也只是 Docker 容器而已。从理论来讲,你只需点一下鼠标即可将基础架构移动到其他地方。

  • 可以微调每个组件的功能。

  • 可在自建的基础设施上运行(比如可以用于开发环境,或者极端情况,或者只是你想尝试些疯狂的东西)。

  • 成本预测。你只需支付集群资源的费用,比无服器更好预测。

Serverless 的优点是什么?

Kubernetes 在减少系统管理员工作方面迈出了一大步,但还没有减少到零。Serverless 可以从根本上避免所有系统管理组件,你唯一需要关心的就是源代码。就好像一组乐高积木,将它们拼在一起。每一块都可以单独运行,你只需要让积木块之间正确沟通即可,仅此而已。由于 FaaS 解决方案需要思想上的转变,因此似乎很难实施。在这种情况下,你可以采用一些“软”Serverless解决方案——无需更改即可直接托管你的应用程序。Heroku 就是这类的一个解决方案,它从服务器和传统的开发运维中进行了抽象,提供了无运维、无服务器的体验,可以促进应用程序的开发,减轻所有托管负担。

Serverless 会终结 Kubernetes 吗?

现如今,Serverless还是一项很新的技术,第一版的 AWS Lambda 于2014年发布。同年,Docker 也迈出了第一步(第一版于2013年发布,但我不确定发布时是否可以投入生产环境)。而 Kubernetes 诞生于2014年。因此,我们可以说,Serverless与容器几乎同时问世,不分伯仲。从这个角度来看,Serverless并非诞生于 Kubernetes 之后,因此我们不能认为Serverless将取代容器。二者只是Web应用程序中实现托管的两种不同的方法。也许在某些情况下,你可能更喜欢Serverless,而有些时候则会更喜欢 Kubernetes。那么具体选择哪个呢?不得不说这要视具体情况而定。普通的咨询师与优秀的咨询师之间的区别就在于,优秀的咨询师了解许多互补的解决方案,并能够根据实际情况找到最佳解决方案。

总结

在本文中,我们分别讨论了这两种解决方案的优点,你可以根据对这两项技术的了解找到适合自身的最佳解决方案。你可以使用谷歌云等大型云服务,实现任何解决方案。你需要花点时间尝试一下这些工具,并了解它们的优点和缺点。

原文:https://towardsdatascience.com/kubernetes-serverless-differences-84699f370609

本文为 CSDN 翻译,转载请注明来源出处。

【End】

推荐阅读 

钉钉辟谣“老师能打开学生摄像头”;HTC 关闭官方社区;Node.js 安全版本发布 | 极客头条

AI 医生“战疫”在前线

2020年AI如何走?Jeff Dean和其他四位“大神”已做预测!

远程办公众生相:“云”吃饭、被窝打卡、梳妆台编程......

2020 年,云游戏将爆发?各大科技公司云游戏布局大曝光!

SIM卡交换攻击盗币猖獗,比特币从业者如何自保?

你点的每一个在看,我认真当成了喜欢

发布了1686 篇原创文章 · 获赞 4万+ · 访问量 1500万+

猜你喜欢

转载自blog.csdn.net/csdnnews/article/details/104230775