云計算之旅5—實戰第一個云程序
[2] 云計算之旅5—實戰第一個云程序
[3] 云計算之旅5—實戰第一個云程序
[4] 云計算之旅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、微軟、阿里巴巴、浪潮等專注于云計算研發的企業,所以如果我們使用云計算,必須得選擇一個合適的云廠商來為我們服務。
圖1
上面的圖中包含了前期的幾家云計算廠家,其實總體來說現在云計算廠商可謂星羅棋布,不光是國外的亞馬遜、谷歌、IBM、微軟、甲骨文、思科、惠普、Salesforce、VMware等大型企業,還包括國內的阿里巴巴、中移動、浪潮等也加入到了這個競技場。
留言列表