這一年多一直在負(fù)責(zé)公司中非常重要的系統(tǒng)的架構(gòu)升級工作,經(jīng)過了一年半的努力,終于在本月開始,灰度線上流量了。
做互聯(lián)網(wǎng)工作的應(yīng)該都有體會,打代碼的時候,是最快樂的時候,待項目上線的那一刻,雖然經(jīng)過了測試,由于不清楚自己項目中到底有沒有問題,心里難免是打鼓的,尤其是像架構(gòu)升級這樣的大項目上線,整個上線進度可能一波三折,勞廢心神,一不留神造成業(yè)務(wù)損失,對自己職業(yè)生涯也會有影響。
這次上線是整體架構(gòu)升級,而且升級的系統(tǒng)對穩(wěn)定性的訴求是極端苛刻的,這個極端苛刻,并沒有任何夸大的成分存在,這就導(dǎo)致了,這次升級,實在的說,如果出一點問題,要找背鍋的人,自己是無論如何也逃脫不了干系的。
如何在這樣的一個情形下,保證項目的順利上線就成了非常重要的一個工作。
我將這個情形的解決方案分為了以下兩部分:
跑線上流量前
在跑線上流量前,必須要做的事情包括
- 項目正確性方面,進行輸出結(jié)果新老系統(tǒng)對比:為了保證軟件項目的正確性,需要將重構(gòu)后的項目與老項目進行輸出結(jié)果對比,以找到潛在的bug。
- 項目穩(wěn)定性方面,進行穩(wěn)定性演練:將各種能夠想到的故障場景列出,并做好能力互備與降級處理,做好運維平臺的建設(shè)。
- 項目性能方面,進行壓測:針對線上的流量進行壓測,保證系統(tǒng)性能側(cè)能夠?qū)崿F(xiàn)要求。
跑線上流量后
跑線上流量后,面臨的問題是如果線上出現(xiàn)問題,如何將遇到的損失降低到最低,是個技術(shù)問題,而這個問題,也是業(yè)界每個人都會遇到的,阿里的三板斧已經(jīng)給出了一套解決方案,即變更三板斧。
- 可灰度:對新架構(gòu)承載線上流量,按照一定維度進行灰度,例如城市,人員等,并保證可以隨時切回舊系統(tǒng),降低有問題的代碼對業(yè)務(wù)的影響。
- 可監(jiān)控:對正式跑的線上流量,需要具備監(jiān)控能力,在多個維度上對系統(tǒng)進行監(jiān)控。
- 可回滾: 出現(xiàn)問題后,具備項目回滾的能力。
剩余需要做的,聽天命,盡人事。