【OpenStack】基础知识介绍(IaaS,PaaS,SaaS)以及与docker的关系

1. 云计算类型

了更好的理解OpenStack,我们首先来说一下云计算的类型。根据所提供服务的类型,云计算有以下三种落地方式。

  • 1、Iaas(基础架构即服务),用户能从中申请到硬件或虚拟硬件,包括裸机或虚拟机,然后在上边安装操作系统或其他应用程序。

  • 2、PaaS(平台即服务),用户能从中申请到一个安装了操作系统以及支撑应用程序运行所需要的运行库等软件的物理机或虚拟机,然后在上边安装其他应用程序,但不能修改已经预装好的操作系统和运行环境。

  • 3、SaaS(软件即服务),用户可以通过网络以租赁的方式来使用一些软件,而不是购买,比较常见的模式是提供一组账号密码。

2. OpenStack是什么

OpenStack就是一种IaaS。2010年7月,RackSpace和美国国家航空航天局合作,分别贡献出RackSpace云文件平台代码和NASA Nebula平台代码,并以Apache许可证开源发布了OpenStack,OpenStack由此诞生。OpenStack第一版的代号为 Austin,以RackSpace所在的美国德州Texas首府命名,计划每隔几个月发布一个全新的版本,并且以26个英文字母为首字母从A到Z顺序命名后面的版本。第一版仅有Swift和Nova两个项目。

2011年2月,OpenStack社区发布了Bexar版本,这是OpenStack的第二版,新增了Glance来提供镜像服务。

2011年4月,OpenStack社区发布了更加稳定的Cactus版本,但是这个版本没有新的项目。

2011年9月,OpenStack发布了它的第四个版本Diablo,从此OpenStack的版本更新定为每半年一次,分别是当年的春秋两季。

…….

OpenStack目前共涵盖了七个核心组件,分别是计算(Compute)、对象存储(Object Storage)、认证(Identity)、用户界面(Dashboard)、块存储(Block Storage)、网络(Network)和镜像服务(Image Service)。每个组件都是多个服务的集合,一个服务意味着运行着的一个进程。

  • Compute(Nova)Compute的项目代号是Nova,他根据需求提供虚拟机服务,比如创建虚拟机或对虚拟机做热迁移等。

  • Object Storage(Swift)它允许存储或检索对象,也可以认为它允许存储或检索文件,它能以低成本的方式管理大量无结构数据。

  • Identity(Keystone)为所有OpenStack服务提供身份验证和授权,跟踪用户以及他们的权限,提供一个可用服务及API列表。

  • DashBoard(Horizon)它为所有OpenStack的服务提供一个模块化的基于Django的界面,通过这个界面,不论是最终用户还是运维人员都可以完成大多数的操作,比如启动虚拟机,分配IP地址,动态迁移等。

  • Block Storage(Cinder)提供块存储服务

  • Network(Neutron)用于提供网络连接服务,允许用户创建自己的虚拟网络并连接各种网络设备接口。

  • ImageService(Glance)提供一个虚拟机镜像的存储、查询和检索服务,通过提供一个虚拟磁盘映像的目录和存储库,为Nova虚拟机提供镜像服务。

下面以创建虚拟机为例说明一下各个组件之间是如何相互配合完成工作的:

  • 用户首先接触到的是界面,也就是Horizon。通过Horizon上的简单界面操作,一个创建虚拟机的请求被发送到OpenStack系统后端。

  • 既然要启动一个虚拟机,就必须指定虚拟机操作系统是什么类型,就必须下载启动镜像以供虚拟机启动使用,这件事情就有Glance来完成的,而此时Glance所管理的镜像是有可能存储在Swift上的,所以需要与Swift交互得到需要的镜像文件。

  • 在创建虚拟机的时候,自然而然地需要Cinder提供块服务Neutron提供网络服务,以便该虚拟机有volume可以使用,能被分配到IP 地址与外界网络连接,而且之后该虚拟机资源的访问要经过KeyStone的认证之后才可以继续。至此,OpenStack的所有核心组件都参与了这个创建虚拟机的操作。

3. OpenStack与docker的关系

  • OpenStack主要解决的是基础架构云的云服务问题。OpenStack是在虚拟化技术之上的一层,主要解决系统部署管理的自动化。OpenStack可以兼容多种虚拟化技术包括:PowerVM, KVM, VMware, Docker等。

    可以先简单的把OpenStack理解成vm技术,利用OpenStack可以将多个物理机资源进行整合,再划分出多个vm虚机出来,起到隔离硬件资源的作用,最终形成云技术。因此可以说openstack是Iaas技术架构下的实际产品,当然 OpenStack也强大到基本上已经作为IaaS事实标准了。

  • Docker 是一种容器化技术,可以在一台物理机上隔离出多个容器,容器之间具有隔离性。

    Docker有众多优点,在应用程序的部署和编排方面具有较大的优势,并且部署起来非常方便,不需要关心自己是部署在公有云还是私有云还是物理机上,甚至部署在最普通的一个vm虚机上,例如在你的windows系统上建一个vmware的虚机,然后在该虚机上就可以装一个docker容器。

结论来了:OpenStack与docker之间没有必然联系,可以在OpenStack创建的集群环境上部署docker容器,docker不一定非要部署在OpenStack。

4. 如何学习OpenStack

OpenStack组件较多, 但是OpenStack的很多项目玩来玩去就是围绕它的几个核心组件, 具体点也就是Nova, Neutron和Cinder分管计算、网络和存储, 和你数据中心一样一样的。 学习OpenStack并不是学习它代码如何如何, 而是在了解OpenStack的情况下去了解虚拟化、了解网络的Layer2, Service和各种存储。 因为OpenStack太开放的, 所以它饶人的问题并不是代码复杂, 而是你可选的方案太多了, 我的Compute Service是用KVM, 还是VMware, 还是Hyper-V, 我的块存储是用LVM, 还是Ceph还是商用的存储, 网络用SDN Controller, 还是就Neutron Server, ML2下面用OVS是用VLAN还是VXLAN, Router是用linux ip namespace还是用NVF的方案,这些没有一个是最好的方案, 而是选择哪个适合你们的IT基础架构, 适合你们的运维团队。 在Cloud上面用的API其实变化很多, 能玩的花样也多, 涉及到Underlying的Hardware, 就需要看你是不是对这些基础架构的东西感兴趣了。 我自己比较倾向与, 我怎么能把应用跑在Cloud上, 运用Cloud提供的负载均衡, 防火墙让应用更健壮、更易于扩展, 更自动化。 至于让我自己运维一个OpenStack, 我首先不能24x7, 我也不喜欢24x7。 而我设计的应用可以在down掉以后, 我第二天下午来公司, 也没有什么影响, 只不过少了个节点, 而autoscaling已经帮我自动scale out来适应目前的workload了。

资料:
什么是OpenStack:http://opensource.com/resources/what-is-openstack
OpenStack源码在哪:https://github.com/openstack/
OpenStack官方入门学习文档和试用链接:http://www.openstack.org/software/start/
OpenStack演讲PPT(FQ):http://www.slideshare.net/openstack/presentations

参考

OpenStack基础知识介绍(IaaS,PaaS,SaaS)
docker是PaaS,与openstack是IaaS的关系

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值