订阅移动开发RSS CSDN首页> 移动开发

Docker:IBM PowerSystems的“弯道超车”利器

发表于2015-04-16 14:19| 来源未知| 作者CSDN

摘要:Docker完全可以部署在传统的虚拟化环境中,基本上可以说虚拟机只要支持64位的Linux,就能部署Docker,并由此享受虚拟机本身的一些优点。

 起始于20138月的,由IBMGoogleTYANNVIDIAMellanox5家公司发起的OpenPOWER联盟,揭开了IBM PowerSystems的开放之路。凭借IBM强大的投资力度与日益强大而成熟的OSS生态系统,它将进一步促进并发挥PowerSystems系统级的实力,从而在x86之外,为用户提供另外一个,甚至可能是更好的选择。

综合而论,开源软件(OSSOpen Source Software),在近几年里得到了高速的发展,所涉及的领域也远不仅限于传统的那几个方向(比如操作系统、Web平台等),并因此迅速获得了业界的广泛认同,IBM也正是在这一趋势下,与OSS进行了更为紧密的结合。相较而言,虽然x86一直宣称开放与标准化,但在OSS方面,尤其是那些在2013年及以后出现的新开源项目,对于x86以及IBM PowerSystems平台来说几乎是同步进行的,双方都在争夺新型应用负载的主导平台的地位。从这一层面上讲,如果OSS在未来的IT环境中将扮演越来越重要的角色,那么也将意味着IBM PowerSystems会比以往能获得更多的表现机会,而最近火热的Docker甚至有可能成为PowerSystems在这场与x86的角逐赛中弯道超车的利器。

Docker的出现,可以说无论对于x86平台还是PowerSystems,都面临着新的挑战与机遇。一方面,它的理念在现有的基础上获得了巧妙的创新,另一方面这种创新对于软件的开发运维管理(DevOps)带来了重要的变革,最重要的一点,它为整体的应用形态与应用的快速部署带来了深远的影响,这些也将足以促进相关的IT技术与基础架构产生重大的变化,而这一变化也就是挑战,当然也蕴藏着机遇!

 

什么是Docker

Docker PaaS 提供商 dotCloud,在2013年推出的一个基于Linux容器(LXCLinux Container)的高级容器开源引擎,源代码托管在 Github , 基于go语言并遵从Apache2.0协议开源,后来可能是Docker太火, dotCloud更名为Docker公司。目前,Docker可以在容器内部快速自动化部署应用,并可以通过内核虚拟化技术来提供容器的资源隔离与安全保障。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似于传统虚拟机(VM,比如VMwarevSphere、微软的Hyper-VLinuxKVM)额外的操作系统开销,提高资源利用率,并且提升诸如IO等方面的性能。

 

