終於有人講清楚了什麼是雲端計算的業務永續和多活

發表於2016-07-19

(題圖來自:ascenty.com)

從蘋果供應鏈的業務永續說起

每次蘋果出新機,全球各地旗艦店就大排長龍統一發售,堪稱全球化的一景。有沒有想過,iPhone 是怎麼保障全球消費者能在一天內買到幾百萬部手機的?

(圖片來自:applemagazine.com)

很簡單:同時用多個供應商。蘋果供應鏈非常發達,僅組裝廠全球就有 18 家,如富士康 7 家、廣達 3 家、和碩 2 家。而在每個零部件環節也都會有多個供應商支援(用了哪幾家供應商都成了新聞)。並在產品層面採取了統一標準,確保哪怕地震、洪水也能按時交付同樣質量的產品。 

反過來說,一些較小的手機廠商經常因為“泰國洪水”、“日本地震”、“臺灣斷電”而無法正常發貨。 

用網際網路行業的話來說,蘋果做到了“業務永續”。而其它手機商出現了典型的“單點故障”導致的“停擺”。

小結:供應鏈出現問題就會影響到品牌形象。所以業務永續是你和客戶之間的約定,“多個供應商”是你做到這個約定的手段之一。 

而方法呢?業務永續首先是架構設計層的職責。儘可能消除單點故障風險,做好關鍵節點的冗餘。換成人話就是:想好可能出現問題的地方,做好準備,比如說多備點存貨,用多個供應商,避免出現一個天災人禍你就跪了的局面。

雲端計算故障了,但為什麼有的網站沒掛

供應鏈不是製造業獨有的,網際網路行業也是如此。雲端計算可以看作是很多公司的供應商,當它當機時,有很多公司也會受到影響。

比如說,去年 AWS 弗吉尼亞節點當機,導致包括 Netflix、Airbnb、Product Hunt、Medium、SocialFlow、Buffer、GroupMe、Pocket、Viber 和亞馬遜 Echo 等停擺。而國內雲端計算廠商也遭遇過雷擊、挖掘機、斷電等多種問題。

(圖片來自:evidantly.com)

雲端計算出現當機當然是導致網站停擺的導火索,持續提高穩定性是雲端計算公司該承擔的責任沒跑。但大部分人沒有看到的是,同樣是這個節點故障,卻還是有很多網站並沒有掛掉。真正該問的問題是,為什麼有的掛了而有的沒掛!

“因為不僅僅是在弗吉尼亞有伺服器,一出問題我就切到另一個節點了。”狡兔三窟的客戶都是這麼回答的。“雲端計算廠商只承諾全年 99.999% 的時間是可靠的,剩下的時間要看運氣了。如果我只是依賴一個節點,它掛我就一定會掛掉,就會影響品牌形象。”

可能會出問題的就必然會出問題,這就是墨菲定律。除了自己應用層的可靠性,在基礎資源上索性就在不同的“可用區”(AZ)、“地域節點”(Region)都做一些部署。一些大型的公司甚至是在不同的雲端計算廠商之間都做了準備。

雲端計算公司為什麼不做“異地多活”

還有人好奇,為什麼 AWS 和阿里雲會出問題?雲端計算不也是“異地多活”嗎?

這裡有個致命的錯誤,雲端計算行業尤其是 IaaS 層一般會提供一個可用性指標(SLA),例如說 99.999%,即承諾全年有這個概率是可用的。而比如淘寶為了實現業務永續做了一個技術方案“異地多活”,這是它對於自己消費者的承諾(保證買買買不停)的實現手段。淘寶用了多個 99.999% 的節點同時執行,只要不是這些節點同時掛,它就不會掛。(不用說,難度很高也很貴)

它們之間的關係是:消費者——>亞馬遜網站、淘寶——>(雲端計算 1 + 雲端計算 2 + 雲端計算 3)。雲端計算 1、2、3 隨意掛掉一個都不會影響業務的穩定。

也就是說靠譜的雲端計算廠商會告訴你自己服務能力的邊界和極限是什麼,使用它們的時候要根據它們的能力來規劃自己的業務設計,以達到自己的業務永續。

打個比方,你把女朋友的照片同時放在 iCloud、電腦、行動硬碟裡,只要不是 3 個同時丟失,你女朋友的照片就不會丟。但如果只存了一個地方,不幸又丟失了,那你說該怪誰?

總結

  1. 業務永續是你和客戶之間的約定,“高可用性”首先是架構設計層的職責
  2. 雲端計算行業不存在“異地多活”的說法,一般只承諾 99.999% 的可用性(SLA)
  3. 但你可以用多個雲端計算節點來設計出 100% 業務永續的方案 

關鍵看你有多關心使用者,錢有多少。

相關文章