软件开发架构师

OpenShift 的核心价值到底在哪里?-InfoQ

架构 160 2020-01-19 16:40

如果用一句话来形容 OpenShift 的核心价值,那么应该可以这样形容:“OpenShift 作为企业级容器平台,它是一盏打开从 PaaS 到 DevOps 和微服务的大门。”

从企业容器市场变化说起

在正式开始本文之前,我们先看三份有关企业容器市场的分析报告。

第一份:IDC 关于 2017 年全球企业容器市场的报告:

报告中全球企业容器市场份额如下:

OpenShift 的核心价值到底在哪里?-InfoQ-1

其中红帽份额占 30.1%, 约等于排在第二的 Docker、排在第三的 AWS、排在第四的 HPE、排在第五的 VMware 份额的总和。

第二份报告:Forrester2018 年第四季度发布了企业容器平台(ECP)软件套件评估报告:

在该报告中,Forrester 对全球企业容器平台进行了评估,技术方面红帽位于 Leader 象限,同时红帽具有较好的销售表现(白圈的大小代表市场表现)

OpenShift 的核心价值到底在哪里?-InfoQ-2

第三份报告:2019 年 9 月 IHS Markit Technology 发布了调查报告:

在该报告中,IHS Markit Technology 统计了商业容器软件市场收入的排名。

其中红帽份额为 44%,排在第一位,份额超过了排名第二 - 第五公司的总和。

OpenShift 的核心价值到底在哪里?-InfoQ-3

通过以上的三个报告,我们可以看出,近两年企业容器市场进一步发展,红帽 OpenShift 在企业容器市场领导力进一步增强(全球案例超过 1100 个)。

那么,既然企业容器市场如何火热,容器的核心价值是什么呢?OpenShift 的核心价值是什么呢?IT 技术人员为什么要学习 OpenShift?

带着这三个问题,我们继续阅读。

容器的核心价值

容器的起点与 X86 虚拟机不同

X86 虚拟化的兴起,与 IT 厂商的推广有很大关系。X86 虚拟化之所以普及这么快,借用沙克的一段话:X86 虚拟化是:“虚拟机用假的 CPU、内存和网络欺骗操作系统”。也就是说,装在虚拟机的操作系统自己,并不知道自己是被安装在了虚拟机里,而不是物理机中。从应用角度看,使用 X86 虚拟化技术,不需要改造应用(在满足性能的前提下),这就使 X86 虚拟化能够普及到除了数据库之外,其他应用都可以迁移到虚拟化上。

而“容器是直接用宿主机的操作系统来欺骗容器的应用”。应用并不知道自己运行在容器中 (无论是 tomcat 部署到容器中还是 Linux 中,部署 war 都是将其拷贝到 tomcat 的对应目录下)。所以,容器的起点就是面向应用,而不是像虚拟机那样面向运维。

落实到实际的经验中,容器方案和客户的运维和开发部门都可以谈,X86 虚拟机技术开发部门不会太感兴趣, 因为离他们太远。

在虚拟化初期,大多时候是 IT 厂商推动虚拟化技术在客户处的落地;而在容器时代,大多数是客户自己了解了容器后,寻找能够提供企业级容器解决方案的厂商。

容器赶上了好时代

容器技术的概念最初出现在 2000 年,当时称为 FreeBSD jail,这种技术可将 FreeBSD 系统分区为多个子系统(也称为 Jail)。

但直到 Docker 的出现(2008 年),容器才真正具备了较好的可操作性和实用性。因为 Docker 提供了容器的镜像构建、打包等技术,使容器具备了一次打包,到处运行的能力。

OpenShift 的核心价值到底在哪里?-InfoQ-4

而 2014 年 Kubernetes 的出现,奠定了今天容器调度平台的事实标准的基础。而在 2014 年 6 月,红帽随即宣布与谷歌合作,推广 K8S。这也奠定了 Openshift 在业内今日的影响力。

OpenShift 的核心价值到底在哪里?-InfoQ-5

对于客户而言,如果没有 K8S,那么容器只是“单机版”,很难做到企业级使用。

PaaS、Devops、微服务这些概念,在 K8S 火起来之前就有了。广义上的 PaaS、Devops、微服务建设,会包含:人、流程、工具等多方面内容。IT 厂商谈的 PaaS、CI/CD、微服务主要是指工具层面的落地。

在 K8S 和容器普及之前,通过虚拟机也可以实现 PaaS、CI/CD、微服务工具落地,只是相对速度较慢,因此普及性不高(想象一下通过 X86 虚拟化来实现中间件集群弹性伸缩的效率)。而正是容器的出现,为 PaaS、CI/CD、微服务工具层面的落地提供非常好的承载平台,使得这两年容器云风生水起。这就好比 4G(2014 年出现)和微信(2011 年出现)之间的关系:在手机网速 3G 时代,流量按照兆收费的时候,(即使有)大家对于微信语音聊天、微信视频也不会太感兴趣。

所以说,容器赶上了个好时代,Docker 使容器具备了较好的可操作性、可移植性,K8S 使容器具备企业级使用的条件。而企业级的容器平台,又成为了 PaaS、Devops、微服务新一代的基础架构。

