Serverless 终结 Kubernetes?
戳蓝字“CSDN云计算”关注我们哦!
Kubernetes 是基础架构管理的终极解决方案吗?还是说我们更加需要 Serverless?究竟哪种技术能够解救运维团队?不要忘记,NoOps 的世界即将到来。
以下为译文:
你觉得 Kubernetes 是 DevOps 世界里最好的技术吗?它是终极解决方案吗?当然,这个世界上没有终极解决方案,以前没有今后也不会有,技术都是瞬息万变的,我们需要时刻做好准备。我很喜欢 Kubernetes,很高兴再次讨论这个话题。Kubernetes 是当前 DevOps 世界里最热门的技术。在本文中,我们将共同探讨这样一个问题:
Kubernetes 是基础架构管理的终极解决方案吗?还是说我们更加需要 Serverless?究竟哪种技术能够解救运维团队?不要忘记,NoOps 的世界即将到来。
我认为变革是技术世界里的常态。我们的祖先出门骑马,而我们乘坐飞机。这就是技术进步的象征。
在过去的几年中,技术世界发生了一次小小的革命,越来越多的应用程序从虚拟机移到了容器中,这主要归功于 Kubernetes 部署。
在这场革命发生期间,还有一个虽小却很强大的技术流行了起来,那就是“Serverless ”。大多数人将其视为恶魔,而有些人则认为它是拯救开发人员于运维噩梦的“白马王子”。下面就让我们一起来看一看这究竟是机遇还是麻烦。
Kubernetes 和 Serverless 之间有什么区别?
Serverless 是一种云模型,可以帮助你摆脱服务器和基础架构的束缚。其目的是省却一定的成本,缩短产品上市的时间,减少运维与开发团队之间的摩擦。具体来说,你可以想象有一堵墙能够吸收你的代码,并负责执行代码,这堵墙就是 Serverless。
最常见的 Serverless 实现是带有 SDK 的无状态容器,负责将你的代码集成到系统中,并根据资源的使用情况向你收费。在大多数情况下,我们只需将我们的函数上传到云(函数即服务,Functions as a Service,即 FaaS),然后通过 HTTP 调用这些函数。主流云提供商都提供了类似的云体验:
亚马逊:AWS Lambda
微软 Azure:Azure Functions
谷歌云:Cloud Functions
当然并不是真的没有服务器。只不过你看不到它们,因为它们被供应商藏了起来,并用它们来提供服务。服务器仍在运行,但是你看不到内存、CPU 或磁盘空间。你只需关注代码,将精力放在真正需要的地方。
那么,什么是 Kubernetes?你可以将 Kubernetes 视为运行分布式系统的框架,这些系统源自 Docker 镜像。Kubernetes 能够满足规模扩展的需求,还能够管理好部署以及负载平衡。Kubernetes 利用简洁且可重复使用的 YAML 文件来书写配置,部署出来的环境可轻松复制。
你只需要更改一些配置文件,就可以全权掌控容器实例(服务和 Pod)、网络以及部署。Kubernetes 的功能包括扩展规模、故障转移以及部署模式等等。
与 Serverless 一样,Kubernetes 可以帮助系统管理员轻松地完成复杂的体系结构。这项技术可以将费时费力的传统部署转变成智能快捷的方式。NoOps 的时代就要来了!
Kubernetes 有哪些优点?
Kubernetes 最大的优势在于,你可以像处理常规服务器一样处理集群,同时还无需管理物理机器。从逻辑上讲,服务器和集群组件是对等的关系。你可以把 Pod 和服务当成虚拟机来实例化。此外,你还拥有网络、存储等等。因此,你可以通过操控底层的集群来深入控制所有组件。
与 Serverless 平台相比,Kubernetes 的优势如下:
与过往技术有良好的兼容性。如果你正在使用容器,那么毫不费力就可以移动到 Kubernetes 上;如果你没有使用容器,那么也只需将应用程序组件容器化。
良好的控制。
供应商的限制较少,Kubernetes 就是单纯的 Kubernetes,而 Docker 容器也只是 Docker 容器而已。从理论来讲,你只需点一下鼠标即可将基础架构移动到其他地方。
可以微调每个组件的功能。
可在自建的基础设施上运行(比如可以用于开发环境,或者极端情况,或者只是你想尝试些疯狂的东西)。
成本预测。你只需支付集群资源的费用,比 Serverless 更好预测。
Serverless 的优点是什么?
Kubernetes 在减少系统管理员工作方面迈出了一大步,但还没有减少到零。Serverless 可以从根本上避免所有系统管理组件,你唯一需要关心的就是源代码。就好像一组乐高积木,将它们拼在一起。每一块都可以单独运行,你只需要让积木块之间正确沟通即可,仅此而已。由于 FaaS 解决方案需要思想上的转变,因此似乎很难实施。在这种情况下,你可以采用一些“软”Serverless 解决方案——无需更改即可直接托管你的应用程序。Heroku 就是这类的一个解决方案,它从服务器和传统的 DevOps 中进行了抽象,提供了无运维、Serverless 的体验,可以促进应用程序的开发,减轻所有托管负担。
Serverless 会终结 Kubernetes 吗?
现如今,Serverless 还是一项很新的技术,第一版的 AWS Lambda 于 2014 年发布。同年,Docker 也迈出了第一步(第一版于 2013 年发布,但我不确定发布时是否可以投入生产环境)。而 Kubernetes 诞生于 2014 年。
因此,我们可以说,Serverless 与容器几乎同时问世,不分伯仲。从这个角度来看,Serverless 并非诞生于 Kubernetes 之后,因此我们不能认为 Serverless 将取代容器。二者只是 Web 应用程序中实现托管的两种不同的方法。也许在某些情况下,你可能更喜欢 Serverless ,而有些时候则会更喜欢 Kubernetes。那么具体选择哪个呢?不得不说这要视具体情况而定。普通的咨询师与优秀的咨询师之间的区别就在于,优秀的咨询师了解许多互补的解决方案,并能够根据实际情况找到最佳解决方案。
总结
在本文中,我们分别讨论了这两种解决方案的优点,你可以根据对这两项技术的了解找到适合自身的最佳解决方案。你可以使用 Google Cloud 等大型云服务,实现任何解决方案。你需要花点时间尝试一下这些工具,并了解它们的优点和缺点。
英文:Is Serverless The End Of Kubernetes?
链接:https://towardsdatascience.com/kubernetes-serverless-differences-84699f370609
作者:Daniele Fontani
译者 :弯月
推荐阅读:
微服务架构何去何从? 疫情肆虐下,程序员用代码告诉你为什么千万不要出门! 终于!孙宇晨和巴菲特吃上 3153 万元的晚餐,还送了一个比特币! 2020年AI如何走?Jeff Dean和其他四位“大神”已做预测!
为什么说 Julia 更优于 Python?
AI 医生“战疫”在前线