Docker与传统VM以及Linux容器技术(LXC)的对比,传统虚拟化中分为两个类型,Type-1型是指在服务器的硬件平台上先部署虚拟机管理层(Hypervisor),再在Hypervisor之上生成虚拟机,每个虚拟机再安装操作系统、运行库与相关的应用,Type-2型则在裸机之上先安装操作系统(比如LinuxWindows),再安装HypervisorType-1虚拟化比较常见的是VMwarevSphere、微软的Hyper-VLinuxKVM以及XenType-2的典型代表是VMwareWorkstation以及OracleVirtualBOX。由于Type-1Hypervisor更接近硬件底层,所以可以降低更多的系统开销,但就Hypervisor本身来说,仍然要有一层基本的OS“垫底,这也是其仍然会有系统开销的原因。而对于容器技术来说,由于本身就源于操作系统的内核(Linux Kernel,所以也就基本不存在Hypervisor所带来的开销。

与传统的服务器虚拟化相比,Docker的一重要特点就是在实现应用间隔离的同时,没有了对于传统虚拟化来说是必须的Hypervisor虚拟化管理层,因为从本质上来讲Docker的内核与Linux是一体的。Docker的根基——LXC就是一个将Linux运行时、库以及其他软件运行支撑环境与相关应用进行封闭的技术。从Linux的内核来看,LXC就相当于系统的一个本地进程,实质上与一个裸机(无虚拟化)应用没有什么区别,从而无需额外的虚拟化指令以及相应的系统虚拟化开销。因为在传统的虚拟化平台中,无论Hypervisor做得再轻薄,虚拟机都要先经过本地的OS再透过Hypervisor调用服务器的物理硬件资源,这与直接以系统进程出现的LXC相比,肯定会造成额外的性能影响。

但是,传统的LXC在当前的应用中的弊端也在突显,由此LXC缺少更全局的统一标准化的描述定义,以及在原始的开发中并没有过多考虑可迁移性(共享),所以在管理方面也比较复杂,尤其在互联网+云计算时代,时常会出现应用大规模扩展部署的情况,在这种情况下传统的LXC显然就缺乏了有效应对办法。而Docker可以说就是为此而生的,它通过一种”+“的理念,以一种PaaS(应用平台即服务)的云管理模式,为容器技术赋予了新生。

 

Docker的应用封装架构中,可以看出其最基础的运行内核与底层镜像就源于Linux的内核,用户可以将利用Dockerfile生成好的应用镜像,上传至远端的Docker Registry(比如Docker公司自己运营的云服务,或是私建的Docker Registry),也可以从Docker Registry里下拉一个别人已经建立好的镜像直接投入到容器中进行运行,相比之下Docker显然带给了LXC更灵活的部署与快速应变的能力。

Docker体系中,最关键的就是两个——Docker Registry(通过Docker Hub进行索引)以及Docker Engine,前者在远端(或称云端)负责收集与分发Docker的应用镜像(Images),后者则在客户端负责构建Docker应用容器,这明显就是一个云服务的aaS理念,当然用户也可以在自己的数据中心内部建立私有的Docker Registry,以方便在私有云内迅速生成自己的Docker集群,以应对灵活的、大规模的应用扩展需求。此时,也相当于在企业数据中心内部形成了一个云+端的Docker架构。

 

Docker在英语里的意思为码头工人,而其Logo就好似一艘酷似鲸鱼的大船运送一堆集装箱前往各地的码头。而从其理论上看,Docker就像是一个集装箱,利用LXC技术来整合不同规模、类型、层级的应用镜像,先通过集中汇总再有序的分发——每个码头就是一台服务器(或VM),大船就是Registry,码头的工人就是核心Engine,进行集装箱的装配,当然它还需要一系列的外围的支持(比如最重要的管理)。但从总体的 场景来说,Docker的名字还是非常贴切的。

Docker的优势与生态环境

经过上文的介绍,我们可以看出Docker最明显的优势是大幅度变革了传统应用DevOps的模式和流程,可以让开发者更为专注于应用的本身,并使应用的更新与共享、迁移更为容易,这在云时代也非常重要的特性。

尤其是在单一类别的应用大规模部署方面,Docker有着得天独厚的优势,通过便利的镜像组合,Docker可以做到一次生成之后随意的极速部署。比如在云计算和互联网IT形态日益普及的趋势下,应用集群的动态扩展的需求就非常普遍,这一点对于那些客户流量波动性很大的企业尤为常见,例如大型电商在做促销时,访问量峰值可能是平时的十倍或几十、上百倍,如何平滑的快速扩展相关的应用集群,就是决定业务营收的关键。而根据测试,在一台POWER8的双路PowerLinux服务器上,仅需40秒就可以部署100Apache Web服务器实例,这在以往的虚拟化环境中是不可想象的。

此外,由于Docker与宿主机的Linux内核集成,所以在应用性能上也比传统的虚拟化解决方案更出色,基本接近于裸机部署应用的表现。

凭借着众多新颖的特性、优秀的性能表现以及项目本身的开放性,Docker迅速成为PaaS领域里不可或缺的名字。目前Docker官方Registry所注册保存的Docker镜像就超过了6万个,并在不到两年的时间里迅速获得诸多厂商的青睐,其中更是包括GoogleMicrosoftVMwareIBM等业界行业领导者。Google 2014年推出了Kubernetes,提供Docker容器的调度服务,而今年8Microsoft宣布Azure上支持Kubernetes,随后传统虚拟化巨头VMware宣布与Docker强强合作。20149月中旬,Docker更是获得4000万美元的C轮融资,以推动分布式应用方面的发展。到了201412月,IBM宣布其PaaS平台BlueMIX正式支持Docker,并提供了傻瓜级的操作便利度,最大限度降低了Docker对具体操作技能的要求。与此同时,IBM自主的硬件平台——PowerSystems服务器与System z大型主机也开始全面支持Docker,配合相应的OSS环境的建设,开始了针对x86平台的赶超

DockerIBMPowerSystems实现弯道超车

IBMDocker的结合,简单来说就是硬件与软件层面上。

首先说硬件,其最主要的力量,就是最新的基于POWER8的新一代PowerLinux服务器,在这一代服务器上,所支持的Linux平台更为丰富,除了RedHatSUSE,还加入了Ubuntu。当然仅就硬件系统来说,POWER8平台对于Docker的直接利好,与其他应用类似,那就是更高的性能与高RAS特性带来的可用性保障。更高的性能一方面可以让Docker应用受益,另一方面也意味着在性能体验相同的情况下,可以让单机上的Docker部署密度更高。IBM计划让DockerPOWER8平台上的部署密度较x86可提升2倍甚至更高。当然,这里必须强调所谓的POWER8平台,并不仅限于服务器本身,而是包括整体相关的系统平台。比如,通过POWER8独家的CAPI接口所连接的存储(如FlashSystem全闪存阵列)与网络平台,将在外围I/O层面极大扩展POWER8平台的整体性能表现与负载能力。配合POWER8服务器本身完善的RAS特性,从而为Docker提供了一个比x86更为可靠,综合性能更好的平台。

其次,在基础设施软件层面上,则将进一步体现出PowerSystems的优势,这主要就源于IBM自己独家的虚拟化平台——PowerVM。可能有人会说,上文不是说Docker比传统的VM更好吗?为什么还要谈PowerVM?这里首先要解答一个误区,是不是有了Docker就不需要虚拟化了?显然不是,Docker与虚拟化平台在很多场合是相辅相成的,这是因为Docker本身是基于Linux内核的一种特殊的进程,虽然它具备了一些虚拟化的特性,但一些关键的虚拟化特性目前并不具备,比如动态迁移(虚拟机从一台服务器不停机迁移至另一个服务器,以更好的进行资源的调配与硬件的维护),再比如应用环境的混合部署(在一台服务器上拥有两个或多个操作系统环境),以及更强力的应用隔离与安全性。因此有必要借助传统虚拟化平台的能力,来帮助Docker应对更多的场景需求。

 

Docker完全可以部署在传统的虚拟化环境中,基本上可以说虚拟机只要支持64位的Linux,就能部署Docker,并由此享受虚拟机本身的一些优点。

也因此,微软、VMware等传统虚拟化巨头均纷纷表示支持Docker在其平台上的部署,那么IBMPowerVM与之相比又有什么不同呢?

简单来说,虽然也是Type-1级别的Hypervisor,但PowerVM是一个更接近裸机的虚拟化解决方案,它与POWER平台有着天生的结合能力(源于系统级的固件设计以及操作系统的紧密支持,并仅针对POWER平台),所以在性能的体验上,它与Docker可谓异曲同工,所以在PowerVM上部署Docker就等同于在裸机上部署,这将提供了更好的性能保证。

其次,通过PowerVMPOWER服务器可以划分成多个逻辑分区(LPAR,相当于VM),并在其上同时部署UNIXAIX)与Linux操作环境,从而实现了异构平台的混载能力,这是x86厂商做不到的。最后,基于PowerVM的环境,Docker将会获得更好的安全防护,PowerVM是目前公认最安全的Hypervisor,对于关注安全性的用户来说,无疑是更为理想的虚拟化平台。

