孫宇聰:評(píng)判云服務(wù)靠譜程度

2015-10-08 14:38:00 來源:coding.net 作者:佚名 人氣: 次閱讀 165 條評(píng)論

云服務(wù)真的靠譜嗎?相信對(duì)這個(gè)問題每個(gè)人心里都有不同的答案。我今天想講的是如何客觀的去回答這個(gè)問題,其中結(jié)合了Coding的一些實(shí)踐和思考。...

云服務(wù)真的靠譜嗎?

相信對(duì)這個(gè)問題每個(gè)人心里都有不同的答案。我今天想講的是如何客觀的去回答這個(gè)問題, 其中結(jié)合了 Coding 的一些實(shí)踐和思考。

云服務(wù) 云服務(wù)哪家靠譜 云服務(wù)哪家安全

廣義范圍的“靠譜” 有幾個(gè)比較重要的點(diǎn)。

第一個(gè)點(diǎn)就是 Availability (可用性),24x7隨時(shí)可用。一個(gè)靠譜的云服務(wù)一定是可用性非常高的。

第二點(diǎn)是 Access Control,可控性一定要好,非云服務(wù)你可以上個(gè)鎖,云服務(wù)如何能做到可控性很好,很難。

第三點(diǎn)是 災(zāi)難恢復(fù),是軟件就會(huì)有問題。怎么樣積極的面對(duì)這個(gè)問題,這是任何一個(gè)云廠商都要誠實(shí)面對(duì)的問題。

可用性

首先第一點(diǎn)我們看來講一下可用性,可用性只有一個(gè)評(píng)判標(biāo)準(zhǔn),就是 SLA,Service Level Agreement,更多的時(shí)候是 SLO, 只是 Objective。 一個(gè)東西是不是高可用,那么就問他幾個(gè)九,敢不敢拿出來說一下。

云服務(wù) 云服務(wù)哪家靠譜 云服務(wù)哪家安全

實(shí)實(shí)在在的看著這個(gè)圖說話,3個(gè)9基本上是國(guó)內(nèi)云服務(wù)的基礎(chǔ)線。也就是說**云服務(wù)至少要做到3個(gè)9才稱為基本上可用**,是合格性產(chǎn)品。如果是做不到這個(gè),你的東西就只是玩具,快回去好好把技術(shù)內(nèi)功修煉修煉再出來刷臉。從3個(gè)9邁向4個(gè)9,也就是99.99%的可用性,每年只有52.6分鐘的時(shí)間是不可用的。

以前的谷歌搜索可用度大概是全球5個(gè)9到6個(gè)9之間,每一個(gè)小節(jié)點(diǎn)都是5個(gè)9不到6個(gè)9之間。想想吧,這其實(shí)是很可怕的一個(gè)概念。**因?yàn)檫@里包含了可能發(fā)生的一切事故**,不管什么不可抗力,都是扯淡。地震、洪水、臺(tái)風(fēng)、大樓震塌了,也是5分鐘內(nèi)恢復(fù)服務(wù)。

相比之下,大部分國(guó)內(nèi)的IDC機(jī)房都是按照99%設(shè)計(jì)的,一年至少3天是不可用,這3天給你花在元旦一天,春節(jié)一天,國(guó)慶一天,省點(diǎn)時(shí)間給你機(jī)動(dòng)(笑)。這里不可用就是不可用,求爺爺告奶奶也照樣不能用。

所以說 SLO 直接反映一個(gè)云服務(wù)的靠譜程度:

從99%到3個(gè)9,是基本可以靠堆人和運(yùn)氣解決的;

從3個(gè)9到4個(gè)9,考驗(yàn)的是運(yùn)維自動(dòng)化的能力,災(zāi)備的能力;

從4個(gè)9往上基本考驗(yàn)的是服務(wù)基礎(chǔ)架構(gòu)、業(yè)務(wù)設(shè)計(jì)的能力。

我們也在3個(gè)9到4個(gè)9之間努力, 這個(gè)還是很有難度的。如果一個(gè)云服務(wù)廠商在注釋里加了句“不可抗力排除在外”,這是非常不合適的。

