精品資料(2021-2022年收藏)云計(jì)算之旅5—實(shí)戰(zhàn)第一個(gè)云程序_第1頁(yè)
精品資料(2021-2022年收藏)云計(jì)算之旅5—實(shí)戰(zhàn)第一個(gè)云程序_第2頁(yè)
精品資料(2021-2022年收藏)云計(jì)算之旅5—實(shí)戰(zhàn)第一個(gè)云程序_第3頁(yè)
精品資料(2021-2022年收藏)云計(jì)算之旅5—實(shí)戰(zhàn)第一個(gè)云程序_第4頁(yè)
精品資料(2021-2022年收藏)云計(jì)算之旅5—實(shí)戰(zhàn)第一個(gè)云程序_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、云計(jì)算之旅5實(shí)戰(zhàn)第一個(gè)云程序一. 摘要首先圣殿騎士很高興云計(jì)算系列能得到大家的關(guān)注和支持,這個(gè)系列準(zhǔn)備了幾個(gè)月,終于在今天發(fā)布第一篇了(由于文章太長(zhǎng),拆成了兩篇,這是其中一篇)。在這幾個(gè)月中通過不斷的使用和實(shí)踐,對(duì)云計(jì)算總算有了一個(gè)較粗淺的認(rèn)識(shí),所以也希望能夠和大家一起分享。在發(fā)布這篇文章之前也考慮了很久,因?yàn)橐婚_始就講概念的話,勢(shì)必會(huì)得不到很好的效果,畢竟大家都不太熟悉這個(gè)新事物。與其“人云亦云”還不如先來一個(gè)簡(jiǎn)單的實(shí)例,所以我就先選擇一個(gè)實(shí)踐應(yīng)用來看到底云計(jì)算能給我們帶來什么好處,從開發(fā)者角度,隨著這個(gè)概念的引入,究竟它需要做哪些改變才是我們最關(guān)心的問題。本篇文章在安排上大致如下:首先回顧

2、前面的基礎(chǔ)知識(shí),這樣大家就可以有一個(gè)大概的認(rèn)識(shí);接著介紹開發(fā)工具,正所謂“工欲善其事,必先利其器”;再接著就是開發(fā)第一個(gè)簡(jiǎn)單程序,通過這個(gè)簡(jiǎn)單程序來看一下其開發(fā)過程;開發(fā)完畢之后就需要部署,在講部署之前我們必須要有賬戶來完成此操作,所以緊接著就依次講解賬戶申請(qǐng)和部署流程;大家一直在用程序+數(shù)據(jù)庫(kù)模式來開發(fā)我們的應(yīng)用,所以接下來我們就講SQL AZURE和經(jīng)典的程序+數(shù)據(jù)庫(kù)模式,這樣大家就可以避免生疏感,從而使理解也變得更加容易一些。通過這篇文章,我們對(duì)云計(jì)算有了一個(gè)較清晰的認(rèn)識(shí),了解了它究竟是什么、究竟能做什么以及如何做。如果大家清楚了這些問題,也就達(dá)到了本篇預(yù)期的效果,同時(shí)也為系列后面的文章

3、打下了基石,所以希望對(duì)大家能有所幫助。二. 本文提綱 · 1.摘要 · 2.本文提綱 · 3.云計(jì)算基礎(chǔ)回顧· 4.開發(fā)工具· 5.第一個(gè)簡(jiǎn)單程序· 6.賬戶申請(qǐng)· 7.部署· 8.SQL AZURE· 9.經(jīng)典的程序+數(shù)據(jù)庫(kù)模式· 10.本文總結(jié) · 11.系列進(jìn)度三. 云計(jì)算基礎(chǔ)回顧在前面幾篇文章中,我們講了很多概念,那么這里就簡(jiǎn)單回顧一下(更多細(xì)節(jié)看前面幾篇文章):一,行業(yè)發(fā)展趨勢(shì)縱觀軟件行業(yè)的發(fā)展過程與趨勢(shì)可以看出一共經(jīng)歷了以下幾個(gè)階段: 面向機(jī)器語言(Monolithic)的

4、開發(fā)模式:根據(jù)不同平臺(tái)的機(jī)器語言來定制化開發(fā)代碼,所以開發(fā)出來的代碼通用性和可重用性比較差,但這也是當(dāng)時(shí)和硬件和軟件環(huán)境決定的。 面向過程(Procedure)的開發(fā)模式:獨(dú)立于機(jī)器的程序語言(如C、Pascal等)使得開發(fā)過程逐漸變得簡(jiǎn)單了,用過程來描述我們的需求、用函數(shù)來封裝我們的代碼。面向過程的開發(fā)模式是對(duì)可重用代碼的封裝,這樣相對(duì)于前面的面向機(jī)器語言開發(fā)模式又進(jìn)了一步;面向?qū)ο?Object)的開發(fā)模式:用更接近現(xiàn)實(shí)的對(duì)象來描述和繪制一個(gè)相對(duì)完整的事物。面向?qū)ο蟮恼Z言(C+、C#、Java等),提供了更抽象的封裝和重用模式。面向?qū)ο蟮拈_發(fā)強(qiáng)調(diào)從現(xiàn)實(shí)世界問題直接映射成我們的程序,所以就更

5、接近人類的自然思維方式。面向?qū)ο蟮拈_發(fā)模式是對(duì)可重用對(duì)象的封裝,所以比前面的面向過程開發(fā)模式又進(jìn)了一步; 面向組件(Component)的開發(fā)模式:面向?qū)ο笤诤芏喾矫娑几纳屏碎_發(fā)模式,但是隨著軟件開發(fā)規(guī)模的逐漸擴(kuò)大,在涉及分布式、異步架構(gòu)等復(fù)雜環(huán)境中,代碼級(jí)別的重用性差,可維護(hù)性差,效率低的弱點(diǎn)就變得尤為突出,因此人們以架構(gòu)運(yùn)行環(huán)境 (如.Net,J2ee等)來提供完善的支撐平臺(tái),從而把開發(fā)者解放出來,更專注于業(yè)務(wù)核心的開發(fā)。而這些業(yè)務(wù)功能以組件的形式(如DCOM, EJB等)發(fā)布運(yùn)行在架構(gòu)運(yùn)行環(huán)境中。軟件開發(fā)的重用模式也上升到業(yè)務(wù)組件的級(jí)別。面向組件的開發(fā)模式在異步架構(gòu)、分布式等的系統(tǒng)中應(yīng)用

