一次事故如一場戰役,不管是在故障過程中的處理,還是故障後的總結,除了罵阿里雲,我們自己有沒有可以改進的空間呢?結合我司昨夜的處理過程,說一下自己的一點想法。
畫外音:技術人,還是聊技術,決定不了別人,我們做好自己。
一凌晨,收到運維負責人的**,阿里雲部分機房故障,並從阿里雲同事收到反饋,問題仍在定位,恢復時間不確認。
畫外音:關鍵時刻,手機欠費了,運維負責人還幫我充了200話費,才打通,真曲折。
整個過程中,我們能做什麼呢?
第一時間反饋業務方:例如客服,運營等,如果收到使用者反饋,能夠及時說明情況;
確定影響範圍:因為不是所有伺服器都受影響,確定範圍後好針對性檢查;
這裡面,潛在的技術問題是:
運維在第一時間收到伺服器告警了麼,研發與測試在第一時間收到站點與服務告警了麼?為什麼沒有收到,是沒有告警,還是告警覆蓋缺失?
畫外音:如果讓業務方先發現問題,反問技術部,服務怎麼出問題了,是何等尷尬?
能夠快速確定受影響的伺服器ip麼?以及受影響的業務範圍麼?
我們的運維同學立刻通過指令碼,確定了大概有50來台伺服器受影響。
dba同學也立刻確認了,rds資料庫服務沒有受到影響。
畫外音:
(1)未來要自動化,視覺化;
(2)除了能從前端發現a、b、c功能不可用,能從後端精準確定哪些服務,多大比例的流量受影響麼?
潛在的非技術問題:
技術團隊和業務方建立了反饋渠道麼,溝通是否順暢?
有沒有「線上服務第一」的意識,有沒有「系統值班」的制度,還是說,關著手機睡覺?
畫外音:
(1)昨晚絕大多數二級,**部門負責人都第一時間投入戰鬥,很讚;
(2)技術人,關著手機睡覺,是不可接受的。
二過了乙個多小時了,阿里雲仍未反饋修復時間,這個時間大家都有點著急了,那除了幹等著,我們自己能做些什麼呢?
因為只有部分區域的伺服器異常,能不能申請一些新的伺服器,將受影響伺服器上的站點與服務重新部署,通過服務治理將流量切到新的服務上,是不是能恢復(至少部分恢復)呢?
整個過程中,我們能做的是:
申請新伺服器;
確認受影響的站點與服務、重新部署;
服務治理,將流量遷移;
這裡面,潛在的技術問題是:
能不能快速進行伺服器擴容;
畫外音:昨晚我們迅猛購買了50臺ecs,這是雲的好處。
知道了受影響的伺服器ip,如何能夠快速確定這些ip上部署了哪些站點與服務?這些站點與服務的上下游是什麼,連帶影響範圍是什麼?
畫外音:這是有待提高的地方,每個負責人都知道自己的ip上部署了什麼,但並不視覺化。
如何快速站點與服務擴容與縮容,如何服務發現,如何遷移流量?
畫外音:服務治理,任重道遠。
三又過了大概半個小時,我們購買完伺服器,梳理站點與服務的過程中,阿里雲專家反饋,「問題定位有了關鍵進展,不出意外的話30分鐘恢復」。此時我們內部評估,30分鐘50臺ecs的初始化,服務部署,流量遷移恐怕完不成,還是等阿里雲好了。
果真大概半個小時,阿里雲專家反饋恢復了,這時我們要做的:
確定站點與服務是否執行;
確定日誌是否異常;
一些容易遺漏的點的再三檢查:例如mq的消費,定時任務的執行。
畫外音:有些定時任務可能需要手動再次執行。
這裡面的很多任務作,是通過手工,還是指令碼自動化,還是平台視覺化來判斷與執行?技術平台的迭代,仍重而道遠。
四是時候換乙個雲了;
我相信,各家有各家的問題,我甚至願意相信,阿里雲的故障率是相對較低的。
是時候自建機房了;
說實話,讓我自建機房,我目前真沒有信心做得比阿里雲更好。
是時候多機房多活了;
「多機房多活」不是四個字這麼簡單,需要多大的成本,需要多少技術基礎服務支撐,需要多大的架構改造,有考慮過麼?
畫外音:58同城15年做機房遷移時做過多機房多活,我還算有一定發言權。
我相信,目前99.9%的公司,目前的業務階段,目前的投入產出比,不適合做多機房多活。
罵阿里雲不解決問題,這次事故過程中發現的自身的問題,我們要繼續去改進。
特別是服務治理體系,視覺化監控與運維體系,任重而道遠。
這一次,除了罵阿里雲,還能做些什麼?
很多朋友經歷了昨晚阿里雲3小時左右的故障,我司的業務也受到了一定影響,技術的同事一起熬夜奮戰,最終觀察服務穩定執行了兩個多小時,直到凌晨五六點多才逐漸登出vpn。一次事故如一場戰役,不管是在故障過程中的處理,還是故障後的總結,除了罵阿里雲,我們自己有沒有可以改進的空間呢?結合我司昨夜的處理過程,說一...
這一次,讓我仗劍而行
不知不覺,搞oi已有一年了。從一無所知到現在站在noip的大門前,我知道,機會只有一次。沒有失誤的機會,沒人會傾聽你的苦與你的累。小時候一直很怯懦,總是猶疑不決,辜負了多少韶光。所以,這一次,就讓我仗劍而行。這把劍並未成形,只有劍胎隱約可見。但在今天,少年笨拙地將劍抗在肩上,釀蹌著,卻一步一步,堅定...
這一次,徹底讀懂Mysql執行計畫
本文主要介紹mysql執行計畫各個欄位的作用,以及如何利用mysql執行計畫優化我們的sql,本文主要面向後端開發程式設計師,以及需要和資料庫打交道的同學們。所謂的執行計畫就是mysql如何執行一條sql語句,包括sql查詢的順序 是否使用索引 以及使用的索引資訊等內容。乙個例子 基本語法 expl...