雲計算是如何實現的?

十年前我們購買一台伺服器是多大就是多大,如果要升級就得換一台伺服器,現在的雲計算可以隨時升級CPU、內存、硬碟等配置,而且無需搬家,哪位大牛科普一下雲計算是如何工作的?


題主問的是實現,所以我就不講歷史故事和概念羅列了,我就說說我了解的幾家三星半點的知識,供參考吧。

AWS、Azure、Aliyun這三家在面對用戶層面幾乎接近與雷同(現在說起來是三家,但是其實另外兩家基本上都是照著AWS的模樣照貓畫虎的,所以三家看起來基本上一樣),硬體層面,Azure比另外兩家好太多了,方便全面AWS無出其右者,而在國內的方便性,阿里雲秒殺另外兩家,不解釋,勿杠。

雲計算的技術關鍵:

虛擬化(以及由此發展起來的容器化):Intel VT是地基、Hyper-V/esxi/Xen/KVM是房子

雲計算數據中心規劃與設計京東¥ 87.20去購買?

以一個IDC為例:

  • 惠普、戴爾(含EMC)、聯想負責機架Server、盤櫃存儲,
  • Cisco、**負責網路層,
  • F5負責硬分發,內部一堆nginx負責各種定製的軟分發,
  • 雲廠商負責堆人搞出各種自動化管理工具,讓用戶做到點幾下就能用的方便程度
  • 大家不要總共以為就這麼點了,歪個題,還有不可或缺的格力、大金,它們用掉了一半的電費

做IDC是個超高難度的技術活兒,這塊兒的頂尖人才幾乎都來自於Yahoo,在Yahoo日薄西山之後,這些人才也就分散到了MS、AWS、Google這些地方去了;而想FB,TW這樣的佼佼者一開始都是從AWS起步的,火了拿到錢之後第一步就是瘋狂買機器自建IDC,因為業務做大了,雲的邊際效應就出來了,辛辛苦苦賺一年還不夠付給雲廠商的,只能自建IDC。

IDC不就是機房嗎?有啥難的?你說難到底有多難?舉個例子回答看到這裡有這個疑問的同學們,很多年以前,NetApp要進駐大連軟體園區的時候,要在大連找做機房的給他們做機房,錢管夠,NetApp要求拿出你們做得最好的機房給哥看看,然後帶著NetApp在大連幾個自以為做得不錯的機房轉了轉,對方最高分只給到了30分,這讓本地人灰常不開心,最後把NetApp帶到了還沒有完全完工的部分已經做好了的最新的網通的機房看了看,這才給打了60分,據稱要是沒有這個機房挽回點面子,搞不好人家就不打算入駐了。

雲廠商負責各種自動化、虛擬化、基礎架構,雲廠商,說白了,就是一個超級無敵大的運維團隊,其核心的能夠形成自己技術壁壘的就是是否有自研的資源管理平台,比如前段時間大力宣傳的阿里雲的「飛天」就是可以和AWS、Azure打擂台的自研平台(對了,說一句題外話,這個平台的主帥王堅博士是學心理學的,計算機是自己旁聽學的,所以你看計算機行業真的是喜歡就加入,相聚無類,從不要求你身高1米80,父母有退休金,舅舅是領導)

一台看起來是這樣的:

HP機架式伺服器DL380-G10至強金牌5218*2/16G*6/1.2T京東¥ 48050.00去購買?

一堆看起來是這樣的:

&-->
IDC的乾淨整潔程度與錢成正比

1)面對用戶層的接入,依然是傳統的接入方式:

一般是2組互相獨立冗餘備份的F5(老一點的IDC可能用的是NetScaler),這個主要是分發請求的;當然越大的IDC,就可能遠遠不止2組了,

&-->

F5、Citrix(即NetScaler)

2)網路層就是Cisco的各種型號了,越靠近匯聚的越強勁,錢嘛,買這種的都是合約價;

3)網路設備之後到了機架上面,就是各個雲廠商秀肌肉的擂台了,這裡你打開各家的主頁,大家都是在這個層面,架子搭建好了,開始自動化部署各種各樣共享、獨佔的服務了,質量來自於,虛擬化做的怎麼樣?資源隔離是否互不影響(強如微軟的Hyper-V在這裡也踩坑多年,現在早已過了那個看VMWARE臉色過日子的年代了)?資源編排效率怎麼樣(成千上萬的docker,麻煩到以至於業界搞出個k8s出來)?

