Azure 应用服务、虚拟机、Service Fabric 和云服务的比较
-
Azure 提供了幾種托管網(wǎng)站的方式:Azure 應(yīng)用服務(wù)、虛擬機(jī)、Service Fabric?和云服務(wù)。?本文可幫助你了解這幾種方式,并針對(duì) Web 應(yīng)用程序做出正確的選擇。
Azure 應(yīng)用服務(wù)是大多數(shù) Web 應(yīng)用的最佳選擇。?部署和管理都已集成到平臺(tái),站點(diǎn)可以快速縮放以應(yīng)對(duì)高流量負(fù)載,而內(nèi)置的負(fù)載均衡和流量管理器可以實(shí)現(xiàn)高可用性。?可使用聯(lián)機(jī)遷移工具將現(xiàn)有站點(diǎn)輕松遷移到 Azure 應(yīng)用服務(wù)、使用 Web 應(yīng)用程序庫中的開源應(yīng)用,還可使用所選框架和工具新建站點(diǎn)。?WebJobs?功能使得將后臺(tái)作業(yè)處理添加到應(yīng)用服務(wù) Web 應(yīng)用變得輕松。
如果要?jiǎng)?chuàng)建新應(yīng)用或重新編寫現(xiàn)有應(yīng)用以使用微服務(wù)體系結(jié)構(gòu),Service Fabric 是不錯(cuò)的選擇。?在共享計(jì)算機(jī)池上運(yùn)行的應(yīng)用可以從小規(guī)模開始,根據(jù)需要擴(kuò)展為包含成百上千個(gè)計(jì)算機(jī)的大規(guī)模。?有狀態(tài)服務(wù)可輕松地以一致且可靠的方式存儲(chǔ)應(yīng)用狀態(tài),而 Service Fabric 會(huì)自動(dòng)管理服務(wù)分區(qū)、縮放和可用性。?Service Fabric 也支持具有 Open Web Interface for .NET (OWIN) 和 ASP.NET Core 的 WebAPI。?與應(yīng)用服務(wù)相比,Service Fabric 也能更好地控制或直接訪問基礎(chǔ)結(jié)構(gòu)。?可以遠(yuǎn)程登錄服務(wù)器,或配置服務(wù)器啟動(dòng)任務(wù)。?云服務(wù)的控制和易用程度類似于 Service Fabric,但它現(xiàn)在是舊版服務(wù),因此建議將 Service Fabric 用于新的開發(fā)。
如果現(xiàn)有應(yīng)用程序需要大幅修改才能在應(yīng)用服務(wù)或 Service Fabric 中運(yùn)行,可選擇虛擬機(jī)來簡化到云的遷移。?但相比于 Azure 應(yīng)用服務(wù)和 Service Fabric,正確配置、保護(hù)和維護(hù) VM 需要更多的時(shí)間和 IT 專業(yè)知識(shí)。?如果你考慮采用 Azure 虛擬機(jī),請(qǐng)確保將修補(bǔ)、更新和管理 VM 環(huán)境所需的持續(xù)性維護(hù)工作納入考慮。?Azure 虛擬機(jī)是服務(wù)架構(gòu) (IaaS),而應(yīng)用服務(wù)和 Service Fabric 是平臺(tái)即服務(wù) (Paas)。
功能比較
下表比較了應(yīng)用服務(wù)、云服務(wù)、虛擬機(jī)和 Service Fabric 的功能,幫助用戶做出最佳選擇。?若要了解每個(gè)選項(xiàng)的 SLA 的當(dāng)前信息,請(qǐng)參閱?Azure 服務(wù)級(jí)別協(xié)議。
功能應(yīng)用服務(wù)(Web 應(yīng)用)云服務(wù)(web 角色)虛擬機(jī)Service Fabric注釋 接近即時(shí)的部署 X ? ? X 將應(yīng)用程序或應(yīng)用程序更新部署到云服務(wù)(或者創(chuàng)建 VM)至少需要幾分鐘;將應(yīng)用程序部署到 Web 應(yīng)用只需數(shù)秒鐘。 向上擴(kuò)展到更大的計(jì)算機(jī)且無需重新部署 X ? ? X ? Web 服務(wù)器實(shí)例共享內(nèi)容和配置,這意味著進(jìn)行擴(kuò)展時(shí)無需重新部署或重新配置。 X ? ? X ? 多個(gè)部署環(huán)境(生產(chǎn)和過渡) X X ? X Service Fabric 允許為應(yīng)用創(chuàng)建多個(gè)環(huán)境,或者同時(shí)為應(yīng)用部署不同的版本。 自動(dòng)操作系統(tǒng)更新管理 X X ? ? 部分通過修補(bǔ)業(yè)務(wù)流程應(yīng)用程序 (POA),將來完全通過。 無縫平臺(tái)切換(輕松地在 32 位和 64 位之間轉(zhuǎn)移) X X ? ? ? 使用 GIT、FTP 部署代碼 X ? X ? ? 使用 Web 部署來部署代碼 X ? X ? 云服務(wù)支持使用 Web 部署將更新部署到單個(gè)角色實(shí)例。?但是,不能將其用于初始部署角色,并且如果將 Web 部署用于更新,則必須單獨(dú)部署到角色的每個(gè)實(shí)例。?需要提供多個(gè)實(shí)例,才能針對(duì)生產(chǎn)環(huán)境獲得云服務(wù) SLA 資格。 WebMatrix 支持 X ? X ? ? 訪問 Service Bus、存儲(chǔ)空間、SQL 數(shù)據(jù)庫之類的服務(wù) X X X X ? 托管多層體系結(jié)構(gòu)的 web 或 web 服務(wù)層 X X X X ? 托管多層體系結(jié)構(gòu)的中間層 X X X X 應(yīng)用服務(wù) Web 應(yīng)用可輕松托管 REST API 中間層,而?WebJobs?功能可托管后臺(tái)處理作業(yè)。?可在專用網(wǎng)站中運(yùn)行 WebJobs,實(shí)現(xiàn)層的獨(dú)立可擴(kuò)展性。 集成的 MySQL-as-a-service 支持 X X ? ? ? 支持 ASP.NET、經(jīng)典 ASP、Node.js、PHP、Python X X X X Service Fabric 支持使用?ASP.NET 5?創(chuàng)建 Web 前端,或者也可按來賓可執(zhí)行文件的形式部署任何類型的應(yīng)用程序(Node.js、Java 等)。 向外擴(kuò)展到多個(gè)實(shí)例且無需重新部署 X X X X 虛擬機(jī)可以擴(kuò)大到多個(gè)實(shí)例,但必須編寫這些虛擬機(jī)上運(yùn)行的服務(wù),來處理向外擴(kuò)展。必須配置負(fù)載均衡器以在計(jì)算機(jī)之間路由請(qǐng)求,并且請(qǐng)確??捎眯约杏卸鄠€(gè) VM 實(shí)例。 支持 SSL X X X X 對(duì)于應(yīng)用服務(wù) Web 應(yīng)用,只有基本和標(biāo)準(zhǔn)模式支持自定義域名的 SSL。?若要了解如何結(jié)合使用 SSL 和 Web 應(yīng)用,請(qǐng)參閱為 Azure 網(wǎng)站配置 SSL 證書。 Visual Studio 集成 X X X X ? 遠(yuǎn)程調(diào)試 X X X X ? 使用 TFS 部署代碼 X X X X ? 使用?Azure 虛擬網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)隔離 X X X X 另請(qǐng)參閱?Azure 網(wǎng)站的虛擬網(wǎng)絡(luò)集成 支持?Azure 流量管理器 X X X X ? 集成的端點(diǎn)監(jiān)視 X X X ? ? 對(duì)服務(wù)器的遠(yuǎn)程桌面訪問 ? X X X ? 安裝任何自定義 MSI ? X X X Service Fabric 可按來賓可執(zhí)行文件的形式托管任何可執(zhí)行文件,還可在 VM 上安裝任意應(yīng)用。 能夠定義/執(zhí)行啟動(dòng)任務(wù) ? X X X ? 可以偵聽 ETW 事件 ? X X X ? 方案和建議
以下是一些常見的應(yīng)用程序方案,其中每個(gè)方案都包含有關(guān)最適合的 Azure Web 托管選項(xiàng)的建議。
- 我需要一個(gè)具有后臺(tái)處理的 Web 前端和一個(gè)數(shù)據(jù)庫后端,用以運(yùn)行與本地資產(chǎn)集成的業(yè)務(wù)應(yīng)用程序。
- 我需要一種可靠的方式來托管公司網(wǎng)站,既可以進(jìn)行良好地?cái)U(kuò)展也能實(shí)現(xiàn)全國性覆蓋。
- 我具有在 Windows Server 2003 上運(yùn)行的 IIS6 應(yīng)用程序。
- 我是小型企業(yè)所有者,我需要使用一種成本較低的方式來托管站點(diǎn),同時(shí)也要兼顧將來的業(yè)務(wù)增長。
- 我是 Web 或圖形設(shè)計(jì)師,我想為客戶設(shè)計(jì)和構(gòu)建網(wǎng)站。
- 我要將帶有 Web 前端的多層應(yīng)用程序遷移到云中。
- 我的應(yīng)用程序依賴高度自定義的 Windows 或 Linux 的環(huán)境,我想將其轉(zhuǎn)移到云中。
- 我的站點(diǎn)使用開放源代碼軟件,我希望在 Azure 中托管它。
- 我有一個(gè)需要連接到公司網(wǎng)絡(luò)的業(yè)務(wù)線應(yīng)用程序。
- 我想為移動(dòng)客戶端托管 REST API 或 web 服務(wù)。
需要具有后臺(tái)處理的 Web 前端和數(shù)據(jù)庫后端,運(yùn)行與本地資產(chǎn)集成的業(yè)務(wù)應(yīng)用程序。
Azure 應(yīng)用服務(wù)是針對(duì)復(fù)雜業(yè)務(wù)應(yīng)用程序的理想解決方案。?可以通過該網(wǎng)站開發(fā)應(yīng)用,這些應(yīng)用可以在負(fù)載均衡平臺(tái)上自動(dòng)縮放、使用 Active Directory 進(jìn)行保護(hù)并連接到本地資源。?使用該網(wǎng)站,可以通過世界級(jí)門戶和 API 輕松地管理這些應(yīng)用,并且還能通過應(yīng)用洞察工具深入了解客戶使用這些應(yīng)用的情況。?Webjobs?功能允許將后臺(tái)進(jìn)程和任務(wù)作為 Web 層的一部分運(yùn)行,而混合連接和 VNET 功能則可實(shí)現(xiàn)輕松地重新連接到本地資源。?Azure 應(yīng)用服務(wù)針對(duì) Web 應(yīng)用提供三個(gè) 9 的 SLA,且能夠:
- 在自愈性自動(dòng)修補(bǔ)云平臺(tái)上安全可靠地運(yùn)行應(yīng)用程序。
- 跨數(shù)據(jù)中心的全國網(wǎng)絡(luò)進(jìn)行自動(dòng)縮放。
- 備份和還原,以進(jìn)行災(zāi)難恢復(fù)。
- 遵守 ISO、SOC2 和 PCI 的要求。
- 與 Azure Active Directory 集成
我需要一種可靠的方式來托管公司網(wǎng)站,既可以進(jìn)行良好地?cái)U(kuò)展也能實(shí)現(xiàn)全國性覆蓋。
Azure 應(yīng)用服務(wù)是托管公司網(wǎng)站的理想解決方案。?通過 Web 應(yīng)用,可以輕松快速地縮放站點(diǎn),滿足整個(gè)數(shù)據(jù)中心全國網(wǎng)絡(luò)的需求。它涵蓋了本地范圍,提供了容錯(cuò)和智能流量管理功能。?所有內(nèi)容均位于提供世界級(jí)管理工具的平臺(tái)上,讓可以快速輕松地更深入了解站點(diǎn)運(yùn)行狀況和站點(diǎn)流量。?Azure 應(yīng)用服務(wù)針對(duì) Web 應(yīng)用提供三個(gè) 9 的 SLA,且能夠:
- 在自愈性自動(dòng)修補(bǔ)云平臺(tái)上安全可靠地運(yùn)行網(wǎng)站。
- 跨數(shù)據(jù)中心的全國網(wǎng)絡(luò)進(jìn)行自動(dòng)縮放。
- 備份和還原,以進(jìn)行災(zāi)難恢復(fù)。
- 使用集成工具管理日志和流量。
- 遵守 ISO、SOC2 和 PCI 的要求。
- 與 Azure Active Directory 集成
我具有在 Windows Server 2003 上運(yùn)行的 IIS6 應(yīng)用程序。
Azure 應(yīng)用服務(wù)可輕松避免在遷移較舊的 IIS6 應(yīng)用程序時(shí)帶來的基礎(chǔ)結(jié)構(gòu)成本。?Microsoft 已經(jīng)創(chuàng)建易于使用的遷移工具和詳細(xì)的遷移指南,可利用這些工具和指南檢查兼容性,并確定需要進(jìn)行的任何更改。?因?yàn)榕c Visual Studio、TFS 和常見的 CMS 工具集成,所以能夠更輕松地將 IIS6 應(yīng)用程序直接部署到云中。?部署后,Azure 門戶可以提供強(qiáng)大的管理工具,允許通過縮減規(guī)模管理成本,并根據(jù)需要擴(kuò)展規(guī)模來滿足業(yè)務(wù)要求。?使用遷移工具可以:
- 輕松快速地將舊版 Windows Server 2003 Web 應(yīng)用程序遷移到云中。
- 選擇在本地保留附加的 SQL 數(shù)據(jù)庫,以創(chuàng)建混合應(yīng)用程序。
- 自動(dòng)轉(zhuǎn)移 SQL 數(shù)據(jù)庫與舊的應(yīng)用程序。
我是小型企業(yè)所有者,我需要使用一種成本較低的方式來托管站點(diǎn),同時(shí)也要兼顧將來的業(yè)務(wù)增長。
Azure 應(yīng)用服務(wù)是適合該情況的強(qiáng)大解決方案,原因是其可免費(fèi)使用且隨后可按需添加更多功能。?每個(gè)免費(fèi)的 Web 應(yīng)用都附帶 Azure 提供的域 (your_company.chinacloudsites.cn),并且平臺(tái)中包含集成的部署和管理工具,以及幫助用戶輕松入門的應(yīng)用程序庫。?還有許多其他服務(wù)和擴(kuò)展選項(xiàng),讓站點(diǎn)可以隨著用戶需求的增加而發(fā)展。?通過 Azure 應(yīng)用服務(wù),可以:
- 從免費(fèi)層開始,并根據(jù)需要向上擴(kuò)展。
- 使用應(yīng)用程序庫快速設(shè)置流行的 Web 應(yīng)用程序,如 WordPress。
- 根據(jù)需要向應(yīng)用程序添加其他 Azure 服務(wù)和功能。
- 使用 HTTPS 保護(hù) Web 應(yīng)用。
?備注
應(yīng)用服務(wù)免費(fèi)和共享(預(yù)覽)托管計(jì)劃是基本層,與其他應(yīng)用服務(wù)應(yīng)用在相同的 Azure VM 上運(yùn)行。?某些應(yīng)用可能屬于其他客戶。?這些層僅旨在用于開發(fā)和測試目的。
我是 Web 或圖形設(shè)計(jì)師,我想為客戶設(shè)計(jì)和構(gòu)建網(wǎng)站
對(duì) Web 開發(fā)人員和設(shè)計(jì)師而言,Azure 應(yīng)用服務(wù)可與各種框架和工具輕松集成(包括 Git 和 FTP 的部署支持),并可與 Visual Studio 和 SQL 數(shù)據(jù)庫等工具和服務(wù)緊密集成。?通過應(yīng)用服務(wù),可以:
- 將命令行工具用于自動(dòng)化任務(wù)。
- 使用流行的語言,如?.Net、PHP、Node.js?和?Python。
- 選擇三個(gè)不同的擴(kuò)展級(jí)別,向上擴(kuò)展到超高容量。
- 與其他 Azure 服務(wù)(例如?SQL 數(shù)據(jù)庫、服務(wù)總線和存儲(chǔ)空間)或者來自?Azure 應(yīng)用商店的合作伙伴產(chǎn)品(例如 MySQL 和 MongoDB)集成。
- 與工具集成,例如 Visual Studio、Git、WebMatrix、WebDeploy、TFS 和 FTP。
我要將帶有 Web 前端的多層應(yīng)用程序遷移到云中
如果運(yùn)行多層應(yīng)用程序,如連接到數(shù)據(jù)庫的 Web 服務(wù)器,Azure 應(yīng)用服務(wù)則是一個(gè)不錯(cuò)的選擇,它可以與 Azure SQL 數(shù)據(jù)庫緊密集成。?還可以使用 WebJobs 功能運(yùn)行后端進(jìn)程。
如果需要加強(qiáng)對(duì)服務(wù)器環(huán)境的控制,例如想要遠(yuǎn)程登錄服務(wù)器或配置服務(wù)器啟動(dòng)任務(wù),可以為一個(gè)或多個(gè)層選擇 Service Fabric。
如果想要使用自己的計(jì)算機(jī)映像,或者想要運(yùn)行不能在 Service Fabric 中配置的服務(wù)器軟件或服務(wù),可以為一個(gè)或多個(gè)層選擇虛擬機(jī)。
我的應(yīng)用程序依賴高度自定義的 Windows 或 Linux 的環(huán)境,我想將其轉(zhuǎn)移到云中。
如果應(yīng)用程序需要對(duì)軟件和操作系統(tǒng)進(jìn)行復(fù)雜的安裝或配置,虛擬機(jī)可能是最佳解決方案。?通過虛擬機(jī),可以:
- 使用虛擬機(jī)庫從某個(gè)操作系統(tǒng)(如 Windows 或 Linux)開始著手,并針對(duì)用戶的應(yīng)用程序要求對(duì)其進(jìn)行定制。
- 創(chuàng)建并上傳現(xiàn)有本地服務(wù)器的自定義映像,在 Azure 中的虛擬機(jī)上運(yùn)行。
我的站點(diǎn)使用開放源代碼軟件,我希望在 Azure 中托管它
如果應(yīng)用服務(wù)支持開放源框架,則會(huì)自動(dòng)配置應(yīng)用程序所需的語言和框架。?通過應(yīng)用服務(wù),可以:
- 使用多種流行的開放源代碼語言,如?.NET、PHP、Node.js?和?Python。
- 安裝 WordPress、Drupal、Umbraco、DNN 和許多其他第三方 Web 應(yīng)用程序。
- 遷移現(xiàn)有應(yīng)用程序,或通過應(yīng)用程序庫創(chuàng)建新的應(yīng)用程序。
如果應(yīng)用服務(wù)不支持開源框架,則可在其他某個(gè) Azure Web 托管選項(xiàng)上運(yùn)行該框架。?使用虛擬機(jī),可以在計(jì)算機(jī)映像(基于 Windows 或 Linux)上安裝和配置軟件。
我有一個(gè)需要連接到公司網(wǎng)絡(luò)的業(yè)務(wù)線應(yīng)用程序
如果想要?jiǎng)?chuàng)建業(yè)務(wù)線應(yīng)用程序,網(wǎng)站可能需要直接訪問公司網(wǎng)絡(luò)上的服務(wù)或數(shù)據(jù)。?可在應(yīng)用服務(wù)、Service Fabric 和虛擬機(jī)上使用?Azure 虛擬網(wǎng)絡(luò)服務(wù)來實(shí)現(xiàn)此目的。?可在應(yīng)用服務(wù)上使用?VNet 集成功能,該功能使 Azure 應(yīng)用程序能夠像在公司網(wǎng)絡(luò)上一樣運(yùn)行。
我想為移動(dòng)客戶端托管 REST API 或 web 服務(wù)
利用基于 HTTP 的 Web 服務(wù),可以支持各種客戶端,包括移動(dòng)客戶端。?如 ASP.NET Web API 的框架與 Visual Studio 集成,能夠更加輕松地創(chuàng)建和使用 REST 服務(wù)。?這些服務(wù)來自 web 端點(diǎn),因此可使用 Azure 上的任何 web 托管技巧支持此方案。?但應(yīng)用服務(wù)托管 REST API 的理想選擇。?通過應(yīng)用服務(wù),可以:
- 快速創(chuàng)建移動(dòng)應(yīng)用或 API 應(yīng)用,以便在 Azure 全國分布的某個(gè)數(shù)據(jù)中心內(nèi)托管 HTTP Web 服務(wù)。
- 遷移現(xiàn)有服務(wù)或創(chuàng)建新的服務(wù)。
- 實(shí)現(xiàn) SLA 的單個(gè)實(shí)例可用性,或者將可用性擴(kuò)展到多臺(tái)專用計(jì)算機(jī)。
- 使用已發(fā)布的站點(diǎn)將 REST API 提供到任何 HTTP 客戶端,包括移動(dòng)客戶端。
后續(xù)步驟
若要深入了解 3 個(gè) Web 托管選項(xiàng),請(qǐng)參閱?Azure 簡介。
若要開始使用為應(yīng)用程序選擇的選項(xiàng),請(qǐng)參閱以下資源:
- Azure 應(yīng)用服務(wù)
- Azure 云服務(wù)
- Azure 虛擬機(jī)
- Service Fabric
總結(jié)
以上是生活随笔為你收集整理的Azure 应用服务、虚拟机、Service Fabric 和云服务的比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 只要身份证就可以办信用卡吗
- 下一篇: 川农计算机网络题库,川农网院20秋《计算