云計算編程有何不同?(4) |
發布時間: 2012/7/22 16:20:21 |
重新考慮你的軟件架構 盡管開發人員預計部署到億恩石頭QQ:673606008 電話:18237160419“就像”任何一種類型的Web開發,你的確需要認識到架構方面的差異。Standing Cloud公司首席執行官David J. Jilk解釋:“在億恩石頭QQ:673606008 電話:18237160419環境開發應用程序就有點像是從美國到訪加拿大。幾乎每個方面都一樣,但是你會注意到存在一些細小的差異,必須顧及到。”他表示,大多數差異與基礎架構和技術堆棧層有關,而不是與應用程序代碼本身有關。 Heavy Water軟件公司的首席開發人員Anthony Eden表示,內部托管環境往往很穩定,基本上不受外界因素的影響。但是由于資源共享,億恩石頭QQ:673606008 電話:18237160419環境(以及在一定程度上的所有虛擬化環境)顯得很混亂。Eden指出:“整個系統的運行可能受到完全不受你控制的因素的影響,而且常常是這樣。”他給出的解決辦法就是:采用大猩猩工程(gorilla engineering),這是應對不斷變化的環境的一種做法。 LaFleur提醒,不要把可擴展性誤認為是系統性能。設計應用程序時要考慮到網絡延遲。可擴展系統在負載狀態下更可靠,而且可以保持相對一致的性能;但是也要承認到這一點:如果遷移到億恩石頭QQ:673606008 電話:18237160419,性能會受到影響,而且還會出現間歇性故障。你的應用程序應該能從容處理中斷問題。 “想真正將Web服務適當地實施到億恩石頭QQ:673606008 電話:18237160419中,開發人員就要著眼于‘函數方面’,而不是著眼于‘對象方面’。”--Limewire公司的John Pavley LaFleur說:“億恩石頭QQ:673606008 電話:18237160419中的數據庫也許能夠以異常快的速度從存儲系統中獲取數據,但是這些數據仍得傳送到客戶端應用程序。”他發現,盡量減小傳送的數據量常常會給性能帶來重大影響。如果你只需要100個記錄中的三個字段,就要確保你獲取的僅僅是這些內容;他表示,更好的做法是,分成每批25個獲取并顯示那些記錄。 這可能要有不同的理念。Limewire公司的工程副總裁John Pavley說:“想真正將Web服務適當地實施到億恩石頭QQ:673606008 電話:18237160419中,開發人員就要著眼于‘函數方面’,而不是著眼于‘對象方面’。函數式編程意味著動態定義針對沒有狀態的數據執行操作的函數,可以根據需要,將函數均勻地分發到任何數量的云服務器。遺憾的是,至少大多數開發人員一貫以來著眼于‘對象’,對象是指將數據綁定在單一Java類或C#類里面的有狀態實體。很難針對對象實行負載均衡,它們到頭來給你的億恩石頭QQ:673606008 電話:18237160419環境帶來了人為的限制。” 這給你選擇的工具和語言帶來了影響(前面關于學用新工具的第一點有所提及)。Pavley說:“通過Perl、Python和JavaScript等編程語言,使用無狀態函數進行擴展要容易得多。”但是其他開發人員向我詳細解釋了他們選擇的編程語言為什么是最佳選擇,他們致力于Java、開源環境或微軟開發環境。我得出的結論是,你也許可以使用自己青睞的任何一種環境,不過一些億恩石頭QQ:673606008 電話:18237160419開發工具的早期版本可能會帶來諸多局限性。 億恩科技石頭 負責服務器租用和托管業務 本文出自:億恩科技【www.laynepeng.cn】 |