雲端計算參考架構幾例
雲端計算參考架構:
上圖闡釋如何建立私有和混合雲,終端使用者可以自行提供計算、 儲存和網路。許多大型組織開始建立內部的私有云,來增強其資料中心戰略。
58同城的雲架構:
百度社群的雲架構
結合對彈性服務的理解,第一個是彈性伸縮,你讓你的業務隨著你的效能,隨著你的流量,隨著業務的變化自動的伸縮流量,這是第一個點。第二個點是我能夠自動的遮蔽異常處理,我的機器出問題的時候,對業務是透明的,也是沒有影響的。
有道筆記 雲架構:
在整個雲端儲存系統中,可以採用的開源技術,主要開發語言有:C、PHP、Erlang、Python,開源產品有:Nginx、GraphicsMagick
需要考慮的技術平臺:
o-> Java平臺
> Grails模仿Rails的Java平臺實現
> Java_web 普通Java web程式
> Lift基於Scale的web框架
> Spring 流行的Java框架
o-> Ruby平臺
> Rails3 一站式的Ruby Web框架
> Sinatra 極簡主義的Ruby Web框架
o-> Python平臺
> Django 最流行的PythonWeb框架
> Wsgi Python的CGI
o-> 其他平臺
> Static page 靜態頁面
> php
> standalone 獨立的程式
儲存
×-> DB
- Mongodb 最流行的Nosql資料庫
- Mysql傳統開源關係資料庫
- Neo4j圖資料庫
- Redis極快的記憶體KV資料庫
×-> 儲存
- Atmos EMC專業儲存
- FileSystem 遠端NFS支援
- Vblob 提供Amazon S3支援
×-> 其他
- RabbitMQ 出色的Erlang佇列系統
雲端計算系統架構的四個方面有怎樣的影響:
- 可擴充套件性:我能否增加資源以處理增加的需求?
- 可用性:我的應用能否容忍短暫的和持久的故障?
- 可管理性:我是否有辦法瞭解生產系統的健康和效能?
- 可行性:我能否在時間和成本預算之內構建和維護這個系統?
可擴充套件性
可擴充套件性來自於兩個方面:資源和密度。能力是指增加額外的硬體,它可能微不足道(在一個負載均衡器後增加額外的網路伺服器)也可能非常地困難(增加一個次要的資料庫伺服器)。密度是指你能以怎樣的效率去使用已經擁有的能力。傳統的效能調優可以大幅地增加密度。
可度量的資源
可度量的資源是某些需要小心監控的東西。舉例來說,資料庫連線就是一種可度量的資源。作為一種有限的資源,濫用它就會大幅度地降低密度。其他可度量資源的例子還包括認證伺服器和第三方網路服務。這些有時被稱為“隱形的資源”,因為開發人員設計架構時經常會忽略掉它們。
通過佇列負載均衡
上傳時的峰值可能會成為問題,尤其是在那些針對大量讀取工作負載優化過的系統上。一種降低這種峰值的方式是,通過使用佇列以等待時間交換可用性。 在這種方案下,新資料在資料庫中不是同步儲存的。相反,它們會被放到一個佇列中,這是個後臺程序監控器。這個後臺程序可以使負載趨於平滑,以便資料庫始終會被使用,而不是某些時候忙,其他時候閒。 使用佇列的其他好處是可以批量處理那些工作。一般來說,把資訊批量寫入到資料庫中要比一次一條記錄快得多。
最後要說的是,這還增加了解耦點。後臺程序或資料庫可以宕掉,完全不會影響前端應用接受新資料的能力。
改善訊息佇列的可用性
如果過多的訊息是被同時接收的,可以使用輔助的訊息佇列去儲存過量的部分。為了做到這一點,你需要設計應用能夠支援多個佇列,即使最初你打算只部署有一個佇列的應用。
記錄錯誤的資料
大多數開發人員都很清楚需要去驗證資料,但是當驗證失敗的時候,他們不知道做什麼。僅僅棄掉資料和丟擲錯誤是不夠的。應該把錯誤的資料以它原有的格式記錄下來,以便開發人員能夠斷定為什麼會有這種錯誤的請求。
您可能感興趣的文章:
如有想了解更多軟體,系統 IT,企業資訊化 資訊,請關注我的微信訂閱號:
作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
該文章也同時釋出在我的獨立部落格中-Petter Liu Blog。