深入淺出Docker(非同步圖書出品)京東¥ 67.60去購買?

Kubernetes權威指南:從Docker到Kubernetes實踐全接觸京東¥ 164.60去購買?

4)到了前面3步之後,後面的說白了,都是體力活兒,可以通過加班996、007來改善,前面3步關鍵,是質量的保證。

那麼我們來稍微看一下第四部分的可以通過996、007薅頭髮禿頂來不斷打磨的部分,這部分是用戶為什麼選擇你的原因,入手容易,做好難上加難。

  • 彈性:這是雲的根本,我可以時間細粒到按分鐘付錢,真正的pay-as-you-go,自己買自己為何設備的人工成本、經濟成本、時間成本都是幾百倍於雲的;說個例子大家就能體會了,有人曾經為了爆棚MD5密碼,在AWS上一次性買了700多台ECS,用了40多個小時,完成計算結果之後就刪除了,如果是你自己上機器,你可以想像一下,購買、上架、安裝、調試,如果同樣是一個人的話,沒有3星期估計是搞不定的。價格的彈性之外還有配置的彈性(動態擴展收縮),5分鐘之內完成scale up式的升級,而scale out更是各家重中之重的服務,對於web承載,從1000用戶暴增到1000萬用戶,你只需要用滑鼠點幾下即可,這在雲計算之前是不敢想像的;
  • 池化:把網路、內存、存儲、算力全部實現了池化(現在GPU也快要完全池化了),就像水龍頭一樣,你只要銀子夠,想開多大開多大,想怎麼分配怎麼分配;帶寬給你做成了1MB的、5MB的、10MB的、20MB的,CPU給你做成了1 core的, 2 core的、4 core的、16 core的,內存512MB的、700多MB這樣的都有、64GB的也有;
  • 自助:全部都做成了自助服務,這就意味著你使用雲廠商的服務,全部可以自己隨時完成,不需要開介紹信、不需要找1024個不門蓋章、不用跪求審核通過就能24x7的自助完成,這就把你的動作非同步化了,你想什麼時候做都行;要mysql集群?點幾下,3分鐘學會mysql有沒有經常聽到這種說法?再也不用21天學會****了。要redis?點幾下;想要人臉識別?點幾下;想要CDN?5分鐘開通抵達全世界,有沒有?什麼是超級賽亞人?客服小姐姐是你,開發格子衫是你,運維是你,包裝是你,發貨是你,財務是你,出納還是你,為什麼你這麼能耐,因為云:

雲的本質,

就是你花一點點錢,就擁有了數個偌大的IDC,搭配著幾萬人開發出來的高質量易用的軟硬體精品。

&-->


於是乎,有的企業不信邪,雲有什麼了不起的?

下載一個openstack就開始搞,至於搞的結果如何呢?

後來他們都變成了AWS、Azure、Aliyun的客戶,

你們對雲計算的邊邊角角,成幾何級數增加的繁雜性一無所知,靠PPT是做不了雲計算的

普通SMB,搞虛擬化就可以多快好省了,自動化那一層通過完全擯棄改用人肉完成更高效,搞雲,除非你有專屬於自己的天空,smb談什麼天空?

另外,雲,是面對外部用戶的,只有提供給外部用戶物美價廉的服務才能存活,光靠內部需求無法催生出標準的經得起考驗雲,最起碼,內部用戶的錢不夠養那麼大一個團隊的

&-->


一、虛擬化機制 (IaaS, 主要是虛擬化技術)

系統虛擬化是指將一台物理計算機系統虛擬化為一台或多台虛擬計算機系統。每個虛擬計算機系統(簡稱虛擬機)都擁有自己的虛擬硬體(如CPU,內存和設備等),來提供一個獨立的虛擬機執行環境。通過虛擬化層的模擬,虛擬機中的操作系統認為自己仍然是獨佔一個系統在運行。每個虛擬機中的操作系統可以完全不同,並且他們的執行環境是完全獨立的。這個虛擬化層被稱為虛擬機監控器(Virtual Machine Monitor,VMM)

&-->

雲計算的一個核心思想就是在伺服器端提供集中的計算資源,同時這些計算資源要獨立地服務於不同的用戶,也就是在共享的同時,為每個用戶提供隔離、安全、可信的工作環境。虛擬化技術獎是雲計算的一個基礎架構。通俗地說,雲計算實際是一個虛擬化的計算資源池,用來容納各種不同的工作模式,這些模式可以快速部署到物理設備上。虛擬化的資源按照來自用戶的需求多少動態調用資源,每個用戶都有一個獨立的計算執行環境。

