搶先評(píng)測(cè):微軟Azure App Services讓云開發(fā)更輕松

責(zé)任編輯:editor004

作者:布加迪編譯

2015-04-07 15:02:19

摘自:51CTO

Azure Websites、Mobile Services和BizTalk Services之間加強(qiáng)了整合,這對(duì)面向云計(jì)算的開發(fā)人員來(lái)說(shuō)無(wú)異于向前邁出了一大步。Azure Websites、Mobile Services和BizTalk Services之間加強(qiáng)了整合,這對(duì)面向云計(jì)算的開發(fā)人員來(lái)說(shuō)無(wú)異于向前邁出了一大步。

Azure Websites、Mobile Services和BizTalk Services之間加強(qiáng)了整合,這對(duì)面向云計(jì)算的開發(fā)人員來(lái)說(shuō)無(wú)異于向前邁出了一大步。

今年3月初,我曾測(cè)試了三大公有云的移動(dòng)后端服務(wù)解決方案:亞馬遜網(wǎng)絡(luò)服務(wù)公司(AWS)Mobile SDK、谷歌Firebase和微軟Azure Mobile Services。微軟解決方案給人一個(gè)驚喜:微軟全面實(shí)施了移動(dòng)服務(wù),而且Azure Mobile Services團(tuán)隊(duì)非常注重滿足應(yīng)用程序開發(fā)人員的需要,又不強(qiáng)迫用戶選擇解決方案,這給本人留下了深刻印象。于是,我們將“編輯選擇獎(jiǎng)”授予了它。

很顯然,微軟奉行“讓人人都來(lái)測(cè)評(píng)Azure”的政策,因?yàn)樵摴疽呀?jīng)將Web服務(wù)和移動(dòng)服務(wù)的后端整合提升到了新的水平。Azure App Service是目前處于預(yù)覽版的托管服務(wù),它把微軟Azure Websites、Mobile Services和BizTalk Services整合成一項(xiàng)服務(wù),并且增添了新的功能,以便能夠與內(nèi)部系統(tǒng)或云系統(tǒng)整合。它包含構(gòu)建四種應(yīng)用程序所需的工具和服務(wù):Web Apps、Mobile Apps、API Apps和Logic Apps(見(jiàn)圖1)。我會(huì)在下面詳細(xì)解釋每一種應(yīng)用程序。

App Service的價(jià)格方案不一,有的免費(fèi),有的每月每種App Service方案約300美元。較便宜的服務(wù)檔次擁有數(shù)量較少的最多實(shí)例、手動(dòng)擴(kuò)展、較少的存儲(chǔ)空間、較少的內(nèi)存以及較少的處理器核心。如果你有較高的服務(wù)檔次允許多個(gè)實(shí)例,就很容易啟用并控制自動(dòng)擴(kuò)展(見(jiàn)圖2)。你可以隨時(shí)改動(dòng)任何服務(wù)的檔次。請(qǐng)注意:關(guān)閉服務(wù)并不能阻止它產(chǎn)生費(fèi)用,要是你的數(shù)據(jù)存儲(chǔ)空間小于1GB,將它降至免費(fèi)檔次也許能阻止它產(chǎn)生費(fèi)用。刪除服務(wù)當(dāng)然會(huì)停止收費(fèi)。

先睹為快:微軟云開發(fā)服務(wù)Azure App Services優(yōu)缺點(diǎn)剖析

  Azure Web和移動(dòng)應(yīng)用程序服務(wù)

圖1:新的Azure Web和移動(dòng)應(yīng)用程序服務(wù)提供了可擴(kuò)展的Web、設(shè)備、邏輯和API應(yīng)用程序后端。這一類中的API管理服務(wù)和通知服務(wù)不是新的服務(wù)。

