微軟Windows Azure雲應用開發實踐

2020-12-13 IT168

  【IT168-微軟雲計算博客徵文活動專稿】2009年10月27日,微軟首席架構師Ray Ozzie在洛杉磯的開發者大會(PDC)上宣布了Azure Services Platform平臺,2010年1月Windows Azure正式發布,2010年2月Windows Azure Platform(微軟雲計算平臺)正式開始收費,這標誌著微軟雲計算的軟體平臺已經搭建起來了。

  據研究機構Evans Data最近的雲開發調查顯示,30%接受調查的軟體開發人員表示他們正在面向雲環境開發應用,另有19%指出他們預計將在未來12個月內投入到雲開發工作當中。2010年3月,微軟執行長史蒂夫•鮑爾默在美國華盛頓大學發表演講時也指出,微軟將舉全公司之力投入雲計算,表示「我們將把賭注押在雲計算領域」。到目前為止,微軟在全球有40000多名員工在從事軟體開發工作,其中約70%的員工所從事的工作與雲有關,與我上面所談到的5個方面相關,一年以後,這一比例可能會上升到90%左右。

  微軟雲計算平臺從發布測試版本到正式發布的時間也不算短了。作為技術人員就要緊緊跟隨技術的腳步不斷前進,並且很多開發人員已經開始嘗試在這個平臺之上開發他們的應用了。在本文中,你將了解到配合使用Visual Studio,如何去學習和掌握微軟雲計算平臺,本文的主要內容包括:微軟雲計算平臺能做什麼、開發環境搭建與雲應用開發過程。

  微軟雲計算平臺能做什麼

  根據官方資料,微軟雲計算平臺包括三大組成部分:Windows Azure、SQL Azure、Windows Azure Platform AppFabric。Windows Azure 可看成一個雲計算服務的作業系統,也是雲計算的基礎服務層,主要從事虛擬化計算資源管理和智能化任務分配;SQL Azure是雲中的資料庫,SQL Azure運行雲計算的關係資料庫服務,是一種雲存儲的實現,並提供網絡型的應用程式數據存儲的服務,它的基礎是SQL Server 2008;AppFabric 是一個基於 Web 的開發服務,它可以把現有應用和服務與雲平臺的連接和互操作變得更為簡單,AppFabric作為中間件層,將起到連接非雲端程序與雲端程序的橋梁的功能。它提供了兩大服務,服務總線和訪問控制。AppFabric 讓開發人員可以把精力放在他們的應用邏輯上而不是在部署和管理雲服務的基礎架構上。雲計算平臺在微軟產品線中如圖1所示:

  圖1 Windows Azure 平臺

  了解了微軟雲計算平臺的整體功能後,我們具體來了解一下微軟雲計算平臺給用戶提供了什麼以及在此平臺上可以做什麼應用。微軟的架構布道者Bill Zack詳述了微軟雲計算平臺給用戶提供的功能和服務主要包括計算、存儲、通信、管理。如表1所示:

    表1 微軟雲計算模式和功能

  有了這麼多模式和功能後,我們在雲平臺上就可以做一些應用和開發了,我們能做的開發主要包括三類:web應用程式、並行計算、分析應用程式,如表2所示:

    表2 雲應用開發類型

  開發環境搭建

  微軟雲計算平臺的一大優點是能夠有效利用已有的軟體資源,自由選擇是否採用雲計算。對開發人員來說,可以使用熟悉的開發語言和工具,比如廣大開發者可以使用Visual Studio在微軟雲平臺上開發雲計算應用程式。這樣開發人員無需放棄現有的甚至是多年積累的開發技能和經驗,無需重新花費時間成本學習全新的開發語言和工具,而且還可以從傳統編程方式相對平滑地轉移到面向雲計算的編程方式。

  除了對VS平臺開發的支持,對於Java、PHP、Rupy來說,也可以使用微軟雲計算平臺來進行雲應用的開發,而且還提供了開發的SDK,其地址如下:

  http://msdn.microsoft.com/zh-cn/azure/default.aspx

  通過這個頁面,開發人員可以找到微軟官方提供的很多關於雲計算的開發資源,如平臺簡介、VS平臺開發工具包、培訓工具包、實例代碼、SDK、解決方案等等,除此之外,還可以去微軟雲計算中文博客網站,這裡介紹了雲計算的入門知識,其地址是:

  http://blogs.msdn.com/b/azchina/

  進行微軟雲應用的開發,需要了解開發環境和配置。在這裡我們不打算對JAVA、PHP、RUPY開發環境進行介紹,有關它們的開發環境,感興趣的讀者可以參考SDK裡的相關描述。在VS平臺下,簡單的說,我們只需要在安裝了VS2008、VS2010、SQL Server 2008後,再安裝一個擴展的工具包就可以進行雲應用的開發了,這個擴展工具包是:Windows Azure Tools for Microsoft Visual Studio 1.1,其下載的地址是:

  http://www.microsoft.com/downloads/details.aspx?familyid=5664019E-6860-4C33-9843-4EB40B297AB6&displaylang=en

  安裝了此工具包後就能創建雲應用項目,如圖2所示:

  圖 2 VS 2010雲應用項目

  具體來說,VS平臺下雲應用的開發環境如下所述:

  (1)Visual Studio .NET 2008/2010

  (2).NET Framework 3.5

  (3)Windows Communications Foundation

  (4)ADO.NET

  (5)ADO.NET Data Services

  (6)Web services (REST, SOAP)

  (7)XML

  (8)ASP.NET

  (9).NET security

  (10)SQL Server database development

  應用與案例

  VS 2010提供了雲應用的開發、調試、部署、管理的整套工具,如開發雲計算的程序模式、開發雲計算的資料模式、開發雲計算的項目範本、離線測試雲計算項目、雲計算部署等等。這些功能都縮短了雲應用的開發周期。從VS2010平臺本身來說包括以下雲應用開發工具:

  (1)C#以及VB雲服務項目的模版;

  (2)更改Service Role設置的工具;

  (3)本地開發整合Development Fabric以及Development Storage服務;

  (4)在Development Fabric下的對Cloud Service Roles的調試;

  (5)建立雲服務軟體包;

  (6)瀏覽Azure Services Developer Portal;

  在本文的案例中我們以VS2010為例,創建一個最簡單的雲應用,使用雲服務顯示當前時間,這個應用類似於培訓工具包裡的HelloWindowsAzure,旨在給大家介紹一下雲應用開發和部署的整個過程。在VS 2010中,雲應用開發主要包含5個步驟:創建雲服務、配置雲服務、生成雲服務、運行和調試服務、發布服務,如果有需要使用雲存儲的應用還包括使用存儲服務。在這5個步驟中,前4個步驟是開發雲應用的過程,第5步是部署雲應用的過程。下面我們分別介紹

  (1) 創建雲服務應用程式

  在這裡我們使用VS 2010 創建一個雲應用的演示項目TimeAzure項目,如圖3所示:

  圖3 創建TimeAzure項目

  可以使用VB、C#或F#來創建 ASP.Net Web Role 、ASP.Net MVC 2 Web Role、WCF Service Web Role 、CGI Web Role、Worker Role這些雲應用項目,不過ASP.Net MVC 2 Web Role項目在VS 2008的雲應用項目不能夠被創建。創建完成後,我們的項目組織如圖4所示:

 

  圖 4 雲應用項目結構

  由項目結構圖我們可以看到雲應用項目和普通的ASP.Net項目的不同,雲應用項目會產生一個雲應用的項目和一個ASP.Net的項目,雲應用項目對ASP.Net項目進行引用,同時雲應用項目中還包含服務定義和服務配置文件,這兩個文件在配置、運行和部署雲應用時將要用到。

  在Default.aspx頁面裡拖入一個Label,命名為Label1,並在Default.aspx裡輸入如下代碼:

