我們曾經見到過的,或者與客戶和雇主討論過的。我們的目的是通過與你分享這些,給你一些各種可能的實現的樣本,不要認為這就是所有的實現方法了。實現和利用網格計算基礎設施的方法有很多。當所有人都熟悉了網格后,你和你的團隊一定能夠提出大量可以從這種架構受益的項目,然后你只需權衡這些項目使用網格的優缺點,就可以確定哪個項目真的值得實現了。在擴展應用時,網格計算是一種重要的工具,既可以利用網格對生產環境中的某個程序進行經濟有效的擴展,又可以用它來加速生產開發周期中的某一步,如編譯。并不是只有生產環境需要可擴展性,支持它的流程和人員也需要有可擴展性。當你讀這些例子的時候,要時刻記住這一點,同時不妨思考一下網格計算可以如何幫助你進行擴展。
我們準備介紹四個例子,用來說明網格計算的各種用法,包括在網格上運行生產環境、使用網格進行編譯、在網格上實現部分的數據存儲倉庫環境以及網格上的后臺辦公處理。我們知道還有更多可能的實現方法,但這些示例應該能夠給你足夠的啟發,讓你用來啟動自己的頭腦風暴會議了。
1. 生產網格
第一種用法示例當然是在生產環境中使用網格計算了。對于那些要求實時用戶交互的應用(如SaaS公司的應用)來說,不太可能這樣使用網格。但對于某些IT組織來說,它們的應用中具有非常復雜的數學運算,如用于控制制造流程或航運控制等,這時網格計算就非常適用了。由于歷史原因,許多這樣的應用都駐留在大型機或中端系統中。許多技術組織都發現,無論是從供應商還是從軟件開發的角度來看,要支持這種又大又老的機器,都是非常困難的,F在越來越少有工程師知道如何在這種機器上編寫或者運行程序,也越來越少有人愿意放著Web程序開發技術不學,而學習這種技術。網格計算環境為這種陳舊的技術同時提供了機器的支持和軟件開發的支持。把應用從一一臺戰
略性硬件上遷移到運行在許多同質化硬件上的網格中,就能減少你對一個供應商的支持和維護的依賴性。網格不僅能為你制衡供應商,還可能會為你的組織極大地節省成本。同時,你應該很容易找到經過培訓的工程師和管理員,他們知道如何運行網格,至少你也能找到些員工,愿意去學習一些新技術。
2.編譯網格
下一個示例是把網格計算基礎設施用作編譯機。如果你的應用在你的臺式機上編譯也只需花費幾分鐘,這樣做未免有點大材小用,但也有許多應用如果運行在一一臺主機或開發者的機器上,要編譯完整個代碼庫,可能需要幾天的時間。這時使用編譯場或網格環境,編譯就會變得非?旖荨>幾g很適合采用網格來做,因為編譯工作可以被劃分成許多子任務,而且它們都能被非順次執行。編譯后期的工作(包括連接)開始變得比較有順次性,因此不能在網格上運行,但早期階段還是很適合分工的。
大多數公司每晚會編譯出一個簽人代碼的可執行版本,這樣需要測試這個版本的人就都能夠訪問它,此外還可以確保代碼真的被編譯成功了。如果不知道簽人代碼是否被正確編譯了,那么在質量保證工程師測試這個版本之前,就需要軟件開發工程師花費幾小時(甚至幾天)的工作來修復它。如果每天都不能編譯成功,都要等到最后一步才能讓這個版本運行,這樣會給軟件開發人員造成延遲,很可能會使軟件開發人員不簽人代碼,直到最后才簽人一次,這樣會增加丟失工作成果的風險,還會在代碼中引人很多bug。每晚都編譯代碼庫中的源代碼,就能避免這些問題。晚上可以用于編譯的空閑資源是測試環境。它們通常只在白天使用,晚上可以占用它們,從而增加了編譯機器。這種CPU拾遺的概念我們之前討論過,這只是它的一種簡單實現,能夠幫助你節省許多硬件方面的成本。
對于C、C++、Obiective C、Objective C++語言來說,要實現一個分布式的編譯流程,只需要運行distcc即可,正如它的站點( hp://ww/.distcc.org)所聲稱的。這是一個快速的、 免費的編譯器,只需在編譯網格中的所有服務器上運行istcc后臺進程,把這些服務器的名字存放到一個環境變量中,然后啟動編譯進程即可。
3. 數據倉庫網格
我們要介紹的下一個例子是把網格用作數據倉庫基礎設施的一部分。一個數據倉庫有許多組件,從主源數據庫到用戶查看的最終報告,不一而足。一個可以利用網格環境的部分是數據倉庫的提取一轉換一加載( ETL )過程中的轉換階段。ETL流程指的是如何從主源數據庫中提取數據,然后把數據轉換為不同的形式(通常是非規范化的星型模式),再把它們加載到數據倉庫中。其中,轉換的步驟可能需要大量的計算,因此是利用網格計算能力的主要候選者。
轉換流程可以只是使數據非規范化,也可以是匯總幾個月來上千個交易的銷售數據。像匯總幾個月甚至一年的數據這樣需要高強度計算的處理,通常會被分解成幾塊,分配給一組計算機運行。這樣做是非常適合網格環境的。數據量過大通常是造成不能按照客戶或內部用戶要求按時完成作業(如ETL)處理的原因。當然,你應該考慮如何限制你要保留和處理的數據量,但你所希望得到達到流量猛增,也可能會導致大量的數據增長。一個解決方案就是為ETL實施一個網格基礎設施,以便及時完成這些工作。
4 .后臺辦公網格
我們想介紹的最后個例子是后臺辦公處理。在大多數公司中,這樣的后臺辦公處理的一個示例發生在每月財務結算時。這個時候通常有大量的處理、數據匯總和計算。通常這是由企業資源規劃(ERP)系統、財務軟件包、自主研發的系統或這些系統的組合來做的。如果系統不是專門被設計為在網格上運行,那么用這些現成的系統在網格計算基礎設施上進行處理,可能會非常困難,雖然不是沒有可能。通常非常大的ERP系統都能夠進行很多定制和配置。如果你曾經負責過這樣的處理,或者等待這種處理結束等了幾天,那么你一定會認同我們的觀點,即在幾百臺主機上運行這個處理,在幾小時就完成它,這是一種劃時代的進步。有許多后臺辦公系統都需要高強度的計算,而且只在每個月末處理一次。 這些系統包括開發票系統、再訂購系統、資源規劃系統以及質量保證測試系統。你可以以這些為出發點,列出那些潛在的可能改進的地方。
在網格上運行生產環境、使用網格進行編譯、在網格上實現部分數據倉庫環境以及在網格上進行后臺辦公處理。我們知道還有許多可能的實現,這里只是給你提供一些例子,你可以利用它們提出自己的應用使用網格計算的方法。之后你就可以分析這些網站設計方法的優缺點,并賦予它們權重。