雖然現在云計算應用主要以由Amazon EC2為代表的IaaS(基礎設施即服務)服務和由Salesforce CRM為代表的SaaS(軟件即服務)服務為主,而PaaS(平臺即服務)服務則處于比較“小眾”的階段,但是由于PaaS服務在開發環境、管理、伸縮、整合率和經濟性等方面的優勢,使得其的未來非常值得看好,所以基于YunTable的PaaS服務YunEngine誕生了,雖然YunEngine的長遠目標是超越Google App Engine,也就是比Google App Engine更好用,但是現階段由于時間和人力的原因,其暫時只支持Web和數據存儲這兩個基石級的功能。還有,值得注意的是,YunEngine應該是國內第一個提供Java語言支持的PaaS,下面將分別對YunEngine的基本架構和路線圖進行介紹。
YunEngine的架構
圖1. YunEngine的架構圖
由于現在YunEngine還處于初創期,其架構顯得非常簡單,主要由AppServer節點和YunTable集群這兩部分組成。
AppServer節點
這個節點主要由一個或者多個Jetty服務器組成,通過這個服務器能很好地支持基于Java Servlet API的Web應用,包括最新 Servlet 3.0。為什么選擇Jetty而不是更常用的Tomcat呢?因為在代碼方面,Jetty不僅更模塊化,而且總量較少,所以在定制化方面非常有優勢,這點對YunEngine的未來發展而言非常關鍵。
現在,Jetty服務器除了運行Web應用之外,還內置一個支持后端數據庫為YunTable的JPA(Java Persistence API)實現,名為“YunJPA”。當運行在Jetty中的Web應用需要調用JPA的功能來執行數據處理相關操作時,Jetty會給這個應用生成一個基于YunJPA的EntityManager接口,應用會通過使用這個接口來訪問后端的YunTable集群,從而完成和數據處理相關的操作。
YunTable集群
在AppServer節點之后,用于存儲數據的,就是一個運行YunTable系統的集群,其主要包括兩種類型的節點:其一是Master節點,主要用于管理整個集群,其功能包括數據庫表的創建、數據備份的管理和Region節點的容災等,并且在一個集群中只會存在一個;其二是Region節點,其功能較簡單,主要用于存儲數據,而且一個集群中會有多個。
路線圖
到現在為止,基于大概半個月左右的開發,Web和數據存儲這兩個核心功能都已經基本實現了,接下來,按照計劃,YunEngine將會有下面這幾個重要的里程碑(Milestone)。
11月初 | 完成核心功能,并進行整體地完善 |
12月初 | 開始內測 |
明年元旦后 | 進行小規模公測 |
明年春節后 | 正式對外公測 |
表1. YunEngine的路線圖
最后,熟悉Google App Engine人都知道,其實已經出現了類似AppScale的開源項目,那么為什么要重新發明“輪子的輪子”呢?原因是:由于AppScale有很多核心技術都是依賴第三方,比如,數據庫方面采用了Cassandra和Voldemort等,它所做的主要只是拼裝而已,所以從長期而言,其可發展性不佳,因為不同的第三方產品和技術,它們在接口和內部機制等方面都會有所不同,如果硬要在將它們完美地整合在一起,這將會是極其艱難的,而YunEngine由于其最核心的,同時也是技術上難度最大的存儲功能都是控制在自己手中,所以有信心對YunEngine進行不斷地優化和修改,以使其更出色和更穩定。如果大家對YunEngine的未來有什么意見和興趣的話,可以在本貼中進行進一步地討論,還有,謝謝大家一直以來對我的支持。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