Azure SQL Server數(shù)據(jù)庫(kù)的價(jià)格視數(shù)據(jù)庫(kù)的大小和功能而定,有的每月只要約5美元,而有的每月需要約3720美元。性能級(jí)別以DTU(數(shù)據(jù)庫(kù)吞吐量單位)來(lái)表示,這個(gè)新的度量指標(biāo)結(jié)合了處理器、內(nèi)存以及讀寫速率?,F(xiàn)在可以獲得的最低級(jí)別是5 DTU,最高級(jí)別是800 DTU或1000 DTU,這取決于你相信哪種說(shuō)明文檔。最高檔次的數(shù)據(jù)庫(kù)可以每秒執(zhí)行約735個(gè)事務(wù)、存儲(chǔ)500GB以及處理1600個(gè)并發(fā)請(qǐng)求。如果你需要更龐大的數(shù)據(jù)庫(kù),可以在Azure虛擬機(jī)中運(yùn)行SQL Server,也可以在內(nèi)部運(yùn)行SQL Server,并從你的Azure應(yīng)用程序服務(wù)連接至它。

Azure Web App Services

Web App Services基本上已更名為Azure Websites。與以前一樣,它們也支持.Net、Node.js、PHP、Python和Java。你可以自動(dòng)擴(kuò)展它們,對(duì)流量實(shí)行地域管理,每個(gè)IP地址包含多個(gè)服務(wù)器名稱指示(SNI),并且讓它們?yōu)槌掷m(xù)集成作好準(zhǔn)備,擁有多個(gè)試運(yùn)行時(shí)隙(用于促銷前測(cè)試,以及如果生產(chǎn)環(huán)境中發(fā)現(xiàn)錯(cuò)誤,就恢復(fù)原狀)。Web App Services可以托管運(yùn)行WebJobs(下有討論),并且以取決于服務(wù)檔次的頻率來(lái)自動(dòng)備份(參閱圖2的左側(cè))。在新的Azure門戶網(wǎng)站中,這一切管理起來(lái)要容易一點(diǎn)。

想把Azure Web或Mobile App連接到內(nèi)部SQL Server數(shù)據(jù)庫(kù),你就需要為此建立一個(gè)混合連接。這需要在Azure云中使用BizTalk,并將混合連接管理器(Hybrid Connection Manager)安裝到內(nèi)部服務(wù)器上。這可能還需要?jiǎng)?chuàng)建一個(gè)虛擬網(wǎng)絡(luò)。這一切都相當(dāng)簡(jiǎn)單,而且文檔很齊全。你在建立這種連接時(shí),別忘了考慮網(wǎng)絡(luò)延遲及其對(duì)應(yīng)用程序性能的影響。

先睹為快:微軟云開發(fā)服務(wù)Azure App Services優(yōu)缺點(diǎn)剖析

  微軟Azure App Services

圖2:如果你的應(yīng)用程序服務(wù)在允許多個(gè)實(shí)例的服務(wù)檔次中運(yùn)行,你就可以啟用并調(diào)整自動(dòng)擴(kuò)展功能,那樣它就能根據(jù)需要響應(yīng)變化。

Azure Mobile App Services

在我之前對(duì)Azure Mobile Services的測(cè)評(píng)中,我提到了分析及構(gòu)建入門級(jí)的To-do Azure Mobile Services應(yīng)用程序和后端。Mobile App Services實(shí)際上擁有同樣的入門級(jí)應(yīng)用程序,只是目前支持的后端和客戶軟件選擇比較少。唯一的后端用C#/ASP.Net編寫,唯一的移動(dòng)平臺(tái)是Windows Phone、Objective-C/iOS、C#/Xamarin iOS和C#/Xamarin Android(見(jiàn)圖3)。我沒(méi)有遇到任何編譯問(wèn)題,不過(guò)我不得不更新安裝的Visual Studio 2013和Xamarin,以便獲得最新的Azure支持。我注意到過(guò)去是測(cè)試版附件的一些功能已向大眾推出,比如面向iOS的斷網(wǎng)操作和離線同步。

(我原本希望試一下用最新的Node.js Tools for Visual Studio即NTVS 1.0來(lái)調(diào)試Azure Node.js移動(dòng)后端,但這種測(cè)試只好等一陣子了。)

作為Mobile App Services的一部分,Mobile Apps擁有當(dāng)初作為Mobile Services時(shí)所沒(méi)有的新功能,比如與內(nèi)部系統(tǒng)整合(正如之前SQL Server所討論的)和與SaaS系統(tǒng)整合(通過(guò)API Apps服務(wù)和連接件)。它們還可以使用試運(yùn)行時(shí)隙(如上所述)、WebJobs、更好的擴(kuò)展選項(xiàng)以及其他不大顯眼的功能特性。