因此,我们现在可以看出PowerVM+PowerSystems,将为Docker提供比x86更为强大而灵活的虚拟化平台,为Docker应对更多的应用场景,尤其是将其带入UNIX/Linux混合应用环境打下了良好基础。

此外,随着IBM主导研发的PowerKVM的正式发布,也为熟悉KVM的用户向PowerLinux的平滑迁移提供了良好的保障,而在能耗管理、RAS特性与CPU调用方面比x86平台的KVM更为强大(比如EnergyScaleExtended Error Handling、微核模式等),从而也为Docker提供了一个更好的KVM虚拟化平台。

在软件层面上,目前IBMDocker基金会的理事会成员,正在与相关合作伙伴一起全力构建面向POWER架构的Docker环境,这其中也包括了”+“两个层面。在云的方面,前方已说IBMPaaS平台BlueMIX已经支持Docker的部署,而在IaaS层面,Docker已经可以裸机部署在SoftLayer平台(当然也可以是SoftLayer的虚拟化平台)。在企业级应用领域,IBM正与Docker公司围绕 Docker Hub Enterprise (DHE)展开紧密合作,IBM将通过集成方案和单独产品两种模式生产和销售DHE。为用户提供基于云或他们自己数据中心内部的Docker分发服务。

现在,全球TOP15Docker镜像已经或正在支持POWER平台,其中已经支持POWER的镜像包括UbuntuMySQLRailsPostgresWordpressRedisMongoPythonBasedeprecated Ubuntu)、DebianJava等,BusyBoxCentos则正在支持的路上。

Docker的管理方面,借助OpenStack中的HEAT组件,IBM自身的云管理平台ICMIBM Cloud Manager with OpenStack,算是OpenStackIBM发行版),也在加快完善对Docker的支持,这里的支持与传统的HEAT并不太一样,因为ICM本身就是跨异构平台的,包括POWERSystem z以及x86ICM为用户了一个统一的管理环境,当然也包括DockerSystem z也已经支持Docker),它将为Docker用户提供一个独一无二,且更为广阔的应用环境。

综上所述,作为当前OSS领域里炙手可热的新兴项目,已经决定坚决拥抱开源的IBM可以说在Docker的世界里,几乎在技术架构层面并不落后x86平台,这与那些有着悠久历史的开源项目相比,有了明显的不同。可以说,双方在Docker上的起点几乎是平行的,大家各自的生态可能都在因Docker而转向。虽然x86借助传统的开源与开放优势,可利用的资源可能更多,但就具体的厂商来说,IBM的实力绝不容小看,借助其独有的软硬件和云平台的优势以及相互间的紧密协同,在Docker时代,IBM乃至PowerSystems实现弯道超车很可能不仅仅是梦想。

进入PowerLinux社区阅读更多相关文章:http://powerlinux.csdn.net/

0
0