品高云計算的研發(fā)選擇從核心基礎(chǔ)的IaaS切入,并從GoogleApp Engine、AmazonAWS、NASA Nebula、MicrosoftAzure、VMwareCloudFoundry、SinaApp Engine等公有云的實(shí)踐應(yīng)用中思考了各個云計算廠商從IaaS、PaaS到SaaS等各種服務(wù)形態(tài)。同時這跟品高長期服務(wù)政府、大型企業(yè)的IT系統(tǒng)建設(shè),對政府機(jī)構(gòu)、企事業(yè)單位的IT系統(tǒng)演進(jìn)有深入的了解有很大的關(guān)系 。
可演進(jìn)
作為云計算的倡導(dǎo)力量Google公司,提供公眾的App Engine,“顛覆”了以往的技術(shù)路線。在Google App Engine的沙盒里,沒有操作系統(tǒng)OS位置,因此沒有Unix對比Windows那個更強(qiáng)的哈姆雷特式問題;也沒有關(guān)系數(shù)據(jù)庫的位置,因此不需要在Oracle/SQL Server/DB2選擇,也包括MySQL等開源數(shù)據(jù)庫;沒有了傳統(tǒng)的平臺,也就沒有傳統(tǒng)的平臺調(diào)用,POSIX標(biāo)準(zhǔn)、文件協(xié)議、進(jìn)程通訊等也沒有了,現(xiàn)實(shí)IT基礎(chǔ)世界中存在差異的很多地方?jīng)]有了。這個平臺只剩下了App Engine平臺,除了Python語言外,雖然支持Java,但是從官方網(wǎng)站就可以看出Java的很多標(biāo)準(zhǔn)子集都不能運(yùn)行在沙盒里。
MicrosoftWindows Azure雖然在技術(shù)沒有象Google那么“前衛(wèi)”,但一向擅長兼容性的微軟也沒有能讓開發(fā)者的.NET程序方便、快速地遷移上云運(yùn)行,究其原因就是重新設(shè)計了我們傳統(tǒng)觀念的一些API,譬如使用Blob存儲取而代傳統(tǒng)的文件系統(tǒng)API等。
因此,品高在設(shè)計基礎(chǔ)架構(gòu)云平臺的時候,更多學(xué)習(xí)Amazon這個行業(yè)No.1的基礎(chǔ)架構(gòu)商業(yè)云的功能以及定位。當(dāng)2008年我們選擇這樣的思路理念時,很多人還抱著懷疑的態(tài)度,但幾年實(shí)踐發(fā)展證明,Amazon彈性云計算EC2已在世界范圍內(nèi)得到了相當(dāng)高的認(rèn)可。
開放性與標(biāo)準(zhǔn)化
近幾年IT廠商的發(fā)展,比以往任何時候都更加重視對使用者、供應(yīng)鏈上的合作伙伴關(guān)系,從國外的Apple App Store,到國內(nèi)的淘寶開放平臺到各種Mobile Market,都是如此。品高在設(shè)計、實(shí)現(xiàn)基礎(chǔ)架構(gòu)云平臺的時,秉承向有廣泛受眾的行業(yè)標(biāo)準(zhǔn)靠攏的開放兼容原則,優(yōu)先使用非專利鎖定的開放技術(shù),優(yōu)先利用開源平臺的技術(shù)。
在基礎(chǔ)架構(gòu)云平臺計算平臺的發(fā)展上,Amazon的EC2在國外擁有大的市場占有率,IBM、Oracle、微軟等傳統(tǒng)軟件公司都支持運(yùn)行在Amazon EC2上,甚至為了公眾更好地使用軟件產(chǎn)品,提供官方定制的Amazon的EC2鏡像。而Amazon的Web Service對其接口、協(xié)議都采用開放的原則,允許各種語言編寫調(diào)用,并提供了標(biāo)準(zhǔn)化的操作工具。品高在設(shè)計、實(shí)現(xiàn)基礎(chǔ)架構(gòu)云平臺的時候,決定在基礎(chǔ)架構(gòu)云平臺的服務(wù)接口層API和亞馬遜的兼容。
技術(shù)融合
基礎(chǔ)架構(gòu)云平臺應(yīng)該能夠?qū)崿F(xiàn)和多方的主流平臺進(jìn)行融合,其涉及計算虛擬化、存儲虛擬化以及網(wǎng)絡(luò)虛擬化等各個層面的技術(shù),從當(dāng)前的技術(shù)發(fā)展來看,沒有哪一種技術(shù)絕對領(lǐng)先,那么,系統(tǒng)在設(shè)計、實(shí)現(xiàn)的時候應(yīng)該考慮這些技術(shù)的融合、可選支持,以適應(yīng)不同的客戶選擇。
以虛擬化為例,Xen/KVM都是成熟的技術(shù),品高基礎(chǔ)架構(gòu)云平臺應(yīng)該考慮包容這些技術(shù)實(shí)現(xiàn),應(yīng)將選擇權(quán)交給客戶。而另一方面云計算的發(fā)展催生了大數(shù)據(jù)處理的需求,大數(shù)據(jù)處理希望最大限度使用硬件處理能力,對這類用戶來講,應(yīng)避免使用虛擬化技術(shù)造成計算性能虛擬化損耗,應(yīng)融合如linux容器技術(shù)來支撐彈性計算的需要。
不僅如此,對于上層應(yīng)用正在廣泛使用的傳統(tǒng)關(guān)系型數(shù)據(jù)庫(如mysql,sqlserver等),以及動漫行業(yè)內(nèi)的常見3D渲染軟件3DMax、maya,甚至目前最通用的分布式計算框架hadoop在實(shí)現(xiàn)時都應(yīng)考慮支撐。
高可用性
在建立IT基礎(chǔ)架構(gòu)時,傳統(tǒng)習(xí)慣建立在購置高可用性的服務(wù)器。可是數(shù)據(jù)中心和云計算對機(jī)器的高可用性提出了很大的挑戰(zhàn),因?yàn)楫?dāng)服務(wù)器的數(shù)量到數(shù)百規(guī)模以上,計算部件的平均無故障時間都會被放大很多倍。
Google最偉大的成功實(shí)踐經(jīng)驗(yàn)告訴我們建構(gòu)一個高計算處理能力的網(wǎng)絡(luò),并不一定需要超級計算機(jī),因此Google的服務(wù)器都是DIY的Intel X86PC服務(wù)器。在架構(gòu)上就考慮設(shè)備的不可靠性,在架構(gòu)上解決。這樣的好處是:
1)高性價比,降低基礎(chǔ)架構(gòu)云平臺實(shí)施的建設(shè)起點(diǎn)門檻,無需在啟動階段購置大量的品牌服務(wù)器;
2)根據(jù)公眾客戶的需要,為持續(xù)的投資以及擴(kuò)容留下一個快速可演進(jìn)的路線;市場上,擴(kuò)容所需的PC服務(wù)器在采購方面的響應(yīng)更加快速;
3)分布式容錯冗余的考慮規(guī)避了造價低等于質(zhì)量低的可能,降低運(yùn)行維護(hù)的成本;
4)充分地結(jié)合Intel X86 CPU多核發(fā)展大流,順應(yīng)單位成本降低的發(fā)展趨勢;
5)通過基礎(chǔ)架構(gòu)云平臺的并行計算來應(yīng)對并解決部分上層軟件無法充分利用多核心并行計算的問題。