云系列---Openstack概念讲解 | 初识 | 入门概述

云计算概述

在这里插入图片描述

1.简介

云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问
进入可配置的计算资源共享池(资源包括:网络、服务器、存储、计算、应用软件等服务),这些资源能够被快速提供,只需提供很少的管理工作,或只用与服务供应商进行很少的交互
狭义的云计算是指 IT 基础设施的交付和使用模式

广义的云计算是指服务的交付和使用模式

2.特点

① 超大规模
"云"具有相当的规模

企业私有云一般般拥有数百上千台服务器,能给用户提供前所未有的计算能力

② 虚拟化
云计算支持用户在任意位置、使用各种终端获取应用服务

③ 高可靠性
"云"使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性
使用云计算比使用本地计算机可靠

④ 通用性
云计算不针对特定的应用
同一"云"可以同时支撑不同的应用运行

⑤ 高可扩展性
"云"的规模可以动态伸缩,满足应用和用户规模增长的需要

⑥ 按需服务
"云"是一个庞大的资源池,你按需购买
云可以像自来水、电、煤气那样按量计费

⑦ 极其廉价
由于"云"的特殊容错措施,可以采用极其廉价的节点来构成云
"云"的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本
"云"的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受"云"的低成本优势
通常只要花费几百美元、几天时间,就能完成以前需要数万美元、数月时间才能完成的任务

3.三种使用方式

①公有云
就是基础设施完全自己不搭建,只关心怎么使用
公有云分为以下几类:
传统的电信基础设施运营商,比如中国移动、中国联通、中国电信等提供的公有云服务
一类是政府主导的地方性云计算平台,也就是常说的政府云
互联网巨头打造的公有云平台
部分IDC运营商
还有部分国外的云计算企业

②私有云
自己搭建云的环境,设施设备需自己或第三方维护
私有云是为一个用户单独使用而构建的,因而在数据安全性以及服务质量上自己可以有效的管控,私有云的基础是首先你要拥有基础设施并可以控制在此设施上部署应用程序的方式
私有云可以部署在企业数据中心的防火墙内,核心属性是专有资源,比如我们经常使用且比较典型的私有云有 VMware、OpenStack

③混合云
将公有云和私有云结合起来是很多企业的使用方式
一般的将核心业务,放在自己的私有云上,次要的放在公有云上
但是也会有一些问题:安全性、数据冗余、法律、服务质量方面等

4.服务模型

①IaaS(基础架构即服务)
提供底层 IT 基础设施服务,包括处理能力、存储空间、网络资源等
面向对象一般是 IT 管理人员

②PaaS(平台即服务)
把安装好开发环境的系统平台作为一种服务通过互联网提供
给用户
面向对象一般是开发人员

③SaaS(软件即服务)
直接通过互联网为用户提供软件和应用程序等服务
面向对象一般是普通用户

在这里插入图片描述

二、OpenStack 概述

OpenStack 简介

NASA (美国国家航空航天局)和 Rackspace(是一家全球领先的托管服务器及云计算提供商)共同发起
以 Apache 许可证(Apache 软件基金会发布的一个自由软件许可证)授权的自由软件和开放源代码项目,不只是一个软件,这个项目由几个主要的组件组合起来完成一些具体的工作
为公有云及私有云的建设与管理提供可扩展的弹性的云计算服务(开源项目)
覆盖了网络、虚拟化、操作系统、服务器等各个方面

Openstack 设计原则

1.按照不同的功能和通用性划分不同项目,拆分子系统
2.按照逻辑计划、规范子系统之间的通信
3.通过分层设计整个系统架构
4.不同的功能子系统间提供统一的API接口

2.OpenStack 架构/服务

原生架构:

1.OpenStack包括若干个称为OpenStack服务的独立组件,所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。

2.每个OpenStack服务又由若干组件组成。包含多个进程。所有服务至少有一个API进程,用于侦听AP请求,对这些请求进行预处理,并将它们传送到该服务的其他组件,除了认证服务,实际工作都是由具体的进程完成的

3.至于一个服务的进程之间通信,则使用AMQP消息代理。服务的状态存储在数库中

1.按分层介绍了原生架构的组件
2.组件之间对接(点到点,是使用API)
3.单个组件内部,根据设计原则,分为多个子系统,而子系统直接交互,是通过AMQP进行的

