关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

Serverless 终结 Kubernetes?

发布时间:2020-02-12 17:27:39

作者 | Daniele Fontani


译者 | 弯月


封图 | CSDN 下载自 VCG


出品 | CSDN 云计算(ID:CSDNcloud)


以下为译文:


你觉得 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 等大型云服务,实现任何解决方案。你需要花点时间尝试一下这些工具,并了解它们的优点和缺点。

————————————————

版权声明:本文为CSDN博主「CSDN云计算」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/FL63Zv9Zou86950w/article/details/104230826



/template/Home/Zkeys/PC/Static