官术网_书友最值得收藏!

第1章 云原生架構

1.1 云計算的演化

在云原生概念之前,讀者已經熟知虛擬化技術、云計算方法。虛擬化是將不存在的事物或現象虛擬成存在的事物或現象的方法,在計算機領域則是指軟硬件資源的虛擬化。硬件資源的虛擬化包括計算資源虛擬化、存儲資源虛擬化和網絡資源虛擬化。利用虛擬化技術,可以將物理資源抽象為統一的邏輯表示,例如通過VMware的虛擬化技術,所有虛擬服務器都擁有統一的設備型號。利用虛擬化技術,也可以使得虛擬資源不受物理資源的限制,例如一臺物理服務器可以虛擬成多臺服務器,多臺物理服務器也可以虛擬成一臺服務器,從而整合硬件資源,提高資源利用率。虛擬化技術目前做得較好的公司有VMware、Citrix、Microsoft、RedHat和Oracle等公司。虛擬化技術的發展如圖1-1所示。從1998年VMware引入x86虛擬化技術用于普通PC的虛擬,到2001年發布ESX實現服務器的虛擬,之后Citrix發布了Xen;Microsoft發布了VirtualPC和Hyper-V;RedHat借助Linux的優勢發布了KVM;而Oracle則收購了VirtualBox。各大廠商都有了自己的虛擬化技術。

圖1-1 虛擬化技術的發展

盡管虛擬化技術可以有效地簡化數據中心管理,降低數據中心的運營成本,但是并不能取消為了使用IT系統而進行的數據中心構建、硬件采購、軟件安裝和系統維護等環節,企業仍需要配備較多IT運維人員去從事物理資源的相關準備工作、軟件系統的部署工作。此時人們更希望出現一種能夠對計算、存儲和網絡等資源的按需自動分配、按使用量付費的服務,這就催生了云計算模式。云計算借助虛擬化技術的伸縮性和靈活性,進一步提高了資源利用率,簡化了資源和服務的管理與維護,減少了數據中心的運營成本。根據云計算服務提供的內容,業界把云計算分成三層:基礎架構即服務(IaaS)、平臺即服務(PaaS)和軟件即服務(SaaS)。根據云計算服務提供的來源和服務對象,云計算分為公有云和私有云。云計算的發展如圖1-2所示。2006年Amazon(亞馬遜)開始提供S3存儲和EC2虛擬服務器的云服務;2009年Heroku提供了第一款PaaS云服務。2011年誕生了開源的IaaS實現——OpenStack,同年Pivotal開源了PaaS的實現——Cloud Foundry。2014年誕生了第一款商用函數即服務(FaaS),更加推動了云服務的深度應用。

圖1-2 云計算的發展

在虛擬化計算和云計算服務蓬勃發展的階段,人們也意識到了虛擬化技術的弊端。虛擬化技術虛擬出來的是一個完整操作系統,它的底層包括宿主機操作系統和虛擬化層,勢必導致虛擬機的性能低于物理機的性能。此外,完整的操作系統所占用的存儲空間較大,而且啟動一個虛擬機,等同于啟動一個完整操作系統。但是往往在虛擬服務器中可能僅僅是為了運行某一個軟件而已。為此,LXC(Linux Container)技術和Docker技術開始出現。它摒棄了啟動完整系統的弊端,在現有操作系統上對任務進行隔離,并實現資源按需分配。它允許多個容器共享一個操作系統內核,容器內存儲的僅僅是與某個應用緊密相關的資源,其空間占用往往只有幾十到幾百MB。單獨容器化如同虛擬PC一樣會面臨高可用性不足、管理低級等問題。為此,業界推出了容器編排技術,其發展如圖1-3所示。2014年Google開源了Kubernetes(簡稱K8S),它是一種容器編排工具。容器編排工具將容器生命周期管理能力擴展到部署在大量機器集群上復雜的多容器工作負載,并且為開發人員和基礎設施團隊提供了一個抽象層來處理大規模的容器化部署。眾多公司加入到了容器編排技術大戰中,但是到了2017年,MESOS和Docker相繼宣布支持Kubernetes,徹底奠定了Kubernetes在容器編排工具中的地位。2018年,Kubernetes從云原生計算基金會中畢業。

圖1-3 容器技術和編排技術的發展

隨著虛擬化技術、云計算服務以及容器化技術的發展,越來越多的開發者和IT設施運維人員開始團隊協作,改變過往獨立運作的傳統,開始對現有基礎架構、運維人員的職責、開發團隊的文化以及軟件開發模式進行思考和研究,逐漸形成了云原生的概念。

主站蜘蛛池模板: 石泉县| 绵阳市| 汤阴县| 岑溪市| 徐州市| 万荣县| 旬邑县| 永康市| 广元市| 富民县| 正镶白旗| 饶阳县| 松滋市| 台北县| 新宁县| 嵩明县| 四川省| 雷波县| 太和县| 临洮县| 香河县| 涞水县| 宁都县| 安吉县| 青田县| 鹰潭市| 通化市| 满洲里市| 平和县| 长泰县| 怀来县| 太白县| 电白县| 康乐县| 祁东县| 广昌县| 孟州市| 宽城| 天水市| 四川省| 岫岩|