"雲大物智",這四個字多是近兩三年來在國內的IT界最火的搜索關鍵字了。雲計算、大數據、物聯網、人工智能,甚至已經出現了一些其餘的更加細緻的專業名詞,諸如:邊緣計算、Devops、深度學習等等,筆者對這些也只是淺嘗輒止,還未真正去深刻學習瞭解,可是咱們能夠知道的是:技術不可能滯後,更不可能停滯,而咱們所要作的就是不斷學習,以提高自我。web
而本文的標題是:深刻淺出理解雲計算;想必你們據說過阿里雲,騰訊雲,百度雲,固然還有馬雲(老馬別介意啊,估計你也看不到,呵呵~),或者也能背出雲計算的定義,說出個123什麼的,但有多少人是真正理解雲計算這三個字背後的本質呢?那麼今天就來好好談談雲計算是個什麼鬼。但筆者自知才疏學淺,如有紕漏之處還望你們指正。安全
萬物起源必有緣由,雲計算也不例外。談到雲計算,就得說到互聯網,或者說網絡,這就得追溯到上個世紀的第三次工業革命了,衆所周知,這是一次科技革命,應運而生的即是電子計算機、原子能和空間技術等等,而這即是真正給人類社會生活帶來巨大飛躍的一次革命。服務器
而云計算的產生背景就在於網絡科技的迅速發展,例如web網站和電子商務的發展,雲計算這個概念第一次是在2006年的一次會議上提出的,對計算機而言,全部的信息都是數據,而全部數據的處理(包括存儲、應用、修改等)都是計算,而當這些數據或處理的量達到傳統計算機沒法處理的時候,企業就會面臨巨大的業務瓶頸和問題。傳統的作法即是購置更多的計算機,咱們將此統稱爲服務器,然而這必然能夠解決燃眉之急,但也會帶來諸多問題,咱們後面會詳細講述雲計算究竟解決或者能夠解決什麼問題,這裏咱們所要知道的即是購置和維護的成本要比原先多得多,中小型企業基本上是沒法承受的。網絡
能夠說,自雲計算這個詞的誕生開始,就已經奠基了它的不凡。雲計算取得的發展與變化可謂翻天覆地。促進其發展的並行計算、分佈式計算等計算機技術也是重中之重,而要追溯雲計算的根源,就離不開虛擬化這個詞。由於虛擬化即是現在雲計算的基礎架構的核心。(可能某些人還不知道什麼是虛擬化技術,其實這個概念也比較抽象,要想真正理解,或許幾句話未必說的透徹。這裏就簡單來講,虛擬化技術就是打破時間空間,將基礎的物理平臺和應用部署的環境經過虛擬化平臺在空間上隔離,從而完成數據備份、遷移和擴展。)架構
而發展的過程就不詳細摘錄下來了,有興趣能夠百度或者看一些學術論文便可。分佈式
可能看了上面的內容,你仍是對雲計算雲裏霧裏,仍是不懂究竟什麼是雲計算。ide
而一些知道的人就會告訴你:雲計算就是用戶能夠經過網絡靈活地向計算機資源池獲取對應的資源或服務,這些資源或服務是彈性伸縮、按量付費的。更有人會告訴你這些資源或服務包括硬件資源:CPU、內存、存儲;網絡帶寬;軟件服務;應用程序等等。工具
那麼這個定義究竟正確嗎?筆者只能說我也不知道,由於技術還在不斷髮展,誰知道以後雲計算會發展到什麼樣呢?Who knows?But we do care。咱們只能說目前這是官方給出的定義與描述,可是從這簡短的兩三句話,咱們即可以知道雲計算依託的是網絡,提供的是資源服務,特色是彈性伸縮,獲取方式是按量付費。固然這也會隨着技術和思惟的發展,從而涉及安全,模式,應用的形式等其餘的各個方面。因此,筆者認爲,「雲計算」,這三個字,並非能夠簡單地經過兩三句話給個定義就可讓人理解的。學習
雲計算,能夠說是匯聚了諸多學問的一門科學。一方面它從生活中來,又到生活中去;另外一方面它是諸多能人思惟模式聚合的產物,又是提高技術人員思惟的實例。因此要想大衆瞭解或者加深理解雲計算,經過上面給出的定義,仍是太晦澀抽象了。筆者在這裏給出本身的淺解,可能不如官方定義的那般專業,學術。大數據
筆者認爲,所謂雲計算,字面上的理解則是"雲"和"計算"兩個詞的組合,所謂"雲",於天空,數不勝數,變幻莫測,隨搖搖欲墜,隨大氣流動,這是真實的雲;所謂"計算",於生活,各行各業,繁多冗雜,將之放入IT領域,即是各類資源,這是抽象而又具體的計算,抽象在於它不是傳統意義的數學計算,具體在於其是基於實實在在的硬件之上的資源。那麼這抽象而又具體的兩個詞合二爲一時,其表明的含義就是計算機所依託硬件產生的資源與服務就比如這雲通常能夠變化,能夠屢次循環利用,而這利用是須要人爲分配和規劃的。
這即是筆者對雲計算通俗一些的理解。在筆者看來,現在的雲計算能夠用一種更加宏觀的眼界來看待,那麼咱們的生活中便到處都有云計算的身影,能夠是具體的服務器,能夠是虛擬的網絡資源,能夠是某種交付服務等等。當下的雲計算,能夠認爲是資源與服務的交互方式,也是一種解決問題的思惟模式。
當咱們對雲計算的概念有了初步理解的時候,咱們就應該考慮另外一個問題:雲計算的出現和其如此迅速的發展是爲了作什麼的?到底是爲了解決什麼樣的問題?
對於這個問題,從初學者或剛剛接觸雲計算的人而言算是比較核心的問題了。而解答這個問題,就須要有必定經驗的人來解答。筆者將這些解答作了整合概括,下面給出雲計算能夠解決的幾個典型問題。
有效解決硬件單點故障;
按照需求增減所需資源;
按照需求增減網絡帶寬;
對於傳統服務器而言,一家公司對於成本的把控老是成爲老闆最關心的問題,把控成本的核心其一就在於硬件方面,可是,對於公司的發展而言,硬件是其業務得以開展的核心,因此一旦硬件出現問題,而這時又沒有很是及時的解決方法的時候,帶來的後果每每是很是可怕的,因此通常來講企業內部使用的服務器資源利用的狀況是很是冗餘的。並且不少時候是沒法把控業務的峯谷值的,當業務數量攀升或驟降的時候,根本沒法及時處理。
因此雲計算就是爲了解決相似的問題而來的。雲計算是一種基於服務器集羣的平臺,咱們能夠將之看做是一家銀行,若是雲平臺出現硬件問題,比如是銀行將錢弄丟了。
既然有云平臺,就有云廠商,全球四大核心雲廠家:亞馬遜AWS、Google、微軟Azure、阿里雲。而這些雲廠商就是給企業或用戶提供相對應的雲服務的,而這些被提供的資源和服務是能夠變化的,也就是說是能夠彈性變更的,包括硬件設備方面的資源、程序軟件服務的資源、網絡帶寬的資源等等。而企業在費用方面也不須要向以前同樣購置好一堆服務器,而是按照使用量或者時間來付相關費用。這樣是否是更加吸引客戶呢?
雲廠商對使用雲計算服務的用戶提供對應的服務是多種多樣的,通常會將雲服務劃分爲三種模式,以下:
該雲服務模式是雲計算的底層服務模式。打個比方來講,若是雲計算是一棟房子,那麼IaaS就是其地基。這也是目前雲廠商提供的最多的服務。IaaS的出現,可讓企業直接提供雲廠商提供的服務器等對應資源構建本身的網站等服務,這在節約硬件成本的同時也節約了維護成本。
PaaS,能夠算是這個房子的中間部分,給出住戶空間平臺生活。PaaS,是爲用戶提供一整套的工具軟件,面向開發者,方便其開發應用程序,而且支持定製化服務,只須要對使用的資源付費便可。
該服務比如是房子的頂層。通常就是咱們將本地用的程序,軟件放在雲上運行。雲廠商將軟件做爲服務提供網絡提供給用戶,例如web的電子郵件、HR系統、訂單管理系統等等。
將基礎設施與軟硬件資源構建在防火牆內部,基於IaaS搭建私有云平臺給企業內部使用,典型應用就是OpenStack。
雲平臺對外開放,主要以IaaS和PaaS爲主,如阿里雲
公有云和私有云的結合,即對企業內部又對企業外部,例如AWS
做爲數據存儲和管理的雲計算系統
遊戲運行在雲平臺服務端,用戶無需高配硬件資源也能夠暢玩
基於雲平臺實現萬物互聯
經過大量客戶的大量使用,對相關問題異常狀況進行監控解決。
對於雲計算的理解仍是須要在實際使用過程當中才能真正深刻體會。後面將對雲計算的一些應用和平臺的搭建做更加細緻的講述。總之,要想弄懂雲計算,切不可淺嘗輒止,而是要深刻其中。
固然本文的這些介紹一方面是方便初學者再次領略雲計算的魅力,另外一方面也是爲了給一些其餘有關雲計算的實例奠基基礎,好比虛擬化、容器、Kubernetes、OpenStack等等。你們有興趣能夠了解一下相關的專業術語的概念,包括但不限於:並行計算、虛擬化、消息隊列、解耦、分佈式等等。相信瞭解這些概念,不管是對學習雲計算仍是擴展自個人思惟都是大有裨益的。最後感謝您的閱讀!