6、尤為突出,這種模式對(duì)面向?qū)ο箝_發(fā)模式進(jìn)行了很好的補(bǔ)充; 面向服務(wù)(SOA)的開發(fā)模式:當(dāng)軟件的使用范圍擴(kuò)展到更廣闊的范圍,往往會(huì)面對(duì)更加復(fù)雜的IT環(huán)境和更加靈活多變的需求。服務(wù)(Service)的概念出現(xiàn)了,人們將應(yīng)用 (Application)以業(yè)務(wù)服務(wù)(Business Service)的形式公布出來供別人使用,而完全不需要去考慮這些業(yè)務(wù)服務(wù)運(yùn)行在哪一個(gè)架構(gòu)體系上,因?yàn)樗械姆?wù)都講著同樣的語言。SOA考慮了業(yè)務(wù)發(fā)展的長(zhǎng)期性,體現(xiàn)了"變化就是永恒"的思想。SOA的核心體現(xiàn)在企業(yè)應(yīng)用或者業(yè)務(wù)功能上的"重用"和"互操作",而不再把IT

7、與業(yè)務(wù)對(duì)立起來,這可以被視為在IT驅(qū)動(dòng)業(yè)務(wù)的方向上邁出的重要一步。面向服務(wù)的開發(fā)模式是為了支持更加靈活的異構(gòu)、分布式系統(tǒng); 面向云(Cloud)的開發(fā)模式:其實(shí)利用前面的幾種開發(fā)模式就可以解決當(dāng)前各種應(yīng)用了,但人們總是考慮對(duì)資源進(jìn)行重組已達(dá)到對(duì)資源的最佳使用。這個(gè)時(shí)候云計(jì)算就誕生了。云計(jì)算(Cloud Computing)是網(wǎng)格計(jì)算、分布式計(jì)算、并行計(jì)算、網(wǎng)絡(luò)存儲(chǔ)、虛擬化、負(fù)載均衡等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。提供資源的網(wǎng)絡(luò)被稱為“云”?!霸啤敝械馁Y源在使用者看來是可以無限擴(kuò)展的,并且可以隨時(shí)獲取,按需使用,隨時(shí)擴(kuò)展,按使用付費(fèi)。簡(jiǎn)單的說云計(jì)算簡(jiǎn)化了我們的基礎(chǔ)架構(gòu)且給企業(yè)提供了更大

8、的可配置性和靈活性。在原有模式下如果構(gòu)建一個(gè)小型的應(yīng)用,你需要租用服務(wù)器、你需要考慮租用服務(wù)器的安全和穩(wěn)定因素等。如果構(gòu)建一個(gè)中大型的應(yīng)用,我們需要花巨資購(gòu)買硬件來集群,然后是巨額資金購(gòu)買所需的系統(tǒng)軟件而且這些也需要一些人員來維護(hù)?,F(xiàn)在云能提供我們程序所需的硬件設(shè)備和軟件設(shè)備,你所做的只是按照你的需要租用這些已有的資源,上傳你的程序和修改配置文件,就可以靈活擴(kuò)展或收縮你占用資源,這樣就可以達(dá)到合理利用資源的目的,同時(shí)也減輕了維護(hù)這些軟硬件的成本。那么上面的幾個(gè)階段也可以簡(jiǎn)單的總結(jié)為三個(gè)發(fā)展趨勢(shì),這也是現(xiàn)在云計(jì)算體現(xiàn)的三大特點(diǎn): 軟件即服務(wù)(SaaSSoftware as a Service)一

9、種軟件分配模式,使應(yīng)用程序由供應(yīng)商或服務(wù)供應(yīng)商托管起來,并通過網(wǎng)絡(luò)提供給用戶。 平臺(tái)即服務(wù)(PaaSPlatform as a Service)一種平臺(tái)分配模式,通過網(wǎng)絡(luò)提供操作系統(tǒng)和相關(guān)服務(wù),這樣客戶就無需下載或安裝。 基礎(chǔ)設(shè)施即服務(wù)(IaaSInfrastructure as a Service)一種基礎(chǔ)設(shè)施分配模式,把這些基礎(chǔ)設(shè)施通過外包的形式提供出來,其中包括存儲(chǔ)、硬件設(shè)備、服務(wù)器和網(wǎng)絡(luò)組件等。二,云計(jì)算的優(yōu)勢(shì)和劣勢(shì)任何一件事物都有利弊之分,云計(jì)算更不例外了,所以我們不能對(duì)它一概而論,只有充分的認(rèn)識(shí)到這些優(yōu)勢(shì)和劣勢(shì)之后才能更好的做出決斷。也許你可以稱它是一場(chǎng)比WEB 2.0還要巨大的革

