摘要:網(wǎng)絡(luò)可用性更多的會依賴電信運(yùn)營商的服務(wù)能力。目前網(wǎng)絡(luò)接入支持電信聯(lián)通教育移動等,真正實(shí)現(xiàn)了國內(nèi)大的運(yùn)營商網(wǎng)絡(luò)的覆蓋,這在國內(nèi)是很罕見的。
從上面三者關(guān)系看出,服務(wù)的可靠性、可維護(hù)性越高,可用性就越高。這就要求我們在服務(wù)開發(fā)和管理中做到:提高服務(wù)系統(tǒng)的穩(wěn)定性、改善軟件的可管理性和可維護(hù)性。
?
對于SAE云計算平臺而言,可用性包含三個方面:SAE自身服務(wù)可用性、網(wǎng)絡(luò)可用性、SAE平臺上數(shù)據(jù)可用性。
?
二、如何打造高可用的平臺 1、軟件設(shè)計和系統(tǒng)架構(gòu)軟件是互聯(lián)網(wǎng)服務(wù)的載體。良好的軟件對于服務(wù)的可用性至關(guān)重要。從可用性定義來看,我們在軟件設(shè)計時,既要考慮可靠性,又要考慮可維護(hù)性。
?
可靠性:這主要體現(xiàn)在軟件本身的穩(wěn)定性和容錯性上。軟件的穩(wěn)定性很大程度上取決于代碼質(zhì)量,設(shè)計再優(yōu)良的系統(tǒng)都有可能在實(shí)現(xiàn)上質(zhì)量控制不好而導(dǎo)致失敗。軟件的容錯則主要體現(xiàn)在兩個方面:避免單點(diǎn)的高可用設(shè)計和自治獨(dú)立原則。軟件系統(tǒng)要做到足夠健壯,在發(fā)生一些硬件或網(wǎng)絡(luò)故障時就需要能夠做到冗余,繼續(xù)提供服務(wù)。即發(fā)生故障的次數(shù)足夠低
?
比如某個服務(wù),可能有3個系統(tǒng)單元。每個單元都不應(yīng)該存在單點(diǎn),某個服務(wù)器宕機(jī)不應(yīng)當(dāng)導(dǎo)致服務(wù)不可用。由于IDC故障的頻繁,現(xiàn)在越來越多的設(shè)計在考慮當(dāng)某個IDC不可用時,服務(wù)要能夠繼續(xù)提高服務(wù),即跨IDC機(jī)房的高可用。另外軟件設(shè)計時要求足夠自治獨(dú)立,不可過多依賴網(wǎng)絡(luò)和其他服務(wù)單元,對于互聯(lián)網(wǎng)服務(wù),阻塞是較大的敵人,在一個系統(tǒng)中由于一個微不足道的連接阻塞,而導(dǎo)致整個系統(tǒng)服務(wù)不可用,這樣的例子實(shí)在是太多,所以對于互聯(lián)網(wǎng)服務(wù),需要牢記:服務(wù)要足夠自治獨(dú)立,避免阻塞。
?
下圖簡單說明了SAE平臺的負(fù)載均衡服務(wù)是如何避免單點(diǎn)故障的。
可維護(hù)性:軟件要易于管理維護(hù),能夠和現(xiàn)有的運(yùn)維系統(tǒng)整合,比如說配置管理、日志管理等,避免自立規(guī)范。軟件的管理維護(hù)簡單,對于發(fā)生故障時縮短恢復(fù)時長是有重要幫助的。
?
2、服務(wù)實(shí)施時引入破壞測試好的軟件設(shè)計開發(fā)完成后,在部署環(huán)節(jié),一定要實(shí)際測試在設(shè)計時定下來的目標(biāo),比如說避免單點(diǎn),就需要部署時,實(shí)際去破壞。對其他各種容錯的處理是否真的到位。我們常見的做法是關(guān)機(jī)測試、重啟檢驗(yàn)服務(wù)自恢復(fù)能力、拔網(wǎng)線等測試,同時觀察軟件系統(tǒng)是否運(yùn)行正常。這主要仍然是圍繞服務(wù)可靠性進(jìn)行測試。
?
3、實(shí)時的、立體的、可視化監(jiān)控一個服務(wù),除了自身軟件外,還包含了監(jiān)控,監(jiān)控應(yīng)當(dāng)視為服務(wù)的一部分。服務(wù)上線一定是包含了監(jiān)控。監(jiān)控是較好的質(zhì)量保證措施。SAE平臺在Alpha版上線時就有了各種監(jiān)控,監(jiān)控是平臺不可分離的一部分。對于監(jiān)控,我們積累了一些經(jīng)驗(yàn).
?
實(shí)時:要能夠及時發(fā)現(xiàn)問題、搶在用戶的前面發(fā)現(xiàn)問題
?
立體:這要求我們的監(jiān)控是多層次的立體式的,立體監(jiān)控較大的好處是快速定位故障原因,有助于快速解決問題。畢竟同樣的現(xiàn)象,背后可能有很多種可能。我們的監(jiān)控包含:系統(tǒng)監(jiān)控(負(fù)載,磁盤IO等)、網(wǎng)絡(luò)TCP三次握手監(jiān)控(只要節(jié)點(diǎn)之間發(fā)生網(wǎng)絡(luò)關(guān)系的都需要監(jiān)控)、服務(wù)自身可用性監(jiān)控、錯誤日志趨勢監(jiān)控(當(dāng)服務(wù)的錯誤數(shù)量突然增加時可以捕捉到)
?
可視化:這是從監(jiān)控工具的易用性而言??梢暬佑欣诎l(fā)現(xiàn)和分析問題。
?
自我恢復(fù):這主要體現(xiàn)在服務(wù)監(jiān)控里。服務(wù)的監(jiān)控包含兩個部分,首先是根據(jù)服務(wù)所承諾的各項(xiàng)功能的黑盒測試,這主要是模擬用戶發(fā)起。其次是服務(wù)所在的節(jié)點(diǎn)上有部署自我檢查自我修復(fù)的程序,當(dāng)自我診斷認(rèn)為有故障時,程序會嘗試多種恢復(fù)方法。這極大降低了故障服務(wù)時長,有效提高了服務(wù)可用的時間。SAE平臺底層有這樣一套系統(tǒng)在不間斷地運(yùn)行。
?
報警:監(jiān)控是為了更快發(fā)現(xiàn)問題,能夠自動處理的讓機(jī)器自動完成,不能自動完成的就需要人工處理,這就需要有報警機(jī)制。SAE內(nèi)部開發(fā)了一個叫“報警網(wǎng)關(guān)”的系統(tǒng),所有的監(jiān)控都是直接對接該報警網(wǎng)關(guān)。網(wǎng)關(guān)的優(yōu)點(diǎn)是可以做分析、排重,并且是有上下文的報警。我們報警的原則:過猶不及。當(dāng)運(yùn)維人員收到過多報警,并且包含了大量的誤報時,這樣的報警時沒有價值的,要堅決抵制。
?
故障響應(yīng):相關(guān)人員接到報警后,根據(jù)故障級別進(jìn)行響應(yīng)。
?
嚴(yán)重故障,影響到平臺的穩(wěn)定運(yùn)行,白天要求5分鐘內(nèi)響應(yīng),夜間15分鐘響應(yīng)。
?
次級故障,不影響應(yīng)用的運(yùn)行,但可能影響到用戶的管理和使用白天要求15分鐘響應(yīng),夜間要求2小時響應(yīng)
?
警告級別故障,這種報警不影響服務(wù),不影響使用,但需要提示有隱患。白天要求1小時,夜間不要求響應(yīng),但要求早晨立刻處理,避免故障升級。
?
快速的故障發(fā)現(xiàn)、自我修復(fù)和故障響應(yīng),是在故障一旦發(fā)生后,縮短服務(wù)恢復(fù)時長,提高服務(wù)的可維護(hù)性角度而言的,從而間接提高了服務(wù)的可用性。對于互聯(lián)網(wǎng)服務(wù)而言,強(qiáng)大的運(yùn)維團(tuán)隊(duì)是服務(wù)可用性的重要保障之一!
?
下圖是SAE平臺訪問量和訪問用戶的實(shí)時監(jiān)測圖表。
4、針對頻繁的系統(tǒng)變更、軟件迭代升級我們知道服務(wù)如果沒有變更,出問題的概率一般就很低。但是互聯(lián)網(wǎng)服務(wù)變更恰恰是很頻繁的,這恰好體現(xiàn)了她的生命力。所以如何在不斷變更升級的條件下保證平臺的穩(wěn)定可用顯得更為迫切。SAE每周的各種變更升級在十次以上。SAE為更好地保證平臺穩(wěn)定性,我們引入了旁路系統(tǒng)和灰度發(fā)布機(jī)制。
?
旁路系統(tǒng):用戶的請求進(jìn)入負(fù)載均衡后,除了會走正常流程外,同時會引導(dǎo)到另外一個環(huán)境,該環(huán)境和生產(chǎn)環(huán)境非常相近,除了規(guī)模外。我們引入旁路系統(tǒng)的原因在于配置變更、軟件升級等很頻繁,在生產(chǎn)環(huán)節(jié)每一個變更不管多么簡單都是有風(fēng)險的。其次是系統(tǒng)級別的軟件更新升級等,為了盡可能多盡可能早地發(fā)現(xiàn)一些隱藏的很深的bug,旁路系統(tǒng)是一個不錯的方案。因?yàn)榕月废到y(tǒng)足夠真實(shí)。并且還可以在旁路環(huán)境進(jìn)行一些壓力測試,畢竟線上做壓力測試危險太大,線下做測試,測試數(shù)據(jù)不夠真實(shí)。在旁路系統(tǒng)變更完成后,如何判斷變更是安全的,是一件相對比較有挑戰(zhàn)的事情。我們的經(jīng)驗(yàn)往往是觀察變更涉及的服務(wù),錯誤日志比例是不是有明顯上升。如果變更后服務(wù)無法使用或者掛了,問題就更加明顯。
?
灰度發(fā)布:旁路系統(tǒng)雖然足夠真實(shí),但畢竟不是完全真實(shí)的生產(chǎn)環(huán)境,變更有沒有對應(yīng)用造成影響,有時需要用戶反饋來配合。盡管旁路系統(tǒng)可以發(fā)現(xiàn)99%的問題,但不可否認(rèn)仍然有可能有隱藏的很深的我們無法發(fā)現(xiàn)。這就需要引入灰度發(fā)布。所謂灰度發(fā)布,就是在升級時,只引導(dǎo)部分應(yīng)用來使用,通過逐步增加使用的應(yīng)用數(shù)量同時觀察用戶的反饋,來驗(yàn)證變更是否存在問題。但是對于有狀態(tài)的服務(wù),灰度發(fā)布實(shí)施比較困難。
?
旁路系統(tǒng)和灰度發(fā)布都是從提高平臺服務(wù)可靠性角度出發(fā),對變更做好風(fēng)險控制,盡量降低故障發(fā)生的次數(shù)。
?
5、數(shù)據(jù)可用性數(shù)據(jù)可用性主要體現(xiàn)在數(shù)據(jù)冗余上。SAE平臺數(shù)據(jù)類的服務(wù)包括MySQL、KVDB和Storage,服務(wù)都提供有熱備和冷備,并可以從冷備中恢復(fù)14天內(nèi)的數(shù)據(jù)。數(shù)據(jù)自助恢復(fù)功能目前正在開發(fā)中,目前可以提供收費(fèi)的人工數(shù)據(jù)恢復(fù)服務(wù)。
?
6、多線路接入保證網(wǎng)絡(luò)訪問質(zhì)量由于南北電信互聯(lián)互通問題,用戶一旦跨網(wǎng)訪問,往往不可到達(dá)或由于電信運(yùn)營商網(wǎng)絡(luò)故障或IDC級別的故障,用戶到IDC之間的網(wǎng)絡(luò)不可到達(dá),或丟包率很高。
?
網(wǎng)絡(luò)可用性更多的會依賴電信運(yùn)營商的服務(wù)能力。但對于互聯(lián)網(wǎng)服務(wù)而言,必須要解決這樣的困難才可以真正提供好的服務(wù)。
?
目前SAE網(wǎng)絡(luò)接入支持電信、聯(lián)通、教育、移動等,真正實(shí)現(xiàn)了國內(nèi)大的運(yùn)營商網(wǎng)絡(luò)的覆蓋,這在國內(nèi)是很罕見的。用戶不須操心網(wǎng)絡(luò)接入的復(fù)雜問題,并且在某些鏈路訪問質(zhì)量出現(xiàn)問題時,SAE平臺通過云監(jiān)控能夠及時發(fā)現(xiàn),并會做出調(diào)整。較大限度保證全國范圍內(nèi)的用戶的網(wǎng)絡(luò)可到達(dá)。
?
下圖展示了SAE是如何保證多路訪問質(zhì)量的。
三、對于云計算的用戶的建議盡管國外云計算的使用已經(jīng)非常普及,但不可否認(rèn),國內(nèi)的云計算市場尚處于起步階段。這固然和國內(nèi)企業(yè)和開發(fā)者的認(rèn)知和接受度有關(guān),但也和國內(nèi)云計算發(fā)展不夠務(wù)實(shí),不貼近用戶需求脫離不了干系。
?
客戶在選擇是否使用云計算時,往往有很多擔(dān)憂,總覺得沒有放在自己的手里放心。但我們從實(shí)踐中也發(fā)現(xiàn),大部分企業(yè)的網(wǎng)站,其可用性可到達(dá)率都不算高,雖然沒有專業(yè)機(jī)構(gòu)提供的中國網(wǎng)站可用性這樣的報告。如果完全自己去實(shí)現(xiàn)自己的系統(tǒng),上面遇到的大部分可用性挑戰(zhàn),相信都會遇到,而且未必能做得更好。所以如果云計算足夠成熟,建議采用云計算,讓您的企業(yè)更“輕”點(diǎn),服務(wù)更可靠點(diǎn)。
?
SAE平臺目前的可用性已經(jīng)可以達(dá)到99.95%,我們正在朝99.99%的目標(biāo)努力,SAE對于更高可用性的追求是沒有止境的。
?
云計算平臺的可用性,相比傳統(tǒng)互聯(lián)網(wǎng)服務(wù)而言,更加復(fù)雜和困難,也更具有挑戰(zhàn)性。以后有機(jī)會再談?wù)勗朴嬎憧捎眯栽O(shè)計有哪些特別的地方。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/3585.html
摘要:原文使用和開發(fā)網(wǎng)站應(yīng)用在領(lǐng)域目前看來新浪云走的比較早,也比較成熟。新浪云需要使用新浪微博的帳號才能登錄和使用。目前,新浪云需要進(jìn)行實(shí)名認(rèn)證才能創(chuàng)建個以上的應(yīng)用,所以推薦進(jìn)行實(shí)名認(rèn)證。 原文:使用SAE和Gitcafe開發(fā)網(wǎng)站應(yīng)用 在PaaS領(lǐng)域目前看來新浪云走的比較早,也比較成熟。相比IaaS,PaaS更能為企業(yè)或個人帶來成本上的節(jié)約。本文以php為例,記錄了如何在新浪云上注冊創(chuàng)建自...
摘要:對于國內(nèi)云計算平臺的發(fā)展,除非政策改變,否則國外云平臺在國內(nèi)完全沒有競爭力。對比國內(nèi)和國外的云計算平臺服務(wù)的差異,百體國際健康機(jī)構(gòu)李博認(rèn)為目前 云計算是用戶需求不斷的發(fā)展自然產(chǎn)生的服務(wù)模式,同時也是綠色I(xiàn)T的有利支撐。云計算的發(fā)展和數(shù)據(jù)的大爆炸有著必然的聯(lián)系,大數(shù)據(jù)時代的到來使得企業(yè)對于IT設(shè)施的需求量加大,于此同時對于企業(yè)IT設(shè)施的采購成本以及生態(tài)環(huán)境提出了更高的要求。 云計算廣義上...
摘要:未來將是一個大規(guī)模計算的時代阿里云計算業(yè)務(wù)總經(jīng)理陳金培未來將是一個大規(guī)模計算的時代在業(yè)界的熱點(diǎn)討論中,云計算和大數(shù)據(jù)毫無疑問占據(jù)兩席,云計算時代也是企業(yè)轉(zhuǎn)型的關(guān)鍵點(diǎn)。 以亞馬遜為代表的云服務(wù)模式在國外已經(jīng)發(fā)展了多年,僅商用化發(fā)展就已經(jīng)有了5-6年的時間,但是在國內(nèi)云計算的發(fā)展僅僅是一個開始。依托于強(qiáng)大的電子商務(wù)平臺,阿里巴巴很早就嗅到了未來云計算的機(jī)遇,并于2009年開始構(gòu)建阿里云平臺。 ...
摘要:云計算在企業(yè)級市場的戰(zhàn)役已經(jīng)打響等新興云服務(wù)提供商已經(jīng)動了傳統(tǒng)巨頭在企業(yè)級市場的奶酪,傳統(tǒng)巨頭們也已開始奮力反擊。新浪的版本發(fā)布是一個出現(xiàn)在圖中的國內(nèi)事件。改名成發(fā)布微軟上臺后即將改名為,這標(biāo)志著云已經(jīng)成為微軟的優(yōu)先戰(zhàn)略方向。 云計算在企業(yè)級市場的戰(zhàn)役已經(jīng)打響:AWS等新興云服務(wù)提供商已經(jīng)動了傳統(tǒng)IT巨頭在企業(yè)級市場的奶酪,傳統(tǒng)巨頭們也已開始奮力反擊。隨著傳統(tǒng)IT 巨頭的加入,PaaS市場變...
摘要:對,并不是非阻塞的快,而且開發(fā)的快,極適合做前后端分離以傳遞數(shù)據(jù)的模式。的選擇既不簡潔又缺乏一致性,但建表重連包裝連接池這些總得有人做。縮短重連時間因?yàn)槌瑫r時間比的通用配置要短,所以的重連時間也必須同步,否則會報的數(shù)據(jù)庫錯誤。 對程序員來說,新浪云SAE無疑是國內(nèi)最好的PaaS平臺,實(shí)名認(rèn)證和綁定移動端得到的免費(fèi)云豆,可以讓你在做出一款能抬起頭的應(yīng)用之前不愁吃喝。 所以這一年里做過的網(wǎng)...
閱讀 2804·2021-09-01 10:30
閱讀 1691·2019-08-30 15:52
閱讀 983·2019-08-29 18:40
閱讀 1138·2019-08-28 18:30
閱讀 2407·2019-08-23 17:19
閱讀 1335·2019-08-23 16:25
閱讀 2715·2019-08-23 16:18
閱讀 2992·2019-08-23 13:53