那么如何提升可用性:

Design For Redundancy, 第一是一定要做到所謂的**“無狀態(tài)微服務(wù)”**,去掉單點(diǎn)故障。 首先是“微服務(wù)”, 一個(gè)服務(wù)分解的越簡(jiǎn)單,出錯(cuò)的面就越小,失敗模式就越固定。然后是“無狀態(tài)”,這樣才可以做到無限擴(kuò)展。 這個(gè)很難的, 很多時(shí)候最后拆來拆去都發(fā)現(xiàn)有一個(gè)數(shù)據(jù)庫在最后,這個(gè)數(shù)據(jù)庫就做不到無狀態(tài),永遠(yuǎn)只能有一個(gè)數(shù)據(jù)庫,一個(gè)數(shù)據(jù)庫實(shí)例在那擺著,可用性永遠(yuǎn)上不去。

有了無狀態(tài)的微服務(wù)這種架構(gòu),還要做到 N+2。很多時(shí)候很多廠商連N都不知道(因?yàn)閺臎]有做過壓力測(cè)試,性能分析),何談N+2?

Design For Gradual Deployment, 第二就是要**支持灰度發(fā)布**。一個(gè)服務(wù)要前進(jìn),任何軟件組件都要改,都會(huì)改。更新操作會(huì)直接提高你系統(tǒng)出問題的可能性。想要提高可用性,**必須將發(fā)布的代價(jià)降低**。只有能夠做到說我上線一個(gè)新功能,只給某幾個(gè)用戶用,其他的用戶不受這個(gè)影響。這樣才能提高你整個(gè)系統(tǒng)作為一個(gè)整體的可用性,

Design for Clustering: 第三點(diǎn)是要**區(qū)分 Cluster management 和 App Managment 的概念, 把資源的調(diào)配和服務(wù)調(diào)配分開。**

云服務(wù) 云服務(wù)哪家靠譜 云服務(wù)哪家安全

Design for Automation ,最后一點(diǎn)是**自動(dòng)化**。一個(gè)靠譜的云服務(wù),從設(shè)計(jì)之初就把人的因素排除在運(yùn)行之外。整個(gè)系統(tǒng)應(yīng)該是全自動(dòng)化運(yùn)行的,不需要你人來干預(yù)。云服務(wù)初期買了二三臺(tái)個(gè)服務(wù)器,服務(wù)器放在那,有人天天盯著它才正常運(yùn)行,這還有可能,上了規(guī)模之后顯然是不可能的。這是最關(guān)鍵的一點(diǎn)。任何一個(gè)云服務(wù)到現(xiàn)在內(nèi)部都是非常復(fù)雜的,他就像這個(gè)漫畫里邊這樣,每一個(gè)人操作它的時(shí)候,面前有無數(shù)的按鈕,無數(shù)的可能性。除了問題之后,如果讓一個(gè)人馬上搞清楚弄明白立刻解決,這是不可能的,只能自動(dòng)化。

而且其實(shí)更多的時(shí)候都是人的操作帶來的問題,更新一個(gè)軟件,更新一個(gè)服務(wù)器都不可避免的有人要參與。如果不做自動(dòng)化,早晚會(huì)出問題。

云服務(wù) 云服務(wù)哪家靠譜 云服務(wù)哪家安全

任何的靠譜的云服務(wù)廠商至少要做到以下幾點(diǎn):

第一個(gè)SLA一定要達(dá)到4個(gè)9,你達(dá)不到這個(gè)4個(gè)9基本上相當(dāng)于你這個(gè)服務(wù)就是一個(gè)玩具,根本沒有辦法依賴你。

第二個(gè)是一個(gè)數(shù)量級(jí),甚至兩個(gè)數(shù)量級(jí)以上的預(yù)研。

第三就是 Automation 自動(dòng)化。這就是實(shí)踐中的一個(gè)經(jīng)驗(yàn)。

您可能感興趣的文章

相關(guān)文章