從零開始理解雲計算 Vol.1:什麼是雲計算

雲計算 軟件 CPU 程序員 騰訊雲技術社區 2017-06-23

更多騰訊海量技術文章,請關注騰訊雲技術社區:https://cloud.tencent.com/community

作者:李嘉娜 ,一位騰訊雲的設計軟妹子,受工作薰陶在積極補充、分享雲計算的知識,而且還發揮自己的設計天賦,製作了一些精美的配圖。看完你應該會覺得這個文章肯定是用心了的。

從零開始理解雲計算 Vol.1:什麼是雲計算

導語

這個系列其實是寫給自己的雲計算知識學習筆記——作為一個沒有專業背景的小白,從零開始理解雲計算的過程。王良明的《雲計算通俗講義》是一本入門的好書,本文根據書中的內容進行了思考提煉,嘗試從通俗易懂的角度理解雲計算的分類。

雲計算從字面上可以拆成“雲”和“計算”兩個部分,要理解它的概念,需要從IT的傳統技術講起,瞭解什麼“軟件”、什麼是“網絡”。

一、什麼是軟件

軟件也叫程序,要理解軟件的概念,不妨先看下面這個例子——老李想畫一個三角形並計算出面積,他找了小李幫忙,交給他一張紙,上面寫著這些步驟:

從零開始理解雲計算 Vol.1:什麼是雲計算

小李收到了這張紙後,詢問了老李三角形三個頂點的座標,然後在書桌上攤開紙開始工作,他畫出三角形並計算面積後把紙交給了老李,任務完成。

如果我們將老李比喻成程序員,小李比喻成計算機的CPU(中央處理器),那麼書桌就是內存,三角形三個頂點的座標是三條輸入語句,繪製三角形並計算面積的步驟就是軟件,一個步驟就是一條指令(也叫語句),畫了三角形並標註了面積的紙就相當於軟件的輸出,“畫一個三角形並計算面積”就如軟件要完成的任務(也叫程序要處理的數據)。

從零開始理解雲計算 Vol.1:什麼是雲計算

通俗地來說,軟件就是由程序員寫的需要讓CPU來完成某項任務的步驟,只不過這些步驟是用計算機語言來描述的(常見的計算機語言有C、C++、Java、PHP、Go等)。

為了能夠更加直觀地理解軟件的運行原理,我們用下面這張圖表示一個軟件:

從零開始理解雲計算 Vol.1:什麼是雲計算

一個軟件以文件的形式保存在硬盤上,當我們用鼠標雙擊它時,這個軟件就被讀到內存,此後CPU按照裡面的步驟一步步執行。執行到輸入步驟時需要從輸入設備上獲取信息(鍵盤和鼠標是最常見的輸入設備),然後執行一些計算步驟(CPU、內存和硬盤一起組成計算設備),最後執行輸出步驟,把計算的結果通過輸出設備輸出(顯示器和音箱是最常見的輸出設備)。對於一些較大的軟件,在軟件執行的過程中,隨時可能要輸入,也隨時可能會輸出,計算步驟也可能安排在任何時候。

計算設備和輸入/輸出設備的分離是雲計算的核心特徵。要明白他們是如何分離的,我們需要了解下一個概念 —— 網絡。

二、什麼是網絡

我們平常使用QQ發信息的時候,為什麼發的信息能準確無誤的發給特定的對象,而不會錯發給別人呢?如何把一臺計算機發出的信息準確無誤地送到另外一臺計算機,這就是計算機網絡所要解決的問題。

寫過信的人都知道,如果要把信送到對方手中,我們需要在信封上寫上收件人的詳細地址,且保證收信地址是唯一的。計算機也是一樣,與外界通信的計算機也必須擁有一個唯一的地址。計算機的地址稱為IP地址,格式是“xxx.xxx.xxx.xxx”(xxx的範圍為0-255)。

從零開始理解雲計算 Vol.1:什麼是雲計算

如果我在深圳,想把信息發送給北京的朋友,在我點擊發送按鈕後,消息、我的計算機的IP地址、朋友的計算機的IP地址被打包在一起通過寬帶發送給深圳電信,然後電信內部傳遞,最後到達北京海淀區電信局後由海淀區電信局通過對方的寬帶發給對方的計算機。消息的打包和傳遞都是由計算機網絡自動完成的,以電或光的速度傳播,非常快。

