轉(zhuǎn)自阿里技術(shù):3+1保障:高可用系統(tǒng)穩(wěn)定性是如何煉成的兑燥?
穩(wěn)定性=良好的架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)+完備的團(tuán)隊(duì)研發(fā)運(yùn)維流程機(jī)制+技術(shù)同學(xué)良好的線上意識和能力+良好的項(xiàng)目管理
一:架構(gòu)設(shè)計(jì)
消除單點(diǎn)
從請求發(fā)起側(cè)到服務(wù)處理返回的調(diào)用全鏈路的各個(gè)環(huán)節(jié)上避免存在單點(diǎn)(某個(gè)環(huán)節(jié)只由單個(gè)服務(wù)器完成功能),做到每個(gè)環(huán)節(jié)使用相互獨(dú)立的多臺服務(wù)器進(jìn)行分布式處理,要針對不同穩(wěn)定性要求級別和成本能力做到不同服務(wù)器規(guī)模分布式,這樣就避免單個(gè)服務(wù)器掛掉引發(fā)單點(diǎn)故障后進(jìn)而導(dǎo)致服務(wù)整體掛掉的風(fēng)險(xiǎn)攒霹⊥砍迹可能涉及的環(huán)節(jié)有端動態(tài)獲取資源服務(wù)(html& js &小程序包等)、域名解析搞糕、多服務(wù)商多區(qū)域多機(jī)房IP入口、靜態(tài)資源服務(wù)曼追、接入路由層窍仰、服務(wù)邏輯層、任務(wù)調(diào)度執(zhí)行層拉鹃、依賴的微服務(wù)辈赋、數(shù)據(jù)庫及消息中間件。
消除單點(diǎn)的策略:
在服務(wù)邏輯層采用多運(yùn)營商多IP入口膏燕、跨地&同地多機(jī)房部署钥屈、同機(jī)房多機(jī)器部署、分布式任務(wù)調(diào)度等策略坝辫。
在數(shù)據(jù)存儲層采用數(shù)據(jù)庫分庫分表篷就、數(shù)據(jù)庫主從備集群、KV存儲&消息等分布式系統(tǒng)集群多副本等策略近忙。
有分布式處理能力后竭业,需要考慮單個(gè)服務(wù)器故障后自動探活摘除、服務(wù)器增刪能不停服自動同步給依賴方等問題及舍,這里就需引入一些分布式中樞控制系統(tǒng)未辆,如服務(wù)注冊發(fā)現(xiàn)系統(tǒng)、配置變更系統(tǒng)等锯玛,例如zookeeper是一個(gè)經(jīng)典應(yīng)用于該場景的一個(gè)分布式組件咐柜。
數(shù)據(jù)一致性
在分布式處理以及微服務(wù)化后兼蜈,相關(guān)聯(lián)的數(shù)據(jù)會存在于不同的系統(tǒng)之中,相關(guān)聯(lián)的數(shù)據(jù)庫表拙友、數(shù)據(jù)存儲为狸、緩存等數(shù)據(jù)會因?yàn)榧軜?gòu)設(shè)計(jì)或子系統(tǒng)抖動故障失敗等原因,導(dǎo)致彼此數(shù)據(jù)出現(xiàn)不一致遗契,這也是一類穩(wěn)定性故障辐棒。最簡單的一致性,就是關(guān)系型數(shù)據(jù)庫的同請求內(nèi)同庫相關(guān)聯(lián)的多個(gè)數(shù)據(jù)表更新的一致性牍蜂, 這個(gè)可通過數(shù)據(jù)庫的事務(wù)以及不同事務(wù)級別來保證漾根。從架構(gòu)層面,數(shù)據(jù)一致性也會根據(jù)業(yè)務(wù)特點(diǎn)捷兰,做強(qiáng)一致性立叛、最終一致性的架構(gòu)選型负敏,不同選型根據(jù)CAP理論贡茅,也會帶來可用性以及分區(qū)容忍性的一些折衷。
在做好SLA高的基礎(chǔ)系統(tǒng)選型其做、分布式事務(wù)中間件使用顶考、冪等設(shè)計(jì),針對性提升好微服務(wù)本身SLA后妖泄,可根據(jù)不同數(shù)據(jù)一致性級別要求驹沿,考慮通過消息觸發(fā)多系統(tǒng)對賬、定時(shí)調(diào)度對賬蹈胡、子流程失敗后主動投遞消息延遲重試渊季、消息消費(fèi)失敗后回旋重試、數(shù)據(jù)庫記錄過程中狀態(tài)后做定時(shí)調(diào)度掃描未成功記錄后重試罚渐、離線全量對賬却汉。緩存更新機(jī)制不合理也容易引發(fā)緩存和數(shù)據(jù)庫之間數(shù)據(jù)不一致,一般在數(shù)據(jù)更新時(shí)考慮并發(fā)更新時(shí)緩存刪除優(yōu)先或固定單線程串行更新策略荷并。
復(fù)雜分布式業(yè)務(wù)系統(tǒng)或微服務(wù)化治理后合砂,基于消息中間件的解耦是普遍方式,這時(shí)選擇一個(gè)確保自身不重不丟以及高SLA消息中間件非常重要源织,利用消息中間件自身的多次回旋重試基本能保障很高的最終一致性翩伪,數(shù)據(jù)一致性要求更高的,再配合不同級別對賬機(jī)制即可谈息。
強(qiáng)弱依賴梳理和降級
當(dāng)服務(wù)依賴各類微服務(wù)時(shí)缘屹,避免強(qiáng)依賴(依賴服務(wù)掛掉會到自己服務(wù)掛掉),盡可能在對應(yīng)服務(wù)出現(xiàn)問題時(shí)做到自動降級處理(弱依賴)或者手工降級侠仇,降級后依賴服務(wù)功能局部去掉或做合適局部提示轻姿,局部體驗(yàn)上有部分降級,但不會讓主鏈路和整體功能掛掉。對于穩(wěn)定性要求很好的關(guān)鍵系統(tǒng)踢代,在成本可接受的情況下盲憎,同時(shí)維護(hù)一套保障主鏈路可用的備用系統(tǒng)和架構(gòu),在核心依賴服務(wù)出現(xiàn)問題能做一定時(shí)間周期的切換過渡(例如mysql故障胳挎,階段性使用KV數(shù)據(jù)庫等)饼疙,例如釘釘IM消息核心系統(tǒng)就實(shí)現(xiàn)對數(shù)據(jù)庫核心依賴實(shí)現(xiàn)一套一定周期的弱依賴備案,在核心依賴數(shù)據(jù)庫故障后也能保障一段時(shí)間消息收發(fā)可用慕爬。
強(qiáng)依賴的服務(wù)越少窑眯,系統(tǒng)整體基礎(chǔ)穩(wěn)定性就越高。部分特殊數(shù)據(jù)依賴多于邏輯依賴的系統(tǒng)医窿,做去依賴架構(gòu)設(shè)計(jì)也是一個(gè)思路磅甩,將依賴服務(wù)數(shù)據(jù)統(tǒng)一整合到自有服務(wù)的數(shù)據(jù)存儲中,通過消息 或定時(shí)更新的方式更新姥卢,做到不依賴 或少依賴其他系統(tǒng)卷要,進(jìn)而提高穩(wěn)定性,但這樣做也會有副作用:數(shù)據(jù)冗余可能會引發(fā)不同程度一定時(shí)間窗口數(shù)據(jù)不一致性独榴。
熱點(diǎn)或極限值處理
業(yè)務(wù)規(guī)模以及數(shù)據(jù)規(guī)模大的部分系統(tǒng)僧叉,在系統(tǒng)中會出現(xiàn)數(shù)據(jù)熱點(diǎn)、數(shù)據(jù)極度傾斜棺榔、少量大客戶超過極限閾值使用等極限場景瓶堕,例如超級大客戶廣告投放物料、廣告點(diǎn)擊展示數(shù)據(jù)症歇、API調(diào)用頻次都是比普通客戶大很多郎笆,如果按照客戶維度分庫分表,基本在物料更新忘晤、查詢宛蚓、報(bào)表查看等一系列的場景都可能導(dǎo)致單庫抖動,這除了影響大客戶自己外也會影響分布在該分庫分表上所有普通客戶德频。電商中極度暢銷商品以及秒殺苍息、企業(yè)IM中大組織群&大組織涉及全員關(guān)注更新行為、微博等訂閱類明星大V的信息發(fā)布等都是少量極限場景可能會引發(fā)整體系統(tǒng)穩(wěn)定性問題壹置。因此竞思,架構(gòu)設(shè)計(jì)時(shí),要分析自己系統(tǒng)中是否存在極限場景并設(shè)計(jì)對應(yīng)方案做好應(yīng)對钞护。
極限場景中不同類型場景處理架構(gòu)方案也不一樣盖喷,可能的方式:
大客戶從普通客戶分庫分表中拆出來隔離建庫表,隔離享用專有資源以及獨(dú)立庫表拆分路由邏輯以及隔離服務(wù)邏輯計(jì)算資源难咕;
大客戶特定極限數(shù)據(jù)計(jì)算做預(yù)約計(jì)算以及預(yù)加載课梳,在低峰期預(yù)約或提前優(yōu)化完成芒帕;
秒殺系統(tǒng)極限值可以考慮核心邏輯簡化+消息解耦公壤、同商品庫存拆分獨(dú)立交易玉雾、部分查詢或處理KV存儲替代關(guān)系型存儲帆疟、數(shù)據(jù)提前預(yù)熱加載、排隊(duì)椭懊、限流策略等策略诸蚕;
大組織IM場景設(shè)計(jì)合適讀擴(kuò)散或?qū)憯U(kuò)散的策略,同時(shí)針對業(yè)務(wù)特點(diǎn)(不同人延遲度不一樣)做到不同人員體驗(yàn)平滑氧猬,或者為大組織或大V提供專屬計(jì)算存儲資源或?qū)俨樵兏逻壿嫛?/p>
在特定極限值系統(tǒng)架構(gòu)以及資源無法滿足的情況背犯,產(chǎn)品側(cè)以及技術(shù)側(cè)要明確采用最高閾值調(diào)用限制。
資金交易類系統(tǒng)要仔細(xì)考慮資損的風(fēng)險(xiǎn)
交易系統(tǒng)對于數(shù)據(jù)準(zhǔn)確性盅抚、一致性漠魏、資金損失等都是很敏感的,這一塊在是否使用緩存妄均、事務(wù)一致性考量柱锹、數(shù)據(jù)時(shí)延、數(shù)據(jù)不丟不重丛晦、數(shù)據(jù)精準(zhǔn)核對和恢復(fù)等需要額外架構(gòu)設(shè)計(jì)考量奕纫。仔細(xì)評估交易以及營銷的全鏈路各個(gè)環(huán)節(jié),評估其中出現(xiàn)資損的可能性以及做好應(yīng)對設(shè)計(jì)烫沙,例如增加多層級對賬、券總額度控制隙笆、異常金額限制和報(bào)警等資損防控的考量等锌蓄。不同層次不同維度不同時(shí)間延遲的對賬以及預(yù)案是一個(gè)重要及時(shí)感知資損和止血的有效方式。全鏈路的過程數(shù)據(jù)要做好盡可能持久化和冗余備份撑柔,方便后續(xù)核對以及基于過程數(shù)據(jù)進(jìn)行數(shù)據(jù)修復(fù)瘸爽,同時(shí)盡量針對特殊數(shù)據(jù)丟失場景提供快速自動化修復(fù)處理預(yù)案(如交易消息可選擇性回放和基于冪等原則的重新消費(fèi))。
離線數(shù)據(jù)流
基于數(shù)據(jù)的搜索推薦铅忿、機(jī)器學(xué)習(xí)算法系統(tǒng)剪决、數(shù)據(jù)產(chǎn)品等,核心功能依賴離線產(chǎn)出 或 增量產(chǎn)出數(shù)據(jù)檀训,這類數(shù)據(jù)可能規(guī)模大柑潦、來源廣、生產(chǎn)鏈路長峻凫,在整體生產(chǎn)和傳輸鏈路中渗鬼,很容易出現(xiàn)數(shù)據(jù)少量丟失、部分環(huán)節(jié)失敗荧琼、數(shù)據(jù)生產(chǎn)延遲等情況譬胎,最終消費(fèi)在線系統(tǒng)也很難感知少量數(shù)據(jù)錯(cuò)誤進(jìn)而導(dǎo)致故障差牛。
針對離線數(shù)據(jù)流,要增加不同傳輸環(huán)節(jié)數(shù)據(jù)完整性校驗(yàn)堰乔、不同生產(chǎn)環(huán)節(jié)數(shù)據(jù)正確性校驗(yàn)偏化、數(shù)據(jù)延遲監(jiān)控、數(shù)據(jù)生產(chǎn)失敗監(jiān)控镐侯、端到端數(shù)據(jù)正確性規(guī)則校驗(yàn)夹孔、數(shù)據(jù)錯(cuò)誤或延遲兜底預(yù)案、數(shù)據(jù)回滾重刷工具等機(jī)制析孽。機(jī)器學(xué)習(xí)類系統(tǒng)還要考慮離線特征和線上特征數(shù)據(jù)一致性搭伤,確保離線訓(xùn)練的模型,線上預(yù)測應(yīng)用效果是一致的袜瞬,因此模型上線時(shí)以及線上定期做離線和線上特征數(shù)據(jù)一致性核對怜俐。
其他異常情況處理
整體系統(tǒng)架構(gòu),除了正向邏輯邓尤、性能拍鲤、擴(kuò)展性設(shè)計(jì)等外,要增加一個(gè)異常設(shè)計(jì)視角汞扎,窮盡思考各類異常情況以及設(shè)計(jì)應(yīng)對策略季稳。
二:容量評估設(shè)計(jì)
系統(tǒng)設(shè)計(jì)整體至少考慮應(yīng)對5到10倍或近1到3年系統(tǒng)規(guī)模增長,要保障后續(xù)通過增加機(jī)器資源等快速方式能實(shí)現(xiàn)系統(tǒng)水平擴(kuò)容澈魄。例如分庫分表的規(guī)模提前設(shè)計(jì)好提前量景鼠,避免臨時(shí)數(shù)據(jù)庫能力不足導(dǎo)致需要臨時(shí)重構(gòu)擴(kuò)容(增加分庫分表以及修改路由以及遷移數(shù)據(jù));服務(wù)邏輯層設(shè)計(jì)持有數(shù)據(jù)狀態(tài)導(dǎo)致無法加機(jī)器做服務(wù)層擴(kuò)容痹扇☆趵欤互聯(lián)網(wǎng)產(chǎn)品發(fā)展變化較快,不一定會如期爆發(fā)鲫构,容量架構(gòu)設(shè)計(jì)上也要注意不要過度提前設(shè)計(jì)浓恶,避免提前復(fù)雜化引發(fā)研發(fā)效率以及機(jī)器成本問題。
針對線上流量峰值结笨,建議系統(tǒng)常態(tài)保持近期峰值3倍左右容量余量包晰,上線前和上線后要定期做壓測摸高,寫流量可用影子表等方式做壓測炕吸,壓測可單接口以及模擬線上流量分布壓測結(jié)合伐憾,根據(jù)壓測結(jié)果優(yōu)化架構(gòu)或擴(kuò)容,持續(xù)保持容量富余算途。
對于可能超過系統(tǒng)現(xiàn)有容量的突發(fā)峰值塞耕,限流策略是線上要配置的策略。入口側(cè)入口流量調(diào)用 嘴瓤、不同渠道服務(wù)依賴調(diào)用扫外、對依賴服務(wù)的調(diào)用都要評估可極限調(diào)研的上限值莉钙,通過中間件等合適方式限制超過閾值調(diào)用,避免引發(fā)雪崩效應(yīng)筛谚。特定業(yè)務(wù)系統(tǒng)磁玉,對于超過峰值流量,可以通過消息架構(gòu)以及合適體驗(yàn)設(shè)計(jì)做削峰填谷驾讲。針對惡意攻擊流量也要考慮在入口層部署防DDOS攻擊的流量清洗層蚊伞。
部分系統(tǒng)峰值變化較大且需要持續(xù)盡可能承載保障,可考慮引入彈性伸縮策略吮铭,預(yù)約 或根據(jù)流量變化觸發(fā)系統(tǒng)自動擴(kuò)縮容时迫,以確保以盡量小成本來自動化滿足變化峰值。
三.運(yùn)維方案設(shè)計(jì)
系統(tǒng)要考慮持續(xù)迭代發(fā)布變更以及線上運(yùn)維的訴求谓晌,做到可灰度掠拳、可監(jiān)控、可回滾纸肉。
可灰度保障及時(shí)在小流量情況溺欧,發(fā)現(xiàn)問題,避免引發(fā)大范圍故障柏肪。因此在做系統(tǒng)任何變更時(shí)姐刁,要考慮灰度方案,特別是大用戶流量系統(tǒng)烦味∧羰梗灰度方式可能有白名單用戶、按用戶Id固定劃分后不同流量比例拐叉、機(jī)器分批發(fā)布岩遗、業(yè)務(wù)概念相關(guān)分組分比例(例如某個(gè)行業(yè)、某個(gè)商品凤瘦、某類商品)等,灰度周期要和結(jié)合系統(tǒng)風(fēng)險(xiǎn)和流量做合適設(shè)計(jì)案铺,重要系統(tǒng)灰度周期可能持續(xù)超過一周或更多蔬芥。
監(jiān)控項(xiàng)要系統(tǒng)性確認(rèn)是否完備以及保持更新,可能監(jiān)控項(xiàng):錯(cuò)誤日志前端js錯(cuò)誤控汉、用戶體驗(yàn)到的性能和白屏率笔诵、接口成功率、依賴服務(wù)成功率姑子、機(jī)器基礎(chǔ)負(fù)載相關(guān)監(jiān)控(CPU利用率乎婿、cpu Load、內(nèi)存街佑、IO谢翎、網(wǎng)絡(luò)等)捍靠、服務(wù)基礎(chǔ)監(jiān)控(端口、進(jìn)程森逮、狀態(tài)探活榨婆、JVM full gc、OOM等)褒侧、數(shù)據(jù)庫負(fù)載監(jiān)控良风、數(shù)據(jù)庫慢請求、流量同比劇烈變化闷供。監(jiān)控項(xiàng)的報(bào)警策略也要根據(jù)業(yè)務(wù)系統(tǒng)特點(diǎn)以及監(jiān)控項(xiàng)的特點(diǎn)烟央,做不同報(bào)警策略設(shè)計(jì),例如秒級&分鐘級報(bào)警歪脏、錯(cuò)誤率報(bào)警疑俭、錯(cuò)誤日志次數(shù)報(bào)警、連續(xù)出錯(cuò)報(bào)警等唾糯。核心監(jiān)控可摘要一個(gè)監(jiān)控大盤怠硼,一個(gè)大盤快速判斷服務(wù)穩(wěn)定性情況。
可回滾:新增功能增加配置開關(guān)移怯,當(dāng)線上出現(xiàn)問題時(shí)香璃,可通過關(guān)閉功能開關(guān),快速下線最新升級 或部分有問題功能舟误。針對不同出錯(cuò)場景葡秒,有配置驅(qū)動一些預(yù)案,例如降級對某個(gè)服務(wù)的依賴嵌溢、提供合適功能維護(hù)中公告眯牧、切換到備用服務(wù)等預(yù)案,在特定問題出現(xiàn)時(shí)赖草,可以快速做線上止損和恢復(fù)学少。發(fā)布功能注意提前考慮出現(xiàn)問題時(shí)快速回滾步驟,部分經(jīng)常發(fā)布注意對回滾步驟做演練秧骑。
四.安全設(shè)計(jì)
數(shù)據(jù)以及應(yīng)用安全問題一旦出現(xiàn)可能很致命版确,一定要加以考慮。安全是一個(gè)比較專業(yè)領(lǐng)域乎折,常規(guī)在針對業(yè)務(wù)系統(tǒng)經(jīng)典安全場景做好考量的同時(shí)绒疗,盡量引入專業(yè)安全技術(shù)同學(xué)評估。所有資源訪問需要合適鑒權(quán)骂澄,避免越權(quán)訪問吓蘑;防Sql注入等攻擊,做參數(shù)合法性校驗(yàn)坟冲;資源消耗頻次管控磨镶,如短信資源等溃蔫;用戶防騷擾,設(shè)置用戶通知棋嘲、彈屏等觸達(dá)閾值和頻次酒唉;敏感信息過濾或脫敏等。
團(tuán)隊(duì)研發(fā)運(yùn)維流程機(jī)制
穩(wěn)定性涉及團(tuán)隊(duì)所有不同水平同學(xué)沸移、所有系統(tǒng)痪伦、研發(fā)所有環(huán)節(jié)、線上時(shí)時(shí)刻刻雹锣,單個(gè)同學(xué)是無法保障好的网沾,必須建立團(tuán)隊(duì)流程機(jī)制來可持續(xù)保障。
主要流程機(jī)制如下:
技術(shù)Review:不同體量設(shè)計(jì)安排經(jīng)驗(yàn)更加豐富同學(xué)Review蕊爵,架構(gòu)師辉哥、主管、外部架構(gòu)師的Review攒射、定期系統(tǒng)整體Review等醋旦。
代碼Code Review:建立規(guī)范和標(biāo)準(zhǔn),通過CR認(rèn)證合格同學(xué)執(zhí)行code review動作会放。
單測:不同風(fēng)險(xiǎn)的系統(tǒng)設(shè)定盡量高的行覆蓋 & 分支覆蓋率標(biāo)準(zhǔn)饲齐,復(fù)雜邏輯類追求100%分支覆蓋。
回歸測試:持續(xù)積累回歸用例咧最,在上線前和上線后執(zhí)行回歸動作捂人;上線前線上引流測試也是一種模擬測試方式,端類型系統(tǒng)還可以用monkey工具做隨機(jī)化測試矢沿。
發(fā)布機(jī)制:設(shè)計(jì)發(fā)布準(zhǔn)入和審批流程滥搭,確保每次上線發(fā)布都是經(jīng)過精細(xì)設(shè)計(jì)和審核的,上線過程要做到分批捣鲸、灰度瑟匆、支持快速回滾、線上分批觀察(日志確認(rèn))栽惶、線上回歸等核心動作脓诡。建立發(fā)布紅線等機(jī)制,不同系統(tǒng)設(shè)計(jì)合適發(fā)布時(shí)段以及發(fā)布灰度觀察周期媒役。
團(tuán)隊(duì)報(bào)警值班響應(yīng)機(jī)制 (報(bào)警群、短信宪迟、電話):確保報(bào)警有合適人員即時(shí)響應(yīng)處理酣衷,團(tuán)隊(duì)層面可定期做數(shù)據(jù)性統(tǒng)計(jì)通曬,同時(shí)建立主管或架構(gòu)師兜底機(jī)制次泽。
定期排查線上隱患:定期做線上走查和錯(cuò)誤日志治理穿仪、告警治理席爽,確保線上小的隱患機(jī)制化發(fā)現(xiàn)和修復(fù)。例如在釘釘針對企業(yè)用戶早晚高峰的特點(diǎn)啊片,設(shè)計(jì)早值班機(jī)制只锻,用于高峰期第一時(shí)間應(yīng)急以及每天專人花一定時(shí)間走查線上,該機(jī)制在釘釘技術(shù)團(tuán)隊(duì)持續(xù)踐行多年紫谷,有效發(fā)現(xiàn)和治理了釘釘各個(gè)線上系統(tǒng)的隱患齐饮。
用戶問題處理機(jī)制:Voc日清、周清等笤昨。在釘釘也經(jīng)歷Voc周清到日清的持續(xù)機(jī)制精進(jìn)祖驱。
線上問題復(fù)盤機(jī)制:天內(nèi)、周內(nèi)問題及時(shí)復(fù)盤瞒窒,確保針對每個(gè)線上問題做系統(tǒng)和團(tuán)隊(duì)精進(jìn)捺僻。
代碼質(zhì)量抽查通曬:定期抽查團(tuán)隊(duì)同學(xué)代碼,做評估和通曬崇裁,鼓勵好的代碼匕坯,幫助不好代碼的改善。
成立穩(wěn)定性治理專門topic:合適同學(xué)每周做好穩(wěn)定性過程和精進(jìn)拔稳。
定期壓測機(jī)制:定期機(jī)制化執(zhí)行葛峻,核查線上容量情況。
日常演練機(jī)制:預(yù)案演練壳炎,模擬線上故障的不通知的突襲演練提升團(tuán)隊(duì)線上問題應(yīng)對能力
流程機(jī)制要和團(tuán)隊(duì)同學(xué)共創(chuàng)達(dá)成一致后泞歉,配合建立topic負(fù)責(zé)人機(jī)制,對流程機(jī)制執(zhí)行度和執(zhí)行效果要做好過程監(jiān)測和通曬匿辩,建立明確數(shù)字化標(biāo)準(zhǔn)和衡量機(jī)制(例如釘釘技術(shù)團(tuán)隊(duì)針對線上問題設(shè)定1-5-10標(biāo)準(zhǔn)腰耙,1分鐘響應(yīng)5分鐘內(nèi)定位10分鐘內(nèi)恢復(fù)),同時(shí)建立對應(yīng)獎懲機(jī)制铲球。流程機(jī)制也要根據(jù)系統(tǒng)狀態(tài)進(jìn)行精簡或精進(jìn)挺庞,確保流程機(jī)制可執(zhí)行性和生命力。
技術(shù)同學(xué)意識和能力
永遠(yuǎn)要對敬畏線上稼病,敬畏客戶體驗(yàn)选侨。面向線上的穩(wěn)定性戰(zhàn)術(shù)上可以基于專業(yè)度鍛煉后自信,但戰(zhàn)略和思想上必須持續(xù)如履薄冰然走、三省吾身援制。線上穩(wěn)定性保障是作為技術(shù)人自己專業(yè)度的追求和必須保持初心,始終保持敬畏芍瑞。不因?yàn)闃I(yè)務(wù)繁忙晨仑、個(gè)人心情狀態(tài)、團(tuán)隊(duì)是否重視而有變化,只要職責(zé)在洪己,就要守護(hù)好妥凳。技術(shù)主管以及系統(tǒng)owner要有持續(xù)感知穩(wěn)定性隱患和風(fēng)險(xiǎn),保持銳度答捕,集中性以及系統(tǒng)性查差補(bǔ)漏逝钥。
1.團(tuán)隊(duì)對線上敬畏的一些具象體現(xiàn)和要求
每個(gè)報(bào)警不要放過,每個(gè)報(bào)警及時(shí)響應(yīng)處理
快速定位和快速恢復(fù)是個(gè)人以及團(tuán)隊(duì)專業(yè)能力沉淀拱镐,但快速報(bào)警響應(yīng)是每個(gè)敬畏線上敬畏用戶體驗(yàn)的技術(shù)同學(xué)可以做到的艘款。
在監(jiān)控完備和持續(xù)前提下,每個(gè)報(bào)警及時(shí)處理即可以降低故障影響范圍痢站,也會持續(xù)減少小的隱患磷箕。報(bào)警一些小的實(shí)踐技巧:報(bào)警按照方向收斂報(bào)警群,建立報(bào)警天級值班機(jī)制阵难,報(bào)警短信手機(jī)設(shè)置為震動模式(不打擾同空間家人或朋友情況下岳枷,自己第一時(shí)間感知),主管要訂閱報(bào)警作為團(tuán)隊(duì)報(bào)警兜底處理人呜叫,報(bào)警響應(yīng)好的同學(xué)和不好的同學(xué)要數(shù)據(jù)化表揚(yáng)和批評空繁。
從團(tuán)隊(duì)角度,報(bào)警及時(shí)響應(yīng)必須配合報(bào)警治理進(jìn)行朱庆,否則過多無效報(bào)警也會讓有責(zé)任心的同學(xué)變得麻木盛泡。所以必須控制無效報(bào)警的數(shù)量,例如單應(yīng)用無效報(bào)警(不需要線上問題進(jìn)行定位以及修復(fù)處理的)不要超過5條娱颊,個(gè)人維度無效報(bào)警天級別不超過10條傲诵。
線上問題要復(fù)盤,不論是否為定級故障箱硕,不論問題大小
小的線上問題也要復(fù)盤拴竹,復(fù)盤準(zhǔn)備度可以低于定級故障,但都需要思考反思以及落實(shí)優(yōu)化Action剧罩。小的線上問題就是未來線上故障的前兆栓拜。我們團(tuán)隊(duì)周會上都會有一個(gè)環(huán)節(jié),上周如有線上問題則會安排對觸發(fā)人做復(fù)盤惠昔。
錯(cuò)誤日志要重視
要定期分析線上錯(cuò)誤日志幕与,隱患的問題是藏在錯(cuò)誤日志中的。我們現(xiàn)在技術(shù)團(tuán)隊(duì)會有早值班機(jī)制镇防,每個(gè)方向每天都有一個(gè)技術(shù)同學(xué)走查線上啦鸣,以發(fā)現(xiàn)線上隱患問題為導(dǎo)向,走查監(jiān)控大盤来氧、錯(cuò)誤日志赏陵、用戶反饋饼齿,通過這個(gè)例行機(jī)制,很好地防微杜漸蝙搔。
每個(gè)用戶反饋要重視,定位到根本原因
一個(gè)用戶反饋背后必然有多個(gè)實(shí)際線上問題考传,只是這個(gè)用戶無法忍受吃型,知道反饋路徑以及對這個(gè)產(chǎn)品有熱愛 或強(qiáng)依賴才選擇反饋的。徹底定位一個(gè)voc僚楞,就是修復(fù)了一類線上問題勤晚。而且到用戶反饋的程度,這個(gè)線上問題就已經(jīng)有一定程度用戶體驗(yàn)影響了泉褐。我們現(xiàn)在技術(shù)團(tuán)隊(duì)有一個(gè)voc日清機(jī)制赐写,針對線上voc問題對用戶做好日內(nèi)響應(yīng)答復(fù),也是一個(gè)不錯(cuò)對于這個(gè)意識的數(shù)字化衡量膜赃。
良好的研發(fā)項(xiàng)目管理
從經(jīng)驗(yàn)看挺邀,線上系統(tǒng)大部分故障是由新的變更引入和觸發(fā)的,變更是業(yè)務(wù)和產(chǎn)品迭代演進(jìn)方式跳座,因此不可能沒有變更端铛,但我們可以對變更項(xiàng)目做合適質(zhì)量管理,進(jìn)而有效提高線上穩(wěn)定性疲眷。
項(xiàng)目管理的四要素:工作范圍(需求)禾蚕、時(shí)間(交付時(shí)間)、質(zhì)量狂丝、成本(人 & 機(jī)器資源等)换淆,簡稱STQC,這四個(gè)要素是相互關(guān)聯(lián)的和制約的几颜,形成一個(gè)項(xiàng)目管理質(zhì)量管理鐵三角倍试,一個(gè)要素變動就會影響到其他要素,因此要保障好質(zhì)量就必須要考慮怎么管理好其他三個(gè)要素菠剩。
此外易猫,我們可以進(jìn)一步理解項(xiàng)目成功的要素,以終為始聚焦考慮如何提升實(shí)際影響成功的質(zhì)量具壮,成功的項(xiàng)目不僅取決于項(xiàng)目本身從開始到結(jié)束的執(zhí)行過程准颓,還取決于開始前和結(jié)束后的努力。成功的項(xiàng)目應(yīng)該取決于三個(gè)階段的努力:
項(xiàng)目開始前必須 “了解什么是客戶的成功”棺妓,只有客戶成功了項(xiàng)目才能成功攘已;——理解客戶真正的需求。
項(xiàng)目執(zhí)行中能夠“擔(dān)負(fù)客戶成功的責(zé)任”怜跑,按要求完成承諾的工作样勃。
項(xiàng)目結(jié)束后能“幫助客戶實(shí)現(xiàn)價(jià)值”吠勘,只有客戶說項(xiàng)目成功了才是真正的成功∠靠簦——幫助客戶實(shí)現(xiàn)業(yè)務(wù)目標(biāo)剧防、用戶價(jià)值目標(biāo)、商業(yè)價(jià)值目標(biāo)辫樱。
項(xiàng)目管理角度穩(wěn)定性保障基本動作包括確定和充分理解幫助客戶成功的需求范圍峭拘、控制好需求變更、預(yù)留質(zhì)量保障環(huán)節(jié)時(shí)間狮暑、動態(tài)管控交付預(yù)期時(shí)間鸡挠、爭取充足人力以及機(jī)器等成本資源。進(jìn)階動作:在提前了解和理解甚至共同參與制定業(yè)務(wù)戰(zhàn)略和策略基礎(chǔ)上提前規(guī)劃需求范圍和研發(fā)節(jié)奏&人員排兵布陣&架構(gòu)布局搬男、深入理解業(yè)務(wù)基礎(chǔ)上協(xié)助做需求取舍和優(yōu)化拣展。