10、命;也許你也可以稱它和當(dāng)初AJAX一樣,屬概念炒作、新瓶裝舊酒;不管如何,沒有深入虎穴焉得虎子,那么下面我們就具體分析一下它到底有哪些優(yōu)勢(shì)和劣勢(shì)。優(yōu)勢(shì)或值得應(yīng)用的方面:1.能快速搭建我們的應(yīng)用 云計(jì)算最大的好處就是能夠快速搭建我們的企業(yè)應(yīng)用,比如我們現(xiàn)在要開發(fā)一個(gè)網(wǎng)站,我們就不必?fù)?dān)心是否需要花巨資購(gòu)買硬件來集群,然后是巨額資金購(gòu)買所需的系統(tǒng)軟件而且這些也需要一些人員來組建和維護(hù)的,如果恰巧這是一個(gè)比較新且可能會(huì)帶來盈利的商業(yè)點(diǎn)子,那搭建在云上就是一個(gè)非常不錯(cuò)的選擇,這起碼能比其他企業(yè)先行一步。2.提供了更大的靈活性和擴(kuò)展性 由于“云”的規(guī)??梢詣?dòng)態(tài)伸縮,這樣就可以不用加大投資硬件設(shè)備的力度來滿

11、足應(yīng)用和用戶規(guī)模增長(zhǎng)的需要,同時(shí)也無形起到了降低成本的作用。如果項(xiàng)目突然廢棄,也沒有什么大的損失,所以在這方面,云計(jì)算是相當(dāng)靈活和易于擴(kuò)展的。3.可以解決一些特殊的場(chǎng)景很多公司都是在特定的時(shí)期盈利較大,比如一些情人節(jié)和圣誕節(jié)的幫辦公司,它們就是在這段時(shí)間的營(yíng)業(yè)額比較大,在一年中的其他時(shí)候,幾乎不能盈利,在這種情況下,如果按照傳統(tǒng)的軟件部署習(xí)慣,勢(shì)必會(huì)造成一定的浪費(fèi)。正如一個(gè)有大量波峰和波谷的企業(yè)一樣,你可能就被迫要將更多的IT資源分配給峰值時(shí)期使用。這種情況下將峰值需求外包可能會(huì)節(jié)約更多成本。 4.縮短了產(chǎn)品的開發(fā)周期不管你是使用哪個(gè)廠商的云計(jì)算產(chǎn)品.都有一個(gè)顯著的特點(diǎn),那就是能縮短產(chǎn)品的開發(fā)

12、周期,一個(gè)想法到一個(gè)產(chǎn)品的開發(fā)周期因?yàn)樵朴?jì)算的到來而逐漸縮短,由此你可以看出里面蘊(yùn)藏的巨大價(jià)值。云計(jì)算確實(shí)已經(jīng)開始影響到我們做業(yè)務(wù)的方式。我們開始減少研究的循環(huán)周期,這對(duì)于我們來說非常重要而且必要。 5.節(jié)約了建立基礎(chǔ)設(shè)施的成本其實(shí)對(duì)于每個(gè)企業(yè)來說基礎(chǔ)設(shè)施都是一筆開支比較大的費(fèi)用,而且除了費(fèi)用之外還需要專門的人力和物力的投入,在這個(gè)過程中又要保持快速的軟硬件更新速度來適應(yīng)市場(chǎng)的不斷變化,所以云計(jì)算的出現(xiàn)無疑是值得考慮的一種解決方案。很多時(shí)候,我們也會(huì)時(shí)常注意到數(shù)據(jù)中心使用面積不夠、應(yīng)用軟件超出基礎(chǔ)架構(gòu)的承受能力、軟硬件更新太快等問題,云計(jì)算服務(wù)能幫助企業(yè)將資本轉(zhuǎn)移到運(yùn)營(yíng)費(fèi)用上,尤其是在生死攸關(guān)

13、的關(guān)鍵時(shí)刻,所以在這方面來說,是值得考慮的。 劣勢(shì)或需要改進(jìn)的方面:1.數(shù)據(jù)安全性對(duì)數(shù)據(jù)安全性方面看,目前比較熱的云計(jì)算廠商亞馬遜、谷歌、IBM、微軟、甲骨文、思科、惠普、Salesforce、VMware等都沒有完全解決這個(gè)問題,所以很多企業(yè)了解到所用數(shù)據(jù)的類型和分類后,他們還是會(huì)決定通過內(nèi)部監(jiān)管來控制這些數(shù)據(jù)。而絕不會(huì)將具備競(jìng)爭(zhēng)優(yōu)勢(shì)或包含用戶敏感信息的應(yīng)用軟件放在公共云上,這個(gè)也是眾多企業(yè)保持觀望的一個(gè)原因。2.廠商按流量收費(fèi)有時(shí)會(huì)超出預(yù)算雖然云廠商推出云產(chǎn)品時(shí)大力宣傳隨時(shí)獲取,按需使用,隨時(shí)擴(kuò)展,按使用付費(fèi),但是在很大程度上價(jià)格都比較高,至少在目前還沒有降低的趨勢(shì),這樣對(duì)某些企業(yè)就會(huì)起到

