7

Serverless是Kubernetes的终结吗

 4 years ago
source link: http://dockone.io/article/9693
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
7rE7FbJ.png!web

【编者的话】对这两种技术进行比较,以停止关于哪种技术更好的争论。什么时候用Kubernetes?什么时候用Serverless?正确的答案是“视情况而定”。顾问和好顾问的区别在于,他们知道许多互补的解决方案,并根据场景找到最佳的解决方案。

哎呀,我又来了。我用了这个醒目的标题来吸引你的注意,抱歉。我需要你的注意来介绍这个大主题,以致于我们能够更好的反思。你认为Kubernetes是DevOps世界里最后一个最好的技术吗?技术是短暂的,你必须为变化做好准备,这也是前所未有的。我爱Kubernetes,我很高兴再次谈论它,它是DevOps场景中最热门的术语。阅读这篇文章,你会找到这个大问题的答案:

这是基础设施管理的最终解决方案,还是我们需要押注于无服务器,从而延长我们离开运营团队的时间?记住, NoOps 就要来了。

我认为技术上的变化是很常见的。我们的祖先坐马车旅行,我们坐飞机旅行,这是进步的一部分。

在过去几年中,出现了一场小小的革命,将越来越多的应用程序从虚拟机带到容器中,这主要归功于使用Kubernetes进行部署的机会。

当这场革命发生的时候,有一个小小的强大的时髦词,它就是“Serverless”。大多数人认为它是邪恶的,其他人则像白马王子一样可以把开发者从噩梦中拯救出来。好吧,让我们看看有什么问题和机会--保持安静,不要威胁到地平线!

Kubernetes和Serverless之间的区别是什么?

无服务器是一种云模型,在这种模型中,你希望摆脱服务器和基础设施。这样做的目的是为了避免固定成本,减少投放市场的时间和团队(运营和开发)之间的摩擦。具体来说,假设有一个层可以提取代码并负责执行,Serverless就是这样的东西。

你提供代码,供应商提供所有其他的

最常见的无服务器实现具有无状态的容器和SDK,允许你的代码集成到系统中,并根据资源的使用情况向你开具发票。在大多数情况下,我们可以将我们的功能(“FaaS”,功能即服务)上传到云中,该功能由HTTP调用激活。主要的云提供商也提供类似的云体验:

当然,服务器并没有消失。你看不到它们是因为它们被供应商隐藏了,而供应商使用它们来提供服务。服务器仍然是活动的,但是你看不到任何ram、CPU或磁盘空间。你只需要关注代码,你可以把你的努力放在真正需要的地方。

Kubernetes是什么?以Kubernetes为框架,从简单的docker映像开始运行分布式系统。它处理你的扩展需求、部署和负载平衡。所有这些内容都可以使用简单的YAML文件轻松地描述和重用,从而通过设计创建可复制的环境。

Kubernetes是你手头的基础设施

只需更改一些配置文件,你就可以完全控制容器实例(服务和pod)、网络和部署。Kubernetes负责你的扩展需求、故障转移、部署模式等。对于Kubernetes上的新手,我写了一篇很好的 Kubernetes入门文章

3qErIva.png!web

与Serverless一样,Kubernetes允许复杂的体系结构,而sysadmin只需很少的工作。这种技术改变了传统的部署方式,即人员密集的部署方式,变得更加智能和快速。嘿,伙计们,NoOps来了!

Kubernetes的优点是什么?

使用Kubernetes的最大优点是,你可以像处理常规服务器群一样处理集群,但是不需要进行物理管理。从逻辑上讲,你可以重新创建服务器和集群组件之间的并行性。你可以实例化pods和服务,就像实例化虚拟机一样,你有网络,存储等等。这意味着可以更深层次地控制所有单个组件,对集群进行低级访问。

因此,我列出了使用Kubernetes代替无服务器平台的优点:

  • 与过去兼容,这一点非常赞。如果你是在容器上移动很容易,不只是容器化你的应用程序的成本。
  • 对发生的事情有很强的控制力
  • 更少的供应商锁定。Kubernetes就是Kubernetes, Docker容器就是Docker容器。理论上,你可以在一次单击中移动基础设施
  • 能够微调每一个组件
  • 也可以运行on-prem(对于开发,或者极端情况,或者你只是疯了)
  • 预测成本。你为集群的资源付费,这比使用无服务器方法更好地预测资源。

Serverless的优点是什么?

Kubernetes是减少系统管理员工作量的一大进步,但并没有减少到零。基本上,无服务器方法可以避免任何sysadmin组件,因为你只需要关心源代码。这就像挑选一套乐高积木并把它们放在一起。每块砖都是单独工作的,你只需要让他们适当地交流。FaaS解决方案似乎很难实施,因为它们需要转变思维方式。在这种情况下,你可以采用一些更温和的无服务器解决方案,直接托管你的应用程序,而无需更改。这种解决方案的一个很好的例子是Heroku,它从服务器和传统的DevOps中抽象出来,提供了一个NoOps Serverless体验,可以促进应用程序开发,减少所有托管的不愉快。

Serverless是不是Kubernetes的终结?

直到今天,Serverless似乎是新的东西,但AWS Lambda的第一个版本是在2014年。那一年,Docker迈出了第一步(第一次正式发布是在2013年,我不确定它是什么时候准备好投入生产场景的)。2014年诞生的Kubernetes。因此,我们可以看出,Serverless是可用的,因为基本与容器是相同的时间的。从这个角度来看,Serverless并不是在Kubernetes之后出现的,我们不能认为serverless是容器的替代品。它们只是在web应用程序中实现托管部分的两种不同方法。也许在某些情况下,你更喜欢其中之一。什么时候用Kubernetes?什么时候用Serverless?正确的答案是“视情况而定”。顾问和好顾问的区别在于,他们知道许多互补的解决方案,并根据场景找到最佳的解决方案。

说了这么多,带什么走呢

我们已经讨论了这两种解决方案的优点,最后我们可以告诉你,通过了解技术,你可以为你的场景找到最佳解决方案。使用像 谷歌云 或其他云这样的大型云服务,你就可以实现任何解决方案。现在是时候试验一下他提供的工具并了解其优缺点了。

觉得这篇文章有用吗?欢迎在Medium上关注我(Daniele Fontani),看看我在DevOps上最受欢迎的文章吧!别忘了点赞本文分享它!

::Mr.lzc,软件工程师、DevOpsDays、HDZ深圳核心组织者,目前供职于华为,从事云存储工作,以Cloud Native方式构建云文件系统服务,专注于K8s、微服务领域。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK