- 云原生架構(gòu)進階實戰(zhàn)
- 王玉平編著
- 1464字
- 2020-09-18 17:43:53
第1章 云原生架構(gòu)
1.1 云計算的演化
在云原生概念之前,讀者已經(jīng)熟知虛擬化技術(shù)、云計算方法。虛擬化是將不存在的事物或現(xiàn)象虛擬成存在的事物或現(xiàn)象的方法,在計算機領(lǐng)域則是指軟硬件資源的虛擬化。硬件資源的虛擬化包括計算資源虛擬化、存儲資源虛擬化和網(wǎng)絡(luò)資源虛擬化。利用虛擬化技術(shù),可以將物理資源抽象為統(tǒng)一的邏輯表示,例如通過VMware的虛擬化技術(shù),所有虛擬服務(wù)器都擁有統(tǒng)一的設(shè)備型號。利用虛擬化技術(shù),也可以使得虛擬資源不受物理資源的限制,例如一臺物理服務(wù)器可以虛擬成多臺服務(wù)器,多臺物理服務(wù)器也可以虛擬成一臺服務(wù)器,從而整合硬件資源,提高資源利用率。虛擬化技術(shù)目前做得較好的公司有VMware、Citrix、Microsoft、RedHat和Oracle等公司。虛擬化技術(shù)的發(fā)展如圖1-1所示。從1998年VMware引入x86虛擬化技術(shù)用于普通PC的虛擬,到2001年發(fā)布ESX實現(xiàn)服務(wù)器的虛擬,之后Citrix發(fā)布了Xen;Microsoft發(fā)布了VirtualPC和Hyper-V;RedHat借助Linux的優(yōu)勢發(fā)布了KVM;而Oracle則收購了VirtualBox。各大廠商都有了自己的虛擬化技術(shù)。

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

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

圖1-3 容器技術(shù)和編排技術(shù)的發(fā)展
隨著虛擬化技術(shù)、云計算服務(wù)以及容器化技術(shù)的發(fā)展,越來越多的開發(fā)者和IT設(shè)施運維人員開始團隊協(xié)作,改變過往獨立運作的傳統(tǒng),開始對現(xiàn)有基礎(chǔ)架構(gòu)、運維人員的職責(zé)、開發(fā)團隊的文化以及軟件開發(fā)模式進行思考和研究,逐漸形成了云原生的概念。
- Getting Started with Oracle SOA B2B Integration:A Hands-On Tutorial
- 網(wǎng)上生活必備
- 大數(shù)據(jù)技術(shù)入門(第2版)
- Windows程序設(shè)計與架構(gòu)
- 大數(shù)據(jù)安全與隱私保護
- JSF2和RichFaces4使用指南
- 運動控制器與交流伺服系統(tǒng)的調(diào)試和應(yīng)用
- Learning Azure Cosmos DB
- Azure PowerShell Quick Start Guide
- MCGS嵌入版組態(tài)軟件應(yīng)用教程
- Extending Ansible
- Linux內(nèi)核精析
- 電腦上網(wǎng)入門
- TensorFlow Deep Learning Projects
- 設(shè)計模式