14、相反的效果,比如說像索尼娛樂這樣的公司,他們就不考慮采用外部云服務(wù)來應(yīng)對(duì)存儲(chǔ)擴(kuò)展能力的挑戰(zhàn)。位于加利福尼亞的Culver City的高級(jí)系統(tǒng)工程師Nick Bali表示。每天索尼動(dòng)畫訪問和產(chǎn)生的數(shù)據(jù)量都在4千兆到12千兆之間。Bali解釋說"如果放在云上進(jìn)行數(shù)據(jù)讀取的話,我們需要的網(wǎng)絡(luò)帶寬是非常龐大的,這樣所需的成本過于巨大,甚至超過了購(gòu)買存儲(chǔ)本身的費(fèi)用。目前索尼公司正在使用ParaScale的云存儲(chǔ)軟件評(píng)估私人存儲(chǔ)云。所以從這點(diǎn)看出并不是云平臺(tái)就一定便宜。3.企業(yè)的自主權(quán)降低其實(shí)關(guān)于企業(yè)自主權(quán)這個(gè)問題是一個(gè)比較爭(zhēng)議的話題,也許這也是出于慎重的考慮,畢竟對(duì)自己公司的應(yīng)用,大家都希望能

15、完全管理和控制,原來的模式中,可以搭建自己的基礎(chǔ)架構(gòu),每層應(yīng)用都可以自定義的設(shè)置和管理;而換到云平臺(tái)以后,企業(yè)不需要擔(dān)心基礎(chǔ)架構(gòu),也不需要擔(dān)心諸如安全、容錯(cuò)等方面,好處是一個(gè)方面,但同時(shí)也讓企業(yè)感到了擔(dān)憂,畢竟現(xiàn)在熟悉的東西突然變成了一個(gè)黑盒。當(dāng)然在這個(gè)時(shí)候眾廠商也推出了內(nèi)部云或者云套件來補(bǔ)救,但是這個(gè)問題也沒得到根本解決。4.規(guī)模大且成型的企業(yè)難以擴(kuò)展很多大型企業(yè)已經(jīng)花了巨資來購(gòu)買硬件并逐漸構(gòu)建了自己的服務(wù)器集群(有的企業(yè)還大量購(gòu)置了最新的刀片服務(wù)器),然后也購(gòu)買了所需的系統(tǒng)軟件和應(yīng)用軟件,而且也在此基礎(chǔ)上搭建了基礎(chǔ)平臺(tái)架構(gòu)。那么針對(duì)這樣的企業(yè)來說,他們沒有必要把自己的應(yīng)用舍本求末的放在云上

16、,所以這個(gè)也是很多企業(yè)不愿意移植的原因之一。5.云計(jì)算本身還不太成熟盡管眾云計(jì)算廠商把云計(jì)算炒得大紅大紫,每個(gè)廠商推出的云產(chǎn)品和云套件也是琳瑯滿目、層出不窮,但是他們都各自為戰(zhàn),沒有有統(tǒng)一的平臺(tái)和標(biāo)準(zhǔn)來規(guī)范。所以冷靜下來想一想,到底它能不能為我們企業(yè)所用,在安全性、穩(wěn)定性和企業(yè)本身因素方面必須盡管慎重的考慮才行,不要被眼前的廣告所忽悠。你要知道每個(gè)企業(yè)要宣傳自己的產(chǎn)品都會(huì)采取各種手段的,比如說到公共云不安全,廠商就開始推私有云;說到企業(yè)原有應(yīng)用難以整合到云上,廠商馬上就推出了混合云;但是在根本上云計(jì)算還有很長(zhǎng)的路要走,很多地方都得優(yōu)化。當(dāng)然我們也愿意在這個(gè)過程中充當(dāng)試金石,因?yàn)轶w驗(yàn)它之后,我們

17、相信它必定會(huì)成為未來的趨勢(shì)。三,目前的現(xiàn)狀了解了云計(jì)算的基本概念以后,接下來要做的就是如何選擇合適的云供應(yīng)商,畢竟我們不是亞馬遜、Google、微軟、阿里巴巴、浪潮等專注于云計(jì)算研發(fā)的企業(yè),所以如果我們使用云計(jì)算,必須得選擇一個(gè)合適的云廠商來為我們服務(wù)。圖1上面的圖中包含了前期的幾家云計(jì)算廠家,其實(shí)總體來說現(xiàn)在云計(jì)算廠商可謂星羅棋布,不光是國(guó)外的亞馬遜、谷歌、IBM、微軟、甲骨文、思科、惠普、Salesforce、VMware等大型企業(yè),還包括國(guó)內(nèi)的阿里巴巴、中移動(dòng)、浪潮等也加入到了這個(gè)競(jìng)技場(chǎng)。四,微軟的云平臺(tái)雖然我們不能親自開發(fā)一個(gè)云平臺(tái),但是我們可以使用并體驗(yàn)云平臺(tái)給我們帶來的好處,在這個(gè)

18、過程中我們也可以通過具體使用、深入分析、再次使用、回歸總結(jié)的方式來逐步深化我們的認(rèn)知程度,這樣循環(huán)往復(fù)以后就從中獲得預(yù)期的收益。我們這個(gè)系列目前主要研究微軟的云平臺(tái)Windows Azure Platform,它是微軟完整的云計(jì)算平臺(tái),目前包含了如下三大部分(詳細(xì)介紹見云計(jì)算之旅4Windows Azure總覽 ):Windows Azure:運(yùn)行在云中的操作系統(tǒng),對(duì)于用戶來說是虛擬且透明的,其中提供了Compute(計(jì)算),Storage(存儲(chǔ)),以及Manage(管理)這三個(gè)主要功能及其底層服務(wù),使用起來相當(dāng)?shù)谋憬荨?SQL Azure:運(yùn)行于云中的一個(gè)關(guān)系數(shù)據(jù)庫(kù),和SQL Server

