内容简介:【编者的话】对这两种技术进行比较,以停止关于哪种技术更好的争论。什么时候用Kubernetes?什么时候用Serverless?正确的答案是“视情况而定”。顾问和好顾问的区别在于,他们知道许多互补的解决方案,并根据场景找到最佳的解决方案。哎呀,我又来了。我用了这个醒目的标题来吸引你的注意,抱歉。我需要你的注意来介绍这个大主题,以致于我们能够更好的反思。你认为Kubernetes是DevOps世界里最后一个最好的技术吗?技术是短暂的,你必须为变化做好准备,这也是前所未有的。我爱Kubernetes,我很高兴再
【编者的话】对这两种技术进行比较,以停止关于哪种技术更好的争论。什么时候用Kubernetes?什么时候用Serverless?正确的答案是“视情况而定”。顾问和好顾问的区别在于,他们知道许多互补的解决方案,并根据场景找到最佳的解决方案。
哎呀,我又来了。我用了这个醒目的标题来吸引你的注意,抱歉。我需要你的注意来介绍这个大主题,以致于我们能够更好的反思。你认为Kubernetes是DevOps世界里最后一个最好的技术吗?技术是短暂的,你必须为变化做好准备,这也是前所未有的。我爱Kubernetes,我很高兴再次谈论它,它是DevOps场景中最热门的术语。阅读这篇文章,你会找到这个大问题的答案:
这是基础设施管理的最终解决方案,还是我们需要押注于无服务器,从而延长我们离开运营团队的时间?记住, NoOps 就要来了。
我认为技术上的变化是很常见的。我们的祖先坐马车旅行,我们坐飞机旅行,这是进步的一部分。
在过去几年中,出现了一场小小的革命,将越来越多的应用程序从虚拟机带到容器中,这主要归功于使用Kubernetes进行部署的机会。
当这场革命发生的时候,有一个小小的强大的时髦词,它就是“Serverless”。大多数人认为它是邪恶的,其他人则像白马王子一样可以把开发者从噩梦中拯救出来。好吧,让我们看看有什么问题和机会--保持安静,不要威胁到地平线!
Kubernetes和Serverless之间的区别是什么?
无服务器是一种云模型,在这种模型中,你希望摆脱服务器和基础设施。这样做的目的是为了避免固定成本,减少投放市场的时间和团队(运营和开发)之间的摩擦。具体来说,假设有一个层可以提取代码并负责执行,Serverless就是这样的东西。
你提供代码,供应商提供所有其他的
最常见的无服务器实现具有无状态的容器和SDK,允许你的代码集成到系统中,并根据资源的使用情况向你开具发票。在大多数情况下,我们可以将我们的功能(“FaaS”,功能即服务)上传到云中,该功能由HTTP调用激活。主要的云提供商也提供类似的云体验:
- 亚马逊: AWS Lambda
- 微软Azure: Azure Functions
- 谷歌云: Cloud Functions
当然,服务器并没有消失。你看不到它们是因为它们被供应商隐藏了,而供应商使用它们来提供服务。服务器仍然是活动的,但是你看不到任何ram、CPU或磁盘空间。你只需要关注代码,你可以把你的努力放在真正需要的地方。
Kubernetes是什么?以Kubernetes为框架,从简单的 docker 映像开始运行分布式系统。它处理你的扩展需求、部署和负载平衡。所有这些内容都可以使用简单的YAML文件轻松地描述和重用,从而通过设计创建可复制的环境。
Kubernetes是你手头的基础设施
只需更改一些配置文件,你就可以完全控制容器实例(服务和pod)、网络和部署。Kubernetes负责你的扩展需求、故障转移、部署模式等。对于Kubernetes上的新手,我写了一篇很好的 Kubernetes入门文章 。
与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、微服务领域。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。