雲計算學習篇:雲計算是什麼?

一、為何選擇雲計算/雲計算之前遇到的問題

1.有效解決硬件單點故障問題

單點故障是指某個硬件的故障造成網站某個服務的中斷。要真正解決這個問題,需要為每個硬件準備冗餘,這不僅大大增加了硬件購置成本,而且部署與維護成本也不容小視。

而云計算平臺是基於服務器集群,從設計之初就考慮了單點故障問題,並在建設時有效地解決了這個問題。如果一家雲服務商出現單點故障問題,就如同存在銀行的錢丟了。

2.按需增/減硬件資源

自己託管服務器,增/減硬件一直是頭疼的問題。

1. 增加服務器的時候,購買服務器需要時間,而且這個時間自己無法控制。而使用雲服務器,隨時可以增加服務器——垂手可得。

2. 減服務器只能從機房拉回辦公室,無法再把服務器退給廠商,購置服務器的成本就浪費了。而使用雲服務器,如果下個月不用,不續費就行了(針對阿里雲按月購買的情況)——想用就用,想扔就扔。

3. 不能按需增加滿足基本需求的服務器配置。假如我們現在需要一臺低配置的服務器用Linux跑緩存服務,如果為之單獨購買一臺便宜的低配置的服務器很不合算,因為這臺服務器僅僅一年的電費就至少要3000元左右。所以只能儘量減少服務器數量,提高單臺服務器的配置,在讓一臺服務器跑更多東西。而使用雲服務器,需要什麼樣的配置就買什麼樣的配置,讓各個服務器的職責更單一,互相之間的影響更小——職責分明,效率更高。

3.按需增/減帶寬

帶寬是主要成本,託管服務器時,與ISP服務商籤一年合同之前就要確定帶寬。用了一段時間之後,你發現帶寬買多了,想減一些是不允許的。中途要臨時增加帶寬一段時間也是不行的,要買就買一年(這是根據我們接觸過的ISP服務商)。所以,一般都會多買一些帶寬,留一些餘量。

使用雲服務器可以靈活地增減帶寬,不會浪費帶寬,即使買少了也不用擔心,隨時可以增加。雖然各個雲服務商會有一定的限制,比如在阿里雲一次至少要購買1個月的帶寬,但比自己託管服務器靈活很多,同樣的帶寬條件,會節省不少成本,尤其是帶寬需求在一年中變化比較大的網站。

4.更有吸引力的費用支付方式

在IDC機房託管服務器一般是籤一年合同,一次支付一個季度的費用。

而使用雲服務,一次可以支付更短時間的費用,比如阿里雲可以一次只支付一個月的費用,節約了流動資金。

從總體上考慮,差不多的成本,卻擁有更多的內存、更多的CPU、更多的硬盤空間、更優質的帶寬線路,更重要的是可以隨時按需擴展計算資源。

5.BGP線路解決南北互通問題

南北互通問題是南方電信與北方聯通線路之間的互通問題,這個問題困擾我們多年,之前用過雙線機房,解決的也不是很好。目前只有BGP線路才能有效解決這個問題,而擁有真正的BGP線路的機房不是很多,成本也非常高。而我準備使用的阿里雲用的就是BGP線路,這也是吸引我們的主要地方之一。

究竟什麼是南北互通問題?基於我們的理解簡體描述一下,不對之處歡迎指出。南北互通問題實際就是路由問題。假設我們的服務器放在上海電信的機房,上海一位聯通的用戶訪問我們的服務器,要先繞到聯通的北京總出口(假設總出口在北京),然後再繞回上海。實際上這位聯通用戶可以通過上海的線路直接到達我們的服務器,不用繞這麼遠,但上海電信的機房無法告知聯通的路由器走近路過來,只能按照聯通路由器設定好的路由走。本來即使走北京繞一下也沒有大的影響,畢竟是光的速度,但是由於大多數聯通的用戶訪問電信網絡都這麼繞著走,聯通的總出口成為了瓶頸,總出口流量太大時,聯通的用戶訪問電信的網絡速度就會慢。BGP線路也沒什麼神奇之處,只是它能決定走什麼路由過來,不繞遠路,問題自然解決了。它有這樣的特權,就不僅能解決南北互通的問題,而且能解決其他網絡的互通問題,比如教育網。因為有權限決定路由,就可以優化路由,哪條路堵,我就換條路。

二、什麼是雲計算(資源和服務的交互方式)

1.概念分解:

雲:雲計算中的雲,代表循環利用的意思(雲多了變成雨,落到地面,雲減少,水蒸發到空中,雲增加)。