19、2008類似,但是在功能上還沒有那么強(qiáng)大。 AppFabric:全名是Windows Azure platform AppFabric,提供了訪問控制、服務(wù)總線等服務(wù),主要用于把基礎(chǔ)應(yīng)用連接到云中。四. 開發(fā)工具俗話說“工欲善其事,必先利其器”。我們?cè)陂_發(fā)一個(gè)任何一個(gè)程序之前都需要了解開發(fā)它的工具,使用了開發(fā)工具之后總能起到事半功倍的效果,這一點(diǎn)是無需置疑的,畢竟命令行、匯編、記事本的方式是需要大量的時(shí)間和精力,而且調(diào)試和異常跟蹤等也極為困難。針對(duì)微軟的windows azure的開發(fā)工具很簡(jiǎn)單,我們?cè)诎惭b了VS2008或VS2010、SQL Server 2005/2008/2008 R2后

20、,再安裝一個(gè)擴(kuò)展的工具包就可以進(jìn)行云應(yīng)用的開發(fā)了,這個(gè)擴(kuò)展工具包是:Windows Azure Tools for Microsoft Visual Studio 1.2 (里面包含Windows Azure SDK和Visual Studio集成),其下載的地址是: 這個(gè)版本是2010年6月發(fā)布,其中包括Windows Azure Tools + SDK,所以安裝了它以后就不需要再安裝其他的軟件了,其中功能包括:新特性支持:對(duì)Visual Studio 2010 RTM的完全支持,這樣我們就可以使用最新的模板和強(qiáng)大的新特性。 多版本支持:.NET 4 的支持使得開發(fā)者構(gòu)建服務(wù)時(shí)具有選擇.NE

21、T 2.0、.NET 3.0、.NET 3.5 或者 .NET 4 框架的靈活性。 應(yīng)用可視化:通過在Visual Studio Server Explorer中顯示W(wǎng)indows Azure table 和blob容器的只讀視圖,我們可以用視圖的方式預(yù)覽我們所創(chuàng)建的應(yīng)用。 Cloud storage explorer也使得開發(fā)者能更輕松的構(gòu)建出更優(yōu)秀的服務(wù)。 整合部署:開發(fā)者只需在Visual Studio Solution Explorer中選擇"Publish"便能直接部署服務(wù),這個(gè)在1.1版本也提供了。 服務(wù)監(jiān)控:幫助開發(fā)者通過在Server Explorer中的&

22、#39;compute'節(jié)點(diǎn)來追蹤和管理其服務(wù)狀態(tài)。 調(diào)試簡(jiǎn)便:IntelliTrace 支持運(yùn)行于云端的服務(wù),簡(jiǎn)化了對(duì)于云端服務(wù)的調(diào)試。 其實(shí)使用VS 2008 和VS2010開發(fā)云程序的過程沒有本質(zhì)上的區(qū)別,主要是VS 2010提供了云應(yīng)用的開發(fā)、調(diào)試、部署、管理的整套工具,如開發(fā)云計(jì)算程序模式、開發(fā)云計(jì)算的項(xiàng)目模板、離線測(cè)試云計(jì)算項(xiàng)目、云計(jì)算部署等等功能的支持,這些功能都縮短了云應(yīng)用的開發(fā)周期,在很大程度上提高了開發(fā)效率,因此我們?cè)诤芏鄷r(shí)候會(huì)使用VS 2010來開發(fā)云應(yīng)用,當(dāng)然為了照顧部分使用VS 2008的朋友,我們也會(huì)盡量提供兩個(gè)版本。五. 第一個(gè)簡(jiǎn)單程序步驟一:創(chuàng)建云項(xiàng)目&

23、#160;正所謂“千里之行始于足下”。安裝了開發(fā)工具之后,我們就來創(chuàng)建第一個(gè)應(yīng)用程序,由于我安裝的是windows 7操作系統(tǒng),所以用管理員權(quán)限打開Visual Studio 2008,如果是XP等操作系統(tǒng),直接運(yùn)行Visual Studio 2008即可,因?yàn)橹拔覀円呀?jīng)安裝了Windows Azure Tools for Microsoft Visual Studio 1.2,所以你就會(huì)看到下圖模板中多了一個(gè)Cloud的選項(xiàng)(圖中標(biāo)記1),點(diǎn)擊Cloud選項(xiàng),選擇Windows Azure Cloud Service模板(圖中標(biāo)記2),命名項(xiàng)目為FirstCloudApp,點(diǎn)擊OK按鈕創(chuàng)建

24、我們的項(xiàng)目:圖3在彈出窗口出現(xiàn)后,按照下圖所示,分別點(diǎn)擊標(biāo)簽1的ASP.NET Web Role和標(biāo)簽2的“>”按鈕。該步驟會(huì)在右邊窗口中生成一個(gè)新的WebRole項(xiàng),此時(shí)你可以點(diǎn)擊標(biāo)簽4的筆形圖標(biāo),然后改變?cè)揥eb Role名字,同時(shí)你也可以點(diǎn)擊標(biāo)簽5的小叉刪除新建的項(xiàng),操作完之后點(diǎn)擊OK按鈕即可。圖4步驟二:觀察生成的云項(xiàng)目 項(xiàng)目結(jié)構(gòu)如下圖所示:圖5由項(xiàng)目結(jié)構(gòu)圖我們可以看到云項(xiàng)目和普通的ASP.Net項(xiàng)目的差別,ASP.Net Web Role云項(xiàng)目會(huì)產(chǎn)生一個(gè)云應(yīng)用的項(xiàng)目和一個(gè)ASP.Net的項(xiàng)目,云應(yīng)用項(xiàng)目對(duì)ASP.Net項(xiàng)目進(jìn)行引用,同時(shí)云應(yīng)用項(xiàng)目中還包含服務(wù)程序文件和

