雲計算技術:
一、什麼是雲端,所謂雲端需要兩層理解
(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:存儲雲基礎設施的編譯時和運行時的狀態。這包括可用的實例類型,在使用中的實例,可用的網絡和項目。