前陣子美國的颶風造成AWS大跳電 [1][2],網路上怨聲載道[3],甚至一堆人又開始質疑Amazon與雲端運算可靠性[4],以及趁機推銷他們的Private Cloud[5],這些質疑都是合理的,也值得我們省思,但是我們不能因咽廢食就此遠離AWS甚至是Public Cloud,真正重要的是我們是否有任何災難復原計畫?是否有可以藉由架構的設計來減低災害造成的損失?所以我們今天要來談如何(
我真的好愛這隻劈腿狗(誤),我們都知道在感情上劈腿和腳踏多條船是不被允許的,但是在系統建置上,卻是只要能力許可,財力足夠,你越有錢你愈要腳踏多條船 (這正是Hybrid Cloud的精義!) ,因為你才可以把你的風險分散,而且還有很多等級的分散:
- 分散在 Amazon 同一個Region 不同的AZ (Availability Zone )
- 分散在 Amazon 不同的Region
- 分散在 Amazon 與 其他不同的IaaS provider
- 分散在Public Cloud 與 Private Cloud
光是分散還不夠,重點是軟體架構
讓我們來參考一下AWS官網提供的Reference Architecture,裡面就介紹一個HA的系統架構應該長成什麼樣子,圖中的範例是把同樣的系統部屬到同一個Region的兩個AZ,所以設計的重點有:
- 如何使用Load Balance 有效把流量導到不同AZ
- 如何把Service 設計成 Stateless 的,並且讓所有資料與狀態透過DB 來Sync
- 如何讓 DB 可以有效的 Replicate and Sync
而且說實在這些都還沒考慮系統安全性和系統效能問題呢...囧rz..
有興趣的人快回去翻分散式系統架構的書吧,另外可以參考這本書:Addison Wesley - Patterns of Enterprise Application Architecture
Reference
[1] Multiple Generator Failures Caused Amazon Outage
[2] After The Storm: Architecting AWS for Reliability
[3] Amazon Takes Blame for Outages, Bugs and Bottlenecks
[4] Amazon outage one year later: Are we safer?
[5] AWS Outage Proves It’s Better to Own Than Rent
沒有留言:
張貼留言