25、服務(wù)配置文件,這兩個(gè)文件在配置、運(yùn)行和部署云應(yīng)用時(shí)將要用到,沒有這兩個(gè)文件,也就沒有我們的云程序。大家也可以通過這些配置文件來具體定制化我們的應(yīng)用,在下一次課程中,我們也會(huì)詳細(xì)講解這個(gè)程序文件的內(nèi)部原理以及注意事項(xiàng)。編輯Default.aspx頁(yè)面,添加一些簡(jiǎn)單的測(cè)試信息,代碼如:<% Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %><!DOC

26、TYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"> <title></title></head><body> <form id=&quo

27、t;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"> 圣殿騎士已經(jīng)在云上了!</div> &

28、lt;/div> </form></body></html>步驟三:解決運(yùn)行錯(cuò)誤問題按F5鍵開始調(diào)試程序。由于沒有安裝SQL Server Express,所以會(huì)看到下圖所示的錯(cuò)誤信息:圖6那么我們可以使用VS 2010的安裝文件添加安裝來解決這個(gè)問題,同時(shí)你也可以通過命令行的方式來解決,在開始菜單中點(diǎn)擊Windows Azure SDK Command Prompt進(jìn)入命令行窗口,如下圖:圖7在如下的命令行窗口輸入DSInti /sqlInstance:.(意思是:“DSInit /sqlinstance:你的sql instance名字”,我們這里

29、本機(jī),所以是.)圖8然后點(diǎn)擊下面的OK按鈕,重新運(yùn)行程序即可。圖9步驟四:再次運(yùn)行程序,得到正確結(jié)果再次運(yùn)行程序,你將會(huì)看到下面的頁(yè)面,這表示你創(chuàng)建的windows azure的程序可以正常運(yùn)行并得到了你想要的結(jié)果,如果你比較細(xì)心,你會(huì)發(fā)現(xiàn)它是借用本地的IIS來Host的,地址是:http:/127.0.01:81/Default.aspx:圖10經(jīng)過上面的步驟,我們已經(jīng)創(chuàng)建了第一個(gè)云程序,接下來要做的就是部署到所謂的云上面去了。步驟五:觀察本地云模擬器如果你足夠細(xì)心的話,會(huì)發(fā)現(xiàn)任務(wù)欄里多了一個(gè)程序的圖標(biāo),見下圖1標(biāo)記:圖11這個(gè)就是dev Fabric和dev Storage的管理器。也就是

30、傳說中的云端模擬器,這個(gè)模擬器可以讓我們?cè)诒镜販y(cè)試自己的程序是否能夠在Windows Azure Platform上正常運(yùn)行。一般情況下如果在本地測(cè)試通過的程序,上傳到Windows Azure Platform上就可以正常運(yùn)行,但是也有一些特殊的情況,我們?cè)诤竺鏁?huì)講到。點(diǎn)擊上圖的2標(biāo)記,就進(jìn)入下圖的dev Fabric管理器:圖12從上圖的dev Fabric管理器可以看到我們當(dāng)前運(yùn)行的程序以及執(zhí)行的狀態(tài),這個(gè)可以幫助我們進(jìn)行跟蹤和調(diào)試。點(diǎn)擊圖11的3標(biāo)記,就進(jìn)入下圖的dev Storage管理器,Windows Azure為應(yīng)用程序提供了Blobs,Tables和Queues三種存儲(chǔ)機(jī)制,

31、你可以在這個(gè)界面來開啟或者關(guān)閉某種存儲(chǔ)機(jī)制。圖13對(duì)于上面這些功能,我們?cè)谶@篇不會(huì)做過多的探討,以后會(huì)在專門的文章中做詳細(xì)介紹。六. 賬戶申請(qǐng)?jiān)诓渴鹬?,我們先要有一個(gè)賬戶,如果沒有賬戶需要從圖14購(gòu)買了并激活以后就可以通過圖15登陸成功以后,你會(huì)看到如下的主界面,在這個(gè)界面里面,你可以創(chuàng)建、管理你的Windows Azure、SQL Azure和AppFabric。圖16七. 部署步驟一:發(fā)布項(xiàng)目開發(fā)完一個(gè)應(yīng)用程序并在本地完成測(cè)試之后,就可以部署到云上去了,我們?cè)赩isual Studio的Solution Explorer窗口中,右擊FirstCloudApp項(xiàng)目,點(diǎn)擊Publish選項(xiàng),

