企業架構師需要注意的五個重要趨勢
譯文【51CTO精選譯文】眾所周知,互聯網的結構正在影響著企業的架構。本文嘗試著總結一些互聯網領域的***趨勢,這些趨勢似乎有著足夠的能力來改變企業的結構。不用贅述,這幾個趨勢列舉如下:
#t#1、REST:表述性狀態轉移結構模型可以讓互聯網以全局擴展的基本元素為基礎。詳細的解釋其基本原理和優勢完全超出了本文的范疇。如果你的工作需要你不斷了解一些新興的趨勢,以及這些趨勢是否適合你的企業架構需求的話,那么這個趨勢是一定要探究的。
影響面:基于網絡的結構、面向服務的結構、借由簡單的HTTP URIs和最小化集成過程實現的數據和處理請求(資源)的廣泛可用性和即時可用性。
2、可互用的云:具有互用性的云是指能夠創造一個私有云,同時也能利用公共云的能力。這已經成為可能了:比如Ubuntu Enterprise Cloud,它允許你建立私人云或者使用公眾云(比如Amazon EC2),同時由于開源的成就(比如Eucalyptus),你能夠使用同一組API程序訪問他們。這讓你在一開始可以選擇使用隨便哪一種(私有云或者是公共云),如果有需要可以隨時再轉換到另一種云,或者能夠同時使用這兩種云,增加了靈活性。
影響面:大型服務器vs廉價服務器簇、虛擬化、彈性部署、靈活的硬件采購/供應、組織層次方面的基礎設施管理。
3、NoSQL:雖然我不喜歡這個名字,但是這個NoSQL趨勢一直就有。這涉及一系列現在可用的、不受很多RDBMS要求限制的存儲數據選擇(比如靈活規劃、鍵值對,等)。當有人要求你走向最終統一性(eventual consistency)的時候,一些數據庫還允許你以分布方式在很多服務器上存儲數據,以此來支持頻繁寫操作的高可用性。當別人要求你滿足一系列不同的挑戰時,這些選擇增加了你作為一個架構師的機動性和靈活性。
影響面:關系數據庫、數據存儲策略、數據分布策略、縱向vs橫向擴展、交易化、一致性和可用性。
4、使用多種語言:開發成本在總成本中所占的百分比在增加,開發時間也日益成為影響上市時間的主要因素,因此現在軟件快速變化和快速適應新要求的能力是成功的關鍵。解決方法之一是軟件不同的部分使用不同的語言來寫,每種語言對于相應的部分來說都是最恰當的適合簡潔快速的語言,同時每種語言對于相應的軟件部分能夠支持快速的反映變化。因此,可以想象,在JEE平臺基礎上的一個軟件會使用JRuby語言編寫的DSL寫某些商業規則,而用Clojure語言寫算法。
影響面:開發文化和過程、最少的開發技術和擴展性、管理所需的風險管理vs現有的技術。
5.分布式處理:由于那些導致越來越分散的分布式處理(包括REST和NoSQL)技術的發展,應用程序需要成為一套互相協作的基于網絡的組件(我們之前也通過接觸分布式對象了解過)。然而尤其是考慮到這種結構不太能保證提供即時保障處理、延遲問題、分布式控制和異步處理,一種特殊的業務邏輯可能通過許多交錯的組合元件來得到滿意的效果。雖然它可能有助于分布式對象版本的發布和簡化獨立部件的開發,在數據流通方面卻帶來了更高的挑戰。雖然那些由MQ系列支持的異步功能已在企業中使用多年,但是我卻希望在企業中越來越多的使用較簡單的消息構造,比如PubSubHubbub(編者注:這是Google的兩名員工帶來的一個相當酷的新協議)。
影響面:應用程序分組、基于網絡的器件、支持全部工作流程同步的困難。
原文:Five Important Trends on the Enterprise Architect's Radar
作者:dnene