二、海量數據分散式存儲管理機制 (PaaS, 如Google的GFS,Hadoop的HDFS,Hiv,google bigtable)

雲計算系統由大量伺服器組成,同時為大量用戶服務,因此雲計算系統採用分散式存儲的方式存儲數據,用冗餘存儲的方式(集群計算、數據冗餘和分散式存儲)保證數據的可靠性。

冗餘的方式通過任務分解和集群,用低配機器替代超級計算機的性能來保證低成本,這種方式保證分散式數據的高可用、高可靠和經濟性,即為同一份數據存儲多個副本。雲計算系統中廣泛使用的數據存儲系統是Google的GFS和Hadoop團隊開發的GFS的開源實現HDFS。

雲計算需要對分布的、海量的數據進行處理、分析,雲計算系統中的數據管理技術主要是Google的BigTable數據管理技術和Hadoop團隊開發的開源數據管理模塊HBase。

三、分散式計算機制 (Paas,Map reduce)

分散式計算簡單來說,是把一個大計算任務拆分成多個小計算任務分布到若干台機器上去計算,然後再進行結果匯總。 目的在於分析計算海量的數據,從雷達監測的海量歷史信號中分析異常信號等。

海量計算最開始的方案是提高單機計算性能,如大型機,後來由於數據的爆髮式增長、單機性能卻跟不上,才有分散式計算這種妥協方案。 因為計算一旦拆分,問題會變得非常複雜,像一致性、數據完整、通信、容災、任務調度等問題也都來了。

四、Web 2.0界面交互機制 (SaaS)

Web2.0 是相對Web1.0 的新的一類互聯網應用的統稱。Web1.0 的主要特點在於用戶通過瀏覽器獲取信息。Web2.0則更注重用戶的交互作用,用戶既是網站內容的瀏覽者,也是網站內容的製造者。

發佈於 2020-12-08繼續瀏覽內容知乎發現更大的世界打開Chrome繼續啟迪雲啟迪雲?

已認證的官方帳號

雲計算bai分為三個層面:

1、基礎環境du層(Iaas):zhi一般都是通過虛擬化dao技術,動zhuan態按需分配shu資源。為客戶提供服務。

2、平台層(Paas):一般採用中間件技術,構建多租戶平台。功能包含:流程引擎、報表引擎、消息引擎、安全認證引擎等,這些引擎的作用就是為用戶提供自定義信息系統服務的。

3、應用軟體層(Saas):最規範的雲平台採用組件化技術,將一個一個應用功能組裝在平台層上,松耦合架構,方便用戶搭建自己的信息系統。目前較多的應用集中在:OA、CRM、HA等方面。

發佈於 2020-12-08繼續瀏覽內容知乎發現更大的世界打開Chrome繼續logo知乎科學

中華科普讀物大賞

以我所知,成你所願,快來分享你的科普圖書讀後感想、書籍推薦和書中的知識,一起瓜分十萬獎金。還有八位中國科普著作家受邀親自點評,想和名家互動嗎?快來點參與回答吧~查看詳情DavyCloudDavyCloud努力把事講清楚

虛擬化技術

虛擬化技術是把一台物理伺服器,虛擬成一台或多台虛擬機。

所以一台雲主機,肯定是落在某一台物理伺服器上的,並且它的 CPU 內存 配置不可能超過這台物理伺服器。(硬碟另說,並且假設 CPU和內存都沒有超配)

虛擬化技術簡單來講就是軟體模擬實現硬體,所以這時候雲主機的配置信息就是軟體配置信息,就是寫在配置文件中的,可以很方便的修改。當然也有一定的限制,往大了改比較容易實現,基本上不用停機,支持在線修改,即時生效;往小了縮一般要關機,因為已經被虛機佔了的資源得讓虛機自己吐出來。

軟體定義的分散式存儲

常規的伺服器要麼使用單個磁碟,要麼利用多塊磁碟使用 RAID 卡組成磁陣,實現備份和冗餘。現在的分散式存儲更加的靈活,都是通過軟體來實現的。對於用戶來說,看到的一份文件或者一塊磁碟,實際上後台可能分布在 N 個地方,最終都是通過高速網路訪問。