32、如下圖:圖17這里有兩個(gè)選擇方案發(fā)布你的項(xiàng)目,第一就是創(chuàng)建云程序包,手動(dòng)上傳;第二就是設(shè)置信息自動(dòng)上傳。由于下篇我們會(huì)分析其內(nèi)部的原理,所以我們這里就選擇第一種方式,如下圖:圖18點(diǎn)擊OK按鈕,等待Visual Studio創(chuàng)建壓縮包并自動(dòng)彈出壓縮包的窗口。壓縮包和配置文件如下圖:圖19步驟二:Windows Azure管理站點(diǎn)前面我們輸入了Live ID和密碼登陸到了Windows Azure管理站點(diǎn),大家看到該網(wǎng)頁(yè)列出了我們能夠使用的Windows Azure服務(wù),當(dāng)然由于購(gòu)買的服務(wù)不同,您的項(xiàng)目數(shù)量也會(huì)有所不同,這里我們需要?jiǎng)?chuàng)建一個(gè)服務(wù)來Host我們的程序。你可以點(diǎn)擊下圖標(biāo)記1或者標(biāo)記2

33、來創(chuàng)建我們的服務(wù):圖20步驟三:創(chuàng)建Hosted Services 由于是第一次部署,我們需要先創(chuàng)建一個(gè)新的Hosted Services來Host我們的程序。點(diǎn)擊New Service鏈接:圖21彈出如下頁(yè)面,填入Hosted Services的標(biāo)簽名并輸入該Hosted Services的描述,然后點(diǎn)擊Next按鈕:圖22輸入你想要的域名,然后點(diǎn)擊Check Availability按鈕檢查該域名是否可用,接下來就是設(shè)置服務(wù)器的地理位置,由于我現(xiàn)在處在新加坡,所以選擇東南亞,如果在中國(guó)大陸,則可以選擇東亞。最后點(diǎn)擊Create按鈕完成創(chuàng)建:圖23步驟四:上傳并部署程序現(xiàn)在Hosted Se

34、rvices已經(jīng)創(chuàng)建完成。我們能夠在網(wǎng)頁(yè)上看到我們剛剛創(chuàng)建的Hosted Service,如下圖,標(biāo)記1可以修改程序的描述。標(biāo)記2可以刪除我們剛才創(chuàng)建的服務(wù)。標(biāo)記3和4則是我們剛創(chuàng)建服務(wù)的兩個(gè)環(huán)境,windows azure在這方面做得很人性化,提供了Staging和Production兩個(gè)環(huán)境來部署我們的應(yīng)用,這個(gè)就和我們實(shí)際的項(xiàng)目流程比較類似了,也給我們提供了更大的靈活性。標(biāo)記5則給我們提供了一個(gè)很重要的功能,你可以通過證書來保護(hù)你的應(yīng)用程序。圖24點(diǎn)擊上圖Staging的Deploy按鈕彈出如下頁(yè)面。選擇在步驟一中生成的兩個(gè)文件然后上傳。在Application Package一欄中輸入

35、.cspkg文件路徑。在Configuration Settings一欄中輸入.cscfg文件路徑。點(diǎn)擊Deploy:圖25步驟五:?jiǎn)?dòng)并測(cè)試程序點(diǎn)擊Deploy按鈕之后,看到如下頁(yè)面,然后等待一段比較長(zhǎng)的時(shí)間(時(shí)間根據(jù)你項(xiàng)目大小而定):圖26直到出現(xiàn)下面的界面,你會(huì)看到當(dāng)前的狀態(tài)為Stopped,這個(gè)時(shí)候點(diǎn)擊Run按鈕:圖27你會(huì)看到狀態(tài)由Stopped逐漸變?yōu)镮nitializing、Busy和Ready,當(dāng)狀態(tài)變?yōu)镽eady后,點(diǎn)擊下面的Web Site URL鏈接就可以看到我們剛才修改的網(wǎng)頁(yè)了。圖28經(jīng)過剛才Staging環(huán)境測(cè)試之后,我們就可以點(diǎn)擊上圖中間的轉(zhuǎn)換按鈕,這個(gè)時(shí)候Stag

36、ing環(huán)境中的應(yīng)用程序就會(huì)上傳到Production環(huán)境,然后經(jīng)過前面Staging相同操作,就可以見到如下圖所示界面圖29當(dāng)發(fā)現(xiàn)WebRole1的狀態(tài)為Ready時(shí),我們的Web Role項(xiàng)目就已經(jīng)成功運(yùn)行了。見下圖:圖30然后點(diǎn)擊Web Site URL鏈接,這個(gè)時(shí)候就可以看到我們期待的頁(yè)面了。圖31到此為止我們已經(jīng)成功地把第一個(gè)云程序發(fā)布到云端了!現(xiàn)在任何能夠訪問Internet的機(jī)器都可以通過八. SQL AZURE在瀏覽器輸入 ID和密碼登陸到了Windows Azure管理站點(diǎn)(如圖32所示),前面我們創(chuàng)建了一個(gè)服務(wù)來Host我們的程序,這里我們要介紹另外一個(gè)功能SQL AZURE

37、,點(diǎn)擊頁(yè)面的SQL AZURE鏈接圖32進(jìn)入如圖33所示的頁(yè)面,可以看到當(dāng)前的所有數(shù)據(jù)庫(kù)和所有操作按鈕,那么我們就簡(jiǎn)單對(duì)它們進(jìn)行一些介紹:標(biāo)簽1中的Reset Password按鈕可以修改登陸密碼;標(biāo)簽2中的Drop Server按鈕是刪除當(dāng)前SQL AZURE服務(wù);標(biāo)簽3中的Databases則是顯示所有的數(shù)據(jù)庫(kù)信息,其中包括數(shù)據(jù)庫(kù)名、當(dāng)前大小、最大容量、版本(Web版本有1G和5G兩個(gè)容量可供選擇,Business版本支持10G、20G、30G、40G乃至50G的大容量存儲(chǔ));標(biāo)簽4中的Firewall Settings是一個(gè)比較重要的功能,可以通過設(shè)置具體可由哪些IP訪問,即相當(dāng)于簡(jiǎn)單防

