《自然辩证法概论》课程论文题目:浅析“OpenStack”通信与信息工程学院1215012110王元颜悦南2015/2016学年第二学期学院学号姓名指导老师日期一背景随着云计算创新的步伐不断加快,新一代的技术和成果也在快速增长。但是云计算市场的分散性导致客户难以选择云计算厂商和合作伙伴,一旦做错决定将不得不转移到新的云上进行重新构建。这对于一些大的公司来说,确实是一个挑战。鉴于上述原因,云需要一个开源的操作系统,开源云可以避免被锁的问题,而OpenStack就是这样一个开源的云操作系统,正所谓是应时而生。二OpenStack简介2010年7月,RackSpace和美国国家航空航天局合作,分别贡献出RackSpace云文件平台代码和NASANebula平台代码,并以Apache许可证开源发布了OpenStack,OpenStack由此诞生。OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。OpenStack目前涵盖了七个核心的组件,分别是计算(Nova)、对象存储(Swift)、网络(Neutron)、块存储(Swift)、认证(Kestone)、用户界面(Horizon)和镜像服务(Glance)。每个组件都是多个服务的集合,一个服务意味着运行着的一个进程。各个组件可以安装在不同的虚拟机上,也可以安装在一台虚拟机上。各个组件相互配合完成工作。创建一个虚拟机的工作情况如下:用户首先接触到的是界面,也就是Horizon。通过Horizon上的简单界面操作,一个创建虚拟机的请求被发送到OpenStack系统后端。既然要启动一个虚拟机,就必须指定虚拟机操作系统是什么类型,就必须下载镜像以供虚拟机启动使用,这件事就由Glance来完成的,而此时Glance所管理的镜像是有可能存储在Swift上的,所以需要与Swift交互得到需要的镜像文件。在创建虚拟机的时候,自然而然地需要Cinder提供块服务和Neutron提供网络服务,以便该虚拟机有volume可以使用,能被分配到IP地址与外部网络连接,而且之后修改虚拟机资源的访问要经过KeyStone的认证之后才可以继续。至此,OpenStack的所有核心组件都参与了这个创建虚拟机的操作。三OpenStack兴起的原因OpenStack虽然诞生于2010年,但是发展至今,在云计算中占据着举足轻重的地位,尤其是在IaaS领域,有着一家独大的趋势。Openstack之所以发展如此迅猛,这不仅仅是外界的环境造势,更是由于其自身有着巨大的优势和发展潜力!(一)外因1.对于用户来说,Amazon、Google的系统是不公开,用户无法借鉴其系统架构,只能使用它们所提供的服务。这些公有云虽然能够带来敏捷性和资源弹性,但对企业用户来说,数据存在公有云上,总是感觉不踏实。这种信任感并没有建立起来。对于一些小规模的用户来说,如不涉及到数据保密的情况下,会选择公有云服务。但对中大型用户,数据比较敏感,类似财务数据、人力资源等,不愿意放到公有云,同时需要敏捷性和资源弹性的效率,为此用户会考虑自建私有云。2.来自全球十多个国家的60多家领军企业,包括HP、Cisco、Dell、Intel以及微软都参与到了OpenStack的项目中,并且在全球使用OpenStack技术的云平台在不断的上线。云计算领军企业的加入,会无形透露出一个信息,就是OpenStack未来可能会成为一个行业标准,而且OpenStack项目研发的初衷就是制定一套开源软件标准。(二)内因OpenStack是开源的并且有着强大的社区,这让它拥有许多别的云平台没有的优势,主要在控制性、兼容性、可扩展性、灵活性等方面尤为突出。控制性:开源的平台意味着不会被某个特定的厂商绑定和限制,而且模块化的设计能把遗留的和第三方的技术进行集成,从而来满足自身业务需要。OpenStack项目所提供的云计算,让IT团队可以成为自己的云计算服务厂商,虽然构建和维护一个开源私有云计算并不适合每一家公司,但是如果拥有基础设施和开发人员,OpenStack将是很好的选择。兼容性:OpenStack公有云的兼容性可以使企业在将来很容易的将数据和应用迁移到基于安全策略的、经济的和其他关键商业标准的公有云中。使用亚马逊网络服务及其他云服务的企业,抱怨最多的就是“用户被绑架,无法轻易转移数据”。在云计算社区,有一个流行的概念,即数据是有重量的,一旦将数据存在某个云计算提供商那里,它就变得繁重而难以迁移,作为企业最重要的资源,如果在迁移的过程中不能保护好数据安全,很有可能会给企业带来灭顶之灾,相信没有公司愿意承担这个风险。可扩展性:目前主流的Linux操作系统,包括Fedora、SUSE等都将支持OpenStack。OpenStack在大规模部署公有云时,在可扩展性上有优势,而且也可用于私有云,一些企业特性也在逐步完善中。随着Ubuntu12.04LTS正式全面将Eucalyptus替换成OpenStack,OpenStack将超过Eucalyptus成为云平台基础的第一选择。灵活性:灵活性是OpenStack最大的优点之一,用户可以根据自己的需要建立基础设施,也可以轻松地为自己的集群增加规模。主要用Python编写的OpenStack代码质量相当高,很容易遵循,带有一个完全文档的API,用户可以使用JSON或者XML消息格式的不同组件的代码,这相当有利于项目的发展壮大。此外,OpenStack项目的代码将在极为宽松自由的Apache2许可下发布,这意味着任何第三方都可以重新发布这些代码,在其基础上开发私有软件并按照新的许可发布,给众多的云计算企业,留下了的更大的发展空间。实践检验:实践是检验真理的唯一标准,OpenStack的云操作系统,已被全球正在运营的大型公有云和私有云技术所验证过,比如,Dell公司已经推出了OpenStack安装程序Crowbar,不仅如此,OpenStack在中国的发展趋势也是非常之好,包括物联网用户、国内高校以及部分大小企业,都开始使用OpenStack建立云计算环境,整合企业架构以及治理公司内部的IT基础架构。四OpenStack应用OpenStack自诞生以来,经过短短的几年发展,已经积攒了大批的客户群体,对企业以及云部署有着重大的贡献。(一)国外BestBuy是美国最大的零售商和电子商务网站之一,2012年开始在内部试用OpenStack云平台,现在正在将零售电子商务平台的托管迁移到OpenStack中去,当年的感恩节期间承担了25%流量。在使用OpenStack之前,他们的基础设施提供商给他们每个虚拟机收费20,000美元,而现在用OpenStack自己搭的云平台,可以创建上千个虚拟机的一个机架才需要91,000美元。他们的开发工程师之前老抱怨机器不够用,无法拥有足够多的测试机器去部署全量的服务,现在用OpenStack搭建了许多内部测试平台,完全能满足工程师的测试、开发需求。(二)国内OpenStack开源的特性,使其普及的速度比想象中要快得多,尤其受到电商的欢迎。其中携程是目前国内典型的OpenStack用户,从2012年开始搭建私有云,该公司目前基于OpenStack部署了超过1000个虚拟桌面,未来计划部署130000个。除此之外,爱奇艺也是涉足OpenStack的用户,在2012年爱奇艺加入中国开源云联盟,与英特尔、新浪等企业进行OpenStack项目的开发。目前爱奇艺也成为中国视频行业规模最大的OpenStack技术应用商,该技术已被运用到内容生产、广告投放、账号管理、用户付费和大数据分析等方面。新浪现在所有的微盘、快盘、115盘等背后的架构都是这种模盘。不仅如此,京东商城已经利用OpenStack平台接入了大量线上业务,实现了自动部署、OpenStackHA、桌面云(CallCenter)以及ElasticScalingELB等功能。其中线上业务和CallCenter都属于需要保持高度稳定的服务,京东已经在OpenStack应用部署方面下了相当的功夫,克服了目前OpenStack版本迭代过快和bug问题,已经使其达到了商业化运营的效果。除了京东,网易使用OpenStack构建了自己的私有云web服务提供云主机支持,并把网易相册,博客等访问量较大的服务迁移到云平台中,目前已稳定运行近1年,中间经历了在线平滑升级和10多个新产品上线,并且网易还针对其产品自身的业务特点在监控、报警、运维自动化方面开发了新功能。五OpenStack面临的挑战Openstack的目的是为公共及私有云的建设与管理提供软件的开源项目。但是做公有云有三大门槛:资金门槛,运营门槛,以及技术门槛。比如Amazon,是资金、技术、运营能力三者皆有,所以做起来了。微软的Azure,有资金、有技术,但是因为运营偏弱,所以一直动静不大。在三个门槛中,技术和运营更为关键,因为技术和运营需要长期的积累,而且是大型云平台实战的经验积累,在目前的国内外环境都不缺资金,大批的风投手中拿着大量的资金在找好的云计算公司。然而有资金也不一定做得好,因为当你资源充足的时候,你可能会想通过资金解决问题,而不是靠技术来解决,比如用比较昂贵的存储设备等等,而这其实不是做云的正确途径,这时候你那充足的资源反而成了制约你长期发展的瓶颈。OpenStack是一堆架构,不是服务,而公有云是服务。做公有云,只有架构是不行的,还需要强大的运营来做支撑。我们看到的互联网功能只是互联网产品里面的20%,还有80%是用户看不到的,但是运营需要很多功能,比如多帐号体系,计费体系,安全体系、后台的自动化管理、灰度发布、扩容等等。而且OpenStack是开源的。如果用OpenStack做公有云,这时候用户有一个需求,这个需求是OpenStack现有的功能无法解决的,那你需要去开发这个功能。开发了之后,你是要提交给社区,还是自己留着呢?如果你提交了这个功能,社区又接受了,那么你就把你辛苦建立的竞争优势拱手让人了。如果你提交了功能,但是社区不接受;或者你不提交这个功能,那么你将面临升级、维护难的问题。将你自己研发的功能跟社区发布的新版OpenStack进行融合,会是非常困难的事情,而这个难度会随着时间推移而越来越严重。综上来看,OpenStack在公有云道路上困难重重,但这并不说明OpenStack毫无用武之地,它特别适合应用于私有云及混合云场景。由于国内企业文化和背景,公有云在中国,并不看好,前景也并非明朗,谁愿意把自己的重要数据放在你的“虚无缥缈”的云上。换之你自己,你愿意把电脑上所有内容全部放在网盘上吗,顶多也就是做资源分享和数据备份用。所以OpenStack会在私有云的发展基础上得到更大规模的应用。六OpenStack展望OpenStack每年发布两个版本,每一个更新之后的版本较之前的版本都有很大的改善和提高。虽然现在的Neutron组件仍是OpenStack的短板,但是我相信,凭借着庞大的社区支持并且拥有1-2万的工程师投入到研发中,技术上的短板最终会得以解决。未来,企业面向互联网转型时的最佳架构是OpenStack,OpenStack是强大的社区,并为企业服务的IaaS开发了完整的堆栈。云并不能只依靠亚马逊和阿里就可以成功,未来的云更加需要OpenStack这样的开源平台,只有这样,互联网才能保持永久的活力。