致新手——OpenStack云倒底是什么?
Anthony是一位网络工程师,他对共享及改进技术成果从而推动社区发展充满热情。他目前正致力于参与Docker以及OpenStack Magnum项目。
在本次访谈当中,Anthony解释了OpenStack的具体定义、其如何与容器实现协作以及其能够给企业带来哪些助益。
OpenStack是什么?谁适合使用OpenStack?
OpenStack是一套开源云操作系统,由Python语言编写而成且负责通过命令行界面(简称CLI)或者基于Web的仪表板实现对计算、存储以及网络资源池的管理工作。其在设计上可运行于商用硬件底层,且有时候会被作为基础设施即服务(简称IaaS)实现方案使用。OpenStack可运行在各类常见Linux平台之上,具体包括RHEL、SUSE以及Ubuntu等等。
OpenStack是一套基础设施(大家也可以将其简单理解为‘云’)。它能够创建出一套环境,从而提供按需增加或者降低的资源分配机制,而且实际资源不必来源于单一位置。大数据、Web服务以及网络功能虚拟化(简称NFV)等面向服务供应商的功能都是OpenStack发挥作用的良好舞台。
OpenStack包含哪些关键性服务与组件?它们的具体作用又是什么?
OpenStack采用一年两次的发布周期,而且各发布版本各自拥有不同名称而非简单的数字序列,因此其首个版本名为Austin,目前的版本为Mitaka,其间还曾出现过Liberty与Kilo两个版本。自Kilo版本以来,OpenStack已经逐步由最初的孵化/集成模式转化为大帐篷模式,即项目中的各标签拥有自己的特定属性。
云基础设施当中的核心组件包括计算、存储与网络三大类。这些组件在OpenStack当中被称为核心服务,而其它元素则被称为共享服务。
计算:
- Nova: 提供按需虚拟机机制。
存储:
- Swift: 提供支持对象存储的可扩展存储系统。
- Cinder: 为访客虚拟机提供持久块存储机制。
网络:
- Neutron: 为由OpenStack各服务管理的不同接口设备提供彼此之间的网络连接即服务。
共享服务:
- Keystone: 为全部OpenStack服务提供授权与验证机制。
- Glance: 为虚拟磁盘镜像提供目录与库。
- Horizon: 为各OpenStack服务提供一套模块化、基于Web的用户界面。
- Ceilometer: 为计费系统提供单一联系点。
- Heat: 为多种复合型云应用程序提供编排服务。
- Trove: 为各类关系型与非关系型数据库引擎提供数据库即服务(简称DBaaS)配置机制。
- Sahara: 为各数据敏感型应用集群提供配置服务。
- Magnum: 为容器部署与管理场景提供容器编排引擎。
当然,以上列出的只是其中最为常见的各类项目。新型项目在每个版本当中都将陆续增加。
由于已经转化为大帐篷式项目,如今有越来越多的项目成为OpenStack的组成部分。另外管理委员会还在致力于构建OpenStack DefCore,这是一套最小化功能集,其中的各类产品必须经过认证才能冠以OpenStack名头。
为什么使用OpenStack而非其它传统虚拟化工具?相较于其它虚拟机管理程序,它能够带来哪些额外助益?
虚拟化工具能够对物理硬件中的资源进行抽象,并在管理流程中加入自动化机制。
OpenStack还更进一步建立起一套弹性、自助服务型可测量基础设施,旨在管理计算、存储与网络资源池。OpenStack管理下的各类资源可为物理或者虚拟形式。
OpenStack如何与容器进行协作?这种方式对于企业有何吸引力?
Magnum项目利用OpenStack作为基础设施,旨在部署Docker容器。在Magnum项目出现之前,Docker容器只算是Nova(OpenStack中的一项计算服务)内的虚拟机管理程序类型之一。
Magnum项目提出了pod、bay与服务的概念,我们可以将三者结合起来作为单一应用程序,并通过访问政策加以控制。
窗口编排引擎(简称COE)允许大家将多个Docker容器作为同一单元进行部署。就目前来讲,Magnum项目所能支持的COE包括:
- Docker Swarm
- Kubernetes
- Apache Mesos
目前在企业领域最具人气的容器技术应用方案当数微服务架构,其指导原则是将一个大型常规应用程序拆分成多个以容器形式实现的“微服务”。这种应用程序部署层面的新趋势能够提供可观的敏捷性、可扩展性以及高可用性。
Liberty版本为我们带来了Kuryr项目,其立足于Neutron构成而成并解决OpenStack基础设施当中为容器指定网络资源的传统难题。
典型的OpenStack部署该是什么样的?