云计算技术:
一、什么是云端,所谓云端需要两层理解
(1)服务不在本地,这一层可以理解为服务器
(2)它和普通的服务器是不一样的,这些云端的服务器的资源是共享的,一旦一个服务器不能承受,将会把任务分配给其他机器。
二、云技术与其他技术的区别:
云技术可以使用的语言有java,c++等。云技术的开发,并没有发展什么新语言,而是在其他语言的基础上。比如Java语言。与其他技术,最显著的区别,不是在开发上,而是在于架构上,最显著的特点是分布式。
云计算概述:
云计算是一个资源池,它为我们提供了诸如水、电、煤气一样的基础服务。
云计算是一种按使用量付费的模式,这种模式可以快速、高效地提供网络,服务器,存储,应用软件,服务等,我们不必关心如何实现,所以只需投入很少的管理工作,只需和服务供应商进行很少的交互。
云计算从广义上可以分为如下几种模式:
IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)
IaaS Amazon、阿里云、腾讯云提供的云主机即IaaS,我们拿到的是一台机器,可以自定义操作系统。
PaaS 面向开发者,直接给用户提供一个平台来运行用户的程序,早期的idc服务商卖的主机、新浪的sae、阿里云的云数据库等。
SaaS 卖的是服务,比如腾讯企业邮箱、印象笔记等
openstack是目前比较流行的一个实现云计算平台的项目
官网 www.openstack.org
由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目,用python语言开发,可以实现私有云或者公有云
主要有三个最基础组件:计算服务、网络服务、存储服务
openstack简介
发布版本 http://releases.openstack.org/,目前稳定版本为Liberty
OpenStack提供开放源码软件,建立公共和私有云。 OpenStack是一个社区和一个项目,以及开放源码软件,以帮助企业运行的虚拟计算或者存储云。 OpenStackd开源项目由社区维护,包括OpenStack计算(代号为Nova),OpenStack对象存储(代号为SWIFT),并OpenStack镜像服务(代号Glance)的集合。 OpenStack提供了一个操作平台,或工具包,用于编排云。
6个核心服务:
nova(计算中心,对比阿里云的ESC,支持kvm,xen等虚拟化技术)
keystone(认证中心)
neutron(网络服务中心)
swift(对象存储服务,存储图片,附件等文件,对比腾讯云的COS)
cinder(块存储服务,云盘)
glance(镜像管理中心)
openstack其他可选组件:
openstack服务
服务名 | 项目名称 | 描述 |
Dashboard | Horizon | 基于openstack Api接口使用django开发的web管理 |
Compute | Nova | 通过虚拟化技术提供计算资源池 |
Networking | Neutron | 实现了虚拟机的网络资源管理 |
Object Storange | Swift | 对象存储 |
Block Storange | Cinder | 块存储 |
Identity Service | Keystone | 认证管理 |
Image Service | Glance | 提供虚拟镜像的注册和存储管理 |
Telemetry | Ceilometer | 提供监控和数据采集,计量服务 |
OpenStack中有两个守护进程:
接收和调解API调用的WSGI应用程序 (nova-api,glance-api等等)。进行编排任务的工人守护进程(nova-compute, nova-network,,nova-schedule)。
OpenStack中还包含两个组件:消息队列服务和数据库。这两个组件方便异步编排复杂的任务通过消息传递和信息共享。
终端用户通过nova-api 接口与Openstack 计算交互。
OpenStack计算守护进程通过队列的交换信息(行动)和数据库(信息)进行API请求。
OpenStack Glance是一个完全独立的基础上设施。
openstack各个组件的介绍:
nova-api:是对外的接口。OpenStack 云计算的核心控制器(CloudController定义在trunk/nova/api/ec2/cloud.py)。它提供了一个为所有的API查询(OpenStack API或EC2 API)的端点,引发多数业务流程的活动(如运行一个实例),并实施一些政策(主要是配额检查)。
nova-schedule:根据当前资源使用情况,决定计算节点分布到哪台计算节点上。目前实现很薄,目前已支持插件方式扩展,方便后面可能有采用更复杂算法。
nova-compute:接收队列中的动作,然后执行一系列的系统命令(如启动KVM实例),同时更新数据库中的状态。
nova-volume:给虚拟机分配额外持久化的存储,管理持久卷到计算实例的创建,连接和分离。
nova-network:网络管理,给虚拟机分配网络和管理,使外部 PC 可以可直接访问。它接受队列中的网络任务,然后执行任务操纵网络(如设立桥接接口或更改iptables规则)。
queue:提供了一个守护进程之间传递消息的中央枢纽。当前由 RabbitMQ实现,理论上可以是Python的ampqlib支持的任何AMPQ消息队列。
SQL database:存储云基础设施的编译时和运行时的状态。这包括可用的实例类型,在使用中的实例,可用的网络和项目。