一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

云計算之旅5—實戰第一個云程序

  一. 摘要

  首先圣殿騎士很高興云計算系列能得到大家的關注和支持,這個系列準備了幾個月,終于在今天發布第一篇了(由于文章太長,拆成了兩篇,這是其中一篇)。在這幾個月中通過不斷的使用和實踐,對云計算總算有了一個較粗淺的認識,所以也希望能夠和大家一起分享。在發布這篇文章之前也考慮了很久,因為一開始就講概念的話,勢必會得不到很好的效果,畢竟大家都不太熟悉這個新事物。與其“人云亦云”還不如先來一個簡單的實例,所以我就先選擇一個實踐應用來看到底云計算能給我們帶來什么好處,從開發者角度,隨著這個概念的引入,究竟它需要做哪些改變才是我們最關心的問題。

  本篇文章在安排上大致如下:首先回顧前面的基礎知識,這樣大家就可以有一個大概的認識;接著介紹開發工具,正所謂“工欲善其事,必先利其器”;再接著就是開發第一個簡單程序,通過這個簡單程序來看一下其開發過程;開發完畢之后就需要部署,在講部署之前我們必須要有賬戶來完成此操作,所以緊接著就依次講解賬戶申請和部署流程;大家一直在用程序+數據庫模式來開發我們的應用,所以接下來我們就講SQL AZURE和經典的程序+數據庫模式,這樣大家就可以避免生疏感,從而使理解也變得更加容易一些。通過這篇文章,我們對云計算有了一個較清晰的認識,了解了它究竟是什么、究竟能做什么以及如何做。如果大家清楚了這些問題,也就達到了本篇預期的效果,同時也為系列后面的文章打下了基石,所以希望對大家能有所幫助。

  二. 本文提綱

· 1.摘要

· 2.本文提綱

· 3.云計算基礎回顧

· 4.開發工具

· 5.第一個簡單程序

· 6.賬戶申請

· 7.部署

· 8.SQL AZURE

· 9.經典的程序+數據庫模式

· 10.本文總結

· 11.系列進度

  三. 云計算基礎回顧

  在前面幾篇文章中,我們講了很多概念,那么這里就簡單回顧一下(更多細節看前面幾篇文章):

  一,行業發展趨勢

  縱觀軟件行業的發展過程與趨勢可以看出一共經歷了以下幾個階段:

◆ 面向機器語言(Monolithic)的開發模式:根據不同平臺的機器語言來定制化開發代碼,所以開發出來的代碼通用性和可重用性比較差,但這也是當時和硬件和軟件環境決定的。

◆ 面向過程(Procedure)的開發模式:獨立于機器的程序語言(如C、Pascal等)使得開發過程逐漸變得簡單了,用過程來描述我們的需求、用函數來封裝我們的代碼。面向過程的開發模式是對可重用代碼的封裝,這樣相對于前面的面向機器語言開發模式又進了一步;