計算:雲計算中的計算,代表計算資源,涵蓋虛機、存儲、網絡等。

雲計算:代表計算資源向雲水循環一樣,按需分配,循環利用。

附:企業數據中心部署在雲計算分佈式平臺上,類似於從原來單臺發電機轉向電廠集中供電模式,它意味著訪問計算機和存儲系統也可以作為一種商品流通,就像煤氣、水電一樣,取用方便,費用低廉,只不過它是通過互聯網傳輸的,雲就是互聯網的一種比喻

2.雲計算分類:

狹義:IT基礎設施的交互和使用模式,通過網絡以按需,易擴展的方式獲取資源

廣義:服務(IT基礎設施、軟件等)的交互和使用模式,通過網絡以按需、易擴展的方式獲取資源。

三、雲服務模式

1.IaaS:基礎設施即服務

用戶通過網絡獲取虛機、存儲、網絡,然後用戶根據自己的需求操作獲取的資源。 典型應用:亞馬遜AWS等

2.PaaS:平臺即服務

將軟件研發平臺作為一種服務, 如Eclipse/Java編程平臺,服務商提供編程接口/運行平臺等。典型應用:Google AppEngine、Force.com、微軟Azure等

3.SaaS:軟件即服務

將軟件作為一種服務通過網絡提供給用戶,如web的電子郵件、HR系統、訂單管理系統、客戶關係系統等。用戶無需購買軟件,而是向提供商租用基於web的軟件,來管理企業經營活動。典型應用:Google Doc、Saleforce.com、Oracle CRM On Demand、Office Live Workspace等

四、雲應用形式

2.私有云

將基礎設施與軟硬件資源構建於防火牆內,基於iaas構建私有云平臺供企業內部使用,開源組件有:openstack(最為出色),cloudstack等

2.雲存儲

雲存儲系統是一個以數據存儲和管理為核心的雲計算系統

3.雲遊戲

遊戲運行雲平臺服務端,雲平臺將遊戲畫面解壓縮後傳給用戶,用戶端無需高配置處理器和顯卡,只需要基本的視頻解壓縮能力即可。

4.雲物聯

基於雲平臺實現物物相連的互聯網。

5.雲安全

通過網狀的大量客戶端檢測網絡中軟件的異常,獲取木馬,惡意程序的最新信息,推送到雲平臺服務端自動分析和處理,再把解決方案發送給每一個客戶端。雲平臺使用者越多,越安全。

6.公有云

雲平臺對外開放,主要以Iaas和Paas為主,較為成熟的是Iaas,如阿里雲,騰訊雲,青雲,ucloud,首都在線等

7.混合雲

公有云和私有云的結合,即對企業內部又對企業外部,例如AWS

五、傳統應用與雲感知應用

1.傳統應用

傳統應用像養寵物,寵物病了要細心呵護

每個應用都是獨特的、專門的

專門的服務器、硬件和軟件保證可靠性

資源不夠,增加cpu、內存、磁盤

專門的技術支持

2.雲感知應用

雲感知應用像養牛,牛生病了,你需要一頭新的牛

應用跑在一個或多個虛擬機裡

資源不夠,增加新的虛擬機

應用掛起,重啟或創建新的虛擬機

六、openstack與及其相關組件介紹

1.openstack由來

openstack最早由美國國家航空航天局NASA研發的Nova和Rackspace研發的swift組成。後來以apache許可證授權,旨在為公共及私有云平臺建設。openstack主要用來為企業內部實現類似於Amazon EC2和S3的雲基礎架構服務(Iaas).每6個月更新一次,基本與ubuntu同步,命名是以A-Z作為首字母來的。

2.openstack項目與組件(服務名是項目名的別名)

核心項目3個

1.控制檯

服務名:Dashboard

項目名:Horizon

功能:web方式管理雲平臺,建雲主機,分配網絡,配安全組,加雲盤

2.計算

服務名:計算

項目名:Nova

功能:負責響應虛擬機創建請求、調度、銷燬雲主機

3.網絡

服務名:網絡

項目名:Neutron

功能:實現SDN(軟件定義網絡),提供一整套API,用戶可以基於該API實現自己定義專屬網絡,不同廠商可以基於此API提供自己的產品實現

存儲項目2個

1.對象存儲

服務名:對象存儲

項目名:Swift

功能:REST風格的接口和扁平的數據組織結構。RESTFUL HTTP API來保存和訪問任意非結構化數據,ring環的方式實現數據自動複製和高度可以擴展架構,保證數據的高度容錯和可靠性

