OpenStack 是一个面向 IaaS 层的开源项目,用于实现公有云和私有云的部署及管理。拥有众多大公司的行业背书和数以千计的社区成员, OpenStack 被看做是云计算的将来。目前 OS 基金会里已有500多个企业赞助商,遍及世界170多个国家,其中不乏 HP 、 Cisco 、 Dell 、 IBM 等,值得一提的是 Google 也在2015年加入基金会。web
Rackspace (一家美国的云计算厂商)和 NASA (美国国家航空航天局)在2010年共同发起了 OpenStack 项目。 数据库
那时候 Rackspace 是美国第二大云计算厂商,但规模只能占到亚马逊的5%。只依靠内部的力量来超越或者追赶亚马逊不大可能,这家公司索性就把本身的项目开源了,也就是后来的 OpenStack 的存储源码( swift )。swift
与此同时, NASA 也对本身使用的 Eucalyptus 云计算管理平台很不爽。 Eucalyptus 有两个版本,开源版本和收费版本, NASA 想给 Eucalyptus 开源版本贡献 patch ,结果 Eucalyptus 不接受,估计是和收费版本功能重叠了。当时 NASA 的六个开发人员,用了一个星期时间拿 Python 作出来一套原型,结果虚拟机在这上面运行的很成功,这就是 Nova (计算源码)的起源。后端
NASA 跟 Raskspace 玩的比较好,因而 NASA 贡献 Nova , Raskspace 贡献 Swift ,在2010年的7月发起了 OpenStack 项目。安全
截至 Grizzly 版本, OpenStack 含七个核心项目:网络
Compute (Nova)架构
Networking (Neutron/Quantum)框架
Identity Management (Keystone)运维
Object Storage (Swift)分布式
Block Storage (Cinder)
Image Service (Glance)
User Interface Dashboard (Horizon)
其中有三个最核心的架构服务单元,分别是:计算基础架构 Nova 、存储基础架构 Swift 和镜像服务 Glance 。
Nova 是 OpenStack 云计算架构控制器,管理 OpenStack 云里的计算资源、网络、受权、和扩展需求。 Nova 不能提供自己的虚拟化功能,相反,它使用 libvirt 的 API 来支持虚拟机管理程序交互,并经过 web 服务接口开放他的全部功能并兼容亚马逊 web 服务的 EC2 接口。
Swift 为 OpenStack 提供分布式的、最终一致的虚拟对象存储。经过分布式的穿过节点, Swift 有能力存储数十亿计的对象, Swift 具备内置冗余、容错管理、存档、流媒体的功能。而且高度扩展,不论大小(多个 PB 级别)和能力(对象的数量)。
Glance 镜像服务查找和检索虚拟机的镜像系统。
上图为 OpenStack 架构
三个元素将会与系统中的全部组件进行交互。 Horizon 是图形用户界面,管理员能够很容易地使用它来管理全部项目。 Keystone 处理受权用户的管理, Neutron 定义提供组件之间链接的网络。
Nova 被认为是 OpenStack 的核心,负责处理工做负载的流程。它的计算实例一般须要进行某种形式的持久存储,它能够是基于块的 ( Cinder ) 或基于对象的 ( Swift )。 Nova 还须要一个镜像来启动一个实例。 Glance 将会处理这个请求,它能够有选择地使用 Swift 做为其存储后端。
OpenStack 架构一直努力使每一个项目尽量的独立,这使得用户能够选择只部署一个功能子集,并将它与提供相似或互补功能的其余系统和技术相集成。然而,这种独立性不该掩盖这样一个事实:全功能的私有云极可能须要使用几乎全部功能才能够正常运做,并且各元素须要被紧密地集成。
传统的软件生态模式是用户和开发者之间隔着销售、产品经理等角色,而 OpenStack 等开源的模式打破了这样一种模式, OS 只提供最最底层的框架,剩余一切都围绕着用户,用户可参与从设计、编码、测试、到运维的各类阶段。而这样的模式生命力是最强的。
若是仅仅是便宜,那么 OpenStack 对于企业彷佛就没那么大的价值了。相反, OpenStack 提供了一个很是好的有关如何来打造相似于主要公有云好比亚马逊( AWS )和 Google Cloud Platform ( GCP )的弹性私有云的样板。就像 Hadoop 将 Google 的 MapReduce (加上它的参考架构)推向大众同样, OpenStack 将 AWS/GCP 式样的的基础架构即服务( IaaS )推向了每一个用户。它就是能实现企业内部 DevOps 的终极平台。
OpenStack 能在企业内部提供相似的平台。私有云能够基于公有云模型来构造,使得开发者同时拥有集中式 IT 控制和支配。本质上,它是二者融合的最佳平台,这也是 OpenStack 驱动的私有云的真正价值。
由 OpenStack 来实现企业内部的 DevOps ,进而实现敏捷,而敏捷偏偏是驱动云计算的原动力。
四.企业级 OpenStack 的需求
企业级 OpenStack 到底须要什么呢?有如下六个关键的因素:
1.99.999% 的 API 可用性以及可扩展的控制平面
有高可靠性要求的应用须要高可靠的云API向全新的云和 DevOps 模型转型的一个关键能力是提供云原生应用在弹性云中的容错能力。要使一个应用能实时地适应不一样组件的出错,云 API 须要有更高的可用性。
API 的可用性不是惟一的衡量标准。你的云控制平面的吞吐量( throughoutput )一样关键。能够将控制平面想象成云的指挥中枢。这是中央智能和编排层的核心。你的 API 是控制平面的一部分,对于 OpenStack 来讲,包括全部的核心项目,以及平常的云管理系统(一般是 OpenStack 企业级套件的一部分),以及全部必要的辅助服务,好比数据库、 OpenStack 各厂商插件等等。你的云的控制平面必须可以随着云的增加而增加。这意味着,整体上,你将会得到更多的 API 操做的吞吐量(对象上传/下载、镜像上传/下载、元数据更新等待)。
2.健壮的管理和安全模型
安装只是管理 OpenStack 的开端。一个真正的云操做系统将提供一个从设计上就能保证基础设施团队能成功交付服务的以运维为核心的云管理工具套件。这些管理工具将提供:
可重用的架构模型,一般使用参考网络架构将小集群( pod )或者组( block )链接在在一块儿
初始云安装和部署
典型的平常云运维工具,包括日志、系统测量值和相关度分析
供云运维人员使用的用来作整合和自动化的 CLI 和 API
用于可视化和分析的云运维图形界面
OneAPM 的出现,使得企业能够缩减庞大运维团队的开支, OneAPM 的产品能帮助你进行应用性能分析、告警、日志分析记录,并能实现代码级的故障诊断。
3.开放的架构
OpenStack 的开放架构,可以减小厂商锁定,进而下降风险。
4.混合云兼容性
目前环境下,混合云兼具私有云安全性与公有云的弹性扩展能力,混合云必然成为企业云部署的第一选择。根据应用类别和业务特色,将关键应用、性能敏感型、中高密级应用部署在私有云,其余应用部署在公有云;将同一个应用的不一样层部署在不一样云中,时延敏感业务就近用户部署,提高最终用户体验; Web Front 支持 Web 服务灵活扩展,集中控制关键数据;突发型应用,私有云资源不足时(如 Web 网站),向公有云临时租借资源。
混合云的难点在于解决应用的移植性问题。若是你须要一个公有云和私有云组合而成的混合云,无论应用在某个云中被开发,仍是要在两个云之间作迁移,或者从一个云到另外一个云,应用的可移植性都是必须的。当你选定一个应用以及它的云原生的自动化框架,并将它们从一个云移动到另外一个云中,一些关键的东西必须保持一致:
性能相对平稳
底层的存储、网络和计算架构保持一致或者近似
你应用的自动化框架必须和两个云中的 API 都兼容
每一个云中,运行应用的总成本( TCO )都应该在1/2-2倍的范围以内
还有行为上的兼容性,意味着非 API 功能也须要吻合
支持与相关公有云 API 的兼容
5.可扩展的弹性架构
「当咱们在系统中增长资源后,其性能会按照所增长资源的某种比例增长时,咱们就能够说其服务是可扩展的。」
从多方面看, OpenStack 自身就是个高扩展性的系统。它被设计为松耦合、基于消息通讯的架构,这些技术在已经在各类中级到高级扩展的系统中获得应用和验证,它们也能够适应小规模的部署。问题在于当你配置和部署 OpenStack 时所作的设计上的决定。
一部分默认的配置,以及许多厂商的插件和方案在设计时并无考虑扩展性。
基础架构历来没有真正的弹性过,但是它的特性能支持弹性的应用在它上面运行。一个弹性云,须要被设计为每一个资源,好比虚机、块存储和对象存储,其成本尽量的低。这和杰文斯悖论( Jevon’s Paradox )直接相关,他说随着技术的进步,效率的提高将会带来该技术被采用速度的提高。
6.全面的支持和服务
总结:
OpenStack 做为一个可扩展的打造下一代弹性云的基础架构,尽管它还不是很完美。但做为一个开源项目,它的吸引力确实不容小视。基于平台开放,会有愈来愈多的力量促使它更完善和强大,采用 OpenStack 意味着企业云平台会更加自主可控,并实现技术沉淀和自动化运维水平的提高。
参考文献: The 6 Requirements of Enterprise-grade OpenStack
OneAPM 是中国基础软件领域的新兴领军企业。致力于帮助企业用户提供全栈式的性能管理以及 IT 运维管理服务,经过一个探针就可以完成日志分析、安全防御、 APM 基础组件监控、集成报警以及大数据分析等功能。想阅读更多优秀文章,请访问 OneAPM 官方技术博客 OneAPM 官方技术博客
本文转自 OneAPM 官方博客