在这里插入图片描述
在这里插入图片描述

网络节点                          
提供者网络
自服务网络

提供者网络                                              自服务网络
联网管理                                                联网管理
ML2插件                                                ML2插件
Linux网络工具                                           Linux网络工具
Linux Bridge 代理                                      Linux Bridge 代理
DHCP 代理                                              三层代理
元数据代理(Metadata Agent)                             DHCP 代理
                                                      元数据代理(Metadata Agent)

Nova - 计算服务
Neutron-网络服务
Swift - 对象存储服务
Cinder-块存储服务
Glance - 镜像服务
Keystone - 认证服务
Horizon - UI服务
Ceilometer-监控服务
Heat-集群服务
Trove-数据库服务

服务:

服务项目名称描述
Compute(计算服务)Nova①负责实例生命周期的管理,计算资源的单位 ②对 Hypervisor 进行屏蔽,支持多种虚拟化技术(红帽默认为 KVM),且支持横向扩展
Network(网络服务)Neutron①负责虚拟网络的管理,为实例创建网络的拓扑结构②是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响
Identity(身份认证服务)Keystone①类似于 LDAP 服务,对用户、租户和角色、服务进行认证与授权②且支持多认证机制
Dashboard(控制面板服务)Horizon①提供一个 Web 管理界面②与 OpenStack 底层服务进行交互
Image Service(镜像服务)Glance①提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时可直接使用 ②可支持多格式的镜像
Block Storage(块存储服务)Cinder负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费②支持多种后端存储
Object Storage(对象存储服务)Swift①为 OpenStack 提供基于云的弹性存储②支持集群无单点故障
Telemetry(计量服务)Ceilometer①用于度量、监控和控制数据资源的集中来源②为 OpenStack 用户提供记账途径

3.OpenStack 优势

①控制性
是一个完全开源的平台,开源的平台意味着不会被某个特定的厂商绑定和限制

提供 API 接口,模块化的设计能把遗留的和第三方的技术进行集成,从而来满足自身业务需要

②兼容性
OpenStack 兼容其他公有云,方便用户(企业)很容易的将数据和应用迁移
在云计算社区,有一个流行的概念,即数据是有重量的,一旦将数据存在某个云计算提供商那里,它就变得繁重而难以迁移,作为企业最重要的资源,如果在迁移的过程中不能保护好数据安全,很有可能会给企业带来灭顶之灾,相信没有公司愿意承担这个风险

③可扩展性
目前,主流的 Linux 系统,基本都支持 OpenStack
OpenStack 在大规模部署公有云时,在可扩展性上有优势,而且也可用于私有云,一些企业特性也在逐步完善中
模块化设计,可以通过横向扩展来增加节点、添加资源

④灵活性
灵活性是 OpenStack 最大的优点之一,用户可以根据自己的需要建立基础设施,也可以轻松地为自己的集群增加规模
在极为宽松自由的 Apache 许可下发布,这意味着任何第三方都可以重新发布这些代码,在其基础上开发私有软件并按照新的许可发布,给众多的云计算企业,留下了的更大的发展空间

⑤行业标准
来自全球十多个国家的60多家领军企业,包括 Cisco、Dell、Intel 以及微软都参与到了 OpenStack 的项目中,并且在全球使用 OpenStack 技术的云平台在不断的上线
云计算领军企业的加入,会无形透露出一个信息,就是OpenStack未来可能会成为一个行业标准,而且OpenStack项目研发的初衷就是制定一套开源软件标准

⑥实践检验
实践是检验真理的唯一标准,OpenStack 的云操作系统,已被全球正在运营的大型公有云和私有云技术所验证过
OpenStack 在中国的发展趋势也是非常之好,包括物联网用户、国内高校以及部分大小企业,都开始利用 OpenStack 建立云计算环境,整合企业架构以及治理公司内部的IT基础架构

4.openstack 组件通信关系

基于AMQP协议的通信
用于每一个项目内部各个组件之间的通信

基于SQL的通信
用于各个项目内部的通信

用于HTTP协议进行通信
通过各个项目的API建立的通信关系,API都是RESTful Web API

通过NAtive API 实现通信
OpenStack 各组件和第三方软硬件之间的通信