計算機網絡的兩個重要指標分別是 帶寬 和 時延。

帶寬定義為每秒鐘能傳遞的數據量,帶寬越大則每秒鐘傳遞的數據量就越大。如果把計算機網絡比喻成一條高速公路,帶寬就好比是車道數,車道數越多,每秒能通行的車輛越多。

網絡路徑上轉發機構的多少決定了一條信息到達對方計算機所消耗的時間,術語稱時延。如果再將計算機網絡比喻成一條高速公路,時延就好比是路途經過的所有收費站交錢所耗時間的總和。一個雲計算中心的時延半徑通常為100毫秒,即一個數據包從雲中心出發,50毫秒所能到達的範圍(返回也要50毫秒),時延和地理位置上的遠近無關,只和網絡路徑上的轉發機構和數目有關,比如在深圳的超算中心50毫秒的時延半徑可能包括了美國的洛杉磯,但沒有包括廣東省的梅州市,因為深圳與梅州之間要經過很多性能低下的轉發設備,而到達美國洛杉磯只經過幾臺高速路由器。實時輸入/輸出的軟件對計算機網絡的時延要求高,尤其是實時強交互軟件,比如我們日常使用的QQ。

帶寬和時延是部署雲計算時不可忽視的兩大重要因素。瞭解了軟件和網絡的概念後,理解雲計算的本質就不遠了。

三、什麼是雲計算

我們已經知道軟件就是程序員寫的需要CPU執行以完成某項任務的步驟,這些步驟包括輸入/輸出步驟和計算步驟,CPU在執行輸入/輸出步驟時需要使用輸入/輸出設備,在執行計算步驟時需要使用計算設備。對於普通的計算機而言,計算設備指的是CPU、內存和硬盤,輸入/輸出設備指鍵盤、鼠標、顯示器、話筒和音箱

對於傳統的個人計算機,計算設備和輸入/輸出設備通過主板連接在一起,計算設備和輸入/輸出設備通過主板這個紐帶實現協同工作。

然而,主板並不是可以連接計算設備和輸入/輸出設備的唯一紐帶。當一個軟件在執行的時候,用到的輸入/輸出設備和計算設備是被計算機網絡連接在一起的,那麼這樣的軟件執行過程就叫雲計算。

從零開始理解雲計算 Vol.1:什麼是雲計算

“雲計算”中的“雲”指的就是計算機網絡。位於計算機網絡中的設備通常稱為雲端,位於人們身邊的輸入/輸出設備通常稱為終端。就像我們不關心信是經歷了哪些機構送出的,只關心信寄出之後對方什麼時候能夠收到一樣;我們並不關心計算機網絡具體是由什麼組成的,我們只關心申請的寬帶帶寬是多少,時延大不大。對於我們不關心也不瞭解的網絡組成部分,通常人們喜歡畫一朵像雲一樣的東西來代替,這就是雲計算名稱的來歷。

雲計算也可簡述為“輸入/輸出設備和計算機設備分離的軟件執行過程”,執行與計算表達的含義相同,因此雲計算也可以稱為雲執行。它是針對軟件執行而言的,跟計算機的具體結構無關,也和軟件本身關係不大。比如我運行自己計算機上的計算器,就不是雲計算;但如果我的朋友從北京登錄到我的計算機並運行裡面的計算器,這時就是雲計算。

由上可知,雲計算其實並不是什麼高大上不可觸及的概念,我們的生活各個方面都充滿了雲計算的應用:我們在用百度搜索關鍵詞時,搜索軟件運行在百度的計算機上,通過在億萬個網頁中查找,把搜索結果反饋到用戶的計算機屏幕上,同理還有在視頻網站上看電影、使用郵箱、網盤等等。

雲計算為用戶提供了足夠的計算資源、海量數據和幾乎無限的存儲空間,為物聯網、大數據、人工智能等新興產業奠定了基礎,為我們的未來打開了無限的想象空間。越來越多的企業開始從傳統的IT架構開始向雲計算架構轉型。

這個系列的下一篇將從傳統IT架構開始進行整理,進一步說明雲計算的分類和優勢。

相關推薦

推薦中...