Azure國際版及中國版功能更新:網站服務支持Java (以及網站服務架構簡介)

本次Build大會宣佈的另一個更新,就是網站服務支持Java。熟悉Java的用戶對於Cloudfoundry等PaaS技術一定不陌生,現在,Azure上也可以實現類似功能了。Azure的網站服務在架構上與Cloudfoundry十分類似,都是事先準備一大堆server,然後根據用戶部署,爲用戶分配某幾個server和負載均衡器,組成用戶的一個虛擬集羣。Azure網站服務底層是用Windows server+IIS組成集羣。IIS+插件可以支持.NET, Python, PHP, Nodejs運行。不過IIS不能和Java Webserver(比如Tomcat)集成,因此,Azure網站服務在支持Java方面,與支持其他語言稍有不同,就是沒有采用IIS,而是直接用Windows Server+Tomcat/Jetty


下圖是Azure網站服務的簡化架構圖。主要有4個部分,分別是負載均衡器,Web集羣,代碼庫,代碼發佈


當用戶部署網站時,Azure會爲用戶分配相應的資源,組成用戶的集羣,用戶可以發佈代碼到網站代碼庫上,這部分代碼會被映射給他的集羣(就是把用戶代碼目錄通過SMB方式掛載到用戶的虛擬機上面)。不同用戶的資源和代碼都是相互隔離的。當用戶訪問自己的網站時,負載均衡器會根據URL轉發請求道不同的集羣上去。


用戶在部署Azure網站時,有幾種不同模式,包括免費、共享、基本、標準。他們之間的差別,就在於資源的隔離性和配額上面。免費喝共享模式下,不同用戶的網站可能運行在同樣的虛擬機下,Azure通過進程隔離不同租戶的網站。在後兩種模式下,用戶的網站是運行在獨享的虛擬機上。


以Java爲例,每個網站在每個虛擬機上對應一個Tomcat進程。Azure缺省提供了Tomcat 7和Jetty 9.1作爲Java Web服務器。如果用戶希望使用不同版本,可以自己上傳Java Web運行時和JRE。採用這種方式自己上傳時,一些“重量級”的server,比如Websphere和Weblogic可能就無法運行了


瞭解了架構以後,就可以簡單測試下。首先,對於一個網站,我們可以在配置頁啓用Java


保存後再次訪問網站,會看到如下頁面,代表網站已經順利轉爲Java站點,相當於網站對外端口從IIS切換爲Tomcat/Jetty了(此時該網站原有的.NET/PHP等應用就無法被訪問了)


下面就可以發佈Java項目代碼了。點擊頁面上的FTP或Git,可以進行發佈。這裏,我們採用之前介紹的網站擴展服務(點擊打開鏈接),直接通過瀏覽器上傳


在地址欄中,將網站名http://xxxx.azurewebsites.net/替換爲http://xxxx.scm.azurewebsites.net/ (在域名中間增加scm),然後繼續。瀏覽器要求輸入賬號和密碼,這裏的賬號和密碼跟FTP一致。輸入後,即可進去Kudu頁


然後點擊菜單欄上的Debug console,進入目錄視圖


點擊進入Site->wwwroot->webapps,然後拖動本地的WAR包到瀏覽器中


上傳完畢後,Azure會自動解壓縮WAR包到該目錄。比如這裏Hello.war生成了Hello目錄,裏面就是WAR包中的class和jsp文件



下面,我們可以試着訪問下網站的URL,即http://xxxx.azurewebsites.net/Hello


成功了!


Java網站服務與其他Azure網站服務一樣,支持網站的各種功能,包括Git發佈、自動伸縮等等。Java Web應用開發者,趕快來試試吧



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章