自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如果不想總是半夜爬起來搶修生產(chǎn)事故

開發(fā) 開發(fā)工具
作為一名開發(fā)人員,如何能讓自己能逐漸減少在半夜爬起來搶修生產(chǎn)事故的次數(shù)?可以嘗試使用本文要介紹的8個謬誤、12個反模式和12個模式。

我以前很崇拜那些能修復(fù)各種軟件缺陷的“救火”高手。很多年前,我還是一個維護(hù)遺留系統(tǒng)的團(tuán)隊的普通開發(fā)人員。那時,團(tuán)隊的每個開發(fā)人員,都輪流帶一個7x24小時開機(jī)的手機(jī),處理用戶問題。團(tuán)隊里有一位英雄。他戴眼鏡,經(jīng)常身穿一件白大褂。我們要是有搞不定的生產(chǎn)事故的各種疑難雜癥,就會找他。

[[440921]]

只有他能搞定我們這些普通開發(fā)人員搞不定的問題。所以過去了十多年,我依然很佩服他,覺得他是英雄。但當(dāng)我后來讀了《第五項修煉》中描述的“負(fù)擔(dān)轉(zhuǎn)移”系統(tǒng)基本模式后,醒悟到團(tuán)隊有這樣的“英雄”,看起來值得“慶幸”,但會帶來一個意想不到的后果——團(tuán)隊不再想花時間和精力,提升普通開發(fā)人員解決生產(chǎn)事故的能力,因為“英雄”出馬,以一當(dāng)十。當(dāng)年團(tuán)隊所維護(hù)的遺留系統(tǒng)火情不斷,但我們這些普通水平的開發(fā)人員,一直救不了火。

真英雄,要么能賦能團(tuán)隊成員,提升他們處理生產(chǎn)事故的“救火”的能力,而不僅僅靠他一人;要么能把需要半夜爬起來搶修的生產(chǎn)事故,化解成一個個小任務(wù),在白天上班時間給解決了。

有人會問,作為開發(fā)人員,如何才能把生產(chǎn)事故化解成一個個小任務(wù)呢?

首先,可以在自己日常開發(fā)新代碼,或解決軟件缺陷時,時時思考面前的代碼,是否出現(xiàn)了以下分布式計算的8個謬誤:

  1. 網(wǎng)絡(luò)是可靠的
  2. 延遲為零
  3. 帶寬無限大
  4. 網(wǎng)絡(luò)很安全
  5. 網(wǎng)絡(luò)拓?fù)洳粫淖?/li>
  6. 只有一名網(wǎng)管
  7. 傳輸成本為零
  8. 網(wǎng)絡(luò)是同質(zhì)的

比如你發(fā)現(xiàn)要修改的代碼,存在“網(wǎng)絡(luò)是可靠的”這樣的謬誤,接下來就可以借助“復(fù)雜系統(tǒng)穩(wěn)定性的12個反模式”(每個反模式的詳細(xì)描述,參見《發(fā)布!》第2版第4章)列表,來思考哪里會存在“暗債”。

  1. 集成點
  2. 同層連累反應(yīng)
  3. 層疊失效
  4. 用戶
  5. 線程阻塞
  6. 自黑式攻擊
  7. 放大效應(yīng)
  8. 失衡的系統(tǒng)容量
  9. 一窩蜂
  10. 做出誤判的機(jī)器
  11. 緩慢的響應(yīng)
  12. 無限長的結(jié)果集

將思考產(chǎn)生的所有“暗債”集中起來,并按照“暗債”爆發(fā)的“影響度”和“可能性”這兩個維度,把這些“暗債”進(jìn)行排序,然后選擇其中“影響度”最高且“可能性”最大的一個“暗債”,優(yōu)先處理。

假如你發(fā)現(xiàn)代碼中存在一個“集成點”的“暗債”需要優(yōu)先處理,那么就可以借助下面“復(fù)雜系統(tǒng)穩(wěn)定性的12個模式”(每個模式的詳細(xì)描述,參見《發(fā)布!》第2版第5章)列表,來尋找償還“暗債”的思路。

  1. 超時
  2. 斷路器
  3. 艙壁
  4. 穩(wěn)態(tài)
  5. 快速失敗
  6. 任其崩潰并替換
  7. 握手
  8. 考驗機(jī)
  9. 中間件解耦
  10. 卸下負(fù)載
  11. 背壓機(jī)制
  12. 調(diào)速器

比如上面那個“集成點”的“暗債”,可以使用“快速失敗”的思路來解決,那么就可以根據(jù)修復(fù)工作量的大小,要么順手修復(fù),要么將其加入迭代開發(fā)待辦列表中,納入日常開發(fā)活動中。如果每位開發(fā)人員都能在日常開發(fā)過程中,持續(xù)進(jìn)行如上的思考,那么就能在白天上班時,將生產(chǎn)事故的相關(guān)“暗債”,逐一解決,讓自己能睡個好覺。

當(dāng)然你可以把上面那套方法及其成效,分享給你的隊友。但更有效的方法,是設(shè)法影響你的技術(shù)領(lǐng)導(dǎo),請他參考2021年6月中文版新上市的《混沌工程》關(guān)注與該書同名的這一新實踐。

早在2008年,Netflix公司在把數(shù)據(jù)中心遷往亞馬遜云平臺的時候,踩了一個大坑,經(jīng)常會出現(xiàn)生產(chǎn)事故。為了能在白天上班時間解決生產(chǎn)環(huán)境的事故,而不是半夜爬起來解決,他們摸索出一套行之有效的方法——混沌工程。

該如何做混沌工程?

借鑒Netflix的實例,可以從“擺正心態(tài)、人員主動和試點業(yè)務(wù)”三方面入手,來啟動混沌工程。

