容器技术最近很火,各家项目纷纷提出自己的支持方案,比如 OpenStack、CF,以及一堆本身就基于容器的平台方案,更是跟容器技术脱不开关系。这也直接导致了暧昧已久的 IaaS 和 PaaS 开始正面的跨界冲突。

在IaaS 看来,做PaaS无非就是提供几个应用模板嘛,原来虚机不好做,现在用 Docker,瞬间给你把服务整起来。更别提还有最近出来搅局的 hyper,虚机要跟容器比性能。

而在PaaS看来,你IaaS就该老老实实地做底层物理资源给抽象出虚拟资源的事情。原来都是虚机的时候,感觉好复杂,我们搞软件的人确实不懂。现在有了一堆基于 Docker 的容器平台,往上就都是我做软件的人可以做的事情了,所以以后其实可以不再强调IaaS了。

这些讨论直接导致现在的云计算技术发展到了一个很关键的节骨眼上,将决定未来至少十年内云计算产业的形态。

当前现状

姑且放下这些争论,我们来看一下IaaS领域的Top开源项目OpenStack现在是怎么对待容器的。

目前有三种方案:

Nova-Docker:

把容器作为虚机管起来。基本上其它组件都不需要动。唯一的问题就是容器毕竟不是虚机,比如需要提供一些额外的参数支持啦,需要引入组的概念啦,需要性能的优化啦。

Heat Docker Driver:

用Heat来管容器。Heat大家都知道,是个十分灵活且强大的解释引擎理论上 Docker需要的支持它都能有。唯一的问题是Heat毕竟是个解释引擎,它本质上还是要基于其它服务提供的API。由于不是个运维引擎,导致运行时的管理没法保障,比如自动的资源调度啊,网络功能啊,等等。如果这些都做了,那就等于在更高一层上重复发明轮子了。

Magnum:

玩容器的人看问题基本上都是从应用层往上开始考虑。一帮人跑去Nova项目谈,应该怎么支持基于容器的DevOps啊,应用模板啊,Nova组一帮做系统的人就傻了,这事我们咋能干,这分明是PaaS该做的事情。但架不住大家都觉得Docker很火啊,我们肯定还是要玩点花样的,于是一个新的项目诞生了。

但玩应用的人毕竟不懂系统,于是调研了下,现在能管理Docker的开源方案还真有几个,比如Swarm和Kubernetes。太好了,那么,怎么把 Swarm 和 Kubernetes 这样的 PaaS 平台给集成到 OpenStack 这样的 IaaS 平台上呢?

这个听起来好像也不懂唉,有人又想起 Heat 来了,一拍脑袋,可以先拿 Heat 来装一套啊。每次需要的时候就调个 Heat 命令,动态的装一套。所有问题看起来都解决了,皆大欢喜啊,真是皆大欢喜!

思考云计算

某位名人说过,之所以能看得远,是因为站在了前人的肩膀上。

让我们抛开系统和应用之争,姑且也胆大地站在前人的肩膀上来重新发明轮子。

还是要忍不住重复,信息技术的领域离不开分层和抽象。在不同的时代和位置进行分层和抽象,诞生了小型机,诞生了处理器,诞生了编程语言,诞生了 Web 服务,诞生了云计算……

抛开 IaaS,抛开 PaaS,云计算到底要提供啥?这个问题毫无疑问,是便捷服务。 于是,用户需要操作系统,可以直接给你一个;用户需要一个运行环境,可以直接给你一个;用户需要一套软件,也可以直接给你一个;用户需要一套方案,这个目前还没法直接给你一个,属于外包公司的业务。

那么,对于云平台的设计者来说,就是要提供这些不同层次的服务给用户,这才有了所谓的IaaS和PaaS。所以,要记住,各种 XaaS 是呈献给用户的服务层次的不同,根本不是设计层次和技术方案的不同。

就好比你买了一个手机,可以玩游戏,也可以打电话。游戏和电话是手机提供给你的不同服务形态而已,并非说游戏是一种特殊的手机,电话是另外一种特殊的手机。

OK,那么,下面的问题就是讨论为了满足用户的这些需求,在设计上该如何分层。前人的智慧是毫无疑问的,总结出了计算、存储,网络这三个根本的基础业务。其中计算又是最核心和最直接的。

我们来看直接面向用户的计算业务。数据中心里面放着的都是物理机器,物理机器上可以装操作系统,操作系统上可以装各种软件,可以运行虚拟机,可以运行容器。无论物理机、虚拟机、容器,都是属于计算资源。统统都应该用云方案给实现供应出来。

如果说 IDC 是让用户可以拿物理机作为计算资源载体,那么现在的云计算是更进一步,让用户可以直接忽略计算资源的实际载体,无论是操作系统还是应用,直接提供给你即可,无需关心具体的载体。

总之一句话,云计算就是要方便提供计算资源!

问题与方向

Magnum 目前被认为OpenStack里面最有活力的容器项目,但是很可惜,一开始的路子就是偏的。

Magnum的定位是提供一套 OpenStack API,底下可以兼容/依赖多种第三方的容器管理平台。

OpenStack 本来就是要做一套资源管理平台,现在是用别人的,意味着这跟 OpenStack 其实关系不大。但是如果抛开 OpenStack,上面封装的一套 OpenStack API 又没有了意义。第三方的管理平台都有自己现成的API。

真正的Container as a Service,其实应该是在OpenStack中实现一套容器平台,而不是在OpenStack中安装了别人的一套平台,然后进行了 API 的封装。

或许有人会猜测,之所以不做底下的实现,可能跟 Nova-Docker 有关。

如果我们只谈技术,其实很容易在 Nova 中实现真正的 Container as a Service。在Nova看来,都是计算节点,但计算节点可以带上各自的类型,比如有的计算节点是物理机、有的是虚拟机、有的是容器甚至容器组。不同的类型意味着底层不同的驱动。用一套抽象的资源调度的框架,带上不同的底层framework,问题很容易得到解决。

但偏偏是现在已经有了Nova-Docker,已经有了Magnum,不知道要经过多少波折才可能走到这个方向上来。或许在 OpenStack 的大环境下,是一件太困难的事情了。

或许,这就是开源的魅力,分分合合,曲折中前行。

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2023-12-18 18:19:00
云资讯 新华网报道|中企通信新推智能化网络安全方案“云网神盾”
中企通信“云网神盾”的突出特点是突破了传统模式,让攻防进退有度。 <详情>
2023-12-13 16:32:02
云技术 Akamai预测2024年云计算三大趋势 计算架构、性能与成本迎改变
企业越来越多地转向云基础架构和服务,随之而来的数据存储、计算能力和出站带宽相关的总体支出可能会使财务资源迅速吃紧,并影响整体盈利能力。 <详情>
2023-12-06 15:53:00
云资讯 算力调度和云计算有何区别
那么,算力调度与云计算的差异体现在哪里呢? <详情>
2023-11-10 16:17:38
市场情报 为政企数字化转型注入新动能,华为擎云携安全定制终端重磅亮相2023数字科技生态大会
随着终端之间的信息互联互通越来越频繁,企业内部的数据孤岛被打通,同时也带来了数据泄密、隐私泄露等诸多安全挑战。 <详情>