◆面向對象(Object)的開發模式:用更接近現實的對象來描述和繪制一個相對完整的事物。面向對象的語言(C++、C#、Java等),提供了更抽象的封裝和重用模式。面向對象的開發強調從現實世界問題直接映射成我們的程序,所以就更接近人類的自然思維方式。面向對象的開發模式是對可重用對象的封裝,所以比前面的面向過程開發模式又進了一步;

◆ 面向組件(Component)的開發模式:面向對象在很多方面都改善了開發模式,但是隨著軟件開發規模的逐漸擴大,在涉及分布式、異步架構等復雜環境中,代碼級別的重用性差,可維護性差,效率低的弱點就變得尤為突出,因此人們以架構運行環境 (如.NET,J2ee等)來提供完善的支撐平臺,從而把開發者解放出來,更專注于業務核心的開發。而這些業務功能以組件的形式(如DCOM, EJB等)發布運行在架構運行環境中。軟件開發的重用模式也上升到業務組件的級別。面向組件的開發模式在異步架構、分布式等的系統中應用尤為突出,這種模式對面向對象開發模式進行了很好的補充;

◆ 面向服務(SOA)的開發模式:當軟件的使用范圍擴展到更廣闊的范圍,往往會面對更加復雜的IT環境和更加靈活多變的需求。服務(Service)的概念出現了,人們將應用 (Application)以業務服務(Business Service)的形式公布出來供別人使用,而完全不需要去考慮這些業務服務運行在哪一個架構體系上,因為所有的服務都講著同樣的語言。SOA考慮了業務發展的長期性,體現了"變化就是永恒"的思想。SOA的核心體現在企業應用或者業務功能上的"重用"和"互操作",而不再把IT與業務對立起來,這可以被視為在IT驅動業務的方向上邁出的重要一步。面向服務的開發模式是為了支持更加靈活的異構、分布式系統;

◆ 面向云(Cloud)的開發模式:其實利用前面的幾種開發模式就可以解決當前各種應用了,但人們總是考慮對資源進行重組已達到對資源的最佳使用。這個時候云計算就誕生了。云計算(Cloud Computing)是網格計算、分布式計算、并行計算、網絡存儲、虛擬化、負載均衡等傳統計算機技術和網絡技術發展融合的產物。提供資源的網絡被稱為“云”。“云”中的資源在使用者看來是可以無限擴展的,并且可以隨時獲取,按需使用,隨時擴展,按使用付費。簡單的說云計算簡化了我們的基礎架構且給企業提供了更大的可配置性和靈活性。在原有模式下如果構建一個小型的應用,你需要租用服務器、你需要考慮租用服務器的安全和穩定因素等。如果構建一個中大型的應用,我們需要花巨資購買硬件來集群,然后是巨額資金購買所需的系統軟件而且這些也需要一些人員來維護。現在云能提供我們程序所需的硬件設備和軟件設備,你所做的只是按照你的需要租用這些已有的資源,上傳你的程序和修改配置文件,就可以靈活擴展或收縮你占用資源,這樣就可以達到合理利用資源的目的,同時也減輕了維護這些軟硬件的成本。

  那么上面的幾個階段也可以簡單的總結為三個發展趨勢,這也是現在云計算體現的三大特點:

◆ 軟件即服務(SaaS——Software as a Service)一種軟件分配模式,使應用程序由供應商或服務供應商托管起來,并通過網絡提供給用戶。

◆ 平臺即服務(PaaS——Platform as a Service)一種平臺分配模式,通過網絡提供操作系統和相關服務,這樣客戶就無需下載或安裝。

◆ 基礎設施即服務(IaaS——Infrastructure as a Service)一種基礎設施分配模式,把這些基礎設施通過外包的形式提供出來,其中包括存儲、硬件設備、服務器網絡組件等。

  二,云計算的優勢和劣勢

  任何一件事物都有利弊之分,云計算更不例外了,所以我們不能對它一概而論,只有充分的認識到這些優勢和劣勢之后才能更好的做出決斷。也許你可以稱它是一場比WEB 2.0還要巨大的革命;也許你也可以稱它和當初AJAX一樣,屬概念炒作、新瓶裝舊酒;不管如何,沒有深入虎穴焉得虎子,那么下面我們就具體分析一下它到底有哪些優勢和劣勢。

  優勢或值得應用的方面:

1.能快速搭建我們的應用

  云計算最大的好處就是能夠快速搭建我們的企業應用,比如我們現在要開發一個網站,我們就不必擔心是否需要花巨資購買硬件來集群,然后是巨額資金購買所需的系統軟件而且這些也需要一些人員來組建和維護的,如果恰巧這是一個比較新且可能會帶來盈利的商業點子,那搭建在云上就是一個非常不錯的選擇,這起碼能比其他企業先行一步。

2.提供了更大的靈活性和擴展性

  由于“云”的規模可以動態伸縮,這樣就可以不用加大投資硬件設備的力度來滿足應用和用戶規模增長的需要,同時也無形起到了降低成本的作用。如果項目突然廢棄,也沒有什么大的損失,所以在這方面,云計算是相當靈活和易于擴展的。

3.可以解決一些特殊的場景

  很多公司都是在特定的時期盈利較大,比如一些情人節和圣誕節的幫辦公司,它們就是在這段時間的營業額比較大,在一年中的其他時候,幾乎不能盈利,在這種情況下,如果按照傳統的軟件部署習慣,勢必會造成一定的浪費。正如一個有大量波峰和波谷的企業一樣,你可能就被迫要將更多的IT資源分配給峰值時期使用。這種情況下將峰值需求外包可能會節約更多成本。

4.縮短了產品的開發周期

  不管你是使用哪個廠商的云計算產品.都有一個顯著的特點,那就是能縮短產品的開發周期,一個想法到一個產品的開發周期因為云計算的到來而逐漸縮短,由此你可以看出里面蘊藏的巨大價值。云計算確實已經開始影響到我們做業務的方式。我們開始減少研究的循環周期,這對于我們來說非常重要而且必要。

5.節約了建立基礎設施的成本

  其實對于每個企業來說基礎設施都是一筆開支比較大的費用,而且除了費用之外還需要專門的人力和物力的投入,在這個過程中又要保持快速的軟硬件更新速度來適應市場的不斷變化,所以云計算的出現無疑是值得考慮的一種解決方案。很多時候,我們也會時常注意到數據中心使用面積不夠、應用軟件超出基礎架構的承受能力、軟硬件更新太快等問題,云計算服務能幫助企業將資本轉移到運營費用上,尤其是在生死攸關的關鍵時刻,所以在這方面來說,是值得考慮的。

  劣勢或需要改進的方面:

1.數據安全性

  對數據安全性方面看,目前比較熱的云計算廠商亞馬遜、谷歌、IBM、微軟、甲骨文、思科、惠普、Salesforce、VMware等都沒有完全解決這個問題,所以很多企業了解到所用數據的類型和分類后,他們還是會決定通過內部監管來控制這些數據。而絕不會將具備競爭優勢或包含用戶敏感信息的應用軟件放在公共云上,這個也是眾多企業保持觀望的一個原因。

2.廠商按流量收費有時會超出預算

  雖然云廠商推出云產品時大力宣傳隨時獲取,按需使用,隨時擴展,按使用付費,但是在很大程度上價格都比較高,至少在目前還沒有降低的趨勢,這樣對某些企業就會起到相反的效果,比如說像索尼娛樂這樣的公司,他們就不考慮采用外部云服務來應對存儲擴展能力的挑戰。位于加利福尼亞的Culver City的高級系統工程師Nick Bali表示。每天索尼動畫訪問和產生的數據量都在4千兆到12千兆之間。Bali解釋說"如果放在云上進行數據讀取的話,我們需要的網絡帶寬是非常龐大的,這樣所需的成本過于巨大,甚至超過了購買存儲本身的費用。目前索尼公司正在使用ParaScale的云存儲軟件評估私人存儲云。所以從這點看出并不是云平臺就一定便宜。

3.企業的自主權降低

  其實關于企業自主權這個問題是一個比較爭議的話題,也許這也是出于慎重的考慮,畢竟對自己公司的應用,大家都希望能完全管理和控制,原來的模式中,可以搭建自己的基礎架構,每層應用都可以自定義的設置和管理;而換到云平臺以后,企業不需要擔心基礎架構,也不需要擔心諸如安全、容錯等方面,好處是一個方面,但同時也讓企業感到了擔憂,畢竟現在熟悉的東西突然變成了一個黑盒。當然在這個時候眾廠商也推出了內部云或者云套件來補救,但是這個問題也沒得到根本解決。

4.規模大且成型的企業難以擴展

  很多大型企業已經花了巨資來購買硬件并逐漸構建了自己的服務器集群(有的企業還大量購置了最新的刀片服務器),然后也購買了所需的系統軟件和應用軟件,而且也在此基礎上搭建了基礎平臺架構。那么針對這樣的企業來說,他們沒有必要把自己的應用舍本求末的放在云上,所以這個也是很多企業不愿意移植的原因之一。

5.云計算本身還不太成熟

  盡管眾云計算廠商把云計算炒得大紅大紫,每個廠商推出的云產品和云套件也是琳瑯滿目、層出不窮,但是他們都各自為戰,沒有有統一的平臺和標準來規范。所以冷靜下來想一想,到底它能不能為我們企業所用,在安全性、穩定性和企業本身因素方面必須盡管慎重的考慮才行,不要被眼前的廣告所忽悠。你要知道每個企業要宣傳自己的產品都會采取各種手段的,比如說到公共云不安全,廠商就開始推私有云;說到企業原有應用難以整合到云上,廠商馬上就推出了混合云;但是在根本上云計算還有很長的路要走,很多地方都得優化。當然我們也愿意在這個過程中充當試金石,因為體驗它之后,我們相信它必定會成為未來的趨勢。

  三,目前的現狀

  了解了云計算的基本概念以后,接下來要做的就是如何選擇合適的云供應商,畢竟我們不是亞馬遜、Google、微軟、阿里巴巴、浪潮等專注于云計算研發的企業,所以如果我們使用云計算,必須得選擇一個合適的云廠商來為我們服務。

cloudcompany

圖1

  上面的圖中包含了前期的幾家云計算廠家,其實總體來說現在云計算廠商可謂星羅棋布,不光是國外的亞馬遜、谷歌、IBM、微軟、甲骨文、思科、惠普、Salesforce、VMware等大型企業,還包括國內的阿里巴巴、中移動、浪潮等也加入到了這個競技場。

  四,微軟的云平臺

  雖然我們不能親自開發一個云平臺,但是我們可以使用并體驗云平臺給我們帶來的好處,在這個過程中我們也可以通過具體使用、深入分析、再次使用、回歸總結的方式來逐步深化我們的認知程度,這樣循環往復以后就從中獲得預期的收益。我們這個系列目前主要研究微軟的云平臺——Windows Azure Platform,它是微軟完整的云計算平臺,目前包含了如下三大部分(詳細介紹見云計算之旅4—Windows Azure總覽 ):

WindowsAzure

  ◆Windows Azure:運行在云中的操作系統,對于用戶來說是虛擬且透明的,其中提供了Compute(計算),Storage(存儲),以及Manage(管理)這三個主要功能及其底層服務,使用起來相當的便捷。
  ◆SQL Azure:運行于云中的一個關系數據庫,和SQL Server 2008類似,但是在功能上還沒有那么強大。
  ◆AppFabric:全名是Windows Azure platform AppFabric,提供了訪問控制、服務總線等服務,主要用于把基礎應用連接到云中。

  四. 開發工具

  俗話說“工欲善其事,必先利其器”。我們在開發一個任何一個程序之前都需要了解開發它的工具,使用了開發工具之后總能起到事半功倍的效果,這一點是無需置疑的,畢竟命令行、匯編、記事本的方式是需要大量的時間和精力,而且調試和異常跟蹤等也極為困難。針對微軟的windows azure的開發工具很簡單,我們在安裝了VS2008或VS2010、SQL Server 2005/2008/2008 R2后,再安裝一個擴展的工具包就可以進行云應用的開發了,這個擴展工具包是:Windows Azure Tools for Microsoft Visual Studio 1.2 (里面包含Windows Azure SDK和Visual Studio集成),其下載的地址是:
http://www.microsoft.com/downloads/details.ASPx?FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f&displaylang=en

  這個版本是2010年6月發布,其中包括Windows Azure Tools + SDK,所以安裝了它以后就不需要再安裝其他的軟件了,其中功能包括:

◆新特性支持:對Visual Studio 2010 RTM的完全支持,這樣我們就可以使用最新的模板和強大的新特性。
◆多版本支持:.NET 4 的支持使得開發者構建服務時具有選擇.NET 2.0、.NET 3.0、.NET 3.5 或者 .NET 4 框架的靈活性。
應用可視化:通過在Visual Studio Server Explorer中顯示Windows Azure table 和blob容器的只讀視圖,我們可以用視圖的方式預覽我們所創建的應用。 Cloud storage explorer也使得開發者能更輕松的構建出更優秀的服務。
◆整合部署:開發者只需在Visual Studio Solution Explorer中選擇"Publish"便能直接部署服務,這個在1.1版本也提供了。
◆服務監控:幫助開發者通過在Server Explorer中的'compute'節點來追蹤和管理其服務狀態。
◆調試簡便:IntelliTrace 支持運行于云端的服務,簡化了對于云端服務的調試。

  其實使用VS 2008 和VS2010開發云程序的過程沒有本質上的區別,主要是VS 2010提供了云應用的開發、調試、部署、管理的整套工具,如開發云計算程序模式、開發云計算的項目模板、離線測試云計算項目、云計算部署等等功能的支持,這些功能都縮短了云應用的開發周期,在很大程度上提高了開發效率,因此我們在很多時候會使用VS 2010來開發云應用,當然為了照顧部分使用VS 2008的朋友,我們也會盡量提供兩個版本。

  五. 第一個簡單程序

  步驟一:創建云項目

   正所謂“千里之行始于足下”。安裝了開發工具之后,我們就來創建第一個應用程序,由于我安裝的是windows 7操作系統,所以用管理員權限打開Visual Studio 2008,如果是XP等操作系統,直接運行Visual Studio 2008即可,因為之前我們已經安裝了Windows Azure Tools for Microsoft Visual Studio 1.2,所以你就會看到下圖模板中多了一個Cloud的選項(圖中標記1),點擊Cloud選項,選擇Windows Azure Cloud Service模板(圖中標記2),命名項目為FirstCloudApp,點擊OK按鈕創建我們的項目:

1

圖3

  在彈出窗口出現后,按照下圖所示,分別點擊標簽1的ASP.NET Web Role和標簽2的“>”按鈕。該步驟會在右邊窗口中生成一個新的WebRole項,此時你可以點擊標簽4的筆形圖標,然后改變該Web Role名字,同時你也可以點擊標簽5的小叉刪除新建的項,操作完之后點擊OK按鈕即可。

2

圖4

  步驟二:觀察生成的云項目

   項目結構如下圖所示:

Untitled5

圖5

  由項目結構圖我們可以看到云項目和普通的ASP.NET項目的差別,ASP.NET Web Role云項目會產生一個云應用的項目和一個ASP.NET的項目,云應用項目對ASP.NET項目進行引用,同時云應用項目中還包含服務程序文件和服務配置文件,這兩個文件在配置、運行和部署云應用時將要用到,沒有這兩個文件,也就沒有我們的云程序。大家也可以通過這些配置文件來具體定制化我們的應用,在下一次課程中,我們也會詳細講解這個程序文件的內部原理以及注意事項。

  編輯Default.ASPx頁面,添加一些簡單的測試信息,代碼如:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.ASPx.cs" Inherits="WebRole1._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head runat="server">
<
title></title>
</
head>
<
body>
<
form id="form1" runat="server">
<
div>
<
div>
<
img alt="" src="2010-8-22%2011-55-50.png" style="width: 314px; height: 155px" /><br />
</
div>
<
div style="font-size: x-large; color: #FF0000">
圣殿騎士已經在云上了!!!</div>
</
div>
</
form>
</
body>
</
html>

  步驟三:解決運行錯誤問題

  按F5鍵開始調試程序。由于沒有安裝SQL Server Express,所以會看到下圖所示的錯誤信息:

err1

圖6

  那么我們可以使用VS 2010的安裝文件添加安裝來解決這個問題,同時你也可以通過命令行的方式來解決,在開始菜單中點擊Windows Azure SDK Command Prompt進入命令行窗口,如下圖:

Untitled1圖7

  在如下的命令行窗口輸入DSInti /sqlInstance:.(意思是:“DSInit /sqlinstance:你的sql instance名字”,我們這里本機,所以是.)

err3 (2)

圖8

  然后點擊下面的OK按鈕,重新運行程序即可。

err3 (1)

圖9

  步驟四:再次運行程序,得到正確結果

  再次運行程序,你將會看到下面的頁面,這表示你創建的windows azure的程序可以正常運行并得到了你想要的結果,如果你比較細心,你會發現它是借用本地的IIS來Host的,地址是:http://127.0.01:81/Default.ASPx:

4

圖10

  經過上面的步驟,我們已經創建了第一個云程序,接下來要做的就是部署到所謂的云上面去了。

  步驟五:觀察本地云模擬器

  如果你足夠細心的話,會發現任務欄里多了一個程序的圖標,見下圖1標記:

Untitled2

圖11

  這個就是dev Fabric和dev Storage的管理器。也就是傳說中的云端模擬器,這個模擬器可以讓我們在本地測試自己的程序是否能夠在Windows Azure Platform上正常運行。一般情況下如果在本地測試通過的程序,上傳到Windows Azure Platform上就可以正常運行,但是也有一些特殊的情況,我們在后面會講到。點擊上圖的2標記,就進入下圖的dev Fabric管理器:

Untitled3

圖12

  從上圖的dev Fabric管理器可以看到我們當前運行的程序以及執行的狀態,這個可以幫助我們進行跟蹤和調試。

  點擊圖11的3標記,就進入下圖的dev Storage管理器,Windows Azure為應用程序提供了Blobs,Tables和Queues三種存儲機制,你可以在這個界面來開啟或者關閉某種存儲機制。

Untitled4

圖13

  對于上面這些功能,我們在這篇不會做過多的探討,以后會在專門的文章中做詳細介紹。

  六. 賬戶申請

  在部署之前,我們先要有一個賬戶,如果沒有賬戶需要從http://www.microsoft.com/windowsazure/offers/這里進行注冊購買,具體如下頁面

2010-9-2 17-48-09

圖14

  購買了并激活以后就可以通過https://windows.azure.com/Cloud/Provisioning/Default.ASPx登陸

2010-9-2 17-58-06

圖15

  登陸成功以后,你會看到如下的主界面,在這個界面里面,你可以創建、管理你的Windows Azure、SQL Azure和AppFabric。

8 圖16

  七. 部署

  步驟一:發布項目

  開發完一個應用程序并在本地完成測試之后,就可以部署到云上去了,我們在Visual Studio的Solution Explorer窗口中,右擊FirstCloudApp項目,點擊Publish選項,如下圖:

5圖17

  這里有兩個選擇方案發布你的項目,第一就是創建云程序包,手動上傳;第二就是設置信息自動上傳。由于下篇我們會分析其內部的原理,所以我們這里就選擇第一種方式,如下圖:

6

圖18

  點擊OK按鈕,等待Visual Studio創建壓縮包并自動彈出壓縮包的窗口。壓縮包和配置文件如下圖:

7

圖19

  步驟二:Windows Azure管理站點

  前面我們輸入了Live ID和密碼登陸到了Windows Azure管理站點,大家看到該網頁列出了我們能夠使用的Windows Azure服務,當然由于購買的服務不同,您的項目數量也會有所不同,這里我們需要創建一個服務來Host我們的程序。你可以點擊下圖標記1或者標記2來創建我們的服務:

8

圖20

  步驟三:創建Hosted Services

  由于是第一次部署,我們需要先創建一個新的Hosted Services來Host我們的程序。點擊New Service鏈接:

9圖21

  彈出如下頁面,填入Hosted Services的標簽名并輸入該Hosted Services的描述,然后點擊Next按鈕:

10

圖22

  輸入你想要的域名,然后點擊Check Availability按鈕檢查該域名是否可用,接下來就是設置服務器的地理位置,由于我現在處在新加坡,所以選擇東南亞,如果在中國大陸,則可以選擇東亞。最后點擊Create按鈕完成創建:

11

圖23

  步驟四:上傳并部署程序

  現在Hosted Services已經創建完成。我們能夠在網頁上看到我們剛剛創建的Hosted Service,如下圖,標記1可以修改程序的描述。標記2可以刪除我們剛才創建的服務。標記3和4則是我們剛創建服務的兩個環境,windows azure在這方面做得很人性化,提供了Staging和Production兩個環境來部署我們的應用,這個就和我們實際的項目流程比較類似了,也給我們提供了更大的靈活性。標記5則給我們提供了一個很重要的功能,你可以通過證書來保護你的應用程序。

12

圖24

  點擊上圖Staging的Deploy按鈕彈出如下頁面。選擇在步驟一中生成的兩個文件然后上傳。在Application Package一欄中輸入.cspkg文件路徑。在Configuration Settings一欄中輸入.cscfg文件路徑。點擊Deploy:

13

圖25

  步驟五:啟動并測試程序

  點擊Deploy按鈕之后,看到如下頁面,然后等待一段比較長的時間(時間根據你項目大小而定):

14

圖26

  直到出現下面的界面,你會看到當前的狀態為Stopped,這個時候點擊Run按鈕:

15

圖27

  你會看到狀態由Stopped逐漸變為Initializing、Busy和Ready,當狀態變為Ready后,點擊下面的Web Site URL鏈接就可以看到我們剛才修改的網頁了。

16

圖28

  經過剛才Staging環境測試之后,我們就可以點擊上圖中間的轉換按鈕,這個時候Staging環境中的應用程序就會上傳到Production環境,然后經過前面Staging相同操作,就可以見到如下圖所示界面

17

圖29

  當發現WebRole1的狀態為Ready時,我們的Web Role項目就已經成功運行了。見下圖:

19

圖30

  然后點擊Web Site URL鏈接,這個時候就可以看到我們期待的頁面了。

18

圖31

  到此為止我們已經成功地把第一個云程序發布到云端了!現在任何能夠訪問InterNET的機器都可以通過http://firstcloudapplication.cloudapp.NET/進行訪問。

  八. SQL AZURE

  在瀏覽器輸入https://windows.azure.com/Cloud/Provisioning/Default.ASPx,打開頁面然后輸入了Live ID和密碼登陸到了Windows Azure管理站點(如圖32所示),前面我們創建了一個服務來Host我們的程序,這里我們要介紹另外一個功能——SQL AZURE,點擊頁面的SQL AZURE鏈接

8

圖32

  進入如圖33所示的頁面,可以看到當前的所有數據庫和所有操作按鈕,那么我們就簡單對它們進行一些介紹:

  標簽1中的Reset Password按鈕可以修改登陸密碼;

  標簽2中的Drop Server按鈕是刪除當前SQL AZURE服務;

  標簽3中的Databases則是顯示所有的數據庫信息,其中包括數據庫名、當前大小、最大容量、版本(Web版本有1G和5G兩個容量可供選擇,Business版本支持10G、20G、30G、40G乃至50G的大容量存儲);

  標簽4中的Firewall Settings是一個比較重要的功能,可以通過設置具體可由哪些IP訪問,即相當于簡單防火墻的功能。

  標簽5中的Connection Strings按鈕是程序鏈接字符串的信息,通過它可以獲取程序使用什么樣的字符串來訪問數據庫,一共有ADO.NET和ODBC兩種方式。

  標簽6中的Test Connectivity按鈕這個功能可以測試剛才我們創建的數據庫是否連接正常。

  標簽7中的Create Database按鈕則是我們最常用的功能,使用它來創建我們的數據庫。

  標簽8中的Drop Database按鈕刪除當前選擇的數據庫。

20

圖33

  點擊圖33標簽7中的Create Database按鈕打開圖34所示的界面,我們輸入要創建的數據庫名FirstCloudDB,選擇版本類型,然后選擇容量大小之后點擊Create按鈕即可完成創建工作。

21

圖34

  點擊圖33標簽5中的Connection Strings按鈕打開如圖35所示界面,因為我們要在程序或者SQL Server Management Studio R2中使用到鏈接字符串,所以在使用的時候需要從這里查看或者拷貝。

22

圖35

  點擊圖33標簽6中的Test Connectivity按鈕,這個功能可以測試剛才我們創建的數據庫是否連接正常,輸入Username和Password,然后點擊Connect按鈕,就可以測試連接是否成功。

23圖36

  點擊圖33標簽4中的Firewall Settings,打開如圖圖37所示的界面,我們知道這是一個比較重要的功能,可以通過設置具體可由哪些IP訪問,即相當于簡單防火墻的功能。我們先把本機加入到Firewall Settings里面,這樣就可以通過本機的程序或者SQL Server Management Studio R2操作數據了。

24

圖37

  當設置了Firewall Settings以后就可以通過管理工具或者程序進行連接了。

  在講下面的內容之前,你首先得安裝SQL Server R2版本的數據庫,具體下載地址:http://msdn.microsoft.com/en-us/subscriptions/default.ASPx

安裝完成之后,我們就可以使用SQL Server Management Studio R2登陸SQL AZURE了,打開SQL Server Management Studio R2,如圖38所示

25

圖38

  登陸成功以后進入如圖39所示的SQL Server Management Studio R2主界面,這個版本和其他版本基本一致,我也不做過多介紹,后面講SQL AZURE會專門進行探討。

2010-9-6 15-28-28

圖39

  九. 經典的程序+數據庫模式

  前面用了較大篇幅介紹了Windows Azure和SQL AZURE的基本使用,那么這里就用一個簡單的實例來看一下經典的程序+數據庫模式在azure中有哪些改變,首先打開SQL Server Management Studio,登陸到SQL AZURE數據庫,通過如下語句建立所需的表和插入所需的數據(如圖40所示)。

26

圖40

  創建了數據庫以后,然后我們打開前面創建的FirstCloudApp程序,在Default.ASPx頁面放置一個Label 控件,這個控件用來呈現從數據庫返回的數據

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.ASPx.cs" Inherits="WebRole1._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head runat="server">
<
title></title>
</
head>
<
body>
<
form id="form1" runat="server">
<
div>
<
div>
<
img alt="" src="2010-8-22%2011-55-50.png" style="width: 314px; height: 155px" /><br />
</
div>
<
div style="font-size: x-large; color: #FF0000">
圣殿騎士已經在云上了!!!</div>
<
div style="font-size: x-large; color: #FF0000">
從SQL AZURE讀取的數據:<ASP:Label ID="lblSqlAzure" runat="server" Text="Label"></ASP:Label>
</
div>
</
div>
</
form>
</
body>
</
html>

  在Default.ASPx.cs頁面寫一段簡單讀取數據庫數據的代碼,為了能夠簡單的展示,我沒有對其進行分裝,也沒有引入任何修飾代碼,這樣大家可以更好的理解一些,如果大家看不慣這些代碼,也敬請見諒,后面文章會講解我們自己開發的ORM框架,AOP對日志、異常、特定植入代碼的處理,IOC對框架和組件解耦的支持以及常用設計模式和SOA service bus等的引入。

namespace WebRole1
{
public partial class _Default : System.Web.UI.Page
{
private const string DBNAME_STRING = "FirstCloudDB";
private const string CONNECTION_STRING = "Server=tcp:kd9vhdfdfw.database.windows.NET;Database=" + DBNAME_STRING + ";User ID=KnightsWarrior@kd9vhjwe8w;Password=Ncs@135456;Trusted_Connection=False;Encrypt=False"; // On Azure.
private const string SELECT_STRING = "SELECT [message] FROM [FirstCloudDB].[dbo].[tTest]";

protected void Page_Load(object sender, EventArgs e)
{
this.lblSqlAzure.Text = GetResult(SELECT_STRING).ToString();
}

public static object GetResult(string SQLString)
{
using (SqlConnection connection = new SqlConnection(CONNECTION_STRING))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
object obj = cmd.ExecuteScalar();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw new Exception(e.Message);
}
}
}
}
}
}

  編碼完了以后就可以在本地測試了,測試通過以后發布我們的程序(這個和前面操作類似,所以簡單略過)。由于之前我們已經部署了開發的程序,這個時候只需要更新以前的服務就行。

