基於Windows Azure的雲計算應用設計

來源:互聯網
上載者:User
雲計算應用的特點

從前面的描述我們可以看到雲計算給應用程式帶來的一些挑戰,那就是應用程式如何在雲計算環境下充分利用雲計算平臺的一些特點來更好的滿足使用者需求。 雲計算應用要能夠利用雲計算環境中可動態擴展的資源,構建一個具有彈性的高可用應用程式。 下面我們分別討論一下雲計算環境下的應用特點和要求。

自動化要求

自動化是人類的夢想,而電腦對自動化領域的發展有著巨大的影響,它極大的提高了工作和生產效率。 在雲計算環境下,自動化要求實際上是對計算工作本身的一個自動化改變。 雲計算的自動化可以賦予使用者對平臺基礎架構的資源配置任務進行全面統籌的能力,並實現對資源的動態分配以提高管理效率、減少人為錯誤並加快使用者對資源請求的回應速度。 應用程式在設計的時候要能充分利用雲計算環境的自動化特性,從而使得應用程式可以在很少或沒有人工干預的情況下,自動適應需求的變化。

分散式運算

大部分雲計算平臺都是用廉價和標準的電腦硬體構成,然後通過雲計算軟體的方式在計算能力、可靠性等方面來達到傳統的大型電腦的水準。 也就是說在雲計算環境下,資源池通常是通過分散式軟硬體方式來實現。 因此雲計算應用程式的運行往往涉及到多個計算資源。 無論是計算還是存儲需求,應用程式一般都會涉及到多個節點,這樣在設計的時候要考慮並行設計的思想或採用分佈計算的方式。 比如,有些雲計算應用可以根據計算的要求,採用類似MapReduce的程式設計模型。

松耦合

無論是功能上還是性能上雲計算對應用的靈活性提出了更高的要求。 這就要求應用程式在設計的時候要考慮松耦合的架構。 耦合度與靈活性一般是相反的,也即耦合度越高靈活性越低,而耦合度越低靈活性越高。 因此,在做雲計算應用架構設計的時候,一般要追求松耦合的設計。 比如,在做Web應用設計的時候,對於使用者狀態的保持就需要儘量採用無狀態的方式來設計,這樣應用程式的水準擴展能力比較好。

資料存儲方式

在傳統的應用設計中,我們一般採用關聯式資料庫來存儲資料。 但是在雲計算環境下,尤其是對於互聯網應用,存在兩個需要面對的問題。 一是雲計算環境下的資料量都比較大,傳統的關聯式資料庫面臨資料擴展能力的挑戰。 另一個是許多應用對於資料存儲的要求更多體現在非結構化資料或者是半結構化資料的存儲上面。 因此,大多數雲計算平臺都會提供針對非結構化和半結構化的資料存儲方式。 這樣應用程式的架構需要針對新的資料存儲方式作出調整。

上面描述的一些應用特點對我們開發和設計應用程式會帶來許多影響。 一個是應用程式在設計的過程中不僅僅需要考慮作業系統平臺或中介軟體級別的程式設計介面,還要針對其運行的雲平臺的介面來對應用程式進行設計。 另外一個比較大的影響是有一些工作量從平台產品轉移到了應用程式的開發設計人員。 比如說,在採用半結構化資料存儲的時候,開發設計人員需要處理資料的一致性問題。 還有,在雲計算平臺上如果想要得到比較好的性能,開發設計人員往往還需要對資料的分區進行特別設計,或需要採用一些並行設計的演算法等。

具有自我感知能力的應用

傳統的基礎架構或系統平臺中的資源都不能動態配置,因此應用程式在設計的時候主要考慮自身的業務邏輯的實現。 應用程式本身的監控和管理都是通過其他系統管理軟體如System Center,Tivoli等來實現。 有一些管理得比較好應用程式,可以通過這些系統管理軟體實現部分資源動態調整。 但是,這些傳統的應用程式本身對底層平臺的運行情況是沒有任何感知的。 隨著雲計算的出現,應用程式本身的自動化逐漸成為可能。 我把這些具有運行環境感知功能的應用程式稱之為「自我感知應用」(Self-Sensing Application)。

自我感知應用的出現是應用程式發展的一種趨勢,是自動化在應用程式運行過程中的一種體現。 在做傳統應用程式設計的時候,我們把主要的精力都放在功能性的需求方面,但是對於一些非功能性的需求往往採用手工配置的方式來實現。 雲計算平臺的出現使得計算平臺的資源具有可程式設計的特性,因此我們在應用程式的架構設計中可以通過基礎架構平臺的一些介面來感知應用程式的實際運行情況,並可以結合訪問情況對應用程式的運行資源進行動態調整,以實現完善的自動化程式運行。

雲計算平臺具有可程式設計的資源配置,因此我們還可以設定自動化的部署過程,也就是讓應用程式的可以自動化的完成應用程式的部署,升級等工作。 自動化部署也是應用程式動態擴展的一個前提。 這樣當需要更多計算實例來處理更多的使用者請求的時候,新的計算實例可以動態的生成出來並自動啟用。

自我感知應用是應用程式朝著成為具有獨立、自治單元的方式發展的一種體現。 應用架構師在做設計的時候,面對的是底層抽象的、幾乎無限的計算資源,而不是傳統意義上的物理資源。 從另外一個角度看這種設計方式也是應用程式與底層計算平臺松耦合的一種體現,從而使得應用程式不綁定具體物理硬體。 雲計算平臺從底層提供幾乎無限的計算、存儲和網路資源,其上的應用程式就像一個個具有人工智慧的獨立單元,他們在完成自身業務工作之外,還能夠具有自我管理和自我修復的功能。

123456下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.