先睹為快:微軟云開發(fā)服務(wù)Azure App Services優(yōu)缺點(diǎn)剖析

  Azure Mobile App Services

圖3:Azure Mobile App Services預(yù)覽版目前支持四種客戶軟件的快速啟動(dòng),這比之前的生產(chǎn)版Mobile Services中的11種有所減少。演示應(yīng)用程序本身沒(méi)有發(fā)生太大的變化。

連接件是負(fù)責(zé)將Swagger 2.0/JSON/REST接口呈現(xiàn)給Azure的預(yù)構(gòu)建API App Services,有一個(gè)用于配置的Azure用戶界面,知道如何使用其他服務(wù)(見(jiàn)圖4)。REST當(dāng)然是一種服務(wù)接口,采用了類似HTTP和HTTPS的結(jié)構(gòu);JSON當(dāng)然是一種人可讀的JavaScript對(duì)象。Swagger可能不大為人所知,這是一種用于記載REST API的規(guī)范。微軟使用Swagger說(shuō)明文檔作為API App Services之間以及API Apps與其他App Services之間的一種“插件”。

WebJobs基本上是托管在Azure中的批處理服務(wù),作為Web App Services的一部分;Mobile App Services包括面向后端的Web App,位于Mobile App Code之下。WebJobs可以擴(kuò)展、自動(dòng)備份,并具有適用于App Services的其他所有優(yōu)點(diǎn)。WebJobs在類似Windows NT的環(huán)境中運(yùn)行:除了你所要求的微軟工具外,GNU Bash、Node.js、NPM、Grunt、Bower、Git、Mercurial、PHP和Python都安裝在這個(gè)環(huán)境中。

免費(fèi)服務(wù)檔次中運(yùn)行的WebJobs僅限于20分鐘。除此之外,它們可以根據(jù)需要來(lái)運(yùn)行、持續(xù)運(yùn)行(相應(yīng)的Web App Service 運(yùn)行多久、它就運(yùn)行多久),或者按計(jì)劃運(yùn)行。眼下,你只好使用舊的Azure UI(manage.windowsazure.com)來(lái)建立計(jì)劃任務(wù)。

先睹為快:微軟云開發(fā)服務(wù)Azure App Services優(yōu)缺點(diǎn)剖析

  Azure API App市場(chǎng)

圖4:Azure API App市場(chǎng)為許多常見(jiàn)的SaaS方案(比如Salesforce、Twitter和Dropbox)提供了連接件。

你可以通過(guò)Visual Studio創(chuàng)建及部署WebJobs,使用持續(xù)交付,也可以通過(guò)新的Azure門戶網(wǎng)站(portal.azure.com)來(lái)創(chuàng)建及部署。若是Mobile App Service,你需要添加WebJob:Mobile App Code >All Settings >WebJobs >Add。(Azure Batch Services有別于WebJobs,主要在于規(guī)模上,不過(guò)乍一看兩者很相似,讓人犯暈)。

Azure API App Services

如上所述,Azure API App Services使用Swagger和REST作為可插入式接口,使用JSON作為服務(wù)之間的數(shù)據(jù)格式。我在閱讀了Azure教程后,通過(guò)Visual Studio構(gòu)建并部署了使用C#編寫的示例API App Service(見(jiàn)圖5),一旦我將Azure SDK升級(jí)到最新版本,沒(méi)有遇到任何問(wèn)題。你可以使用ASP.Net、Java、PHP、Node.js或Python來(lái)構(gòu)建API Apps。Ruby在這里還沒(méi)有得到支持,不過(guò)它在Azure中的其他地方得到支持。

眼下,C# 是Azure SDK將API App Service項(xiàng)目添加到Visual Studio 2013的唯一語(yǔ)言。我預(yù)計(jì)等到Azure API App Services推出正式版,這種情況會(huì)有所變化。

先睹為快:微軟云開發(fā)服務(wù)Azure App Services優(yōu)缺點(diǎn)剖析

  Azure API App Services