容器在企业中的核心价值

前两年前谈容器的时候,有些吹毛求疵者会说,会有人说:容器不是万金油,比如核心数据库就不适合,这有些吹毛求疵。

实际上无论哪个 IT 厂商,都没说自己的容器云是万金油,也没说过可以把 Oracle RAC 跑在容器云上。关于这点,Gartner 前几年就说过,没有一种技术适用于所有的场景,并且还提出了敏态、稳态双模 IT 的概念。

OpenShift 的核心价值到底在哪里?-InfoQ-6

而企业容器平台,适合的就是敏态 IT。那么企业级容器平台,对于客户敏态业务的价值是什么呢?

一个字:快!

OpenShift 的核心价值到底在哪里?-InfoQ-7

也就是说,企业容器平台就是让客户的应用运行的更快、开发的更快。

如果不需要这么快呢?很简单,继续使用虚拟化技术,也挺好的。

X86 虚拟化和容器云,两者并不冲突,我看到的很多客户将两者做了很多好的融合、支撑起双态(稳态、敏态)业务

OpenShift 的核心价值

我们的一位合作伙伴提到过“其实,从功能而论,OpenShift 相比 Kubernetes 并没有新增多少新的功能。但是,它第一次打造了面向 DevOps 的 PaaS 平台的产品,这是具有开创性的。就像新打开一扇大门一样,门并没有多少价值,但是门后的风景才是真正的价值。”

如果更准确地说,OCP 中的 K8S 那部分,并没有比社区的 K8S 多加了什么功能。但 OCP 通过为 K8S 增加其他企业级功能,大幅提升了 K8S 的“地位”。不仅是开源爱好者关注 K8S 了,客户中的“高富帅”:银行、能源、电信运营商,也开始关注 K8S 了(OCP 全球案例超过 1000 个)。可以说:OCP 因 K8S 而重生(OCP3 基于 K8S 重构)、K8S 因 OCP 被企业级客户所接受(如果我们穿越回 2014 年年底,跳出大喊:K8S 会把你们其他这些容器调度平台都干翻,会不会被群殴?)。

关于 DevOps。DevOps 早都有方法论,只是以前 DevOps 基于虚拟机实现,效率比较低,没火起来。现在 OCP 为 DevOps 提供了更好的基础,更强的内功,所以 DevOps 星星之火,呈燎原之势。

乔峰(OCP)和玄难(虚拟机)同时用太祖长拳(DevOps),前者干翻后者,所谓招数无高下,功力有深浅。

[下面标底色关键词:迅捷、后发先至(业务激增,OCP 迅速对容器做横向扩展),不正是 OCP 的特性么?]

“但见乔峰和玄难只拆得七八招,高下已判。他二人所使的拳招,都是一般的平平无奇,但乔峰每一招都是慢了一步,任由玄难先发。玄难一出招,乔峰跟着递招,也不知是由于他年轻力壮,还是行动加倍的迅捷,每一招都是后发先至。这“太祖长拳”本身拳招只有六十四招,但每一招都是相互克制,乔峰看准了对方的拳招,然后出一招恰好克制的拳法,玄难焉得不败?这道理谁都明白,可是要做到“后发先至”四字,尤其是对敌玄难这等大高手,众人若非今日亲眼得见,以往连想也从未想到过。”

红帽早期构建 OCP,目的是面向于开发(红帽有 JBoss 中间件,OCP 具备 AppDev 的红二代背景)。比如 S2I 就是 OCP 独创的面向与开发的独门绝技(后来被开源社区采纳,称为 Java S2I 开源项目)。后来通过收购 CoreOS,大大提升了其运维的能力。如监控换成了普罗米修斯(CoreOS 主导的开源项目)、有状态应用生命周期管理引入 Operator 等等。

所以,OCP 从发展来看,是先攻破开发,后打通运维。

至于微服务,和 DevOps 的道理一样:法拉利(微服务)以前跑在晚高峰的侨福芳草地西门的小路上(VM),现在跑在大年三十的京藏高速上(OCP),拉风的效果能一样么?

如果一句话说明 OpenShift 核心价值,那就是:OpenShift 作为企业级容器平台,它是一盏打开从 PaaS 到 DevOps 和微服务的大门。

总结

OCP 目前还在不断的发展中,红帽去年收购了 CoreOS,利用“北冥神功”,已经将 CoreOS 的功力(Quay,Operator、CoreOS 容器操作系统、 Tectonic 等)散到奇经八脉。出关后的 OCP4 的功力大胜往昔(OCP3)。

通过两年,在以 OCP 为核心的泛 PaaS(aPaaS、iPaaS)学习中,确实对个人的技术视野有了大幅的扩展。当然,我要学的东西还很多,持续提升、死磕不止。

最后,借用(刘)世民兄的一段话作为结尾:

“有时候我会想,为什么只有红帽能推出 OpenShift 这种 PaaS 平台呢?我认为这和只有 Google 能推出 Kubernetes 是一样的,那就是公司的基因。正是因为他们自己长期使用容器,长期实践 DevOps,才能比较自然地做出大家普遍能接受的产品!”

文章评论