下一代的中间件必须是支持docker规范的,这是中间件技术走向标准规范化的必经之路。

什么是 Docker?

答案是:Docker 是下一代的云计算模式。Docker 是下一代云计算的主流趋势.

Docker 翻译成中文是“码头搬运工”的意思,那么“码头搬运工”搬运的是什么?是标准化的“集装箱”,这个标准化“集装箱”里装的是应用程序。“码头搬运工”在世界上任何提供了标准化接驳的“码头”就可以接收标准化“集装箱”,然后快速安装、运行和管理“集装箱”里的应用程序,而提供标准化接驳“码头”的就是各类云服务商。借此,Docker 把云计算环境下的应用程序开发和分发带进了工业化生产的时代,这就是 Docker 的意义。

在 Docker 环境下,程序开发者按一定的打包标准生产程序,生产出来的标准化程序被装进标准化的容器(Container)里,也就是“集装箱”。世界各国的云服务商都提供了标准化的“码头”,可以很容易地接收标准化的容器和里面的应用程序,再把这些标准化的应用程序以即插即用的方式组装到自己的个性化解决方案里,然后提供给最终用户。而与 Docker“集装箱”对应的标准化程序架构,就是大家所熟悉的微服务。

在 Docker 时代,第一代云计算中的 IaaS 层与 PaaS 层合二为一成为了 CaaS(Container-as-a-Service,即容器即服务),这就是下一代云计算架构。基于 CaaS 的下一代云计算架构赋予了企业强大的工业化生产通用软件的能力,再根据消费者和用户的个性化需求,快速组装通用软件形成个性化的解决方案,这就是下一代的商业模式。

具有运维百万台以上服务器经验的技术人才只有谷歌、亚马逊云和微软三家而已。

成立于 1998 年的谷歌在全球运维着上千万台服务器;其次是 AWS 亚马逊云和微软 Windows Azure,他们各自拥有和运维着数百万台服务器;再次是 IBM SoftLayer 拥有和运维着数十万台服务器;最后是各个国家的区域性公有云服务商,拥有和运维着从数百台到数千台不等的服务器,从运维服务器的规模就能直接判断公有云服务商的运维经验和技术水平。

谷歌在全球运维了上千万台的服务器,这个规模已经远远超出了很多现有技术供应商的上限,因此谷歌自己发明了诸多技术用于管理千万台规模服务器,“比如谷歌研发了顶级的网络交换机,就连思科都造不出来这样的网络交换机。原因很简单,因为没有相应的实验环境。

谷歌为了避免使用市面上昂贵的基于物理机的虚拟化产品,同时也是为了更快、更便宜的发布自己的软件和服务,从一开始就研发了基于容器(Container)的新型虚拟化技术,通过这一技术简化了谷歌全部服务运行所需要的底层操作系统环境。在 2015 年 8 月的 CNUTCon 全球容器技术大会上,有超过 8 年谷歌经验的谷歌云平台软件工程师 Dawn Chen 介绍说,她 8 年半前加入谷歌的时候,那个时候谷歌刚开始研发容器技术,当时谷歌容器技术团队加上她只有两个人。如今谷歌所有的服务都运行在容器中,这包括了 Gmail、地图、GFS 文件系统、MapReduce 等。谷歌现在每秒会启动大约 7000 个容器,每周会发布超过 20 亿个容器。

谷歌实际上通过容器实现了“无缝操作系统”的愿景。稍微了解云计算的人都知道虚拟机在 IaaS 层的重要性,改变了虚拟机的方式就相当于改变了 IaaS 层的结构,这就是为什么说容器是下一代云计算模式的重要原因。容器本质上是一种操作系统技术,是基于操作系统的虚拟化技术。基于容器开发的应用软件可以达到“一处开发、处处运行”的效果,而无关乎底层到底是什么样的操作系统或什么样的 IaaS 云服务环境,这实际上就是“无缝操作系统”的概念,与之相适应的就是“无缝解决方案”和“无缝 IT”。

去年 10 月份,微软就宣布了在 Windows 服务器实现容器技术的计划,宣布了与 Docker 的合作伙伴关系,以保证无论是在 Linux 还是在 Windows Server,都可以获得一个统一、开放的体验。尽管 Linux 容器与 Windows 容器基于不同的操作系统而互不兼容,但容器管理器是统一的。近期,微软进一步宣布将针对 Windows Server 2016 发布 Windows Server 容器和 Hyper-V 容器,两种容器都支持 Docker API 和 Docker 客户端。

另一家受 Docker 冲击比较大的 VMWare 也迫不急待的在 VMWare World 2014 上就宣布了对 Docker 的支持。VMware 对容器的态度是积极的,尽管容器和基于物理机的虚拟机 VM 之间存在着竞争,但 VMware 仍然致力于扩大与容器生态合作。在 2015 年 8 月底的 VMWare World 2015 大会上,VMware 推出了一系列新的支持 Docker 的技术,并提出了未来全新的全面支持容器的技术架构,让 Docker 程序也能运行在虚拟机 VM 里了。

京东从 2014 年 10 月开始引入 Docker,2015 年 2 月对 Docker 进行战略立项,2015 年 618 的时候在生产环境中发布了 11000 多个容器实例并接入了 1000 多个应用,从 2015 年 8 月开始的新数据中心全面采用容器技术。目前京东已上线 Docker 实例 2 万多,预计到年底将翻番,届时京东大部分应用程序将通过 Docker 的方式发布。未来京东的 Docker 愿景是通过 Docker 管理所有的机器,应用程序与物理资源之间完全解耦,实现全自动化的系统维护,研发人员可以集中精力于新应用程序的开发。