擺正心態(tài)

承認(rèn)暗債為復(fù)雜系統(tǒng)所固有,而不是一味要求工程師“不能也不該出現(xiàn)失誤”。否則在故障面前,大家就只會花大量時間相互甩鍋,而忽視了提升團(tuán)隊發(fā)現(xiàn)更多暗債和快速修復(fù)生產(chǎn)故障的能力。

人員主動

根據(jù)Ashby的必要多樣性法則(用于控制系統(tǒng)B的系統(tǒng)A,需要和系統(tǒng)B同樣復(fù)雜),要建立對系統(tǒng)能夠承受生產(chǎn)環(huán)境的動蕩的信心,需要針對生產(chǎn)環(huán)境“豐富多彩”的暗債,設(shè)計同樣“豐富多彩”的防范手段。而技術(shù)骨干一個人,是發(fā)現(xiàn)不了那么多暗債,并找到那么多的防范手段的。所以,就需要發(fā)揮各位工程師的主動性。此時,領(lǐng)導(dǎo)者要創(chuàng)造能調(diào)動工程師主動性和創(chuàng)造性的企業(yè)文化,來促進(jìn)工程師更安全地發(fā)現(xiàn)與修復(fù)更多“花樣”的暗債。在修復(fù)暗債的過程中,就可以使用上述8大謬誤、反模式和模式列表。

試點業(yè)務(wù)

  • 選擇一個出現(xiàn)生產(chǎn)事故頻率較高的業(yè)務(wù)系統(tǒng),嘗試混沌工程。因為事故的反復(fù),出現(xiàn)會讓發(fā)現(xiàn)與解決暗債的動力更大
  • 基于能反映用戶體驗的業(yè)務(wù)穩(wěn)態(tài)行為建立假設(shè),而不是先聚焦于在系統(tǒng)內(nèi)尋找弱點。因為這樣能更利于進(jìn)行全局優(yōu)化,讓成效更大
  • 為了讓暗債浮現(xiàn)出來,設(shè)計引入足夠多樣化的現(xiàn)實世界可能發(fā)生的事件,而不是設(shè)計那些易于生成但在現(xiàn)實中不大可能出現(xiàn)的事件,以便切中要害。針對每一個所引入的事件,參考上述模式列表,來進(jìn)行穩(wěn)定性設(shè)計
  • 可以先從準(zhǔn)生產(chǎn)環(huán)境入手進(jìn)行混沌實驗,等條件成熟后,再逐漸過渡到生產(chǎn)環(huán)境
  • 自動化地持續(xù)進(jìn)行混沌實驗,以起到回歸實驗的效果,持續(xù)發(fā)現(xiàn)并解決暗債,避免系統(tǒng)隨著時間的推移,在韌性方面逐漸“掉隊”
  • 設(shè)計更安全的實驗方式,以最小化爆炸半徑,讓實驗所導(dǎo)致的業(yè)務(wù)損失降到最低,而不是明知故障難以控制,還要貿(mào)然進(jìn)行實驗。如果實驗的假設(shè)被證偽,那么就遇到了發(fā)現(xiàn)新的暗債的好機(jī)會。在尋找暗債的過程中,可以參考上述反模式列表,來啟發(fā)尋找漏洞及修復(fù)

總結(jié)一下,真英雄最終都不會在半夜里爬起來搶修生產(chǎn)事故,因為他們會聰明地使用分布式系統(tǒng)穩(wěn)定性設(shè)計,以及混沌工程,避免將自己陷入如此凄慘的境地。

作為一名開發(fā)人員,如何能讓自己能逐漸減少在半夜爬起來搶修生產(chǎn)事故的次數(shù)?可以嘗試使用本文要介紹的8個謬誤、12個反模式和12個模式。

如何讓隊友不會半夜把你喊起來幫著搶修生產(chǎn)事故?影響領(lǐng)導(dǎo),嘗試使用混沌工程,來讓團(tuán)隊成員都在上班時間,主動發(fā)現(xiàn)并修復(fù)分布式系統(tǒng)的漏洞,逐漸減少夜里喊你的次數(shù)。

【本文是51CTO專欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號:思特沃克,轉(zhuǎn)載請聯(lián)系原作者】

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2010-02-02 09:24:24

云計算網(wǎng)格計算

2015-11-23 17:27:19

程序員寫代碼

2017-05-08 13:17:16

CTO程序員創(chuàng)業(yè)

2021-01-12 07:57:36

MySQLBinlog故障處理

2019-07-31 10:08:19

人工多線程數(shù)據(jù)

2020-12-09 08:59:59

MongoDB復(fù)合索事故

2012-06-18 09:04:53

新聞回顧

2022-05-18 13:02:27

管理系統(tǒng)

2019-04-24 09:25:51

安全事故復(fù)聯(lián)

2013-02-28 11:00:51

IE10瀏覽器

2015-06-24 15:29:56

阿里云香港機(jī)房癱瘓

2017-11-09 09:06:29

流量暴增優(yōu)化

2018-04-16 11:03:50

區(qū)塊鏈陷阱騙術(shù)

2022-11-16 08:00:00

雪花算法原理

2011-11-03 17:09:46

惠普PCWebOS

2020-09-25 07:57:42

生產(chǎn)事故系統(tǒng)

2019-08-05 10:15:33

系統(tǒng)緩存架構(gòu)

2020-10-20 06:48:24

架構(gòu)師CPU服務(wù)器

2018-08-31 21:48:09

程序員工程團(tuán)隊管理

2022-10-25 18:00:00

Redis事務(wù)生產(chǎn)事故
點贊
收藏

51CTO技術(shù)棧公眾號