圖5:Azure API App Services創(chuàng)建了Swagger記載的REST接口。你可以在Logic App Service中組合API App Services。

API App主機(jī)負(fù)責(zé)管理應(yīng)用程序的驗(yàn)證,這讓你免除了自行實(shí)施驗(yàn)證的頭痛問(wèn)題。除此之外,你可以在Web App Service上構(gòu)建自己的REST接口,如果你希望這么做的話。我并不確信你能不能將REST/Swagger API暴露給Logic App Services中的組合服務(wù),如果它是在普通Web App Service上構(gòu)建的話。如果它作為API App Service來(lái)運(yùn)行,你顯然可以這么做。

Azure Logic App Services

正如我在前面所說(shuō),Logic App Services能夠以可視化方式,將連接件及其他API Apps組合成一個(gè)業(yè)務(wù)流程(見(jiàn)圖6)。在所示的例子中,我建立了一個(gè)流程,以便每小時(shí)搜索一次推特,尋找關(guān)于《InfoWorld》的推特消息,使用我的推特帳戶,并將發(fā)現(xiàn)的任何推特消息保存到我的Dropbox,使用我的Dropbox帳戶。我不得不授權(quán)這兩個(gè)連接件應(yīng)用程序都可以使用我的帳戶。在測(cè)試時(shí),手動(dòng)運(yùn)行該應(yīng)用程序確實(shí)從推特消息創(chuàng)建了文件,并保存到我的Dropbox。Logic App Services方塊的代碼視圖顯示了為業(yè)務(wù)流程創(chuàng)建的XML。

所有Logic App Services都始于觸發(fā)器。在圖6中的示例中,我安排服務(wù)每小時(shí)運(yùn)行一次。我可以像定義來(lái)自另一服務(wù)的事件那樣來(lái)輕松定義觸發(fā)器,比如SQL Server插入或更新觸發(fā)器。

先睹為快:微軟云開發(fā)服務(wù)Azure App Services優(yōu)缺點(diǎn)剖析

  Azure Logic App

圖6:Azure Logic App能夠以可視化方式將連接件及其他API Apps組合成業(yè)務(wù)流程。在這個(gè)例子中,我建立了一個(gè)流程,以便每小時(shí)搜索一次推特,尋找關(guān)于《InfoWorld》的推特消息,使用我的推特帳戶,并將發(fā)現(xiàn)的任何推特消息保存到我的Dropbox。代碼視圖顯示了為該流程創(chuàng)建的XML。

Azure App Services在云后端整合方面向前邁出了一大步,甚至與之前版本的Azure Mobile Services相比也是如此。 如果你將它與亞馬遜后端整合相比較――后者要求你手動(dòng)到處拷貝粘貼服務(wù)驗(yàn)證GUID鍵,差異就非常明顯。

[page]

Azure Websites、Mobile Services和BizTalk Services之間加強(qiáng)了整合,這對(duì)面向云計(jì)算的開發(fā)人員來(lái)說(shuō)無(wú)異于向前邁出了一大步。

小結(jié)

雖然是不盡完美的測(cè)試版,但Azure App Services在簡(jiǎn)化基于云的、后端服務(wù)整合方面卻達(dá)到了新的高度。

既有免費(fèi),也有每月每個(gè)應(yīng)用程序?qū)嵗s300美元,按分鐘計(jì)費(fèi),取決于所需要的資源

優(yōu)點(diǎn)

讓開發(fā)人員更容易在Azure上構(gòu)建可擴(kuò)展的Web和移動(dòng)應(yīng)用程序后端

讓開發(fā)人員更容易在Azure上組合服務(wù)

讓開發(fā)人員更容易將Azure應(yīng)用程序與記錄系統(tǒng)整合起來(lái)

降低了運(yùn)行應(yīng)用程序后端的成本

缺點(diǎn)

總體來(lái)看還是有一些缺陷,功能不太完善

無(wú)法完全移植到其他云

即使服務(wù)已被停用,依然收費(fèi),除非你將它們轉(zhuǎn)移到免費(fèi)檔次或者索性刪除。

http://www.infoworld.com/article/2904348/application-development/first-look-microsoft-azure-app-services-cloud-development.html

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)