2.塊存儲

服務名:塊存儲

項目名:Cinder

功能:提供持久化塊存儲,即為雲主機提供附加雲盤。 

文件存儲
對用戶來說是一個文件夾
特點:
1.不能格式化,
2.基本操作單位是文件
3.支持基於postfix標準的文件處理,打開,增刪改查
塊存儲
對用戶來說就是一塊裸盤
特點:
1.可以格式化
2.基本操作單位是block
對象存儲
key:value
http://1.1.1.1/api:object
http://pan.baidu.com/s/1slTMqT3:ceph-vmware.png

共享服務項目3個

1.認證服務

服務名:認證服務

項目名:Keystone

功能:為訪問openstack各組件提供認證和授權功能,認證通過後,提供一個服務列表(存放你有權訪問的服務),可以通過該列表訪問各個組件。

2.鏡像服務

服務名:鏡像服務

項目名:Glance

功能:為雲主機安裝操作系統提供不同的鏡像選擇

3.計費服務

服務名:計費服務

項目名:Ceilometer

功能:收集雲平臺資源使用數據,用來計費或者性能監控

高層服務項目1個

1.編排服務

服務名:編排服務

項目名:Heat

功能:自動化部署應用,自動化管理應用的整個生命週期.主要用於Paas

3.openstack各組件詳解及運行流程

各組件邏輯關係圖:

雲計算學習篇:雲計算是什麼?

openstack新建雲主機流程圖:

雲計算學習篇:雲計算是什麼?

虛擬機啟動過程如下:

  1. 界面或命令行通過RESTful API向keystone獲取認證信息。
  2. keystone通過用戶請求認證信息,並生成auth-token返回給對應的認證請求。
  3. 界面或命令行通過RESTful API向nova-api發送一個boot instance的請求(攜帶auth-token)。
  4. nova-api接受請求後向keystone發送認證請求,查看token是否為有效用戶和token。
  5. keystone驗證token是否有效,如有效則返回有效的認證和對應的角色(注:有些操作需要有角色權限才能操作)。
  6. 通過認證後nova-api和數據庫通訊。
  7. 初始化新建虛擬機的數據庫記錄。
  8. nova-api通過rpc.call向nova-scheduler請求是否有創建虛擬機的資源(Host ID)。
  9. nova-scheduler進程偵聽消息隊列,獲取nova-api的請求。
  10. nova-scheduler通過查詢nova數據庫中計算資源的情況,並通過調度算法計算符合虛擬機創建需要的主機。
  11. 對於有符合虛擬機創建的主機,nova-scheduler更新數據庫中虛擬機對應的物理主機信息。
  12. nova-scheduler通過rpc.cast向nova-compute發送對應的創建虛擬機請求的消息。
  13. nova-compute會從對應的消息隊列中獲取創建虛擬機請求的消息。
  14. nova-compute通過rpc.call向nova-conductor請求獲取虛擬機消息。(Flavor)
  15. nova-conductor從消息隊隊列中拿到nova-compute請求消息。
  16. nova-conductor根據消息查詢虛擬機對應的信息。
  17. nova-conductor從數據庫中獲得虛擬機對應信息。
  18. nova-conductor把虛擬機信息通過消息的方式發送到消息隊列中。
  19. nova-compute從對應的消息隊列中獲取虛擬機信息消息。
  20. nova-compute通過keystone的RESTfull API拿到認證的token,並通過HTTP請求glance-api獲取創建虛擬機所需要鏡像。
  21. glance-api向keystone認證token是否有效,並返回驗證結果。
  22. token驗證通過,nova-compute獲得虛擬機鏡像信息(URL)。
  23. nova-compute通過keystone的RESTfull API拿到認證k的token,並通過HTTP請求neutron-server獲取創建虛擬機所需要的網絡信息。
  24. neutron-server向keystone認證token是否有效,並返回驗證結果。
  25. token驗證通過,nova-compute獲得虛擬機網絡信息。
  26. nova-compute通過keystone的RESTfull API拿到認證的token,並通過HTTP請求cinder-api獲取創建虛擬機所需要的持久化存儲信息。
  27. cinder-api向keystone認證token是否有效,並返回驗證結果。
  28. token驗證通過,nova-compute獲得虛擬機持久化存儲信息。
  29. nova-compute根據instance的信息調用配置的虛擬化驅動來創建虛擬機。
雲計算學習篇:雲計算是什麼?

相關推薦

推薦中...