protected void Page_Load(object sender, EventArgs e)
        {
            this.Label1.Text
= DateTime.Now.ToString();
        }

 

  在這裡,我們開發雲應用的步驟就結束了,整個開發過程和開發ASP.Net沒有任何區別,我們無需從零開始學習雲應用開發,這也是微軟雲計算平臺的一大優勢。

  (2) 配置雲服務

  開發完雲應用程式後,我們就需要對應用進行配置。打開ServiceConfiguration.cscfg文件,修改配置文件如下:

<?xml version="1.0"?>
<ServiceConfiguration serviceName="TimeAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
  
<Role name="WebRole1">
    
<Instances count="3" />
    
<ConfigurationSettings>
      
<Setting name="DiagnosticsConnectionString" value="UseDevelopmentStorage=true" />
    
</ConfigurationSettings>
  
</Role>
</ServiceConfiguration>

 

  在服務設置文件中,我們可以定義角色並對角色進行設置,這裡使用默認已經創建好的角色,只是設置了實例的數量,由「1」改成了「3」。

  (3) 生成雲服務

  生成雲服務和生成普通的ASP.Net程序完全一樣,點擊Build |Build Solution即可,編譯的過程中,會對雲應用服務進行打包,生成TimeAzure.csx文件,本地Development Fabric會使用這個.csx文件。

  (4) 調試和運行雲服務

  點擊Debug | Start Debugging開始對雲應用的測試,但是出現錯誤提示,如圖5所示:

  圖5 調試錯誤

  此錯誤的原因是沒有安裝SQL Server Express,點擊安裝後,再次運行調試,彈出初始化存儲服務界面,如圖6所示:

  圖6 初始化開發存儲資料庫

  設置TimeAzure為啟動項目,點擊運行或調試,運行或調試雲應用的時候會啟動本地的Development Fabric,它模擬了Windows Azure的服務。Development Fabric宿駐了你的服務中所有的Web Role和Worker Role的實例。要顯示Development Fabric的用戶界面,雙擊系統任務欄中的Development Storage圖標,打開窗口如圖7所示:

  圖7 Development Fabric窗口

  在上圖中顯示了運行的服務的3個實例,這3個實例也對應了我們在服務設置文件裡設置的實例數,點擊每一個實例的窗口,可以查看實例的詳細信息。注意當停止服務運行或調試,本地Development Fabric和Storage元素不會停止,必須手動從系統工具欄中停止才行。

  (5) 發布雲服務

  生成解決方案後,對應用程式也進行了調試,這些工作完成後就可以發布雲應用。將創建一個包含了所有的服務組件的.cspkg文件,之後會連接到Azure Services Developer Portal。要發布服務,右鍵單擊TimeAzure項目,然後選擇發布,如圖8所示:

  圖 8 發布雲應用

  這將打開Windows Explorer到解決方案文件夾中的Publish文件夾,如圖9所示:

  圖9 發布雲應用

  在打開publish文件夾的同時打開Azure Services Developer Portal。在這裡我們使用Live ID來登錄到Azure Services management portal上進行部署,在部署時需要有一個邀請碼,關於邀請碼的獲得,以前的方法是直接在Azure的網站上進行申請。然後就可以登錄到Developer Portal並按照嚮導上傳應用程式到Windows Azure,有關上傳的步驟這裡就不描述了,這是一個嚮導式的過程,把.cscfg和.cspkg上傳就可以了。注意在部署的時候我們可以部署到生產環境或者演示環境,如果只是做一個Demo,那我們就把雲應用部署到演示環境上。有關雲應用部署的更詳細步驟,感興趣的讀者可以參考MSDN:

  http://blogs.msdn.com/b/azchina/archive/2010/02/18/webrole.aspx

  部署完成後,打開界面類似圖10所示:

  圖10 部署雲應用完成

  部署完成後,就可以點擊Run來運行我們的雲應用,這樣所有的機器就可以通過Internet來訪問我們的雲應用了。

  小結

  有了微軟雲計算平臺的支持,微軟官方提供的各種資源,軟體開發工具與平臺的支持,使用現有的.Net平臺軟體開發技術,作為一個有一定VS平臺開發經驗的技術人員來說,我們開發雲應用或雲服務的過程和開發普通VS Web應用程式差不多,只是在部署的時候有所不同,在部署的過程中,我們需要把編譯生成的文件上傳上去,進行一些必要配置就可以通過Internet進行訪問了。整個過程還是比較容易的,看到這裡,你是否已經對開發雲應用充滿了期待呢,心動不如行動!

