复杂性会压垮Kubernetes吗?

开发 开发工具
Hadoop由于其使用不友好终于耗尽能量,相对于Hadoop如今人老珠黄,Kubernetes现在是开源社区新宠。正如Capital One的Bernard Golden所说,Kubernetes“易于操作”,正大步向前。

Kubernetes肯定不会是第一个受制于其规模的开源项目,但是专家有不同看法……

Hadoop由于其使用不友好终于耗尽能量,相对于Hadoop如今人老珠黄,Kubernetes现在是开源社区新宠。正如Capital One的Bernard Golden所说,Kubernetes“易于操作”,正大步向前。相对这种外交辞令,有些人认为Kubernetes正在忍受类似痔疮一样的痛苦。

复杂性会压垮Kubernetes吗?

Kubernetes会步Hadoop的后尘吗?

很可能不会。相对于日益难用的Hadoop,Kubernetes变的越来越易用。尽管Kubernetes用起来并不简单,但是其复杂性跟Hadoop有本质不同。

Hadoop的不兼容复杂性

首先看看Hadoop。当MapReduce概念提出时,Apache Hadoop就是很复杂的。随着更多功能不断加入和完善,复杂性更是不可避免。正如Tom Barber所说,“Hadoop本质是什么?MapReduce被Spark取代又被其它功能取代,等等”,尽管如此,仍然很笨重。

为什么笨重,VMware的Jared Rosoff认为:“Hadoop复杂性来自于其基础架构由太多不相关并且复杂系统沟通,每个系统都有不同生命周期和管理模式”。Flume,Chukwa,Hive,Pig,ZooKeeper等等,听起来名字都很灵气,但是把他们整合在一起工作的确是个噩梦,Hadoop其实是一个复杂解决方案栈,其复杂性来自于用户。

Kubernetes的不同在于其扩展Hadoop的模式。如Rosoff所说,“Hadoop并没有考虑人们会如何扩展系统,因此造成了完全不兼容扩展的生态系统”,相对的,“Kubernetes则选择了完全不同的扩展方式。Operators,CRI/CSI/CNI,确保当更多组件加入时,表现的更加顺畅”。换句话说,不像Hadoop不兼容扩展,“Kubernetes扩展后仍然是个整体”。

Kubernetes可信赖的复杂性

并不是说Kubernetes很简单。Joe Beda of Heptio,作为Kubernetes创始人,声明,“Kubernetes是个复杂系统”,但是这种复杂性是必须的,因为“Kubernetes做了很多抽象工作”。每个人都需要这种抽象吗?不,“大部分人更希望一个简易的功能”。

但是对于需要使用Kubernetes的用户来说,Beda强调,相对于已经熟悉的“老旧兼容性复杂性”,他们更需要一种全新的复杂性系统。

作为工程师,我们更愿意体验自己产生的复杂性,而不是需要去学习复杂性。随着开发工作采用Jenkins,Bash,Puppet/Chef/Salt/Ansible,AWS,Terraform等,我们造就了独特但是熟悉的复杂性,这种复杂性是内生的因此并不会感到很复杂。

当时让新人加入这种系统就会比较困难,他们可能对工具很熟,但是对系统独特性并不熟悉,这就是Kubernetes有价值的地方。Kubernetes提供一系列抽象层解决问题。尽管还会需要一些学习,但是这种模式会大大提高生产效率,而且可以在不同项目和开发环境下进行切换。

懂了吗?与某些具有锁定开发系统环境复杂性不同,Kubernetes复杂性带来的好处是不会被捆绑在某种开发环境上。因此,Kubernetes所获得的知识是可以迁移的。换句话说,“一次学习,终身受益。”

一次学习,终身受益

Kubernetes的学习过程也比Hadoop更容易,Gareth Rushgrove说,“在本地可以很容易运行Kubernetes,相比于其他复杂系统,降低运行门槛非常重要”。另外,如CNCF基金的Chris Aniszczyk所说,“分布式系统内生具有复杂性,Kubernetes帮助云提供商提供一种随需扩展的实现方式”,尽管如此,我们应该这么问这个问题:“Kubernetes相对于它要解决的问题来说复杂吗?”,回答应该是“不”。

因此对于“Kubernetes会步Hadoop后尘吗?”,答案也是同样的。Kubernetes已经走过了艰难时刻,尽管Kubernetes的编排工具很复杂,不适合所有场景,但是所有的工具都需要学习,使用和理解。几个小时不够,因为这个工具是为了解决复杂问题的。复杂性分为可控的和意外的两种,Hadoop属于后者,而Kubernetes则是前者。

因此,Kubernetes仍将会是容器编排领域的业界标准。

责任编辑:未丽燕 来源: Dockone.in
相关推荐

2018-07-31 14:47:51

Kubernetes开发应用程序

2019-05-13 15:47:29

Kubernetes云计算云复杂性

2012-12-26 10:53:26

2017-06-23 08:45:02

存储技术复杂性

2022-03-22 22:43:30

云计算混合云Kubernete

2009-01-20 15:23:33

存储安全密钥数据保护

2013-07-30 09:11:01

云计算互联网

2012-04-10 22:52:58

IBMTivoli云计算

2020-06-15 09:58:23

云计算云安全数据

2023-04-04 08:42:30

IT成本技术堆

2016-11-22 09:24:29

大数据部署Hadoop

2012-09-19 13:18:37

复杂设计UI设计

2020-09-11 11:05:44

混合云云安全云计算

2010-05-27 22:30:08

桌面虚拟化回报

2019-07-29 12:35:15

云计算复杂性云计算平台

2019-11-23 23:30:55

Python数据结构时间复杂性

2022-03-09 10:51:19

云安全网络安全

2013-11-01 13:38:41

程序员编程语言

2015-04-16 15:06:34

2022-09-14 10:26:14

架构微服务前端
点赞
收藏

51CTO技术栈公众号