容器技术和NFV.docx
- 文档编号:12757448
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:18
- 大小:195.67KB
容器技术和NFV.docx
《容器技术和NFV.docx》由会员分享,可在线阅读,更多相关《容器技术和NFV.docx(18页珍藏版)》请在冰豆网上搜索。
容器技术和NFV
以Docker为代表的容器技术一度被认为是虚拟化技术的替代品,然而这两种技术之间并不是不可调和的。
作者分别列举了容器技术以及虚拟化技术的优缺点,并提出将两者结合取长补短的解决方案。
容器为应用程序提供了隔离的运行空间:
每个容器内都包含一个独享的完整用户环境空间,并且一个容器内的变动不会影响其他容器的运行环境。
为了能达到这种效果,容器技术使用了一系列的系统级别的机制诸如利用Linuxnamespaces来进行空间隔离,通过文件系统的挂载点来决定容器可以访问哪些文件,通过cgroups来确定每个容器可以利用多少资源。
此外容器之间共享同一个系统内核,这样当同一个库被多个容器使用时,内存的使用效率会得到提升。
对于系统虚拟化技术来说,虚拟层为用户提供了一个完整的虚拟机:
包括内核在内的一个完整的系统镜像。
CPU虚拟化技术可以为每个用户提供一个独享且和其他用户隔离的系统环境,虚拟层可以为每个用户分配虚拟化后的CPU、内存和IO设备资源。
哪家强?
通常来说,这取决于你的需求。
如果你只是希望将应用运行的实例进行隔离,那么对于管理应用运行环境、启动应用实例以及控制资源开销方面容器将是一个极为高效的工具。
像Docker这一类的容器,其设计原则就是为了解决这种应用环境的修改以及应用部署的问题,并且这十分符合DevOps理念(你可能希望知道更多关于DevOps理念的内容)。
如果你从服务器虚拟化的角度来寻找最好的环境隔离方案,那么系统级的虚拟化是更好的方案:
和容器相比,邻居租户(Noisyneighbours)对系统的影响在虚拟化的方案下将不是一个问题。
尽管现在很多容器都在专注于提高其隔离能力,但是虚拟机的隔离还是要优于容器。
从物理服务器过渡到虚拟服务器是一个很自然的过程,并且现在针对虚拟服务器的管理的生态系统也很完善。
在z系统中,Linux具有很好的伸缩性(运行容器),但是z是一个极度高效虚拟化(运行虚拟服务器)的平台,它继承了整个系统架构。
尽管没有精确的测量,将虚拟化和容器技术相结合,在z系统中会比其他平台要容易。
还有第三条路:
两者兼而有之。
有多种方式可以将系统虚拟化及容器技术相结合:
在过去的一年,业界对容器的关注度直线飙升。
根据研究机构Forrester公司最近的一项调查发现,31%的开发者表示他们已经在过去的一年里使用过Docker或容器。
“对于这样一个新技术,在全球范围内有这么多开发人员使用简直不可思议”,Forrester公司负责容器技术的研究人员DaveBartoletti作出上述表示。
另外,有9%的开发人员表示已经在生产环境中使用容器技术,这对于这样一个新鲜事物来说已经相当了不起。
本质上,容器是通过虚拟化操作系统的方式来管理代码和应用程序。
虽然从协调网络到分配存储都存在挑战,但是初创公司还是紧紧抓住这些潜在的机会开始创业,下面是我们盘点的12家容器技术创业公司。
BlueData
总部地址:
美国加州山景城
成立时间:
2012年
融资状况:
1900万美元
关注理由:
容器技术被视为一个简化应用程序开发的方式,但是一些初创公司正在利用容器技术寻找创新的用例管理应用程序。
BlueData正在前VMware研发副总裁KumarSreekanti的带领下开拓这样的创举。
该公司的目标是通过让大数据更易消费来“民主化”大数据部署,容器技术越来越成为公司战略中重要的一环。
BlueData允许用户在Docker容器上部署大数据平台Hadoop和ApacheSpark,并且可以通过其EPIC平台的免费试用获取容器化版本,它可以作为一个下载程序或一个托管应用程序运行在AWSES2上。
BlueData希望在今年秋天提供更全面的产品。
ClusterHQ
总部地址:
旧金山
成立时间:
2008年
融资状况:
1500万美元
关注理由:
ClusterHQ是一家帮助客户构建容器数据层的公司,使得开发和运维团队在容器中运行无状态的应用程序,但是应用的数据库、查询以及Key-value数据得到持久化存储。
相当于是应用和数据隔离。
ClusterHQ主要基于Docker平台实现该服务。
在2014年ClusterHQ发布了名为Flocker的开源软件,这是一个数据卷管理器和多主机的Docker集群管理工具,可轻松实现对Docker及其数据的管理。
同时还有另外一个项目Powerstrip,为DockerAPI实现了一个可配置、可插入式的HTTP代理,可以让你插入很多Docker扩展原型到同一个Docker守护进程。
CoreOS
总部地址:
旧金山
成立时间:
2013年
融资状况:
2000万美元
关注理由:
CoreOS的创始人认为容器是伟大的,但他们不喜欢Docker的一些关于安全和管理方面的设计决策。
所以CoreOS团队除了推出自己的容器软件rkt还精心制作了一个轻量级的基于Linux内核的操作系统。
类似于开源项目Docker,rkt是一个允许容器创建的容器运行版本。
CoreOS也有成熟的Tectonic——一个Kubernetes商业发行本,如果Docker在短期内会有竞争对手,它一定是CoreOS。
Docker
总部地址:
旧金山
成立时间:
2013年
融资状况:
1.5亿美元
关注理由:
在容器领域,没有公司比Docker更出名的了
Docker既是一个开源项目的名称也是一个公司的名称。
这个开源项目由一个包括Docker公司员工以及其他公司的代码贡献者组成的董事会主导。
随着公司的发展,公司也已经在其产品上增加管理功能,例如容器需要的网络控制。
开源的Docker已成为容器运行的事实标准,这使得Docker在商业化容器管理方便提供了一个巨大的机遇,Docker首席技术官SolomonHykes被认为在推动容器运动过程中发挥了重要作用。
Kismatic
总部地址:
旧金山
成立时间:
2014年
融资状况:
保密
关注理由:
谷歌曾表示它几乎所有的应用程序都运行在容器中,去年,它开源了一款称为Kubernetes的服务可以帮助基础设施集群和容器的管理。
Kismatic这个初创公司就是希望Kubernetes商业化。
到目前为止,该公司的公开的信息很少,但预计Kismatic将试图使Kubernetes对于用户更友好。
Kismatic背后的人来自另一个编排技术提供商Mesos。
一位担任WikimediaFoundation.的首席技术官。
PortWorx
总部地址:
美国加州雷德伍德城
成立时间:
2015年
融资状况:
850万美元
关注理由:
Portworx的联合创始人兼CTOGouRao表示,开发者喜欢Docker容器可以简化从开发到部署的软件系统生命周期,但为多容器应用提供基础设施资源仍然是一个复杂繁琐的过程,而且很容易产生非预期的后果。
他还表示,容器技术还不足以应用至生产环境中,而主要的问题在于存储和网络。
MurliThirumale也是Portworx的联合创始人,目前是公司的CEO。
Portworx并不是GouRao和MurliThirumale的第一个初创公司。
二人也是存储优化公司OcarinaNetworks的联合创始人,这一公司在2010年被戴尔收购。
再之前他们还创办了Net6,一家应用交付解决方案公司。
在2007年,Net6被Citrix收购。
数据中心的基础设施不是为容器技术所设计的,Portworx正在试图改变这一局面。
现在基础设施的准备配置是在应用之外独立完成的。
应用需要指明需要哪些资源,准备完成配置好之后才能进行部署。
RancherLabs
总部地址:
库比蒂诺(苹果总部所在地)
成立时间:
2014年
融资状况:
1000万美元
关注理由:
RancherLabs是一家提供容器技术基础设施的初创企业,成立于2014年9月,总部位于Cupertino,现有员工20人。
创始人ShengLiang与ShannonWilliams是Citrix前员工,曾创办了云服务C并在后来被Citrix收购。
对于许多开发者来说,如何实施和扩充Docker仍然是个难题,尤其是生产环境下的架设。
RancherLabs正是瞄准这一机会而推出了Docker基础设施软件。
Rancher为开发者提供了两种服务,一是将Dockers编排进任何基础设施环境的软件平台Rancher,二是简约版的操作系统RancherOS,可用来单独运行Docker。
这些服务还提供了数据备份等其他功能,使得开发者在实际部署基于Docker的应用时不用考虑具体的生产环境,从而进一步简化容器技术的部署工作。
Shippable
总部地址:
西雅图
成立时间:
2013年
融资状况:
1010万美元
关注理由:
Shippable团队希望让开发人员利用容器来方便的构建应用程序。
容器是书写、测试和发布代码的完美媒介,他们说。
这家公司是由一个来自微软和CloudFoundry的团队创立,Shippable是一个允许开发人员书写代码、立即测试的托管服务。
在过去,测试环境很大程度上依赖的虚拟机。
在微软,Shippable联合创始人AviCavale管理一个数百万美元的基于VMs的测试环境实验室。
Cavale说,测试环境的封装将可以大大降低。
SysdigCloud
总部地址:
旧金山
成立时间:
2013年
融资状况:
秘密
关注理由:
监控容器可能听起来不算最令人兴奋的话题,但这至关重要的。
启动并运行容器容易,但是你有多少呢?
运行于其中的应用程序是什么?
这些容器与其他应用程序是如何与其他应用程序发生交互的?
Sysdig就是解决这类问题。
这个Linux监测平台是一个开放源代码项目,可以从GitHub上免费下载,产品和公司名称相同。
它提供如系统健康检查,容器网络连接,容器内的集中输入/输出,容器上执行命令的历史记录,描述容器是运行在哪一台计算机上以及哪些应用程序是运行在容器中的。
而且它提供了一个可排序的所有日志数据记录。
这些都可以通过一个命令行界面或基本面板获取,创始人兼首席执行官LorisDegioannii曾供职于RiverbedTechnologies。
Tutum
总部地址:
布鲁克林,在马德里也有一个办公室
成立时间:
2013年
融资状况:
265万美元种子资金
关注理由:
Tutum开始作为一个公司想要提供一个完全托管容器环境。
但它的创始人——惠普前技术员和Capgemini顾问——意识到像AWS也可以提供托管这样的服务。
所以Tutum的真正区别是不托管容器,而是管理build的软件,所以公司现在专注在这块。
Tutum还管理容器必须的存储,以及提供容器追踪。
Tutum团队希望在今年晚些时候推出测试版。
Twistlock
总部地址:
旧金山
成立时间:
2015年
融资状况:
310万美元
关注理由:
该公司是由来自微软的BenBernstein和DimaStopel领导的团队创立,其产品定位为保护和监控容器的“端到端”的安全产品。
Twistlock提供了一个可定制化的控制面板在任何环境下监控容器,并通过一个成为“gates”的服务来帮助控制容器的组成。
Twistlock还允许安全性配置文件设置,以便在创建容器之时,遵循特定的原则。
Twistlock用户可以限制哪些应用程序可以与容器交互,例如,如果容器安全措施不到位会触发警报。
公司名称来自船运集装箱贸易,在那里扭锁用于容器之间的安全防护。
Weaveworks
总部地址:
伦敦
成立时间:
2014年
融资状况:
500万美元
关注理由:
正在商业化Weave开源项目的Weaveworks公司,创建一个连接容器的虚拟网络。
容器在它们的基本层面上没有网络连接。
有网络功能更易于监测和控制Docker容器。
Weave分配给每个容器一个IP地址,允许它们与Scope工具映射。
CoreOS有自己的网络层Rudder,其他平台如Rancher和Portworx帮助管理容器的网络连接,但Weave是只关注网络,因此成为其他容器管理平台像Tutum不可或缺的一部分。
首席执行官AlexisRichardson来自Pivotal,而首席技术官MatthiasRadestock是RabbitMQ的联合创始人。
该公司最初叫Zettio。
Docker容器并不缺乏IT方面的技术支持。
但是其诸如对Linux的依赖这类的缺陷,让Docker在整个云计格局中的定位不够清晰。
在了解云的过程中不关心虚拟机监控程序和虚拟机是不可能的,虚拟化是云计算的核心。
对于大多数情况,这代表了基于虚拟机监控程序的完全虚拟化,一个主机操作系统和一个虚拟机监控程序运行VM分区,像任何独立的服务器一样,有自己的操作系统和中间件。
然而,虚拟化技术的涵盖面很广,这在云中是很有价值的。
其中包含着一个普遍的虚拟化模型—容器技术。
在这个容器模型中,服务器运行通过构建半自治的容器来加载应用的操作系统。
这些应用共享操作系统或主机,这样服务器不需要为每一个VM来运行单独的操作系统。
容器在独立的VM和简单的多道程序设计之间提供了某种程度的应用隔离,但不是完全隔离。
容器通常是一种更适用于私有云和一些公有云应用的解决方案。
当今最流行的容器架构Docker也许就是最完美的平台。
Docker狂热冲击云
Docker是一个容器管理系统,能够自动化的创建容器来运行应用/组件。
它的基本形式,即使用一组API管理这些容器,可以从模板或者命令构建。
Docker正在不断进化,并且现在已经可以提供编排工具来部署组件。
理论上我们可以在任何支持类似容器分区的OS上创建一个基于容器的系统,但是Docker使用的是Linux的容器工具。
正因如此,Docker容器只运行特定Linux的应用和组件。
它可以运行在一个不同的OS主机管理的虚拟机上,但它需要确保那个虚拟机里有一个Linux的客户操作系统来为那些容器提供服务,并且必须只能运行Linux的应用。
Windows对于Docker的支持采用Docker嵌入到虚拟机中的途径。
在Linux主机之外使用Docker很复杂并且很多用户觉得增加的复杂度超过了易用性。
甚至即便用户在一个非Linux的主机上运行Docker容器,他们仍然受限于只能运行Linux的应用。
在Windows服务器上托管Docker容器的能力对于用户很有价值,因为Windows服务器承诺会大量增加许多基于Linux的应用。
基于VM的虚拟化和云计算拥有隔离的优点,对于公有云和服务器整合很有帮助。
构建云应用而不是将应用迁移到云降低了隔离级别的支持需求。
企业能够在公有云VM上,数据中心或者甚至是客户端设备托管容器。
Docker的新业务流程编排工具可以部署基于容器的组件并将他们融合起来支持工作流。
这些工具可以用于混合云,轻松的支持故障转移的功能。
容器体积小,灵活,这使得它们非常适合于负载弹性或者按需添加和删除功能的动态应用。
将容器架构加载到裸机或者一个VM上所需要的机器镜像易于开发并且具备高度可移植性。
载入到容器中的应用镜像由于它们依赖于主机操作系统和中间件服务,也会很容易开发和部署。
容器热潮持续,但也并非十全十美
容器技术的日益普及不代表它是完美的。
虚拟机是最适合公有云多租户应用的,因为要跨越虚拟机边界来攻击相邻的应用比在容器之间发起攻击要困难得多。
此外,还缺少对于防止一个容器获取过量的资源而影响到其他应用方面的保护。
要解决这些问题,可以在VM里运行容器和Docker,这正是Docker/VMware联盟的基础。
也有一些提议要发展虚拟机,让它们的行为更像容器。
这些通常被称为微型VM。
比如说,XenMirage使用一个特制内核来提供某种应用程序隔离,而完全避免了操作系统和中间件复制。
对于试图在容器技术和虚拟机之间做出抉择的企业来说,决定的因素可能是应用结构和来源。
通过服务器整合创造的单一应用是大型且持久的,这样应用就很难从容器化上获得很多益处。
容器非常适合于那些基于SOA/REST组件化原则的应用。
这些应用程序的组件相对较小,分布广泛,在云之间来回移动,动态扩展或偶尔运行。
一个运行Linux容器的决定其实就是运行Docker的决定。
容器技术和Docker在云计算中的作用将继续增长,尤其是随着新的云特定应用程序的开发。
随着时间的推移,Docker和虚拟机之间的协作会更多。
更高级别的编排工具将允许用户推出组件集成到容器或虚拟机--或在VM中的容器中。
一种技术不会取代另一种技术,它们将共存并建立彼此之间相互的价值。
容器是VMworld2015大会最为热门的话题之一。
VMware很清楚地看到了近期容器与虚拟机混搭将会快速进入企业数据中心。
IT组织仍旧需要捍卫安全性以及数据管理需求,即使是容器化的应用也不例外。
VMware已经在虚拟机端交付了容器,而且相关设计已经取得成功,对虚拟化及云管理解决方案进行了扩展以支持(而且我认为最终会同化)企业集装箱化项目。
VMware全新的vSphere集成容器(VIC)使得管理及确保运行在虚拟机(称之为虚拟容器主机)中容器的安全性几乎和管理及确保传统虚拟机的安全性没什么两样。
VIC作为第一流的IT管理对象出现在VMware管理工具中,继承了vSphere提供的众多虚拟机管理功能,包括强大的安全性。
这使得所有VMware顾客都能够很平滑地采用容器技术。
然而,我们认为应用容器真正的转折点将是容器超越简单的无状态计算引擎并直接处理持久性数据之时。
到那时,容器必然受限于范围及规模。
容器中有什么?
简言之,容器在其进程内封装并隔离了应用代码,使得代码认为自己独享一台机器,将所有的系统服务调用转交给容器主机。
由于容器实际上是进程,因此很多(可能数以千计)容器能够很轻松地共享单台物理或虚拟服务器。
应用认为他们拥有一个完整运行的操作系统(就像是在虚拟机内运行),但这些应用实际是在共享主机操作系统。
应用之间的隔离性要低于在虚拟机内运行时的隔离性,但效率更高(因为每个容器并没有运行自己的操作系统)。
容器还有一些其他的优势。
容器在用户空间内运行,因此破坏、阻碍或者造成内核级崩溃的可能性很小。
容器能够被快速复制,通常是被缓存,而且很容易调整。
容器几乎能够在任何地方构建(比如开发人员的MacBook)并在任何地方运行(比如亚马逊Web服务)。
这意味着容器在最初设计时就是无状态的,不包括需要保护或保留的数据。
最初设计容器是为了构建微服务。
微服务架构非常适合设计为在云中运行的应用。
这些新应用是无状态的,因为它们并不保存内部数据而且能够根据运营需求动态调整。
然而,集装箱应用存储仍旧是一个棘手问题。
运行在容器内的应用能够访问本地操作系统存储,但如果容器被迁移(或者克隆、复制等等)到另一台容器主机,那么将不会带走当前主机上的数据。
因此,无状态容器并不适合需要可靠及持久数据服务的应用。
在微会话级将数据保留在云存储比如亚马逊S3中的微服务运行的很好,但大多数应用的需求并非仅限于此。
存储问题解决之道
这意味着容器在未来的数据中心中只是一个小角色,仅限于开发人员使用或者全新的云托管微服务应用?
我们认为容器的优势极具吸引力,使得企业数据中心无法忽略,而且正如你可能已经猜测的那样,容器数据管理产品正在脱颖而出。
例如,ClusterHQ公司的Flocker使得容器能够挂载唯一的Flocker数据集并能够跟随容器一起移动。
Flocker对数据集进行分区并将共享的块存储挂载到所有的容器主机。
采用该解决方案,容器成为“无状态的”而且能够很容易地承载几乎所有应用,即使是数据库比如MongoDB与MySQL。
Flocker1.3支持OpenStackCinder块存储而且来自EMC、NetApp、Hedvig以及Nexenta等厂商的自定义驱动程序很快就会出现。
在VMworld大会上,VMware宣布支持Flocker,这样容器就能够使用vSphere挂载的任何存储。
这还包括vSAN以及支持虚拟卷的第三方存储。
上述场景非常有趣,因为他们增加了明确的存储服务,比如针对每个容器所使用存储的QoS。
在其有限的无状态构成中,容器以及虚拟机各司其职。
既然容器直接支持虚拟存储,那么hypervisor厂商就需要提供高附加值功能。
既然未来的数据中心可能是虚拟机/容器环境的混合体,在虚拟机中会存在大量的容器(并支持混合、以DevOps为中心的云运营),那么hypervisor厂商提供具备整体管理方案的机会非常大。
容器正在帮助我们构建一个越发流畅、敏捷但最终很复杂的环境。
这意味着我们需要更好的安全工具,更动态的网络以及适应性更强的存储。
一定要让我们知道IT组织如何适应并采用容器产品,以及广泛采用容器技术存在哪些挑战.
NFV,即网络功能虚拟化,NetworkFunctionVirtualization。
通过使用x86等通用性硬件以及虚拟化技术,来承载很多功能的软件处理。
从而降低网络昂贵的设备成本。
可以通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等。
NFV的初衷是通过使用x86等通用性硬件以及虚拟化技术,来承载很多功能的软件处理。
典型应用是一些CPU密集型功能,并且对网络吞吐量要求不高的情形。
主要评估的功能虚拟化有:
WAN加速器,信令会话控制器,消息路由器,IDS,DPI,防火墙,CG-NAT,SGSN/GGSN,PE,BNG,RAN等。
SDN的核心理念是,将网络功能和业务处理抽象化,并且通过外置控制器来控制这些抽象化的对象。
SDN将网络业务的控制和转发进行分离,分为控制平面和转发平面,并且控制平面和转发平面之间提供一个标准接口。
需要指出的是,控制平面和转发平面的分离,类似于现代路由器的架构设计方法,但是SDN的设计理念和路由器的控制转发分离完全不同。
从上面可以看出,NFV可以采用SDN进行实现(如采用控制转发分离的方法来搭建服务器网络),但是NFV也可以采用普通数据中心技术来实现。
当涉及到网络设备,我们发现传统的专有网络设备越来越多样化,这使得运营商和数据中心运营商们升级服务也越来越困难。
网络功能虚拟化(NFV)是源于ETSI行业规范工作组通过虚拟网络功能取代专用硬件来简化操作的倡议。
NFV将网络功能整合到行业标准的服务器、交换机和存储硬件上,提供了优化的虚拟化数据平面,NFV通过服务器上运行的软件让管理员取代传统物理网络设备,并降低成本、能耗和复杂性。
现在的网络很大程度上是由中间件,专业网络功能(如4-7层),封闭且昂贵的专用硬件构成。
不仅造成网络僵化,也造成了网络资本和运营开支的增加。
通过使用NFV可以减少甚至移除现有网络中部署的中间件,它能够让单一的物理平台运行不同的应用程序,用户和租户可以通过多版本和多租户使用网络功能。
NFV支持全新的方法实现弹性、服务保证、测试诊断和安全监控。
它能够促进软件网络环境中的新网络功能和服务的创新,NFV适用于任何数据平面和控制平面功能、固定或移动网络,也适合需要实现可伸缩性的自动化管理和配置。
下面是可以通过NFV虚拟化的网络功能:
交换元素
移动网络节点
家庭路由操作
机顶盒业务
隧道网关元素
流量分析
服务保证
SLA监测
测试和诊断
NGN信号
聚合和网络范围功能
应用程序优化
安全功能
NFV有一个潜在的用途是服务功能链(SFC)中的应用,动态链接虚拟网络功能如路由器、防火墙、DPI、NAT组成一个集成部署,这个过程是应用程序配置过程的关键。
以服务提供商为例,一个服务链在服务提供商边缘路由之前由用户的边缘
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 容器 技术 NFV