本文首發於我的公眾號 Linux雲端計算網路(id: cloud_dev),專注於乾貨分享,號內有 10T 書籍和視訊資源,後臺回覆 「1024」 即可領取,歡迎大家關注,二維碼文末可以掃。
雲端計算的發展歷史
我們主要從使用者對雲端計算的認知角度來談雲端計算的發展史,至於它從提出到發揚光大的那些大事件,網上搜下就知道了,而且我覺得去談那些發展事件意義也不大,倒不如說說我們對雲端計算的一個認知變化過程,我覺得任何事物存在必有其可循的跡象,可能在很久以前這東西就存在了,只不過在當時的情境下不叫這個名字而已,隨著技術的發展和環境的變化,自然就演變成今天的樣子。
就雲端計算這個話題,我就拿我們個人來舉個例子,假設一個開發者閉關數日,不分白天與黑夜,傾心 Coding,終於開發出一款自認為很牛逼的產品,準備上線了,但是苦於沒有伺服器(資源)來承載他的產品,於是他勒緊褲腰帶買了一臺。上線沒幾天,這款產品出人意料的火爆,完全超出這名開發者的預想,於是,為了支撐流量的上漲,他又買了更多的伺服器,為了維護這些伺服器叢集,他又開始自建機房,自己部署業務系統並運維。看著眼前這小有成就的一切,這名開發者卻漏出了難色,這些支離破碎的機房運維管理工作搞得人焦頭爛額,都沒有心思 Coding 了。這個時候他聽說有一些 IDC (Internet Data Center)運營商可以幫助企業或個人託管伺服器資源,於是便當機立斷把自己的伺服器叢集轉移到 IDC 託管。正當他準備擼起袖子 Coding 之時,想到要定期去採購裝置,還要跟 IDC 那邊交接託管的事情就頭大。這時,他又聽朋友說雲端計算可以解決他這個問題,於是他又跑到一家雲端計算廠商,租用了一些資源就把這一切都搞定了。忙活了一通,終於可以安心 Coding 了。^=^
上面這個小故事是我杜撰的,或許能在一定程度上幫助你瞭解雲端計算的一個發展歷史,從自建機房,到 IDC 託管,再到雲端計算,整體經歷過這麼三個階段。當然,從技術的角度來說,雲端計算的思想也是早已有之,從早期的網格計算,分散式計算,再到虛擬化技術,無不跟雲端計算息息相關。雲端計算的出現,離不開人們的需求日益變化和技術人對技術的傾心專研。
雲端計算服務型別
最終,雲端計算反過來為人們提供更好的服務。從人們的需求來看,雲端計算總體上提供三類服務:IaaS、PaaS 和 SaaS。
關於這三類服務,我在前文中也說了一些,在這裡總結一下,IaaS 主要提供的是底層的資源服務,比如伺服器、儲存、網路,企業或個人租用了這些資源之後,可以根據自己的需求定製自身的業務系統,如採用什麼部署環境,開發環境等,這種一般比較適合於中大規模企業。
PaaS 則是在此基礎上事先構建好了所有和開發、測試、運維等相關的環境,個人或企業可以專注在自身的業務邏輯上,不必去關心底層的執行環境,因為它一般能給你提供一個高可用,高可靠,可擴充套件的環境,這種一般適合於個人或小規模的企業。
SaaS 就更直接一些,提供的是現成的軟體或應用的服務,如 email 服務等,這種比較具有普適性,不管是個人,還是任何規模的企業,都有使用現成的各類軟體的需求。
雲端計算的分層架構
上面科普完了,下面從技術的角度簡要說說雲端計算的架構。任何技術,總少不了會採用分層的架構(貌似是這樣的~),這也驗證了某位科學先驅所說的,任何問題,都可以通過增加一個間接的中間層來解決。雲端計算的分層架構可以從技術和使用者,也就是租戶的角度,分為兩種不同的架構,如下圖,左邊是技術視角架構,右邊租戶視角架構。
從技術視角看,計算、儲存、網路等底層基礎設施構成硬體資源層,虛擬化層通過虛擬化技術,並根據上層應用需求分配、編排和管理著這些資源,為了讓資源具備高可用、高可靠,以及可擴充套件等特性,增加相應的中間層來支援,最上層則提供 Web 等友好控制檯給使用者,以 RESTful API 的方式展示資源,提高使用者體驗。
而從租戶視角來看,租戶根據自身業務的需求,如高可用,和所屬業務領域,如遊戲,依據不同的業務邏輯,來申請使用資源。這種方式能夠很好隔離資源的提供者和使用者,提高了靈活性,讓資源能夠得到最大化的利用。
本文的目的是希望對雲端計算形成一個總體的認識,因為我覺得學習任何知識,按照總-分-總這條路線來進行的話,對後面深入學習會有很大的幫助,但是這得花一些時間去整理、總結,才能比較好的輸出,但你們很幸運,可以直接看我總結好的,為了鼓勵我更好的輸出給你們,動動手指給我個贊吧,另外,由於能力有限,難免會有錯誤,還望留言給我指出。
公眾號後臺回覆“加群”,帶你進入高手如雲交流群
我的公眾號 「Linux雲端計算網路」(id: cloud_dev) ,號內有 10T 書籍和視訊資源,後臺回覆 「1024」 即可領取,分享的內容包括但不限於 Linux、網路、雲端計算虛擬化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++程式設計技術等內容,歡迎大家關注。