難以同時共享第一個缺點是難以同時 共享網格計算的基礎設施,雖然這并不是不可能實現。當然,有些網格非常大,它們有尾夠的產能,能夠同時運行許多應用,但事實上這些應用還是運行在獨立的網格環境中,只是主機在某個特定時間段被重新分配了而已。例如,如果我有一個由100自主機構成的網格,那么我就能分別在10臺主機上運行10個應用。雖然你可以把這種做法看作基礎設施共享,但正如我們在前面優點一節中所說的,這不是在同時共享基礎設施。在同一臺主機上運行多個應用實際上違背了網格基礎設施進行大規模并行計算的初衷。
網格并不適合多個租戶共享的基礎設施。在網格上運行,是為了并行化應用,提高應用的計算帶寬。在網格環境中,共享和多租戶操作可以順次發生,一個要在另一個之后執行,每個應用都是獨立運行的,當一個作業完成之后,再執行下一個作業。這種類型的調度在運行大規模并行處理的系統中很常見,進行這種處理的基礎設施通常被設計為能夠被同時使用來計算大型問題集。對你來說,這就意味著你的應用和系統必須具有靈活性,要么可以根據需要開始和暫停處理,要么可以定期地在固定的時間運行,通常是每天一次或每周一次。由于應用需要基礎設施才能運行,所以它們通常被安排在某個時間窗內運行。如果一一個應 用運行的時間超出了這個時間窗,可能是由于需要處理的數據增加了,那么就必須重新安排-一 個時間窗讓這個應用繼續處理數據,否則其他所有作業都會被推遲。
不適用于單一-應用我們看到的網格計算基礎設施的下一個缺點是它不適用于單一應用。事實上,如果你不能把應用劃分為能夠并行運行的組件,那么網格對于處理就毫無幫助。在網格上運行單一應用,對它的吞吐量沒有任何提高。由于單- -應用可以被 復制到多臺服務器上,如X軸劃分所示,所以增加服務器就可以提高單一應用的產能。正如我們在討論安達爾定律時所說的,一個程序中非串行性部分會從并行化中受益,而程序的其他部分則得不到什么好處。程序中必須順次運行的組件是不能被并行化的。
增加了復雜度我們看到的網格計算的最后一個重要缺點是網格基礎設施的復雜度高。托管和運行一個應用,本身已經夠復雜了,因為通常需要考慮這個應用與用戶的交互、與其他系統的交互、與數據庫的交互、與硬盤存儲的交互,等等。把這種復雜度已經很高、非常不穩定的環境再放置到網格環境之上,它就會變得更加復雜。網格并不只是另一組主機而已。在網格上運行,需要一套專用的操作系統,用于管理各種事務,如哪個主機處理哪個作業,在一個作業中間如果一個主機死機了應該怎樣處理,在執行一一個任務時主機需要什么數據,在處理結束后收集處理的結果,刪除主機上的數據,把結果匯集在一起,如此等等。這樣無疑會增加很大的復雜度,如果你曾經調試過在多臺服務器上運行幾百個實例的應用,那么你可以想見調試一個在幾百臺服務器上運行的應用的難度。
網格計算的缺點
我們已經列出了網格計算的三個主要缺點,它們排名不分先后,而且這里也沒有列出所有的缺點。還有許多其他網格計算的缺點,不過這三種是把網格計算引入你的基礎設施時你會遇到的具有代表性的缺點。
●難以同時共享。如果不舍棄在網格上運行得到的某些好處,就不能同時共享網格計算基礎設施。這就意味著通常需要預先做好作業和應用的調度,而不能一經要求就運行。
●不適用于單一應用。如果你的應用不能被劃分為較小的任務,那么在網格上運行可能幾乎得不到任何好處。要利用網格計算基礎設施,你需要把應用劃分成能獨立運行的非順次執行的任務。
●增加了復雜度。在網格環境上運行,可能會給你已經比較復雜的應用增加更大的復雜度。如果發生了問題,不論這個問題是來自你應用代碼中的一個bug,還是來自運行應用的環境,調試都會變得更加困難了。
以上是把網格計算系統集成到你的基礎設施中的三個缺點。同樣,每個缺點的重要性取決于你的應用和實現。
這些是我們看到的把網格網站制作計算基礎設施集成到你的架構中的主要利弊。如前所述,這些優缺點的重要性是由你特定的應用或技術團隊決定的。例如,如果你有一個強大的運營團隊,具有豐富的使用和在網格基礎設施上運行的經驗,那么網格帶來的復雜度增加,對你來說可能就不成問題了。如果你沒有這樣的運營團隊,你的團隊中也沒有人可以支持在網格上運行的應用,那么這個缺點可能就會讓你停滯不前。
如果你仍然對如何使用網站制作網格計算基礎設施感到疑惑,可以考慮在哪里使用網格。雖然你會讀到一些不同的設想,但要時刻記住前面介紹過的網格的優缺點,因為它們才是影響你決定是否開始投人一個類似項目的因素。
本文地址:http://123beaconmarketing.com//article/3905.html