27圖41

  點擊圖41中所示的Upgrade按鈕,彈出如下頁面:

28

                                        圖42

  在圖42標簽1中選擇更新類型;在圖42標簽2中選擇程序包;在圖42標簽3中選擇配置文件包;在圖42標簽4中設置操作系統,一般我們采用默認配置;在圖42標簽5中填入此次發布的Label,表明發布編號;在圖42標簽6中可以設置是全部更新還是特定更新;最后點擊圖42標簽7的Deploy按鈕。

19

圖43

  然后點擊圖43中的Web Site URL的鏈接http://firstcloudapplication.cloudapp.NET/,發現剛才開發的程序已經成功的部署在云上了。

29圖44

  現在任何能夠訪問InterNET的機器都可以通過http://firstcloudapplication.cloudapp.NET/進行訪問,至此我們就講完了最基本的開發模式,也為下面深入的探討打下了基礎。

  十. 本文總結

  這篇文章講的概念也不是很多,但是作為基礎篇,也希望大家能引起注意,因為沒有它,我們后面的文章也無從談起。通過這篇文章,我們必須要對云有一個感性和理性的認識。最重要的是要認清它究竟給我們帶來了哪些改變,當然今天的例子也只是云計算的冰山一角,但是我們要養成思考的習慣,比如在此前的傳統做法中,對于一個中小型網站,如果部署的話,我們會租用服務器來托管我們的應用。對于較大型且企業想自己主導的網站,我們可以自己購置服務器,然后對服務器集群,做好分布式和負載均衡。現在引入云計算之后,我們開發完一個網站之后就可以直接把它部署到云上,這樣就可以不用考慮負載均衡等問題,當然為了實現這個還要做很多配置,我們后面會詳細介紹,這樣做了以后大大提高了此應用的靈活性和擴展性,同時也減少了基礎架構的成本和負擔,更為重要的是它能按需使用,這給一些時令和節假日企業也帶來了福音。對于安全性以及大型應用沒有在此篇討論的范疇,后面會逐漸涉及。

  今天的例子過于淺顯,但是千萬不要把云計算等同于虛擬機或空間租用商,這樣就太暴殄天物了,除了具有Host網站的功能外,還有一些常見的功能,如:
  1. 可以把應用程序放上去執行,這樣就相當于運行在操作系統中,并且結合SQL AZURE速度是非常快的,對于某些大數據量的處理是相當有利的。
  2. 把云存儲作為緩存來使用,這樣就可以使速度加快,這樣用戶也更容易接受。
  3. 默認提供了標準的Event Streams來記錄日志和發出警告等
  4. 你可以根據程序的健康報告來查看運行狀況,原來我們會實現一套機制
  5. 安全雖然現在做得還是不太健全,但是可以通過數字證書來防止篡改,同時也可以利用加密解密技術。你要相信廠商也在逐漸完善。
  6. 對大型的分布式項目,可以通過設置AppFabric來實現負載均衡,這在原來使要做很多工作的。
  7. 之前的SSB和MSMQ等消息隊列可以很簡單的用Quee來實現,這樣可以簡化很多操作,也避免了常見錯誤的出現。
  8. 對于一個很有想法但沒有強大基礎設施的公司,如果選擇云計算可以很容易實現他們的應用
  當然還有很多,我就不一一列舉了,我也不是想夸云計算有多好,后面的文章也會詳細介紹,其實云計算確實給我們提供了很多便捷,在后面的文章中我們通過具體應用來看一下到底它是不是適合于我們的項目,所以也請大家拭目以待,誠然,由于自己知識淺薄,如果不正確的地方,也請大家海涵,最重要的還是相互交流、共同提高!

  代碼下載:FirstCloudApp     配套視頻敬請關注MSDN Webcast官方網站,到時會逐漸更新上去,可能講得不好,也敬請見諒!

  另外新建了一個云計算專區(地址:http://home.cnblogs.com/group/CloudComputing/),大家有什么相關的疑問或話題也可以在里面進行探討,同時也希望各位推選一位組長來帶領大家共同學習,本人自認才疏學淺,無力勝任,所以歡迎廣大愛好者踴躍加入,我們也有理由相信云計算一定會帶來一場軟件行業的變革!

NET技術云計算之旅5—實戰第一個云程序,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美一级成人免费大片 | 九九在线精品视频 | 精品一区二区三区在线观看 | 成人久久伊人精品伊人 | 成人午夜视频免费观看 | 五月婷在线 | 久久亚洲日本不卡一区二区 | 成人自拍视频在线观看 | 国产女女视屏免费 | 亚洲深夜视频 | 伊人激情网| 美女又美女又黄又免费网站 | 免费一区二区三区在线视频 | 国产免费小视频在线观看 | 日韩精品第1页 | 岛国一区| 亚洲黄色小说视频 | 综合在线视频精品专区 | 免费一级乱子伦片 | dxj在线视频·男人的天堂网站 | 麻豆国内精品久久久久久 | 91精品国产免费 | 国产精品嫩草影院在线观看免费 | 亚洲一级特黄 | 国色天香成人网 | 毛片久久 | 欧美成人天天综合在线视色 | 亚洲午夜在线视频 | 加勒比综合网 | 五月婷婷婷婷 | 色婷婷视频在线观看 | 国产一区二区三区鲁婷婷 | 天天影视亚洲 | 欧美激情国产一区在线不卡 | 免费午夜视频在线观看 | 性欧美女人 | 欧美人与禽交片在线播放 | 精品综合一区二区三区 | 久久香蕉网 | 九九九网站 | 亚洲春黄在线观看 |