我們?cè)谘芯?a target="_blank">區(qū)塊鏈的過(guò)程中發(fā)現(xiàn),區(qū)塊鏈的發(fā)展和云計(jì)算有非常多的相似之處,因此便有了此文,帶領(lǐng)大家從宏觀的角度認(rèn)識(shí)區(qū)塊鏈和云計(jì)算。
概述,區(qū)塊鏈與云計(jì)算相似的地方
底層三要素
云計(jì)算的底層三要素
1. 計(jì)算虛擬化
計(jì)算虛擬化就是在虛擬系統(tǒng)和底層硬件之間抽象出CPU和內(nèi)存等,以供虛擬機(jī)使用。計(jì)算虛擬化技術(shù)需要模擬出一套操作系統(tǒng)的運(yùn)行環(huán)境,在這個(gè)環(huán)境你可以安裝Windows也是可以安裝Linux,這些操作系統(tǒng)被稱作Guest OS。他們相互獨(dú)立,互不影響(相對(duì)的,因?yàn)楫?dāng)主機(jī)資源不足會(huì)出現(xiàn)競(jìng)爭(zhēng)等問(wèn)題,導(dǎo)致運(yùn)行緩慢等問(wèn)題)。計(jì)算虛擬化可以將主機(jī)單個(gè)物理核虛擬出多個(gè)vcpu,這些vcpu本質(zhì)上就是運(yùn)行的進(jìn)程,考慮到系統(tǒng)調(diào)度,所以并不是虛擬的核數(shù)越多越好;內(nèi)存相似的,把物理機(jī)上面內(nèi)存進(jìn)行邏輯劃分出多個(gè)段,供不同的虛擬機(jī)使用,每個(gè)虛擬機(jī)看到的都是自己獨(dú)立的一個(gè)內(nèi)存。除了這些還需要模擬網(wǎng)絡(luò)設(shè)備、BIOS等。這個(gè)虛擬化軟件叫做hypervisor,著名的有ESXI、xen、KVM等,通常分為兩種,第一種是直接部署到物理服務(wù)器上面的。
由于直接部署到裸機(jī)上面,hypervisor需要自帶各種硬件驅(qū)動(dòng),虛擬機(jī)的所有操作都需要經(jīng)過(guò)hypervisor。還有另一種虛擬化hypervisor,以KVM最為流行(個(gè)人電腦上面安裝的virtualbox以及workstations也是),它們依賴與宿主機(jī)操作系統(tǒng),這樣的好處就是可以充分利用宿主機(jī)的各種資源管理以及驅(qū)動(dòng),但效率上面會(huì)打一些折扣。
當(dāng)然也可以從全虛擬化、半虛擬化、硬件輔助虛擬化的角度去說(shuō),現(xiàn)在數(shù)據(jù)中心基本都是硬件輔助虛擬化了,全虛擬化就是完全靠軟件模擬、半虛擬需要修改操作讓其知道自己運(yùn)行在虛擬環(huán)境中、硬件輔助由硬件為每個(gè)Guest OS提供一套寄存器、Guest OS可以直接運(yùn)行在特權(quán)級(jí),這樣提高效率。
雖然當(dāng)前數(shù)據(jù)中心商用的虛擬化軟件仍然以VMware的ESXI為主,但在OpenStack的推動(dòng)下,KVM正在慢慢追趕,并且KVM是開(kāi)源的,下面簡(jiǎn)單介紹一下KVM。KVM是基于內(nèi)核的,從內(nèi)核2.6以后就自帶了,可以運(yùn)行在x86和power等主流架構(gòu)上。 KVM主要是CPU和內(nèi)存的虛擬化,其它設(shè)備的虛擬化和虛擬機(jī)的管理則需要依賴QEMU完成。一個(gè)虛擬機(jī)本質(zhì)上就是一個(gè)進(jìn)程,運(yùn)行在QEMU-KVM進(jìn)程地址空間,KVM(內(nèi)核空間)和qemu(用戶空間)相結(jié)合一起向用戶提供完整的虛擬化環(huán)境。
2. 網(wǎng)絡(luò)虛擬化
網(wǎng)絡(luò)虛擬化是一種重要的網(wǎng)絡(luò)技術(shù),該技術(shù)可在物理網(wǎng)絡(luò)上虛擬多個(gè)相互隔離的虛擬網(wǎng)絡(luò),不依賴于底層物理連接,能夠動(dòng)態(tài)變化網(wǎng)絡(luò)拓?fù)洌峁┒嘧鈶舾綦x,從而使得不同用戶之間使用獨(dú)立的網(wǎng)絡(luò)資源切片變成可能,從而提高網(wǎng)絡(luò)資源利用率,實(shí)現(xiàn)彈性的網(wǎng)絡(luò)。這里面目前最為火熱的即軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN),SDN的出現(xiàn)使得網(wǎng)絡(luò)虛擬化的實(shí)現(xiàn)更加靈活和高效,同時(shí)網(wǎng)絡(luò)虛擬化也成為SDN應(yīng)用中的重量級(jí)應(yīng)用。其核心技術(shù)OpenFlow通過(guò)將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開(kāi)來(lái),從而實(shí)現(xiàn)了網(wǎng)絡(luò)流量的靈活控制,使網(wǎng)絡(luò)作為管道變得更加智能。
通過(guò)SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化包括物理網(wǎng)絡(luò)管理,網(wǎng)絡(luò)資源虛擬化和網(wǎng)絡(luò)隔離三部分。而這三部分內(nèi)容往往通過(guò)專(zhuān)門(mén)的中間層軟件完成,我們稱之為網(wǎng)絡(luò)虛擬化平臺(tái)。虛擬化平臺(tái)需要完成物理網(wǎng)絡(luò)的管理和抽象虛擬化,并分別提供給不同的租戶。此外,虛擬化平臺(tái)還應(yīng)該實(shí)現(xiàn)不同租戶之間的相互隔離,保證不同租戶互不影響。虛擬化平臺(tái)的存在使得租戶無(wú)法感知到網(wǎng)絡(luò)虛擬化的存在,也即虛擬化平臺(tái)可實(shí)現(xiàn)用戶透明的網(wǎng)絡(luò)虛擬化。
虛擬化平臺(tái)
虛擬化平臺(tái)是介于數(shù)據(jù)網(wǎng)絡(luò)拓?fù)浜妥鈶?a target="_blank">控制器之間的中間層。面向數(shù)據(jù)平面,虛擬化平面就是控制器;而面向租戶控制器,虛擬化平臺(tái)就是數(shù)據(jù)平面。所以虛擬化平臺(tái)本質(zhì)上具有數(shù)據(jù)平面和控制層面兩種屬性。在虛擬化的核心層,虛擬化平臺(tái)需要完成物理網(wǎng)絡(luò)資源到虛擬資源的虛擬化映射過(guò)程。面向租戶控制器,虛擬化平臺(tái)充當(dāng)數(shù)據(jù)平面角色,將模擬出來(lái)的虛擬網(wǎng)絡(luò)呈現(xiàn)給租戶控制器。從租戶控制器上往下看,只能看到屬于自己的虛擬網(wǎng)絡(luò),而并不了解真實(shí)的物理網(wǎng)絡(luò)。而在數(shù)據(jù)層面的角度看,虛擬化平臺(tái)就是控制器,而交換機(jī)并不知道虛擬平面的存在。所以虛擬化平臺(tái)的存在實(shí)現(xiàn)了面向租戶和面向底層網(wǎng)絡(luò)的透明虛擬化,其管理全部的物理網(wǎng)絡(luò)拓?fù)?,并向租戶提供隔離的虛擬網(wǎng)絡(luò)。
網(wǎng)絡(luò)虛擬化平臺(tái)示意圖
虛擬化平臺(tái)不僅可以實(shí)現(xiàn)物理拓?fù)涞教摂M拓?fù)洹耙粚?duì)一”的映射,也應(yīng)該能實(shí)現(xiàn)物理拓?fù)洹岸鄬?duì)一”的映射。而由于租戶網(wǎng)絡(luò)無(wú)法獨(dú)占物理平面的交換機(jī),所以本質(zhì)上虛擬網(wǎng)絡(luò)實(shí)現(xiàn)了“一虛多”和“多虛一”的虛擬化。此處的“一虛多”是指單個(gè)物理交換機(jī)可以虛擬映射成多個(gè)虛擬租戶網(wǎng)中的邏輯交換機(jī),從而被不同的租戶共享;“多虛一”是指多個(gè)物理交換機(jī)和鏈路資源被虛擬成一個(gè)大型的邏輯交換機(jī)。即租戶眼中的一個(gè)交換機(jī)可能在物理上由多個(gè)物理交換機(jī)連接而成。
單虛擬節(jié)點(diǎn)映射到多物理節(jié)點(diǎn)
網(wǎng)絡(luò)資源虛擬化
為實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化,虛擬化平臺(tái)需要對(duì)物理網(wǎng)絡(luò)資源進(jìn)行抽象虛擬化,其中包括拓?fù)涮摂M化,節(jié)點(diǎn)資源虛擬化和鏈路資源虛擬化。
拓?fù)涮摂M化
拓?fù)涮摂M化是網(wǎng)絡(luò)虛擬化平臺(tái)最基本的功能。虛擬平臺(tái)需要完成租戶虛網(wǎng)中的虛擬節(jié)點(diǎn)和虛擬鏈路到物理節(jié)點(diǎn)和鏈路的映射。其中包括“一對(duì)一”和“一對(duì)多”的映射?!耙粚?duì)一”的映射中,一個(gè)虛擬節(jié)點(diǎn)將會(huì)映射成一個(gè)物理節(jié)點(diǎn),同理虛擬鏈路也是。而在“一對(duì)多”的映射中,一個(gè)虛擬節(jié)點(diǎn)可以映射成由多個(gè)連接在一起的物理節(jié)點(diǎn);一條邏輯鏈路也可能映射成由鏈接在一起的多條鏈路。而對(duì)于物理節(jié)點(diǎn)而言,一個(gè)物理節(jié)點(diǎn)可以被多個(gè)邏輯節(jié)點(diǎn)映射。
節(jié)點(diǎn)資源虛擬化
節(jié)點(diǎn)資源的虛擬化包括對(duì)節(jié)點(diǎn)Flow tables(流表)、CPU等資源的抽象虛擬化。流表資源本身是交換機(jī)節(jié)點(diǎn)的稀缺資源,如果能對(duì)其進(jìn)行虛擬化,然后由虛擬化平臺(tái)對(duì)其進(jìn)行分配,分配給不同的租戶,那么就可以實(shí)現(xiàn)不同租戶對(duì)節(jié)點(diǎn)資源使用的分配和限制。拓?fù)涑橄髢H僅完成了虛擬節(jié)點(diǎn)到物理節(jié)點(diǎn)的映射,而沒(méi)有規(guī)定不同用戶/租戶對(duì)物理節(jié)點(diǎn)資源使用的分配情況。若希望進(jìn)行更細(xì)粒度的網(wǎng)絡(luò)虛擬化,節(jié)點(diǎn)資源虛擬化非常有必要。
鏈路資源虛擬化
和節(jié)點(diǎn)資源一樣,鏈路資源也是網(wǎng)絡(luò)中重要的資源,而拓?fù)涑橄蟛](méi)有規(guī)定某些用戶可使用的鏈路資源的多少。所以在進(jìn)行更細(xì)粒度的虛擬化時(shí),有必要對(duì)鏈路資源進(jìn)行虛擬化,從而實(shí)現(xiàn)鏈路資源的合理分配。可被抽象虛擬化的鏈路資源包括租戶可使用的帶寬以及端口的隊(duì)列資源等等。
網(wǎng)絡(luò)隔離
網(wǎng)絡(luò)資源虛擬化僅僅完成了物理資源到虛擬資源的抽象過(guò)程,為實(shí)現(xiàn)完全的網(wǎng)絡(luò)虛擬化,還需要對(duì)不同的租戶提供隔離的網(wǎng)絡(luò)資源。網(wǎng)絡(luò)隔離需要對(duì)SDN的控制平面和數(shù)據(jù)平面進(jìn)行隔離,從而保證不同租戶控制器之間互補(bǔ)干擾,不同虛網(wǎng)之間彼此隔離。此外,為了滿足用戶對(duì)地址空間自定義的需求,虛擬化平臺(tái)還需要對(duì)網(wǎng)絡(luò)地址進(jìn)行虛擬化。
控制面隔離
控制器的性能對(duì)SDN整體的性能產(chǎn)生極大的影響,所以虛擬化平臺(tái)需保證租戶的控制器在運(yùn)行時(shí)不受其他租戶控制器的影響,保證租戶對(duì)虛擬化平臺(tái)資源的使用。虛擬化平臺(tái)在連接租戶控制器時(shí)需保證該進(jìn)程可以得到一定的資源保障,比如CPU資源。而虛擬化平臺(tái)本身所處的位置就可以輕易實(shí)現(xiàn)租戶的控制器之間的相互隔離。
數(shù)據(jù)面隔離
數(shù)據(jù)面的資源包括節(jié)點(diǎn)的CPU、Flow Tables等資源以及鏈路的帶寬,端口的隊(duì)列資源等。為保證各個(gè)租戶的正常使用,需對(duì)數(shù)據(jù)面的資源進(jìn)行相應(yīng)的隔離,從而保證租戶的資源不被其他租戶所占據(jù)。若在數(shù)據(jù)面上不進(jìn)行資源的隔離,則會(huì)產(chǎn)生租戶數(shù)據(jù)在數(shù)據(jù)面上的競(jìng)爭(zhēng),從而無(wú)法保障租戶對(duì)網(wǎng)絡(luò)資源的需求,所以很有必要在數(shù)據(jù)面對(duì)資源進(jìn)行隔離。
地址隔離
為使租戶能在自己的虛擬租戶網(wǎng)中任意使用地址,虛擬化平臺(tái)需要完成地址的隔離。實(shí)現(xiàn)地址隔離主要通過(guò)地址映射來(lái)完成。租戶可任意定制地址空間,而這些地址對(duì)于虛擬化平臺(tái)而言是面向租戶的虛擬地址。虛擬化平臺(tái)在轉(zhuǎn)發(fā)租戶控制器南向協(xié)議報(bào)文時(shí),需要將虛擬地址轉(zhuǎn)化成全網(wǎng)唯一的物理地址。租戶的服務(wù)器的地址在發(fā)送到接入交換機(jī)時(shí)就會(huì)被修改成物理地址,然后數(shù)據(jù)包的轉(zhuǎn)發(fā)會(huì)基于修改之后的物理地址進(jìn)行轉(zhuǎn)發(fā)。當(dāng)數(shù)據(jù)到達(dá)租戶目的地址主機(jī)出端口,控制器需將地址轉(zhuǎn)換成原來(lái)租戶設(shè)定的地址,從而完成地址的虛擬化映射。地址的虛擬化映射使得租戶可以使用完全的地址空間,可以使用任意的FlowSpace(流空間:流表匹配項(xiàng)所組成的多維空間),而面向物理層面則實(shí)現(xiàn)了地址的隔離,使得不同的租戶使用特定的物理地址,數(shù)據(jù)之間互不干擾。
3. 存儲(chǔ)虛擬化
存儲(chǔ)虛擬化是一種貫穿于整個(gè)IT環(huán)境、用于簡(jiǎn)化本來(lái)可能會(huì)相對(duì)復(fù)雜的底層基礎(chǔ)架構(gòu)的技術(shù)。存儲(chǔ)虛擬化的思想是將資源的邏輯映像與物理存儲(chǔ)分開(kāi),從而為系統(tǒng)和管理員提供一幅簡(jiǎn)化、無(wú)縫的資源虛擬視圖。在沒(méi)有云計(jì)算之前存儲(chǔ)虛擬化已經(jīng)發(fā)展了很久,可以說(shuō)和云計(jì)算沒(méi)有特別關(guān)系,而云計(jì)算存儲(chǔ)通常指的是亞馬遜的S3存儲(chǔ)或者EBS存儲(chǔ)等,將統(tǒng)一的資源池劃分給多個(gè)用戶。
對(duì)于用戶來(lái)說(shuō),虛擬化的存儲(chǔ)資源就像是一個(gè)巨大的“存儲(chǔ)池”,用戶不會(huì)看到具體的磁盤(pán)、磁帶,也不必關(guān)心自己的數(shù)據(jù)經(jīng)過(guò)哪一條路徑通往哪一個(gè)具體的存儲(chǔ)設(shè)備。
從管理的角度來(lái)看,虛擬存儲(chǔ)池是采取集中化的管理,并根據(jù)具體的需求把存儲(chǔ)資源動(dòng)態(tài)地分配給各個(gè)應(yīng)用。值得特別指出的是,利用虛擬化技術(shù),可以用磁盤(pán)陣列模擬磁帶庫(kù),為應(yīng)用提供速度像磁盤(pán)一樣快、容量卻像磁帶庫(kù)一樣大的存儲(chǔ)資源,這就是當(dāng)今應(yīng)用越來(lái)越廣泛的虛擬磁帶庫(kù)(VTL, Virtual Tape Library),在當(dāng)今企業(yè)存儲(chǔ)系統(tǒng)中扮演著越來(lái)越重要的角色。
主流的存儲(chǔ)虛擬化有以下三種技術(shù),在云計(jì)算場(chǎng)景中通常會(huì)根據(jù)實(shí)際場(chǎng)景選擇合適的技術(shù)。
SAN
先從高端存儲(chǔ)說(shuō)起,現(xiàn)在高端存儲(chǔ)應(yīng)該EMC、IBM和HDS的天下,這些年外置存儲(chǔ)跟隨著廉價(jià)磁盤(pán)不斷提升容量和性能,推動(dòng)了SAN網(wǎng)絡(luò)、主機(jī)FC接口不斷成熟,在數(shù)據(jù)中心變得很普遍,尤其在金融領(lǐng)域。
SAN提供的是塊存儲(chǔ),譬如磁盤(pán)陣列里面有10塊I T的數(shù)據(jù)盤(pán),然后可以通過(guò)做RAID或者邏輯卷(LVM)的方式劃分出10個(gè)的數(shù)據(jù)盤(pán),但這個(gè)10個(gè)數(shù)據(jù)盤(pán)已經(jīng)和之前的物理盤(pán)不一樣了,一個(gè)邏輯盤(pán)可能有第一個(gè)物理盤(pán)提供100G,第二個(gè)物理盤(pán)提供300G。對(duì)于操作系統(tǒng)來(lái)說(shuō),完全無(wú)法感知是物理盤(pán)還是邏輯盤(pán),這是存儲(chǔ)資源池的理念。通過(guò)RAID或者LVM不僅可以提供數(shù)據(jù)保護(hù)還能夠重新劃分盤(pán)的大小,提高讀寫(xiě)速率。
但SAN也不是毫無(wú)缺點(diǎn),它價(jià)格也是比較昂貴的,光纖口,光纖交換機(jī)價(jià)格高,所以才有了IPSAN存儲(chǔ),通過(guò)IP協(xié)議承載存儲(chǔ)協(xié)議;無(wú)法提供數(shù)據(jù)共享,一個(gè)盤(pán)只能掛給一個(gè)主機(jī),所以這就有了NAS存儲(chǔ)。
NAS
NAS是文件存儲(chǔ),文件存儲(chǔ)相比塊存儲(chǔ)最大的優(yōu)勢(shì)是能共享數(shù)據(jù),它基于標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議,SAN是有自己一套存儲(chǔ)協(xié)議的。常見(jiàn)的NAS包括NFS、FTP和HTTP文件服務(wù)器等,由于這種設(shè)備通常都有一個(gè)IP,所以一般客戶機(jī)充當(dāng)數(shù)據(jù)網(wǎng)關(guān)服務(wù)器可以直接對(duì)其訪問(wèn)。NAS建立在傳統(tǒng)網(wǎng)絡(luò)之上,所以可以更遠(yuǎn)距離的傳輸,并且NAS具有安裝容易易于維護(hù)的特點(diǎn),但其速度通常要比SAN慢很多。
分布式存儲(chǔ)
伴隨著x86性能提升,以x86芯片構(gòu)建的小型存儲(chǔ)系統(tǒng)在中端存儲(chǔ)領(lǐng)域開(kāi)始嶄露頭角。通過(guò)將X86本地的磁盤(pán)利用起來(lái)構(gòu)建一個(gè)大存儲(chǔ)集群。分布式存儲(chǔ)通常能夠同時(shí)提供塊存儲(chǔ)和文件存儲(chǔ)的能力。這里不得介紹一個(gè)和OpenStack結(jié)合緊密的分布式存儲(chǔ)ceph,下圖是ceph官網(wǎng)的一個(gè)整體模塊圖,它提供了CEPH FS文件存儲(chǔ)系統(tǒng)和POSIX接口、對(duì)象存儲(chǔ)以及最常用的快存儲(chǔ)。
它的基石是下面的RADOS,再下面就是系統(tǒng)組件,包括:
· CEPH OSDs:CEPH的OSD(Object Storage Device)守護(hù)進(jìn)程。主要功能包括:存儲(chǔ)數(shù)據(jù)、副本數(shù)據(jù)處理、數(shù)據(jù)恢復(fù)、數(shù)據(jù)回補(bǔ),平衡數(shù)據(jù)分布。并將數(shù)據(jù)相關(guān)的一些監(jiān)控信息提供給CEPH Moniter,以便CEPH Moniter來(lái)檢查其他OSD的心跳狀態(tài)。一個(gè)CEPH存儲(chǔ)集群,要求至少兩個(gè)CEPH OSDs,才能有效的保存兩份數(shù)據(jù)。注意,這里的兩個(gè)CEPH OSD是指運(yùn)行在兩臺(tái)物理服務(wù)器上的,并不是在一臺(tái)物理服務(wù)器上開(kāi)兩個(gè)CEPH OSD的守護(hù)進(jìn)程。
· Moniters:CEPH的Moniter守護(hù)進(jìn)程,主要功能是維護(hù)集群狀態(tài)的表組,這個(gè)表組中包含了多張表,其中有Moniter map、OSD map 、PG(Placement Group) map、CRUSH map。
· MDSs:CEPH的MDS (Metadata Server)守護(hù)進(jìn)程,主要保存的是CEPH Filesystem的元數(shù)據(jù)。注意,對(duì)于CEPH的塊設(shè)備和CEPH對(duì)象存儲(chǔ)都不需要CEPH MDS守護(hù)進(jìn)程。CEPH MDS 為基于POSIX文件系統(tǒng)的用戶提供了一些基礎(chǔ)命令的執(zhí)行,比如ls、find等等,這樣可以很大層度上降低CPEH 存儲(chǔ)集群的壓力。
區(qū)塊鏈的底層三要素
1. 共享帳本
共享賬本準(zhǔn)確的說(shuō)應(yīng)該是分布式賬本技術(shù),這個(gè)技術(shù)從實(shí)質(zhì)上說(shuō)就是一個(gè)可以在多個(gè)站點(diǎn)、不同地理位置或者多個(gè)機(jī)構(gòu)組成的網(wǎng)絡(luò)里進(jìn)行分享的資產(chǎn)數(shù)據(jù)庫(kù)。在一個(gè)網(wǎng)絡(luò)里的參與者可以獲得一個(gè)唯一、真實(shí)賬本的副本。賬本里的任何改動(dòng)都會(huì)在所有的副本中被反映出來(lái),反應(yīng)時(shí)間會(huì)在幾分鐘甚至是幾秒內(nèi)。在這個(gè)賬本里存儲(chǔ)的資產(chǎn)可以是金融、法律定義上的、實(shí)體的或是電子的資產(chǎn)。在這個(gè)賬本里存儲(chǔ)的資產(chǎn)的安全性和準(zhǔn)確性是通過(guò)公私鑰以及簽名的使用去控制賬本的訪問(wèn)權(quán),從而實(shí)現(xiàn)密碼學(xué)基礎(chǔ)上的維護(hù)。根據(jù)網(wǎng)絡(luò)中達(dá)成共識(shí)的規(guī)則,賬本中的記錄可以由一個(gè)、一些或者是所有參與者共同進(jìn)行更新。
分布式賬本技術(shù)使用密碼哈希算法和數(shù)字簽名來(lái)確保交易的完整性,同時(shí)確保共享賬本是精確副本,并降低了發(fā)生交易欺詐的風(fēng)險(xiǎn),因?yàn)榇鄹男枰瑫r(shí)在許多地方同時(shí)執(zhí)行。密碼哈希算法(比如 SHA256 計(jì)算算法)能確保對(duì)交易輸入的任何改動(dòng) — 甚至是最細(xì)微的改動(dòng) — 都會(huì)計(jì)算出一個(gè)不同的哈希值,表明交易輸入可能被損壞。數(shù)字簽名則確保交易源自發(fā)送方(已使用私鑰簽名)而不是冒名頂替者。
2. 共識(shí)算法
這里主要講述區(qū)塊鏈在發(fā)展過(guò)程中出現(xiàn)的五種典型共識(shí)算法:PoW、PoS、DPoS、PBFT和聯(lián)合共識(shí)。
早期,比特幣Bitcoin作為區(qū)塊鏈技術(shù)的第一個(gè)成功應(yīng)用率先引入了工作量證明機(jī)制(PoW,Proof of Work),工作量證明機(jī)制利用了Hash算法在隨機(jī)性上這個(gè)非常重要的特性。PoW機(jī)制俗稱挖礦,這里挖的是比特幣里的每一個(gè)區(qū)塊。每個(gè)區(qū)塊用包含的交易、時(shí)間、以及一個(gè)自定義數(shù)值來(lái)計(jì)算這個(gè)區(qū)塊的Hash。一個(gè)合格的區(qū)塊的Hash必須滿足前N位為零,因此需要不斷的調(diào)整剛才那三個(gè)參數(shù)來(lái)尋找滿足條件的Hash。由于Hash算法足夠隨機(jī),零的個(gè)數(shù)越多,算出這個(gè)Hash的概率越低。此時(shí),要得到合理的Block Hash需要經(jīng)過(guò)大量嘗試計(jì)算,計(jì)算時(shí)間取決于機(jī)器的哈希運(yùn)算速度。當(dāng)某個(gè)節(jié)點(diǎn)提供出一個(gè)合理的Block Hash值,說(shuō)明該節(jié)點(diǎn)確實(shí)經(jīng)過(guò)了大量的嘗試計(jì)算,這就是工作量證明。當(dāng)然,并不能得出計(jì)算次數(shù)的絕對(duì)值,因?yàn)閷ふ液细竦腍ash是一個(gè)概率事件。當(dāng)節(jié)點(diǎn)擁有占全網(wǎng)n%的算力時(shí),該節(jié)點(diǎn)即有n%的概率率先發(fā)布一個(gè)合格的區(qū)塊。
隨后,由于PoW這種算法極其耗費(fèi)計(jì)算資源,截至寫(xiě)本文時(shí)(2017年8月),據(jù)測(cè)算,比特幣網(wǎng)絡(luò)消耗的電力就已經(jīng)高達(dá)15TW。因此,隨后的NXT等新興密碼學(xué)貨幣提出了一種新的思路即股權(quán)證明(PoS,Proof of Stake)。這種模式會(huì)根據(jù)你持有數(shù)字貨幣的量和時(shí)間,決定你可以發(fā)布下一個(gè)區(qū)塊的概率。在PoS模式下,有一個(gè)名詞叫幣齡,每個(gè)幣每天產(chǎn)生1幣齡,比如你持有100個(gè)幣,總共持有了30天,那么,此時(shí)你的幣齡就為3000,然后按照所有人的幣齡根據(jù)一個(gè)隨機(jī)算法決定誰(shuí)來(lái)發(fā)布下一個(gè)區(qū)塊。這個(gè)時(shí)候,如果你被選中發(fā)布了一個(gè)POS區(qū)塊,你的幣齡就會(huì)被清空為0重新再來(lái)。
PoS也不是沒(méi)有缺點(diǎn),最大的缺點(diǎn)就是在于效率上。因此,比特股BitShares提出了委托股權(quán)證明機(jī)制(DPoS,Delegated Proof of Stake)。它的原理是讓每一個(gè)持有比特股的人進(jìn)行投票,由此產(chǎn)生101位代表 , 我們可以將其理解為101個(gè)超級(jí)節(jié)點(diǎn)或者礦池,而這101個(gè)超級(jí)節(jié)點(diǎn)彼此的權(quán)利是完全相等的。從某種角度來(lái)看,DPoS有點(diǎn)像是議會(huì)制度或人民代表大會(huì)制度。如果代表不能履行他們的職責(zé)(當(dāng)輪到他們時(shí),沒(méi)能生成區(qū)塊),他們會(huì)被除名,網(wǎng)絡(luò)會(huì)選出新的超級(jí)節(jié)點(diǎn)來(lái)取代他們。
以上的這些共識(shí)機(jī)制都依賴密碼學(xué)貨幣,因?yàn)椴还苁荘oW還是PoS,驅(qū)動(dòng)尋找區(qū)塊的源動(dòng)力都是發(fā)布新區(qū)塊的貨幣獎(jiǎng)勵(lì)。對(duì)于無(wú)代幣的系統(tǒng)如HyperLedger Fabric,如何選擇共識(shí)機(jī)制?這時(shí),我們可以回過(guò)頭看看PBFT。BFT(Byzantine Fault Tolerance,拜占庭容錯(cuò)算法)是很早就提出的分布式容錯(cuò)算法,可以查找拜占庭問(wèn)題來(lái)進(jìn)一步了解,這里不做詳述。PBFT作為BFT的一種實(shí)現(xiàn),是一種狀態(tài)機(jī)副本復(fù)制算法,即服務(wù)作為狀態(tài)機(jī)進(jìn)行建模,狀態(tài)機(jī)在分布式系統(tǒng)的不同節(jié)點(diǎn)進(jìn)行副本復(fù)制。每個(gè)狀態(tài)機(jī)的副本都保存了服務(wù)的狀態(tài),同時(shí)也實(shí)現(xiàn)了服務(wù)的操作。將所有的副本組成的集合使用大寫(xiě)字母R表示,使用0到|R|-1的整數(shù)表示每一個(gè)副本。為了描述方便,假設(shè)|R|=3f+1,這里f是有可能失效的副本的最大個(gè)數(shù)。盡管可以存在多于3f+1個(gè)副本,但是額外的副本除了降低性能之外不能提高可靠性。
除此之外,還有一種基于投票的聯(lián)合共識(shí)(Voting),以Ripple為代表。這種共識(shí)使網(wǎng)絡(luò)能夠基于特殊節(jié)點(diǎn)列表達(dá)成共識(shí)。初始特殊節(jié)點(diǎn)列表就像一個(gè)俱樂(lè)部,要接納一個(gè)新成員,必須由51%的該俱樂(lè)部會(huì)員投票通過(guò)。共識(shí)遵循這核心成員的51%權(quán)力,外部人員則沒(méi)有影響力。這種共識(shí)方式同樣極大的提高了效率,但是卻需要確保特殊節(jié)點(diǎn)中惡意節(jié)點(diǎn)不能超過(guò)51%,犧牲的是整個(gè)網(wǎng)絡(luò)的去中心化。
3. P2P網(wǎng)絡(luò)
P2P為大眾所熟知主要要?dú)w功于BitTorrent及BT的流行,而P2P網(wǎng)絡(luò)的核心概念即彼此連接的多臺(tái)計(jì)算機(jī)之間都處于對(duì)等的地位,各臺(tái)計(jì)算機(jī)有相同的功能,無(wú)主從之分,一臺(tái)計(jì)算機(jī)既可作為服務(wù)器,設(shè)定共享資源供網(wǎng)絡(luò)中其他計(jì)算機(jī)所使用,又可以作為工作站,整個(gè)網(wǎng)絡(luò)一般來(lái)說(shuō)不依賴專(zhuān)用的集中服務(wù)器,也沒(méi)有專(zhuān)用的工作站。網(wǎng)絡(luò)中的每一臺(tái)計(jì)算機(jī)既能充當(dāng)網(wǎng)絡(luò)服務(wù)的請(qǐng)求者,又對(duì)其它計(jì)算機(jī)的請(qǐng)求做出響應(yīng),提供資源、服務(wù)和內(nèi)容。通常這些資源和服務(wù)包括:信息的共享和交換、計(jì)算資源(如CPU計(jì)算能力共享)、存儲(chǔ)共享(如緩存和磁盤(pán)空間的使用)、網(wǎng)絡(luò)共享、打印機(jī)共享等。
區(qū)塊鏈為了實(shí)現(xiàn)分布式賬本的能力,同樣也采用了P2P網(wǎng)絡(luò)。分布式賬本會(huì)分發(fā)給網(wǎng)絡(luò)中的所有成員節(jié)點(diǎn),同時(shí)可以阻止任何單個(gè)或一組參與者控制底層基礎(chǔ)架構(gòu)或破壞整個(gè)系統(tǒng)。網(wǎng)絡(luò)中的參與者是平等的,都遵守相同的協(xié)議。
類(lèi)型
云計(jì)算
1. 公有云
公有云通常指第三方提供商為用戶提供的能夠使用的云,比如我們經(jīng)常使用阿里云即是一種公有云。公有云可通過(guò)internet使用,價(jià)格非常的低廉,核心的屬性是共享服務(wù)資源。
公有云被認(rèn)為是云計(jì)算的主要形態(tài),目前市場(chǎng)上公有云也是占據(jù)了較大的市場(chǎng)份額的,在國(guó)內(nèi)公有云可以分為以下幾類(lèi)。
· 傳統(tǒng)的電信基礎(chǔ)設(shè)施運(yùn)營(yíng)商,比如中國(guó)移動(dòng)、中國(guó)聯(lián)通、中國(guó)電信等提供的公有云服務(wù)
· 一類(lèi)是政府主導(dǎo)的地方性云計(jì)算平臺(tái),也就是常說(shuō)的政府云
· 互聯(lián)網(wǎng)巨頭打造的公有云平臺(tái) 如盛大云
· 部分IDC運(yùn)營(yíng)商 如世紀(jì)互聯(lián)
· 一類(lèi)為具有國(guó)外技術(shù)背景或引進(jìn)國(guó)外云計(jì)算技術(shù)的國(guó)內(nèi)企業(yè)
由于目前國(guó)內(nèi)并未開(kāi)放外國(guó)公司在中國(guó)直接進(jìn)行云計(jì)算業(yè)務(wù),因此像亞馬遜、IBM、Joyent、Rackspaces等國(guó)外已有多年云計(jì)算業(yè)務(wù)經(jīng)驗(yàn)的廠商在進(jìn)入中國(guó)市場(chǎng)途中仍障礙重重。2012年11月1日,微軟終于實(shí)現(xiàn)旗下公有云計(jì)算平臺(tái)Windows Azure在中國(guó)的落地,這將掀開(kāi)外資企業(yè)進(jìn)軍中國(guó)云計(jì)算市場(chǎng)的序幕。
2. 私有云
私有云是為一個(gè)用戶單獨(dú)使用而構(gòu)建的,因而在數(shù)據(jù)安全性以及服務(wù)質(zhì)量上自己可以有效的管控,私有云的基礎(chǔ)是首先你要擁有基礎(chǔ)設(shè)施并可以控制在此設(shè)施上部署應(yīng)用程序的方式,私有云可以部署在企業(yè)數(shù)據(jù)中心的防火墻內(nèi),核心屬性是專(zhuān)有資源。
私有云可以搭建在公司的局域網(wǎng)上,與公司內(nèi)部的公司的監(jiān)控系統(tǒng)、資產(chǎn)管理系統(tǒng)等相關(guān)系統(tǒng)進(jìn)行打通,從而更有利于公司內(nèi)部系統(tǒng)的集成管理。
私有云雖然數(shù)據(jù)安全性方面比公有云高,但是維護(hù)的成本也相對(duì)較大(對(duì)于中小企業(yè)而言),因此一般只有大型的企業(yè)會(huì)采用這類(lèi)的云平臺(tái),因?yàn)閷?duì)于這些企業(yè)而言,業(yè)務(wù)數(shù)據(jù)這條生命線不能被任何其他的市場(chǎng)主體獲取到,與此同時(shí),一個(gè)企業(yè)尤其是互聯(lián)網(wǎng)企業(yè)發(fā)展到一定程度之后,自身的運(yùn)維人員以及基礎(chǔ)設(shè)施都已經(jīng)比較充足完善了,搭建自己的私有云有時(shí)候成本反而會(huì)比公有云來(lái)得低(所謂的規(guī)模經(jīng)濟(jì))。
3. 混合云
混合云則是融合了公有云與私有云的優(yōu)劣勢(shì),近幾年來(lái)混合云模式也得以快速發(fā)展起來(lái)?;旌显凭C合了數(shù)據(jù)安全性以及資源共享性雙重方面的考慮,個(gè)性化的方案達(dá)到了省錢(qián)安全的目的,從而獲得越來(lái)越多企業(yè)的青睞。但混合云也并不是完美無(wú)缺的,以下幾個(gè)問(wèn)題需要格外注意。
· 數(shù)據(jù)冗余能力:混合云缺少數(shù)據(jù)冗余,對(duì)于數(shù)據(jù)而言,做好冗余以及容災(zāi)備份是非常有必要的,因此若缺乏數(shù)據(jù)冗余能力的話,實(shí)際上數(shù)據(jù)安全性也不能得到很好的保證。
· 法律方面:由于是兩個(gè)云的集合,因此在法律法規(guī)上必須確保公有云和私有云提供商符合法律規(guī)范,而且你必須要證明兩個(gè)云之間是順從的。
· SLA(服務(wù)質(zhì)量)相比于私有云而言有可能會(huì)略差,這里的SLA指的是標(biāo)準(zhǔn)統(tǒng)一性(統(tǒng)一)。在你的私有云的可用性和性能的顯示工作負(fù)載下收集數(shù)據(jù)。集成公有云和私有云尋求潛在的問(wèn)題都會(huì)破壞服務(wù)。比如:如果一個(gè)私有云的關(guān)鍵業(yè)務(wù)驅(qū)動(dòng)在本地保持敏感和機(jī)密數(shù)據(jù),然后你的SLA應(yīng)該體現(xiàn)出在公有云中使用這些服務(wù)的限制性。
· 風(fēng)險(xiǎn)成本或者學(xué)習(xí)成本較高。從安全角度而言,混合云雖然兼有了私有云的安全性,但是隨之帶來(lái)的卻是應(yīng)由于API帶來(lái)的復(fù)雜網(wǎng)絡(luò)配置使得傳統(tǒng)系統(tǒng)管理員的知識(shí)經(jīng)驗(yàn)及能力受到挑戰(zhàn),隨之帶來(lái)的并是高昂的學(xué)習(xí)成本或者系統(tǒng)管理員能力不足帶來(lái)的額外風(fēng)向。
區(qū)塊鏈
1. 公有鏈
公有鏈?zhǔn)侵溉澜缛魏稳硕伎勺x取的、任何人都能發(fā)送交易且交易能獲得有效確認(rèn)的、任何人都能參與其中共識(shí)過(guò)程的區(qū)塊鏈——共識(shí)過(guò)程決定哪個(gè)區(qū)塊可被添加到區(qū)塊鏈中和明確當(dāng)前狀態(tài)。公有鏈通常被認(rèn)為是“完全去中心化”的。
公有鏈的特點(diǎn):
保護(hù)用戶免受開(kāi)發(fā)者的影響
在公有鏈中程序開(kāi)發(fā)者無(wú)權(quán)干涉用戶,所以區(qū)塊鏈可以保護(hù)使用他們開(kāi)發(fā)的程序的用戶。
訪問(wèn)門(mén)檻低
任何擁有足夠技術(shù)能力的人都可以訪問(wèn),也就是說(shuō),只要有一臺(tái)能夠聯(lián)網(wǎng)的計(jì)算機(jī)就能夠滿足訪問(wèn)的條件。
所有數(shù)據(jù)默認(rèn)公開(kāi)
盡管所有關(guān)聯(lián)的參與者都隱藏自己的真實(shí)身份,這種現(xiàn)象十分的普遍。他們通過(guò)他們的公共性來(lái)產(chǎn)生自己的安全性,在這里每個(gè)參與者可以看到所有的賬戶余額和其所有的交易活動(dòng)。
2. 私有鏈
私有鏈?zhǔn)侵钙鋵?xiě)入權(quán)限僅在一個(gè)組織手里的區(qū)塊鏈。讀取權(quán)限或者對(duì)外開(kāi)放,或者被任意程度地進(jìn)行了限制。
私有鏈的特點(diǎn):
交易速度非常之快
一個(gè)私有鏈的交易速度可以比任何其他的區(qū)塊鏈都快,甚至接近了并不是一個(gè)區(qū)塊鏈的常規(guī)數(shù)據(jù)庫(kù)的速度。這是因?yàn)榫退闵倭康墓?jié)點(diǎn)也都具有很高的信任度,并不需要每個(gè)節(jié)點(diǎn)來(lái)驗(yàn)證一個(gè)交易。
給隱私更好的保障
私有鏈?zhǔn)沟迷谀莻€(gè)區(qū)塊鏈上的數(shù)據(jù)隱私政策像在另一個(gè)數(shù)據(jù)庫(kù)中似的完全一致;不用處理訪問(wèn)權(quán)限和使用所有的老辦法,但至少說(shuō),這個(gè)數(shù)據(jù)不會(huì)公開(kāi)地被擁有網(wǎng)絡(luò)連接的任何人獲得。
交易成本大幅降低甚至為零
私有鏈上可以進(jìn)行完全免費(fèi)或者至少說(shuō)是非常廉價(jià)的交易。如果一個(gè)實(shí)體機(jī)構(gòu)控制和處理所有的交易,那么他們就不再需要為工作而收取費(fèi)用。然而,即使交易的處理是由多個(gè)實(shí)體機(jī)構(gòu)完成的,例如競(jìng)爭(zhēng)性銀行,進(jìn)一步舉例來(lái)說(shuō),因?yàn)橥瑯拥脑颍鼈兛梢匀绱酥斓奶幚斫灰祝再M(fèi)用仍然是非常小的;這并不需要節(jié)點(diǎn)之間的完全協(xié)議,所以很少的節(jié)點(diǎn)需要為任何一個(gè)交易而工作。
有助于保護(hù)其基本的產(chǎn)品不被破壞
正是這一點(diǎn)使得銀行等金融機(jī)構(gòu)能在目前的環(huán)境中欣然接受私有鏈,銀行和政府在看管他們的產(chǎn)品上擁有既得利益,用于跨國(guó)貿(mào)易的國(guó)家法定貨幣仍然是有價(jià)值的。由于公有鏈的直接應(yīng)用是保護(hù)像比特幣這樣新型的非國(guó)家性質(zhì)的貨幣,對(duì)核心利潤(rùn)流或組織構(gòu)成了破壞性的威脅,這些實(shí)體機(jī)構(gòu)應(yīng)該會(huì)不惜一切代價(jià)去避免損害。
3. 聯(lián)盟鏈
聯(lián)盟鏈?zhǔn)侵钙涔沧R(shí)過(guò)程受到預(yù)選節(jié)點(diǎn)控制的區(qū)塊鏈;例如,不妨想象一個(gè)有15個(gè)金融機(jī)構(gòu)組成的共同體,每個(gè)機(jī)構(gòu)都運(yùn)行著一個(gè)節(jié)點(diǎn),而且為了使每個(gè)區(qū)塊生效需要獲得其中10個(gè)機(jī)構(gòu)的確認(rèn)。區(qū)塊鏈或許允許每個(gè)人都可讀取,或者只受限于參與者,或走混合型路線,例如區(qū)塊的根哈希及其API(應(yīng)用程序接口)對(duì)外公開(kāi),API可允許外界用來(lái)作有限次數(shù)的查詢和獲取區(qū)塊鏈狀態(tài)的信息。這些區(qū)塊鏈可視為“部分去中心化”。
形態(tài)
云計(jì)算
1. IaaS(Infrastructure-as-a-Service,基礎(chǔ)設(shè)施即服務(wù))
第一層叫做IaaS,有時(shí)候也叫做Hardware-as-a-Service,幾年前如果你想在辦公室或者公司的網(wǎng)站上運(yùn)行一些企業(yè)應(yīng)用,你需要去買(mǎi)服務(wù)器,或者別的高昂的硬件來(lái)控制本地應(yīng)用,讓你的業(yè)務(wù)運(yùn)行起來(lái)。但是現(xiàn)在有IaaS,你可以將硬件外包到別的地方去。IaaS公司會(huì)提供場(chǎng)外服務(wù)器,存儲(chǔ)和網(wǎng)絡(luò)硬件,你可以租用。節(jié)省了維護(hù)成本和辦公場(chǎng)地,公司可以在任何時(shí)候利用這些硬件來(lái)運(yùn)行其應(yīng)用。
一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不過(guò)這些公司又都有自己的專(zhuān)長(zhǎng),比Amazon和微軟給你提供的不只是IaaS,他們還會(huì)將其計(jì)算能力出租給你來(lái)host你的網(wǎng)站。
作用
通過(guò)IaaS這種模式,用戶可以從供應(yīng)商那里獲得他所需要的虛擬機(jī)或者存儲(chǔ)等資源來(lái)裝載相關(guān)的應(yīng)用,同時(shí)這些基礎(chǔ)設(shè)施的繁瑣的管理工作將由IaaS供應(yīng)商來(lái)處理。IaaS能通過(guò)它上面對(duì)虛擬機(jī)支持眾多的應(yīng)用。IaaS主要的用戶是系統(tǒng)管理員。
產(chǎn)品
主要產(chǎn)品包括:Amazon EC2,Linode,Joyent,Rackspace,IBM Blue Cloud和Cisco UCS等。
功能
IaaS供應(yīng)商需要在那些方面對(duì)基礎(chǔ)設(shè)施進(jìn)行管理以給用戶提供資源?或者說(shuō)IaaS云有那些功能?在《虛擬化與云計(jì)算》中列出了IaaS的七個(gè)基本功能:
資源抽象:使用資源抽象的方法(比如,資源池)能更好地調(diào)度和管理物理資源。
資源監(jiān)控:通過(guò)對(duì)資源的監(jiān)控,能夠保證基礎(chǔ)實(shí)施高效率的運(yùn)行。
負(fù)載管理:通過(guò)負(fù)載管理,不僅能使部署在基礎(chǔ)設(shè)施上的應(yīng)用運(yùn)能更好地應(yīng)對(duì)突發(fā)情況,而且還能更好地利用系統(tǒng)資源。
數(shù)據(jù)管理:對(duì)云計(jì)算而言,數(shù)據(jù)的完整性,可靠性和可管理性是對(duì)IaaS的基本要求。
資源部署:也就是將整個(gè)資源從創(chuàng)建到使用的流程自動(dòng)化。
安全管理:IaaS的安全管理的主要目標(biāo)是保證基礎(chǔ)設(shè)施和其提供的資源能被合法地訪問(wèn)和使用。
計(jì)費(fèi)管理:通過(guò)細(xì)致的計(jì)費(fèi)管理能使用戶更靈活地使用資源。
2. PaaS(Platform-as-a-Service,平臺(tái)即服務(wù))
第二層就是所謂的PaaS,某些時(shí)候也叫做中間件。你公司所有的開(kāi)發(fā)都可以在這一層進(jìn)行,節(jié)省了時(shí)間和資源。
PaaS公司在網(wǎng)上提供各種開(kāi)發(fā)和分發(fā)應(yīng)用的解決方案,比如虛擬服務(wù)器和操作系統(tǒng)。這節(jié)省了你在硬件上的費(fèi)用,也讓分散的工作室之間的合作變得更加容易。網(wǎng)頁(yè)應(yīng)用管理,應(yīng)用設(shè)計(jì),應(yīng)用虛擬主機(jī),存儲(chǔ),安全以及應(yīng)用開(kāi)發(fā)協(xié)作工具等。
作用
通過(guò)PaaS這種模式,用戶可以在一個(gè)包括SDK,文檔和測(cè)試環(huán)境等在內(nèi)的開(kāi)發(fā)平臺(tái)上非常方便地編寫(xiě)應(yīng)用,而且不論是在部署,或者在運(yùn)行的時(shí)候,用戶都無(wú)需為服務(wù)器,操作系統(tǒng),網(wǎng)絡(luò)和存儲(chǔ)等資源的管理操心,這些繁瑣的工作都由PaaS供應(yīng)商負(fù)責(zé)處理,而且PaaS在整合率上面非常驚人,比如一臺(tái)運(yùn)行Google App Engine的服務(wù)器能夠支撐成千上萬(wàn)的應(yīng)用,也就是說(shuō),PaaS是非常經(jīng)濟(jì)的。PaaS主要的用戶是開(kāi)發(fā)人員。
產(chǎn)品
一些大的PaaS提供者有Google App Engine,Microsoft Azure,F(xiàn)orce.com,Heroku,Engine Yard。新興的公司有AppFog,Mendix和Standing Cloud
功能
· 為了支撐著整個(gè)PaaS平臺(tái)的運(yùn)行,供應(yīng)商需要提供那么功能?主要有四大功能:
· 友好的開(kāi)發(fā)環(huán)境:通過(guò)提供SDK和IDE等工具來(lái)讓用戶能在本地方便地進(jìn)行應(yīng)用的開(kāi)發(fā)和測(cè)試。
· 豐富的服務(wù):PaaS平臺(tái)會(huì)以API的形式將各種各樣的服務(wù)提供給上層的應(yīng)用。
· 自動(dòng)的資源調(diào)度:也就是可伸縮這個(gè)特性,它將不僅能優(yōu)化系統(tǒng)資源,而且能自動(dòng)調(diào)整資源來(lái)幫助運(yùn)行于其上的應(yīng)用更好地應(yīng)對(duì)突發(fā)流量。
· 精細(xì)的管理和監(jiān)控:通過(guò)PaaS能夠提供應(yīng)用層的管理和監(jiān)控,比如,能夠觀察應(yīng)用運(yùn)行的情況和具體數(shù)值(比如,吞吐量和反映時(shí)間)來(lái)更好地衡量應(yīng)用的運(yùn)行狀態(tài),還有能夠通過(guò)精確計(jì)量應(yīng)用使用所消耗的資源來(lái)更好地計(jì)費(fèi)。
3. SaaS(Software-as-a-Service,軟件即服務(wù))
第三層也就是所謂SaaS。這一層是和你的生活每天接觸的一層,大多是通過(guò)網(wǎng)頁(yè)瀏覽器來(lái)接入。任何一個(gè)遠(yuǎn)程服務(wù)器上的應(yīng)用都可以通過(guò)網(wǎng)絡(luò)來(lái)運(yùn)行,就是SaaS了。
你消費(fèi)的服務(wù)完全是從網(wǎng)頁(yè)如Netflix, MOG, Google Apps, Box.NET, Dropbox或者蘋(píng)果的iCloud那里進(jìn)入這些分類(lèi)。盡管這些網(wǎng)頁(yè)服務(wù)是用作商務(wù)和娛樂(lè)或者兩者都有,但這也算是云技術(shù)的一部分。
一些用作商務(wù)的SaaS應(yīng)用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。
作用
通過(guò)SaaS這種模式,用戶只要接上網(wǎng)絡(luò),并通過(guò)瀏覽器,就能直接使用在云端上運(yùn)行的應(yīng)用,而不需要顧慮類(lèi)似安裝等瑣事,并且免去初期高昂的軟硬件投入。SaaS主要面對(duì)的是普通的用戶。
產(chǎn)品
主要產(chǎn)品包括:Salesforce Sales Cloud,Google Apps,Zimbra,Zoho和IBM Lotus Live等。
功能
談到SaaS的功能,也可以認(rèn)為是要實(shí)現(xiàn)SaaS服務(wù),供應(yīng)商需要完成那些功能?主要有四個(gè)方面:
· 隨時(shí)隨地訪問(wèn):在任何時(shí)候或者任何地點(diǎn),只要接上網(wǎng)絡(luò),用戶就能訪問(wèn)這個(gè)SaaS服務(wù)。
· 支持公開(kāi)協(xié)議:通過(guò)支持公開(kāi)協(xié)議(比如HTML4/5),能夠方便用戶使用。
· 安全保障:SaaS供應(yīng)商需要提供一定的安全機(jī)制,不僅要使存儲(chǔ)在云端的用戶數(shù)據(jù)處于絕對(duì)安全的境地,而且也要在客戶端實(shí)施一定的安全機(jī)制(比如HTTPS)來(lái)保護(hù)用戶。
· 多租戶(Multi-Tenant)機(jī)制:通過(guò)多住戶機(jī)制,不僅能更經(jīng)濟(jì)地支撐龐大的用戶規(guī)模,而且能提供一定的可定制性以滿足用戶的特殊需求。
4. BaaS(Backend as a Service,后端即服務(wù))
BaaS 是一種新型的云服務(wù),旨在為移動(dòng)和 Web 應(yīng)用提供后端云服務(wù),包括云端數(shù)據(jù)/文件存儲(chǔ)、賬戶管理、消息推送、社交媒體整合等。BaaS 是垂直領(lǐng)域的云服務(wù),隨著移動(dòng)互聯(lián)網(wǎng)的持續(xù)火熱,BaaS 也受到越來(lái)越多的開(kāi)發(fā)者的親睞。它作為應(yīng)用開(kāi)發(fā)的新模型,可以降低開(kāi)發(fā)者成本,讓開(kāi)發(fā)者只需專(zhuān)注于具體的開(kāi)發(fā)工作。
BaaS是移動(dòng)中間件的替代品(或者說(shuō)備選方案),它使用統(tǒng)一的API和SDK來(lái)連接移動(dòng)應(yīng)用到后端云存儲(chǔ),傳統(tǒng)的移動(dòng)中間件通過(guò)本地的物理服務(wù)把后端服務(wù)集成到應(yīng)用中。而B(niǎo)aaS通過(guò)云來(lái)集成后端服務(wù)。中間件和BaaS的最大不同是它們是否包含或者提供云的服務(wù),BaaS可以說(shuō)是PaaS平臺(tái)在移動(dòng)垂直領(lǐng)域的延伸,更可以說(shuō)是移動(dòng)中間件和云的融合。而現(xiàn)在它們都在以不同的形式來(lái)存在,云的優(yōu)勢(shì)很明顯,那就是簡(jiǎn)單、成本低廉,中間件的優(yōu)勢(shì)是數(shù)據(jù)安全、易于擴(kuò)展。所以從現(xiàn)在的趨勢(shì)來(lái)看,它們不存在明顯的取代關(guān)系,只不過(guò)可能以后BaaS的體量會(huì)更大。移動(dòng)中間件將更多的被有能力的企業(yè)使用,同時(shí)也會(huì)有越來(lái)越多的中小型企業(yè)、開(kāi)發(fā)者選擇使用BaaS。
雖然BaaS屬于PaaS的范疇,但兩者也有區(qū)別。Quora上有人簡(jiǎn)要描述了二者的不同,BaaS簡(jiǎn)化了應(yīng)用開(kāi)發(fā)流程,而PaaS簡(jiǎn)化了應(yīng)用部署流程。PaaS是一個(gè)執(zhí)行代碼以及管理應(yīng)用運(yùn)行環(huán)境的開(kāi)發(fā)平臺(tái),用戶通過(guò)SVN或者Git之類(lèi)的代碼版本管理工具與平臺(tái)交互,對(duì)于開(kāi)發(fā)者來(lái)說(shuō),PaaS就像是一個(gè)容器,輸入是代碼和配置文件,輸出是一個(gè)可訪問(wèn)應(yīng)用的URL。而B(niǎo)aaS平臺(tái)進(jìn)一步將用戶需求進(jìn)行了抽象,比如用戶管理,開(kāi)發(fā)者希望創(chuàng)建用戶數(shù)據(jù)庫(kù)表(模型)后,客戶端就可以通過(guò)Restful接口直接操作對(duì)應(yīng)的模型,所有的操作都可以被抽象為CRUD。之前,開(kāi)發(fā)者需要?jiǎng)?chuàng)建表、寫(xiě)接口、寫(xiě)校驗(yàn),而在BaaS平臺(tái)中,開(kāi)發(fā)者只需要定義模型,平臺(tái)就會(huì)自動(dòng)生成對(duì)應(yīng)的接口,這可以讓開(kāi)發(fā)者更加專(zhuān)注具體的客戶端代碼。專(zhuān)門(mén)針對(duì)手機(jī)端的BaaS服務(wù)稱為MBaaS,目前大多的BaaS平臺(tái)都屬于這一類(lèi)。
隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,移動(dòng)行業(yè)的分工也會(huì)像其它行業(yè)一樣逐漸細(xì)化,后端服務(wù)就是這樣被抽象出來(lái),它統(tǒng)一向開(kāi)發(fā)者提供文件存儲(chǔ)、數(shù)據(jù)存儲(chǔ)、推送服務(wù)等實(shí)現(xiàn)難度較高的功能,以幫助開(kāi)發(fā)者快速開(kāi)發(fā)移動(dòng)應(yīng)用。在國(guó)外,BaaS服務(wù)已經(jīng)受到巨頭的重視,2013年4月,F(xiàn)acebook收購(gòu)Parse;2014年6月,蘋(píng)果發(fā)布了CloudKit;2014年10月,Google收購(gòu)了Firebase。Parse、CloudKit、Filrebase都是國(guó)外知名的BaaS類(lèi)產(chǎn)品,蘋(píng)果和谷歌通過(guò)BaaS服務(wù)可以更好的完善其生態(tài)圈,Parse也可以幫助Facebook建立它在移動(dòng)端的地位,從巨頭們?cè)贐aaS方面的布局也可以看出BaaS的價(jià)值??傮w來(lái)說(shuō),BaaS平臺(tái)的優(yōu)勢(shì)包括(來(lái)自搜狗百科):
提高效率:減少移動(dòng)APP開(kāi)發(fā)中各個(gè)環(huán)節(jié)的成本,提高效率。
縮短上市時(shí)間:減少?gòu)臉?gòu)思到制作過(guò)程中的阻礙,并降低上線后的運(yùn)營(yíng)成本。
減少交付APP所需的資源:BaaS需要的開(kāi)發(fā)者和IT資源更少。
針對(duì)手機(jī)和平板優(yōu)化:BaaS供應(yīng)商在優(yōu)化移動(dòng)APP數(shù)據(jù)和網(wǎng)絡(luò)上花費(fèi)了大量時(shí)間和資源,減少了跨平臺(tái)和移動(dòng)終端的碎片化的問(wèn)題。
安全和彈性的基礎(chǔ)設(shè)施:BaaS提供捆綁的基礎(chǔ)設(shè)施,解決了彈性、安全性和性能等運(yùn)營(yíng)難題,讓開(kāi)發(fā)者專(zhuān)注開(kāi)發(fā)。
大量的常用API資源:BaaS將常用和必要的第三方API資源匯總,省去開(kāi)發(fā)者單獨(dú)收集的麻煩。
它們主要提供的服務(wù)包括:
· 數(shù)據(jù)存儲(chǔ)。用戶可以通過(guò)可視化的界面設(shè)計(jì)數(shù)據(jù)庫(kù),包括創(chuàng)建Class、定義字段、錄入數(shù)據(jù)等。同時(shí),BaaS平臺(tái)可以自動(dòng)生成對(duì)應(yīng)的Restful API,用戶可以通過(guò)任何語(yǔ)言操作已有的API,另外,平臺(tái)也內(nèi)置用戶系統(tǒng)、角色系統(tǒng)、文件系統(tǒng)、權(quán)限控制等模塊。
· 數(shù)據(jù)推送。結(jié)合APP中的標(biāo)簽設(shè)置,針對(duì)不同屬性的用戶推送差異化信息,包括定時(shí)推送、離線推送等。
版本管理。支持iOS及Android版本的同步或異步管理,在控制臺(tái)內(nèi)流程化進(jìn)行開(kāi)發(fā)和版本管理。支持增量更新,終端用戶可在應(yīng)用內(nèi)進(jìn)行更新。
· 數(shù)據(jù)統(tǒng)計(jì)。平臺(tái)可以查看應(yīng)用的新增用戶以及活躍用戶數(shù)據(jù),并支持自定義事件統(tǒng)計(jì)。
區(qū)塊鏈
1. Crypto Currency
區(qū)塊鏈最為人熟知的應(yīng)用即密碼學(xué)貨幣,也被經(jīng)常稱為虛擬貨幣。然而,密碼學(xué)貨幣并不等同于數(shù)字貨幣(Digital Currency),也不等同于虛擬貨幣(Virtual Currency)。密碼學(xué)貨幣指依靠密碼技術(shù)和校驗(yàn)技術(shù)來(lái)創(chuàng)建,分發(fā)和維持的數(shù)字貨幣,如比特幣(BTC)、萊特貨幣(LTC)等。
2009年出現(xiàn)的比特幣是第一個(gè)去中心化的密碼學(xué)貨幣。之后,大量的密碼學(xué)貨幣涌現(xiàn),這些密碼學(xué)貨幣通常被稱為山寨幣(altcoins)。多數(shù)密碼學(xué)貨幣都設(shè)計(jì)成通縮的形態(tài),即貨幣總量的增加速度會(huì)逐漸變慢,最終會(huì)到達(dá)一個(gè)固定值,類(lèi)似貴金屬的產(chǎn)出。這類(lèi)密碼學(xué)貨幣相對(duì)于中心化的數(shù)字貨幣有一個(gè)共同點(diǎn)即去中心化。這類(lèi)去中心化的實(shí)現(xiàn)都是依托于區(qū)塊鏈技術(shù)種的去中心化屬性。和法定貨幣相比,密碼學(xué)貨幣沒(méi)有一個(gè)集中的發(fā)行方,而是由網(wǎng)絡(luò)節(jié)點(diǎn)的計(jì)算生成,誰(shuí)都有可能參與制造密碼學(xué)貨幣,而且可以全世界流通,可以在任意一臺(tái)接入互聯(lián)網(wǎng)的電腦上交易,不管身處何方,任何人都可以挖掘、收取或轉(zhuǎn)出密碼學(xué)貨幣,并且在交易過(guò)程中接收方僅需依靠密碼學(xué)算法來(lái)確認(rèn)交易有效性,無(wú)需辨認(rèn)用戶身份信息或發(fā)送途徑等。
密碼學(xué)貨幣的特點(diǎn)有:
· 去中心化:多數(shù)密碼學(xué)貨幣是一種分布式的虛擬貨幣,整個(gè)網(wǎng)絡(luò)由用戶構(gòu)成,沒(méi)有中央銀行。去中心化是多數(shù)密碼學(xué)貨幣安全與自由的保證。
· 全世界流通:密碼學(xué)貨幣可以在任意一臺(tái)接入互聯(lián)網(wǎng)的電腦或手機(jī)上管理,前提是你有證明所有權(quán)的私鑰。
· 專(zhuān)屬所有權(quán):密碼學(xué)貨幣依靠私鑰確認(rèn)所有權(quán),它可以被隔離保存在任何存儲(chǔ)介質(zhì)。除了用戶自己之外無(wú)人可以獲取。
但密碼學(xué)貨幣也有自己的弊端,比如:
· 51%攻擊,由于密碼學(xué)貨幣的去中心化屬性,如果有人控制了整個(gè)網(wǎng)絡(luò)上的51%的算力,篡改一段時(shí)間之前交易的幾率就會(huì)變高。
· 多數(shù)密碼學(xué)貨幣的交易確認(rèn)時(shí)間較長(zhǎng),交易時(shí),為了確認(rèn)數(shù)據(jù)準(zhǔn)確性,需要和p2p網(wǎng)絡(luò)進(jìn)行交互,得到全網(wǎng)確認(rèn)后,交易才算完成。此外初次啟動(dòng)時(shí),也需要消耗大量時(shí)間下載歷史交易數(shù)據(jù)。
2. DLT
密碼學(xué)貨幣的火熱高速推動(dòng)了區(qū)塊鏈技術(shù)的發(fā)展,金融機(jī)構(gòu)越來(lái)越多的關(guān)注到了這個(gè)領(lǐng)域。隨著金融機(jī)構(gòu)的關(guān)注度上升,密碼學(xué)貨幣中的去中心化屬性也成了熱門(mén)話題,公有鏈、私有鏈、聯(lián)盟鏈的劃分也逐漸展露。此時(shí),分布式賬本技術(shù)(Distributed Ledger Technology,DLT)這個(gè)名詞也應(yīng)運(yùn)而生。DLT的誕生主要是為了區(qū)別于區(qū)塊鏈概念,由于密碼學(xué)貨幣的去中心化是最大的亮點(diǎn),其背后的區(qū)塊鏈技術(shù)也通常被認(rèn)為自帶去中心化屬性,金融機(jī)構(gòu)為了移除這種去中心化的屬性,就非常需要DLT這個(gè)概念。
目前,DLT可以說(shuō)是區(qū)塊鏈技術(shù)應(yīng)用在金融機(jī)構(gòu)中最重要的形態(tài),該技術(shù)可以移除當(dāng)前市場(chǎng)基礎(chǔ)設(shè)施中的效率極低和成本高昂的部分。
DLT從實(shí)質(zhì)上說(shuō)就是一個(gè)可以在多個(gè)站點(diǎn)、不同地理位置或者多個(gè)機(jī)構(gòu)組成的網(wǎng)絡(luò)里進(jìn)行分享的資產(chǎn)數(shù)據(jù)庫(kù)。在一個(gè)網(wǎng)絡(luò)里的參與者可以獲得一個(gè)唯一、真實(shí)賬本的副本。賬本里的任何改動(dòng)都會(huì)在所有的副本中被反映出來(lái),反應(yīng)時(shí)間會(huì)在幾分鐘甚至是幾秒內(nèi)。在這個(gè)賬本里存儲(chǔ)的資產(chǎn)可以是金融、法律定義上的、實(shí)體的或是電子的資產(chǎn)。在這個(gè)賬本里存儲(chǔ)的資產(chǎn)的安全性和準(zhǔn)確性是通過(guò)公私鑰以及簽名的使用去控制賬本的訪問(wèn)權(quán),從而實(shí)現(xiàn)密碼學(xué)基礎(chǔ)上的維護(hù)。根據(jù)網(wǎng)絡(luò)中達(dá)成共識(shí)的規(guī)則,賬本中的記錄可以由一個(gè)、一些或者是所有參與者共同進(jìn)行更新。
DLT的這些特點(diǎn)都使得其有可能稱為全新的基礎(chǔ)架構(gòu)模式,因此,很有潛力幫助政府征稅、發(fā)放福利、發(fā)行護(hù)照、登記土地所有權(quán)、保證貨物供應(yīng)鏈的運(yùn)行,并從整體上確保政府記錄和服務(wù)的正確性。例如在英國(guó)國(guó)民健康保險(xiǎn)制度(NHS)里,這項(xiàng)技術(shù)通過(guò)改善和驗(yàn)證服務(wù)的送達(dá)以及根據(jù)精確的規(guī)則去安全地分享記錄,有潛力改善醫(yī)療保健系統(tǒng)。對(duì)這些服務(wù)的消費(fèi)者來(lái)說(shuō),這項(xiàng)技術(shù)根據(jù)不同的情況,有潛力讓消費(fèi)者們?nèi)タ刂苽€(gè)人記錄的訪問(wèn)權(quán)并知悉其他機(jī)構(gòu)對(duì)其記錄的訪問(wèn)情況。
3. Smart Contract
在區(qū)塊鏈技術(shù)發(fā)展的初期,密碼學(xué)貨幣或者DLT中的數(shù)據(jù)變化都是基于明確的幾種邏輯。顯然,這種模式大家是不會(huì)滿足的。因此,很快就有人將智能合約和區(qū)塊鏈技術(shù)進(jìn)行了結(jié)合。智能合約是能夠自動(dòng)執(zhí)行合約條款的計(jì)算機(jī)程序。未來(lái)的某一天,這些程序可能取代處理某些特定金融交易的律師和銀行。智能合約的潛能不只是簡(jiǎn)單的轉(zhuǎn)移資金,一輛汽車(chē)或者一所房屋的門(mén)鎖,都能夠被連接到物聯(lián)網(wǎng)上的智能合約被打開(kāi)。
智能合約其實(shí)在區(qū)塊鏈之前就有,但是偏概念,直到區(qū)塊鏈到來(lái)后才開(kāi)始有了實(shí)用價(jià)值的應(yīng)用,特別是金融和物聯(lián)網(wǎng)領(lǐng)域。智能合約的理念可以追溯到1994年,幾乎與互聯(lián)網(wǎng)(world wide web)同時(shí)出現(xiàn)。為比特幣打下基礎(chǔ)而受到廣泛贊譽(yù)的密碼學(xué)家尼克薩博(Nick Szabo)首次提出了“智能合約”這一術(shù)語(yǔ)。從本質(zhì)上講,這些自動(dòng)合約的工作原理類(lèi)似于其它計(jì)算機(jī)程序的if-then語(yǔ)句。智能合約只是以這種方式與真實(shí)世界的資產(chǎn)進(jìn)行交互。當(dāng)一個(gè)預(yù)先編好的條件被觸發(fā)時(shí),智能合約執(zhí)行相應(yīng)的合同條款。
區(qū)塊鏈技術(shù)的出現(xiàn)和被廣泛使用,則改變阻礙智能合約實(shí)現(xiàn)的現(xiàn)狀,從而薩博的理念有了重生的機(jī)會(huì)。讓我們舉一個(gè)簡(jiǎn)單的例子,以足球比賽為例。假如你賭A隊(duì)贏,你的朋友賭B隊(duì)贏。此時(shí),你和你的朋友可以將賭注寫(xiě)成一個(gè)區(qū)塊鏈上的智能合約。當(dāng)比賽結(jié)束時(shí),智能合約能夠通過(guò)媒體確認(rèn)比賽結(jié)果然后自動(dòng)結(jié)算,此時(shí)你們不需要依賴任何第三方機(jī)構(gòu)。這就是智能合約的一個(gè)例子。
智能合約的最大特點(diǎn)就是代碼的執(zhí)行是自動(dòng)的:要么成功執(zhí)行,或者所有的狀態(tài)變化都撤消(包括從當(dāng)前失敗的合約中已經(jīng)送或接收的信息。)這是很重要的,因?yàn)樗苊饬撕霞s部分執(zhí)行的情況(例如,在證券購(gòu)買(mǎi)交易中,證券所有者已經(jīng)轉(zhuǎn)移發(fā)送了證券,但是密碼學(xué)貨幣的支付轉(zhuǎn)移卻失敗了)。在區(qū)塊鏈環(huán)境中,這尤為重要,因?yàn)闆](méi)有辦法來(lái)撤消執(zhí)行錯(cuò)誤所帶來(lái)的不好的后果(而且如果對(duì)手不配合的話,根本就沒(méi)有辦法逆轉(zhuǎn)交易)。
智能合約理論上可以給所有使用合約的場(chǎng)景帶來(lái)變革。例如,證券的登記和清算無(wú)需再通過(guò)證券交易所,購(gòu)買(mǎi)保險(xiǎn)和理賠無(wú)需通過(guò)保險(xiǎn)公司,投融資無(wú)需通過(guò)代理公司等等。
評(píng)論