其实对于容器贡献最大的还是谷歌。Docker 技术就是用谷歌的 Go 语言编写的,这是谷歌 2009 发布的第二款开源编程语言。谷歌每周发布 2 亿多的容器,这让谷歌有能力发明很多关键性的容器技术。其中包括容器管理系统,这个管理系统的第一个版本被称为 Borg,后续又发布了名为 Omega 的版本。通过这个管理系统,可以在谷歌的大规模集群资源上使用容器技术。后来业界根据谷歌的相关学术论文,模仿 Borg 开发出来的 Mesos 系统,正在被 Airbnb、Twitter、苹果 Siri 等在使用。

下一代的中间件必须是支持docker规范的的更多相关文章

  1. 下一代容器架构已出,Docker何去何处?看看这里的6问6答!!

    我猜很多人一看这个标题已经感觉很懵逼了,什么?下一代容器都出来了,我还没学Docker呢!!! 咳咳~~在这里我给大家做一个保证,下一代容器目前也只是各个公司在测试阶段,Github上面也有很多Iss ...

  2. 支持 MBTiles 规范的预缓存

    SuperMap iServer 支持生成符合MBTiles规范的预缓存(MBTiles是由MapBox制定的一种将瓦片地图数据存储到SQLite数据库中并可快速使用,管理和分享的规范. 该规范由Ma ...

  3. 微软Azure开始支持Docker技术

    前一段时间还在与微软的技术人员讨论媒体转换服务的效率问题,如果应用 Docker将会有质的提高,没想到国外的Azure已经开始支持了,相信国内Azure支持也不远了.微软正在努力确保Azure成为开发 ...

  4. IdentityServer4【Introduction】之支持的规范

    支持的规范 identityserver实现了下面的规范 OpenID Connect OpenID Connect Core 1.0 (spec) OpenID Connect Discovery ...

  5. IdentityServer4 中文文档 -3- (简介)已支持的规范

    IdentityServer4 中文文档 -3- (简介)已支持的规范 原文:http://docs.identityserver.io/en/release/intro/specs.html 目 录 ...

  6. PyCharm 2017.2.3 版本在2017年9月7日发布,支持 Docker Compose

    PyCharm是由JetBrains打造的一款Python IDE.PyCharm具备用于一般IDE的功能,比如, 调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制 ...

  7. 咏南中间件增加WEBSOCKET支持

    咏南中间件增加WEBSOCKET支持

  8. kubernetes1.4新特性:支持Docker新特性

    (一)背景资料 在Kubernetes1.2中这个第三方组件就是go-dockerclient,这是一个GO语言写的docker客户端,支持Dockerremote API,这个项目在https:// ...

  9. 假如kubernetes不支持docker了该怎么办

    假如kubernetes不支持docker了该怎么办 从官网安装文档可以看到kubernetes支持一下几种: https://kubernetes.io/docs/setup/production- ...

随机推荐

  1. Eclipse--java.lang.OutOfMemoryError: PermGen space

    这一段时间,Eclipse总是死掉,几乎是稍微操作快一点就会死掉,几分钟一次,搞得人郁闷至极.浪费了不少时间,在网上搜了下,看到很多朋友也出现类似的情况,在网上求救,但是网上的办法都只是说通过修改ec ...

  2. Python 访问字典(dictionary)中元素

    访问python字典中元素的几种方式 一:通过“键值对”(key-value)访问: print(dict[key]) dict = {1: 1, 2: 'aa', 'D': 'ee', 'Ty': ...

  3. CSS继承inherit | elementUI NavMenu vertical竖版 加 A标记 外联 不能继承上层color,需要手写下color:inherit;

    <li data-v-576b9cf5="" role="menuitem" tabindex="0" class="el- ...

  4. myBatis.xml文档实例

    单个参数:myBatis不会做特殊处理 #{参数名}: 取出参数值 多个参数: myBatis会做特殊处理 多个参数会被封装成一个MAP key:param1 param2.... param10,或 ...

  5. 读懂CommonJS的模块加载

    叨叨一会CommonJS Common这个英文单词的意思,相信大家都认识,我记得有一个词组common knowledge是常识的意思,那么CommonJS是不是也是类似于常识性的,大家都理解的意思呢 ...

  6. Manjaro/Arch linux 安装输入法

    输入命令: sudo pacman -Syu fcitx fcitx-googlepinyin fcitx-im fcitx-configtool 编辑 ~/.xprofile:# xfcitxexp ...

  7. 洛谷——P1640 [SCOI2010]连续攻击游戏

    P1640 [SCOI2010]连续攻击游戏 题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备 ...

  8. ES搭建

    https://www.cnblogs.com/jstarseven/p/6803054.html

  9. NFS共享存储服务部署

    第1章 NFS介绍 1.1 NFS基本概述 NFS(Network File System)网络文件系统 主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录. NFS系统和Windows网络 ...

  10. webpack 之 缓存处理

    针对 这里 的所提到的观点,如果webpack每次都生成相同名字的bundle.js,会导致问题.这里使用webpack的文件hash功能来解决,简简单单地为输出文件添加一个“[hash]”即可. / ...