38、火墻的功能。標(biāo)簽5中的Connection Strings按鈕是程序鏈接字符串的信息,通過它可以獲取程序使用什么樣的字符串來訪問數(shù)據(jù)庫(kù),一共有ADO.NET和ODBC兩種方式。標(biāo)簽6中的Test Connectivity按鈕這個(gè)功能可以測(cè)試剛才我們創(chuàng)建的數(shù)據(jù)庫(kù)是否連接正常。標(biāo)簽7中的Create Database按鈕則是我們最常用的功能,使用它來創(chuàng)建我們的數(shù)據(jù)庫(kù)。標(biāo)簽8中的Drop Database按鈕刪除當(dāng)前選擇的數(shù)據(jù)庫(kù)。圖33點(diǎn)擊圖33標(biāo)簽7中的Create Database按鈕打開圖34所示的界面,我們輸入要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名FirstCloudDB,選擇版本類型,然后選擇容量大小之后點(diǎn)擊C

39、reate按鈕即可完成創(chuàng)建工作。圖34點(diǎn)擊圖33標(biāo)簽5中的Connection Strings按鈕打開如圖35所示界面,因?yàn)槲覀円诔绦蚧蛘逽QL Server Management Studio R2中使用到鏈接字符串,所以在使用的時(shí)候需要從這里查看或者拷貝。圖35點(diǎn)擊圖33標(biāo)簽6中的Test Connectivity按鈕,這個(gè)功能可以測(cè)試剛才我們創(chuàng)建的數(shù)據(jù)庫(kù)是否連接正常,輸入U(xiǎn)sername和Password,然后點(diǎn)擊Connect按鈕,就可以測(cè)試連接是否成功。圖36點(diǎn)擊圖33標(biāo)簽4中的Firewall Settings,打開如圖圖37所示的界面,我們知道這是一個(gè)比較重要的功能,可以通過設(shè)

40、置具體可由哪些IP訪問,即相當(dāng)于簡(jiǎn)單防火墻的功能。我們先把本機(jī)加入到Firewall Settings里面,這樣就可以通過本機(jī)的程序或者SQL Server Management Studio R2操作數(shù)據(jù)了。圖37當(dāng)設(shè)置了Firewall Settings以后就可以通過管理工具或者程序進(jìn)行連接了。在講下面的內(nèi)容之前,你首先得安裝SQL Server R2版本的數(shù)據(jù)庫(kù),具體下載地址:安裝完成之后,我們就可以使用SQL Server Management Studio R2登陸SQL AZURE了,打開SQL Server Management Studio R2,如圖38所示圖38登陸成功以后

41、進(jìn)入如圖39所示的SQL Server Management Studio R2主界面,這個(gè)版本和其他版本基本一致,我也不做過多介紹,后面講SQL AZURE會(huì)專門進(jìn)行探討。圖39九. 經(jīng)典的程序+數(shù)據(jù)庫(kù)模式前面用了較大篇幅介紹了Windows Azure和SQL AZURE的基本使用,那么這里就用一個(gè)簡(jiǎn)單的實(shí)例來看一下經(jīng)典的程序+數(shù)據(jù)庫(kù)模式在azure中有哪些改變,首先打開SQL Server Management Studio,登陸到SQL AZURE數(shù)據(jù)庫(kù),通過如下語句建立所需的表和插入所需的數(shù)據(jù)(如圖40所示)。圖40創(chuàng)建了數(shù)據(jù)庫(kù)以后,然后我們打開前面創(chuàng)建的FirstCloudApp程

42、序,在Default.aspx頁(yè)面放置一個(gè)Label 控件,這個(gè)控件用來呈現(xiàn)從數(shù)據(jù)庫(kù)返回的數(shù)據(jù)<% Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "/TR/xht

43、ml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> <div> <img alt="" sr

44、c="2010-8-22%2011-55-50.png" style="width: 314px; height: 155px" /><br /> </div> <div style="font-size: x-large; color: #FF0000"> 圣殿騎士已經(jīng)在云上了!</div> <div style="font-size: x-large; color: #FF0000"> 從SQL AZURE讀取的數(shù)據(jù):<asp:Label

45、ID="lblSqlAzure" runat="server" Text="Label"></asp:Label> </div> </div> </form></body></html>在Default.aspx.cs頁(yè)面寫一段簡(jiǎn)單讀取數(shù)據(jù)庫(kù)數(shù)據(jù)的代碼,為了能夠簡(jiǎn)單的展示,我沒有對(duì)其進(jìn)行分裝,也沒有引入任何修飾代碼,這樣大家可以更好的理解一些,如果大家看不慣這些代碼,也敬請(qǐng)見諒,后面文章會(huì)講解我們自己開發(fā)的ORM框架,AOP對(duì)日志、異常、特定植入代碼的處理,

46、IOC對(duì)框架和組件解耦的支持以及常用設(shè)計(jì)模式和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:;Database=" + DBNAME_STRING + "User ID=KnightsWarriorkd9v

47、hjwe8w;Password=Ncs135456;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 stat

48、ic 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); 編碼完了以后就可以在本地測(cè)試了,測(cè)試通過以后發(fā)布我們的程序(這個(gè)和前面操作類似,所以簡(jiǎn)單略過)。由于之前我

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論