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