云计算技术:java
1、什么是云端,所谓云端须要两层理解
(1)服务不在本地,这一层能够理解为服务器
(2)它和普通的服务器是不同的,这些云端的服务器的资源是共享的,一旦一个服务器不能承受,将会把任务分配给其余机器。python
2、云技术与其余技术的区别:
云技术可使用的语言有java,c++等。云技术的开发,并无发展什么新语言,而是在其余语言的基础上。好比Java语言。与其余技术,最显著的区别,不是在开发上,而是在于架构上,最显著的特色是分布式。c++
云计算概述:web
云计算是一个资源池,它为咱们提供了诸如水、电、煤气同样的基础服务。算法
云计算是一种按使用量付费的模式,这种模式能够快速、高效地提供网络,服务器,存储,应用软件,服务等,咱们没必要关心如何实现,因此只需投入不多的管理工做,只需和服务供应商进行不多的交互。数据库
云计算从广义上能够分为以下几种模式:django
IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)swift
IaaS Amazon、阿里云、腾讯云提供的云主机即IaaS,咱们拿到的是一台机器,能够自定义操做系统。api
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:存储云基础设施的编译时和运行时的状态。这包括可用的实例类型,在使用中的实例,可用的网络和项目。