如果您爲輕鬆擴展設計分佈式應用程序,或者您只是想利用Amazon,Google或Microsoft的任何新「雲計算」產品,那麼你通常最終會使用一些典型的概念或組件:系統架構圖中的「雲架構」概念
- 分佈式BLOB存儲(又名S3)
- 異步,耐久消息隊列(又名SQS)
- 非Relational- /非事務數據庫(像SimpleDB,Google BigTable,Azure SQL Services)
- 分佈式背景工人池
- 負載平衡的,邊緣的服務流程處理用戶請求(通常虛擬化的)
- 分佈式緩存(如分佈式緩存)
- CDN(內容分發網絡等的Akamai)
現在當涉及到使用這種模式的設計和草圖架構時,有沒有我可以使用的任何常用符號?甚至可以下載一些很酷的Visio模板? :)
它不一定是一個像UML這樣的正式系統,但是我認爲如果存在每個人都知道並理解的符號,比如我們常用的數據庫或文檔形狀,那將會很棒。我認爲不要將其與傳統概念(如普通文件系統(本地或網絡服務器/ SAN)或關係數據庫)混合在一起非常重要。
簡而言之,我希望能夠通過查看系統體系結構概覽圖來得出有關應用程序的可伸縮性或數據一致性問題的一些結論。
更新:非常感謝您的回答。我喜歡在傳統符號上放置一個小型「雲符號」的想法。然而,爲了防止有人找到特定的符號(可能在某本書中) - 或者上傳了一些捲起來的Visio模板,我將此線程打開以防止;)
從高層次角度來看 - 爲什麼要劃分這樣的區別?數據庫是一個數據庫。我認爲一個帶有適當符號的「雲」會讓你意識到你的觀點。更詳細的觀點 - 查看實際結構,將有N臺機器聯網。 – jim 2009-02-04 14:17:52
「數據庫是一個數據庫」 - 我不這麼認爲。舉一個例子,分佈式數據庫當然可以擴展得更好,但它可能不如事務數據庫「確切」,它通常具有較少的功能(例如沒有連接)等。 – realMarkusSchmidt 2009-02-08 10:02:44