雲計算技術: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:存儲雲基礎設施的編譯時和運行時的狀態。這包括可用的實例類型,在使用中的實例,可用的網絡和項目。