云计算的前生今世
原文:https://skyao.io/learning-cloudnative/introduction/history.html
掌握一門技術(shù),一定要了解其發(fā)展歷史,才該技術(shù)未來的走向,通過本篇文章,讓我們看看過去幾十年間,云計(jì)算領(lǐng)域的發(fā)展演進(jìn)歷程。
云計(jì)算的遠(yuǎn)古時(shí)代
云計(jì)算的歷史事實(shí)上需要追溯到60多年前的計(jì)算機(jī)遠(yuǎn)古歷史:
1955年,John McCarthy(備注:John McCarthy是Artificial Intelligence/人工智能一詞的提出者)創(chuàng)造了一種在用戶群中共享計(jì)算時(shí)間的理論。
1959年6月,在國際信息處理大會(huì)上克里斯托弗Christopher Strachey發(fā)表了《Time Sharing in Large Fast Computer》論文,提出了虛擬化概念。該文被公認(rèn)為虛擬化技術(shù)的最早論述。
1965年8月,IBM推出System/360 Model 67 和 TSS 分時(shí)共享系統(tǒng)(Time Sharing System),通過虛擬機(jī)監(jiān)視器(Virtual Machine Monitor)虛擬所有的硬件接口,允許多個(gè)用戶共享同一高性能計(jì)算設(shè)備的使用時(shí)間,也就是最原始的虛擬機(jī)技術(shù)。
在20世紀(jì)60年代中期,美國計(jì)算機(jī)科學(xué)家 JCR Licklider 提出計(jì)算機(jī)互聯(lián)系統(tǒng)(an interconnected system of computers)的想法。
1969年,在 JCR Licklider 的革命性創(chuàng)意的幫助下,Bob Taylor 和 Larry Roberts 開發(fā)了互聯(lián)網(wǎng)的前身 ARPANET(Advanced Research Projects Agency Network),允許不同物理位置的計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)連接和資源共享。
1972年,IBM發(fā)布了名為VM(Virtual Machine)的操作系統(tǒng)。在90年代,虛擬機(jī)的使用開始流行
1974年,Popek和Goldberg發(fā)表了《Formal Requirements for Virtualizable Third Generation Architectures》提出了虛擬化準(zhǔn)備的充分條件,指出滿足條件的控制程序可以被稱為虛擬機(jī)監(jiān)視器Virtual Machine Monitor (VMM):(1)一致性:一個(gè)運(yùn)行于虛擬機(jī)上的程序,其行為應(yīng)當(dāng)與直接運(yùn)行于物理機(jī)上的行為基本一致,只允許有細(xì)微的差異如系統(tǒng)時(shí)間方面;(2)可控性:VMM對(duì)系統(tǒng)資源有完全的控制能力和管理權(quán)限;(3)高效性:絕大部分的虛擬機(jī)指令應(yīng)當(dāng)由硬件直接執(zhí)行而無需VMM的參與。
1978年,IBM獲得了獨(dú)立磁盤冗余陣列(Redundant Arrays of Independent Disks,RAID)概念的專利。該專利將物理設(shè)備組合為池,然后從池中切出一組邏輯單元號(hào)(Logical Unit Number,LUN)并將其提供給主機(jī)使用。雖然該技術(shù)直到1988年IBM才與加利福尼亞州立大學(xué)伯克利分校聯(lián)合開發(fā)了第一個(gè)實(shí)用版本,但該專利第1次將虛擬化技術(shù)引入存儲(chǔ)之中。
“Time-Sharing”的背景:自20世紀(jì)50年代,人類使用大型計(jì)算機(jī)系統(tǒng)來處理數(shù)據(jù)。而在早期,大型計(jì)算機(jī)體積龐大而且價(jià)格高昂。為了提高投資回報(bào)率,購買大型機(jī)的組織開始實(shí)施“分時(shí)調(diào)度(time-sharing)”,然后從沒有處理能力的終端訪問大型計(jì)算機(jī)?!胺謺r(shí)”理論可以充分利用可用的計(jì)算時(shí)間,可以用于為無力購買自己的大型機(jī)的小公司提供計(jì)算時(shí)間。
這里便陸續(xù)出現(xiàn)了云計(jì)算的基本前提:共享計(jì)算能力和共享網(wǎng)絡(luò),并出現(xiàn)了虛擬機(jī),虛擬網(wǎng)絡(luò)和早期基礎(chǔ)設(shè)施。
但是在2000年前后虛擬化技術(shù)成熟之前,市場(chǎng)處于物理機(jī)時(shí)代。當(dāng)時(shí)如果要啟用一個(gè)新的應(yīng)用,需要購買一臺(tái)或者一個(gè)機(jī)架的新服務(wù)器。
虛擬化技術(shù)成熟
在2000年前后,虛擬化技術(shù)逐漸發(fā)展成熟:
1998年,VMware成立并首次引入X86的虛擬技術(shù),通過運(yùn)行在Windows NT上的VMware來啟動(dòng)Windows 95。
1999年,VMWare推出可在X86平臺(tái)上流暢運(yùn)行的第一款VMware Workstation,從此虛擬化技術(shù)終于走下了大型機(jī)的神話。之后,研發(fā)人員和發(fā)燒友開始在普通PC和工作站上大量使用該虛擬化解決方案。
1999年,IEEE頒布了用以標(biāo)準(zhǔn)化VLAN實(shí)現(xiàn)方案的802.1Q協(xié)議標(biāo)準(zhǔn)草案,從而可以將大型網(wǎng)絡(luò)劃分為多個(gè)小網(wǎng)絡(luò),使得廣播和組播流量不會(huì)占據(jù)更多帶寬的問題;同時(shí),可以利用VLAN標(biāo)簽提供更高的網(wǎng)絡(luò)段間的安全性。
2000年,IEEE頒布了虛擬專用網(wǎng)(Virtual Private Network)VPN標(biāo)準(zhǔn)草案,從而使得私有網(wǎng)絡(luò)可以跨公網(wǎng)進(jìn)行建立。
2000年,Citrix桌面虛擬化產(chǎn)品正式發(fā)布。
2001年,VMware發(fā)布了第一個(gè)針對(duì)x86服務(wù)器的虛擬化產(chǎn)品ESX和GSX,即ESX-i的前身。
2003年10月,Xen虛擬化項(xiàng)目首次面世推出了1.0版本,此時(shí)僅支持半虛擬化Para-Virtualization。之后,基于Xen虛擬化解決方案陸續(xù)被Redhat、Novell和Sun等的Linux發(fā)行版集成,作為默認(rèn)的虛擬化解決方案。
2003年,Microsoft收購Connectix獲得虛擬化技術(shù)進(jìn)入桌面虛擬化領(lǐng)域,之后很快推出了Virtual Server免費(fèi)版。
2005年,Xen 3.0發(fā)布,該版本可以在32位服務(wù)器上運(yùn)行,同時(shí)該版本開始正式支持Intel的VT技術(shù)和IA64架構(gòu),從而使得Xen虛擬機(jī)可以運(yùn)行完全沒有修改的操作系統(tǒng)。該版本是Xen真正意義上可用的版本。
2006年10月,以色列的創(chuàng)業(yè)公司Qumranet在完成了虛擬化Hypervisor基本功能、動(dòng)態(tài)遷移以及主要的性能優(yōu)化之后,正式對(duì)外宣布了KVM的誕生。同年10月,KVM模塊的源代碼被正式接納進(jìn)入Linux Kernel,成為內(nèi)核源代碼的一部分。備注:Qumranet在2008年被RedHat收購。
2009年4月,VMware推出業(yè)界首款云操作系統(tǒng)VMware vSphere。
云計(jì)算的重要里程碑之一是2001年VMWare帶來的可用于X86的虛擬化計(jì)劃。通過虛擬機(jī),可以在同一臺(tái)物理機(jī)器上運(yùn)行多個(gè)虛擬機(jī),這意味著可以降低服務(wù)器的數(shù)量,而且速度和彈性也遠(yuǎn)超物理機(jī)。
基于虛擬機(jī)的云計(jì)算
在虛擬化技術(shù)成熟之后,云計(jì)算市場(chǎng)才真正出現(xiàn),此時(shí)基于虛擬機(jī)技術(shù)誕生了眾多的云計(jì)算產(chǎn)品,也陸續(xù)出現(xiàn)了IaaS、PaaS等平臺(tái)和公有云、私有云、混合云等形態(tài):
2006年,AWS推出首批云產(chǎn)品Simple Storage Service (S3)和Elastic Compute Cloud(EC2),使企業(yè)可以利用AWS的基礎(chǔ)設(shè)施構(gòu)建自己的應(yīng)用程序
2008年4月,Google App Engine發(fā)布,是 Google 管理的數(shù)據(jù)中心中用于 WEB 應(yīng)用程序的開發(fā)和托管的平臺(tái)。
2009年,Heroku 推出第一款公有云 PaaS (Platform-as-a-Service)
2010年1月,微軟發(fā)布 Microsoft Azure云平臺(tái)服務(wù)。備注:Microsoft Azure 于2008年宣布。
2010年7月,Rackspace Hosting和NASA聯(lián)合推出了一項(xiàng)名為OpenStack的開源云軟件計(jì)劃
2011年,Pivotal推出了開源版PaaS Cloud Foundry,作為Heroku PaaS的開源替代品,并于2014年底推出了Cloud Foundry Foundation。
2013年底,Google 推出 Google Compute Engine (GCE)正式版。備注:GCE的測(cè)試版本于2008年發(fā)布,預(yù)覽版于2012年發(fā)布。
2014年,AWS推出 Lambda,允許在AWS中運(yùn)行代碼而無需配置或管理服務(wù)器,即Faas/Serverless。
在這期間,出現(xiàn)了云計(jì)算的多個(gè)重要里程碑:
IaaS的出現(xiàn):通過按時(shí)計(jì)費(fèi)的方式租借服務(wù)器,將資本支出(Capex)轉(zhuǎn)變?yōu)檫\(yùn)營支出(Opex),這使得云計(jì)算得以大規(guī)模興起和普及。
PaaS的出現(xiàn)
開源IaaS的出現(xiàn):云計(jì)算已經(jīng)開始進(jìn)入開源時(shí)代
開源PaaS的出現(xiàn)
FaaS的出現(xiàn)
補(bǔ)充術(shù)語介紹,Capex Vs. Opex:
Capex = capital expenditure / 資本支出
Opex = operational expenditure / 運(yùn)營支出
容器的興起和編排大戰(zhàn)
2013年,在云計(jì)算領(lǐng)域發(fā)生了一件影響深廣的技術(shù)變革:容器。
容器技術(shù)可以說是過去十年間對(duì)軟件開發(fā)行業(yè)改變最大的技術(shù),而從虛擬機(jī)到容器,整個(gè)云計(jì)算市場(chǎng)發(fā)生了一次重大變革,甚至是洗牌?;谌萜骷夹g(shù)的容器編排市場(chǎng),則經(jīng)歷了Mesos、Swarm、kubernetes三家的一場(chǎng)史詩大戰(zhàn),最終以kubernetes全面勝利而告終:
2008年,LXC(Linux Container)容器發(fā)布,這是一種內(nèi)核虛擬化技術(shù),可以提供輕量級(jí)的虛擬化,以便隔離進(jìn)程和資源。LXC是Docker最初使用的具體內(nèi)核功能實(shí)現(xiàn)
2013年,Docker發(fā)布,組合LXC,Union File System和cgroups等Linux技術(shù)創(chuàng)建容器化標(biāo)準(zhǔn),docker風(fēng)靡一時(shí),container逐步替代VM,云計(jì)算進(jìn)入容器時(shí)代
2014年底,CoreOS正式發(fā)布了CoreOS的開源容器引擎Rocket(簡(jiǎn)稱rkt)
2014年10月,Google 開源 kubernetes,并在2015年捐贈(zèng)給 CNCF
2015年6月,OCI組織成立,旨在制定并維護(hù)容器鏡像格式和容器運(yùn)行時(shí)的正式規(guī)范,以便在不同的操作系統(tǒng)和平臺(tái)之間移植
2015年7月,Google聯(lián)合Linux基金會(huì)成立了CNCF組織,kubernetes 成為 CNCF 管理的首個(gè)開源項(xiàng)目
2015年,CNCF組織開始力推 Cloud Nativ ,完全基于開源軟件技術(shù)棧,Cloud Native 的重要理念是:以微服務(wù)的方式部署應(yīng)用,每個(gè)應(yīng)用都打包為自己的容器并動(dòng)態(tài)編排這些容器以優(yōu)化資源利用
2017年9月,Mesos宣布了對(duì)Kubernetes的支持
2017年10月,Docker宣布將在下一版Docker,將同時(shí)支持自家調(diào)度引擎Swarm和來自Google的調(diào)度平臺(tái)Kubernetes
2018年3月,Kubernetes 從 CNCF 畢業(yè),成為 CNCF 第一個(gè)畢業(yè)項(xiàng)目
這里有兩個(gè)重要的里程碑:
2013年,Docker發(fā)布,容器逐步替代VM,云計(jì)算進(jìn)入容器時(shí)代
2017年底,Kubernetes 贏得容器編排的勝利,云計(jì)算進(jìn)入 Kubernetes 時(shí)代
在容器編排大戰(zhàn)期間,以 kubernetes 為核心的CNCF Cloud Native生態(tài)系統(tǒng)也得以迅猛發(fā)展,云原生成為云計(jì)算市場(chǎng)的技術(shù)新熱點(diǎn)。
云計(jì)算演進(jìn)總結(jié)
云計(jì)算的發(fā)展演進(jìn)歷史,有以下規(guī)律:
核心構(gòu)建塊的變化:
從早期的物理服務(wù)器,通過虛擬化技術(shù)演進(jìn)為虛擬機(jī),再擺脫機(jī)器的限制縮小為構(gòu)建塊,最后通過容器化技術(shù)演進(jìn)為目前的container
隔離單元:無論是啟動(dòng)時(shí)間還是單元大小,物理機(jī)、虛擬機(jī)、容器一路走來,實(shí)現(xiàn)了從重量級(jí)到輕量級(jí)的轉(zhuǎn)變
供應(yīng)商:從閉源到開源,從單一供應(yīng)商到跨越多個(gè)供應(yīng)商
下圖形象的概述了這二十年云計(jì)算的演進(jìn)過程:從傳統(tǒng)預(yù)制IT、托管到云,以及云的不同形態(tài)如IaaS、PaaS、SaaS等。
對(duì)于XaaS的一路演進(jìn),可以簡(jiǎn)單歸納為:
有了IaaS,客戶不用關(guān)注物理機(jī)器
有了PaaS,客戶不用關(guān)注操作系統(tǒng)
有了SaaS,客戶不用關(guān)注應(yīng)用程序
在這過去的二十年間,云計(jì)算幾乎重新定義了整個(gè)行業(yè)的格局,越來越多的企業(yè)開始降低對(duì)IT基礎(chǔ)設(shè)施的直接資本投入,不再傾向于維護(hù)自建的數(shù)據(jù)中心,而是開始通過上云的方式來獲取更強(qiáng)大的計(jì)算、存儲(chǔ)能力,并實(shí)現(xiàn)按時(shí)按需付費(fèi)。這不僅僅降低IT支出,同時(shí)也降低了整個(gè)行業(yè)的技術(shù)壁壘,使得更多的公司尤其是初創(chuàng)公司可以更快地實(shí)踐業(yè)務(wù)想法并迅速推送到市場(chǎng)。
參考資料
CNCF的介紹資料?Cloud Native and Container Technology Landscape
What is XaaS? IaaS vs SaaS vs PaaS: what’s the difference:對(duì)XaaS的概括介紹
漫畫趣味圖解云計(jì)算的起源
云計(jì)算的前世今生——云計(jì)算發(fā)展大事件: 梳理得較為全面的云計(jì)算大事記文章,值得收藏和分享
下一頁
- END -
看完一鍵三連在看,轉(zhuǎn)發(fā),點(diǎn)贊
是對(duì)文章最大的贊賞,極客重生感謝你
推薦閱讀
BPF、eBPF、XDP 和 Bpfilter……這些東西是什么?
后端技術(shù)趨勢(shì)指南|如何選擇自己的技術(shù)方向
深入理解DPDK程序設(shè)計(jì)|Linux網(wǎng)絡(luò)2.0
總結(jié)
- 上一篇: 技术人的七夕表白可以有多浪漫?
- 下一篇: 一个内核网络漏洞详解|容器逃逸