相關焦點

  • 微軟Windows Azure:雲計算的作業系統
    微軟也在不遺餘力的大力發展雲計算,微軟的核心作業系統正在轉變成為一款強大的雲作業系統,並將為用戶提供豐富的微軟軟體,支持臺式機和手機等各種形式和尺寸的設備。  微軟Windows Azure:基於雲計算的作業系統  Windows Azure是微軟基於雲計算的作業系統,和Azure Services Platform一樣,是微軟「軟體和服務」技術的名稱。
  • 微軟和電信就這麼在一起了:中國電信Windows Azure雲應用商店正式...
    Azure在中國的擴張增長了3.5倍,目前已經擁有50000家客戶,其中包括有34家政府機構和教育行業的客戶,作為目前唯一在中國商用的國際公有雲服務,Windows Azure的擴張腳步仍然沒有絲毫的停歇,就在今天,中國電信正式宣布與微軟展開合作,推出中國電信Windows Azure雲應用商店。
  • 微軟最佳雲平臺Windows Azure:發展歷程
    【IT168 評論】導讀:微軟的Scott Guthrie,作為Azure應用平臺的負責人,在過去的六個月裡,他到底做了些什麼呢?  微軟公司副總裁Scott Guthrie,當他接手Azure後的第一件事就是:要求他的團隊成員使用微軟現有的工具、軟體開發包和指導規範開發出一款Azure應用。
  • 雲計算行業深度報告:微軟雲Azure的十年蛻變與成功法則
    移動網際網路布局姍姍來遲,雲時代初探。2008-2011年:雲計算初探,四大支柱初像形成。Azure首次推出時,被稱為「Windows Azure」。提供服務(PaaS)層,幫助開發者更容易地構建應用程式。
  • 如何在微軟Azure上搭建個人博客網站
    什麼是AzureMicrosoft Azure是微軟的公共雲服務平臺,是微軟在線服務的一部分(名詞解釋自維基百科),截至目前,微軟Azure在全球已有42個(包括在建)數據中心,其中,位於中國東部和中國北部的數據中心由世紀互聯運營。
  • 人來人往的五年,微軟智能雲Azure憑什麼活著?
    而海外版Azure直購則讓國內企業在中國版Azure上開發的環境、應用能快速部署到微軟在全球其它市場運營的Azure平臺上;同時,海外企業也可以將其在全球部署的系統、應用,快速遷移到由世紀互聯運營的中國版Azure上。再加上即將於4月在華推出的Azure Stack混合雲解決方案,這樣就形成了Azure從企業內部到中國地區再到全球市場的統一雲平臺架構以及無縫技術體驗。
  • 如何在Windows上做Python開發?微軟出了官方教程
    微軟最近發布了一系列官方教程,終於……教程地址:https://docs.microsoft.com/zh-cn/windows/python/這些教程將指導使用者如何設置開發環境、是否在原生 Windows 或 Windows Subsystem for Linux (WSL) 系統上安裝自己的工具,以及如何集成 VS
  • Azure Camp準備讓開發人員使用Microsoft工具構建雲應用
    –軟體開發人員參加了在Microsoft園區舉行的為期一天的Windows Azure開發人員訓練營,這是11月12日在美國舉行的23個同步研討會之一,目的是促進在Azure雲環境中運行的應用程式的開發。
  • 微軟Windows Azure初級教程:基本原理
    應用程式的編寫語言只能是java(至少是JVM的目標語言)或者是Python2.5。沙盒阻止了一些基本的操作,如寫磁碟或打開網絡socket。  處於EC2和Google App Engine之間的是微軟的Window Azure。
  • 維擇科技核心產品可直接在微軟 Azure 雲應用商店購買
    維擇科技核心產品可直接在微軟 Azure 雲應用商店購買近日,全球知名 AI 風控服務提供商 DataVisor 維擇科技於矽谷山景城宣布,兩款核心產品——dVector(託管式風控建模服務)和 Feature Platform(實時變量計算平臺)正式進駐微軟 Azure 雲應用商店。
  • 歷時兩年,微軟物聯網安全服務 Azure Sphere 全面上線!
    另外,據微軟 Azure IoT總監 Sam George 表示,開發者可以授權 Visual Studio 和微軟的 Azure 物聯網服務來更加高效地開發 Sphere 應用。George 補充說:「我們生活在一個聯繫日益緊密的世界。」
  • 詳解Azure雲計算 訪微軟互連繫統部門全球副總裁
    它的底層是微軟新一代雲作業系統Windows Azure,與數據中心、網絡一起構成全球化的平臺基礎。平臺開放,「中國智慧」助開發者平步登雲51CTO.com和CIOAge.com有不少用戶都與開發工作相關,因此在專訪Robert先生之前筆者就曾收到過不少在「雲」上做開發的疑問,比如問是否需要學習許多新工具,異構平臺下如何開發等。
  • 微軟發布從智能雲到智能邊緣的Azure新功能
    微軟公司周四發布了一系列全新 Azure 服務與開發人員技術,幫助開發人員掌握人工智慧、混合現實、物聯網和區塊鏈等先進的技術。該公司還將在微軟Build大會上,分享更多混合雲與邊緣計算的新特性,以便支持開發人員。
  • 微軟Azure AI負責人:OpenAI只在微軟雲上訓練模型
    曉查 發自 善緣街 量子位 出品 | 公眾號 QbitAI 幾天前,微軟剛剛以10億美元投資了AI研究機構OpenAI。之後微軟將成為OpenAI的獨家雲計算供應商,同時OpenAI也將為微軟Azure雲開發AGI的軟硬體平臺。
  • Azure in University | Azure智能雲,幫助新興IT人才習得職場必備技能
    然而無論對學校、教師或學生來說,這些飛速發展的「前沿學科」都蘊含著大量新的技術難點和挑戰,從概念和意識上的接觸了解,到理論的積累,再到具體的教學任務和實踐,甚至相關技術平臺和工具的選擇,這其中還有很多問題有待解決。微軟專業學位認證計劃和基於Azure智能雲的平臺和工具,為高校的先進IT技能教學提供了一種解決思路。
  • 帶著情懷回顧微軟windows系統的發展史
    此時,我們作為微軟作業系統的忠誠用戶(儘管也用盜版吧),還是希望將對微軟windows作業系統這份情懷延續下去,未來,我們還會堅持使用微軟windows作業系統的。    今天,筆者就想帶著大家一同來回顧下微軟windows作業系統的發展史,來見證windows系統發展變化的歷程。
  • 微軟確認正開發CloudPC服務 將個人桌面帶到微軟Azure雲服務
    有傳言稱,微軟正在秘密研發一項新的 CloudPC 服務,將為 Windows 10X 提供 Win32 應用。有關 Cloud PC 的線索最早是在 LinkedIn 的一份工作中發現的,幾乎沒有什麼確認的信息存在,但一個新的爆料消息已經證實了 Cloud PC 的存在。
  • Wikibon:Azure雲,強力支撐微軟的未來
    不過,Wikibon認為微軟在進行雲分類方面的自由度比IBM強。智能雲是微軟130億美元的季度業務並以19%的速度增長,Azure雲在該細分市場中所佔比例越來越大。Azure是與AWS最直接的比較,Wikibon的估計是,在過去的一個季度中,Azure佔智能雲的50%左右……每個季度接近70億美元。Azure雲收入本季度的年增長率為47%,與上季度持平。
  • 微軟發布網頁版Windows 8應用開發工具
    [導讀]應用開發人員必須利用自己的Windows Live帳號、Facebook帳號或是Google帳號登錄到系統中
  • 在微軟智能雲Azure 上可以部署紅帽OpenShift啦
    作為首個在中國市場正式商用的國際公有雲,由世紀互聯運營的 Microsoft Azure 將為採用紅帽 OpenShift 開發、部署及運行 Kubernetes 容器平臺的用戶,提供與本地無縫銜接、高度一致的環境與體驗,為企業用戶提供在 Azure 上隨時靈活擴展服務規模的便利,並可基於 Azure 智能雲提供的 PaaS 服務、DevOps 開發運維一體化平臺,提升開發、部署、運行容器的效率。