而且存儲一般是和主機伺服器分開的,也就是虛擬機的磁碟數據和它的 CPU/內存 基本不在同一個伺服器上

綜合來說,解釋 「而且無需搬家」也很容易了,因為數據本身不用搬家,CPU和內存 可以隨時升級並切換到其它伺服器上,用戶也基本沒有感知。


雲計算bai分為三個層面:

1、基礎環境du層(Iaas):zhi一般都是通過虛擬化dao技術,動zhuan態按需分配shu資源。為客戶提供服務。

2、平台層(Paas):一般採用中間件技術,構建多租戶平台。功能包含:流程引擎、報表引擎、消息引擎、安全認證引擎等,這些引擎的作用就是為用戶提供自定義信息系統服務的。

3、應用軟體層(Saas):最規範的雲平台採用組件化技術,將一個一個應用功能組裝在平台層上,松耦合架構,方便用戶搭建自己的信息系統。目前較多的應用集中在:OA、CRM、HA等方面。

發佈於 2020-12-08繼續瀏覽內容知乎發現更大的世界打開Chrome繼續logo知乎科學

中華科普讀物大賞

以我所知,成你所願,快來分享你的科普圖書讀後感想、書籍推薦和書中的知識,一起瓜分十萬獎金。還有八位中國科普著作家受邀親自點評,想和名家互動嗎?快來點參與回答吧~查看詳情DavyCloudDavyCloud努力把事講清楚

虛擬化技術

虛擬化技術是把一台物理伺服器,虛擬成一台或多台虛擬機。

所以一台雲主機,肯定是落在某一台物理伺服器上的,並且它的 CPU 內存 配置不可能超過這台物理伺服器。(硬碟另說,並且假設 CPU和內存都沒有超配)

虛擬化技術簡單來講就是軟體模擬實現硬體,所以這時候雲主機的配置信息就是軟體配置信息,就是寫在配置文件中的,可以很方便的修改。當然也有一定的限制,往大了改比較容易實現,基本上不用停機,支持在線修改,即時生效;往小了縮一般要關機,因為已經被虛機佔了的資源得讓虛機自己吐出來。

軟體定義的分散式存儲

常規的伺服器要麼使用單個磁碟,要麼利用多塊磁碟使用 RAID 卡組成磁陣,實現備份和冗餘。現在的分散式存儲更加的靈活,都是通過軟體來實現的。對於用戶來說,看到的一份文件或者一塊磁碟,實際上後台可能分布在 N 個地方,最終都是通過高速網路訪問。

而且存儲一般是和主機伺服器分開的,也就是虛擬機的磁碟數據和它的 CPU/內存 基本不在同一個伺服器上

綜合來說,解釋 「而且無需搬家」也很容易了,因為數據本身不用搬家,CPU和內存 可以隨時升級並切換到其它伺服器上,用戶也基本沒有感知。


虛擬化技術

虛擬化技術是把一台物理伺服器,虛擬成一台或多台虛擬機。

所以一台雲主機,肯定是落在某一台物理伺服器上的,並且它的 CPU 內存 配置不可能超過這台物理伺服器。(硬碟另說,並且假設 CPU和內存都沒有超配)

虛擬化技術簡單來講就是軟體模擬實現硬體,所以這時候雲主機的配置信息就是軟體配置信息,就是寫在配置文件中的,可以很方便的修改。當然也有一定的限制,往大了改比較容易實現,基本上不用停機,支持在線修改,即時生效;往小了縮一般要關機,因為已經被虛機佔了的資源得讓虛機自己吐出來。

軟體定義的分散式存儲

常規的伺服器要麼使用單個磁碟,要麼利用多塊磁碟使用 RAID 卡組成磁陣,實現備份和冗餘。現在的分散式存儲更加的靈活,都是通過軟體來實現的。對於用戶來說,看到的一份文件或者一塊磁碟,實際上後台可能分布在 N 個地方,最終都是通過高速網路訪問。

而且存儲一般是和主機伺服器分開的,也就是虛擬機的磁碟數據和它的 CPU/內存 基本不在同一個伺服器上

綜合來說,解釋 「而且無需搬家」也很容易了,因為數據本身不用搬家,CPU和內存 可以隨時升級並切換到其它伺服器上,用戶也基本沒有感知。


推薦閱讀:

TAG:雲計算 | 雲服務 | 雲計算平台 |