什么是云計算

在沒有網路的時代,每臺電腦就是一個單機,包括CPU、記憶體、硬碟、顯卡等硬體,安裝上作業系統和應用軟體,就可以完成作業,后來網路誕生,它將單機關聯起來,單機之間可以交換資訊,協同作業,再后來,單機性能越來越強,就有了服務器,人們將多臺服務器集中起來放在機房里,用戶通過網路訪問和使用機房里的計算機資源,再之后,小型網路變成了大型網路,就有了互聯網,小型機房也變成了大型機房,就有了IDC互聯網資料中心,當越來越多的計算機資源和應用服務被集中起來,就形成了——云計算,無數的IDC大型機房,就成了“云端”,
云計算說白了就是將計算機資源集中起來放在網路上,那么云計算如何實作呢?
云計算有三種服務方式,分別是SAAS(軟體即服務)、PAAS(平臺即服務)、IAAS(基礎設施即服務),

那這三種服務方式具體是把哪些計算機資源放在云端呢?下圖看得更直觀:

什么是虛擬化
當對物理資源進行管理的第一步,就是“虛擬化”,虛擬化是一種技術,云計算是一種使用模式,虛擬化可以理解為一臺物理服務器上運行多臺虛擬服務器,這種虛擬服務器,也叫虛擬機(VM,Virtual Machine),虛擬機共享物理服務器的CPU、硬碟、記憶體、網卡等資源,一臺物理機上可以同時運行多臺虛擬機,誰來完成物理資源虛擬化的作業呢?
Hypervisor 也叫做VMM(Virtual Machine Monitor,虛擬機監視器),它不是一款具體的軟體,而是一類軟體的統稱,像VMware、KVM(kernel-based virtual machine,基于Linux內核的虛擬機)、Xen、Virtual Box,都屬于Hypervisor,
為了更好的管理虛擬機,便有了OpenStack這樣的云管理平臺,OpenStack對資源進行管理,并且以服務的形式提供給上層應用或者用戶去使用,有點像個商店負責管理商品(計算資源、存盤資源、網路資源等),賣給用戶,但它本身不制造商品(不具備虛擬化能力),它的商品,來自于KVM或者其它Hypervisor,
以上的幾個概念包括VM、KVM、OpenStack等,都主要屬于IaaS(基礎設施即服務),
什么是容器
容器是“輕量級”的虛擬化,它的目的和虛擬機一樣都是為了創造“隔離環境”,不同點在于——虛擬機是作業系統級別的資源隔離,而容器本質上是行程級的資源隔離,像是Docker就是創建容器的工具,即應用容器的引擎,相比于傳統的虛擬機,Docker的優勢很明顯,它啟動時間很快,是秒級,而且對資源的利用率很高(一臺主機可以同時運行幾千個Docker容器),此外,它占的空間很小,虛擬機一般要幾GB到幾十GB,而容器只需要MB級甚至KB級,
有了容器,我們還需要一個容器編排工具——Kubernetes(K8S),K8S是一個容器集群管理系統,比如啟動容器,自動化部署、擴展和管理容器應用,以及回收容器,
除了K8S之外,還有很多種容器管理平臺,例如Compose,Marathon,Swarm,Mesos等,Docker和K8S,關注的不再是基礎設施和物理資源,而是應用層,所以屬于PaaS,
什么是分布式存盤和分布式計算
對分布式系統比較合適的定義是把所有IT資源看成為一個整體來使用,而不是去獨立的看某個機器某個系統,即資源池,以開源Hadoop為例,為實作將IT資源變成整體,要做到的第一點就是將一個巨大的檔案拆開放在多個地方,我們可以用一大堆計算機通過網路連接來存放這個巨大的檔案,這樣即使很多很小硬碟的機器也可以通過連在一起當成一個很大的存盤空間來用,這種就是分布式存盤(HDFS),
光是檔案存放合在一起還不夠,計算能力也要合在一起,所以它還要滿足一個任務分給多個物理機來處理,這樣即便單機性能不足,通過這種方式連在一起,只要足夠多,也能當超級計算機用,這種就是分布式計算(MapReduce),
由此可見虛擬化主要是把大塊拆成小塊,分布式系統主要是把小塊組合成大塊,IT資源經過這樣的揉碎再組合,就變成了一個十分靈活的系統,
企業云上常見架構

All in one部署:當企業的IT系統沒有很復雜,業務需求沒有很高的時候,可以將所有的服務部署在一臺云服務器上,比如將應用和資料庫部署在一臺ECS上,
應用與資料分離:將應用部署在ECS上,將資料庫單獨使用云上的資料庫服務RDS,提升系統服務能力,

應用集群部署:為緩解前端訪問的壓力,使用SLB負載均衡服務統一介面處理用戶請求;后端通過部署多臺云服務器去處理用戶的請求,
動靜資源分離:為緩解系統存盤壓力,將靜態資源(圖片、音視頻等非結構化資料)單獨放到云上OSS檔案存盤,實作動靜資源分離,
參考:
https://www.zhihu.com/question/22793847
https://developer.aliyun.com/article/256469
稀有物種女程式猿,日更python、網路、演算法等相關知識,日拱一卒,歡迎各位催更扯淡一條龍!

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/277494.html
標籤:其他
