運(yùn)維85條軍規(guī):
1) 承載能力優(yōu)先 ——隨后再進(jìn)行優(yōu)化 —— 不遵守這條規(guī)則必定帶來故障停機(jī)時(shí)間。不要在故障停機(jī)時(shí)間的壓力下進(jìn)行優(yōu)化——要先集中精力提高承載能力。
2) 以Postgres為例,一定要確保你的每一個(gè)網(wǎng)絡(luò)都能匹配得上你的WAL文件、Slony復(fù)制、快照技術(shù)以及基于磁盤的DB版本化(快照的衍生品)
3) 不要把問題‘優(yōu)化’到你的架構(gòu)之中。為了解決問題而新加進(jìn)來的一些東西往往后來都會(huì)變成運(yùn)維沉重的負(fù)擔(dān)。 要確保在運(yùn)維工程化中開發(fā)出來的工具交接完整。過后再回頭進(jìn)行進(jìn)一步的開發(fā)往往不靈。更重要的是,變更請(qǐng)求可能會(huì)破壞已經(jīng)安排好的工程計(jì)劃。
4) 保持簡單。保持簡單,因?yàn)槟愫苈斆?別把事搞的太復(fù)雜 因?yàn)槟阈械摹?br />
(譯者:KISS 原則 Keep It Simple, Stupid)
5)應(yīng)該非常謹(jǐn)慎地使用緩存,為了保護(hù)資源一致性,它很難進(jìn)行水平縮放。
如果你作的是一個(gè)可以橫向擴(kuò)展的東西, 明智或?qū)徤鞯淖龇ㄊ遣灰砑拥木彺鎸印?如果非要使用,它應(yīng)該是為最終用戶獲得性能, 不是為了贏得一個(gè)網(wǎng)站的容量;
6) 不要所有代碼都自己寫; 不要所有東西都外包; 在合適的時(shí)間使用合適的工具,完成你的工作.
(譯者: 不要重復(fù)造輪子)
7)協(xié)商-真正有效的談判唯一方式是先作一些調(diào)研,制定一些可行的性方案.這樣你可以挑選你的首席開發(fā)商,如果你真的需要. 別虛張聲勢.
8)一直保持N+1。如果N=1,無論任何情況下不要輕易使用+1,這個(gè)1只用于當(dāng)N down機(jī)情況下。當(dāng)使用冗余服務(wù)器來承載負(fù)載時(shí)候,不要讓你的系統(tǒng)超過49%的負(fù)荷。當(dāng)有機(jī)會(huì)能只用N+2的架構(gòu)時(shí)候,使用它。
9)數(shù)據(jù)丟失不是任何一個(gè)公司所能承擔(dān)的風(fēng)險(xiǎn)--這是舉世所知的真理。數(shù)據(jù)丟失造成的損失遠(yuǎn)遠(yuǎn)大于保持?jǐn)?shù)據(jù)不丟失所花的成本。
10)無論何時(shí)何地盡可能并行化。這是復(fù)路考慮最重要的手段。比如,如果利用MogileFS來做位置感知,并且需要實(shí)時(shí)的復(fù)制數(shù)據(jù),一個(gè)可行的方法是每一臺(tái)MogileFS服務(wù)器可以復(fù)制它的數(shù)據(jù)去MogileFS的負(fù)載均衡中心。盡可能多的啟用多的平行。
11)閱讀手冊(cè)。至今,我還是堅(jiān)持要先通讀RAID卡的手冊(cè),以確認(rèn)是否有什么細(xì)微的差別。惡魔都隱藏在細(xì)節(jié)里。做足功課吧!
12)知道瓶頸所在,并知道怎么去定位它,一層層排查,查找是不是硬盤、內(nèi)存或者cpu的阻塞了。通常這個(gè)很簡單。
13)定期做系統(tǒng)容量管理程序。積極一點(diǎn)。如果沒有容量數(shù)據(jù)的曲線,你很難知道你系統(tǒng)的薄弱之處。
14)不要促成失敗,不要害怕改變。
15)別挖陷阱給自己跳。不要認(rèn)為你的工作成果將能作為未來的工作的動(dòng)力。
16 )運(yùn)維人員寫的代碼應(yīng)該是運(yùn)維工具,而不是應(yīng)用軟件。
17)在運(yùn)維團(tuán)隊(duì)中,不要低估了項(xiàng)目管理、文檔撰寫以及財(cái)務(wù)分析人員的價(jià)值。他們比給予工資更有價(jià)值。
18)監(jiān)控一切。報(bào)警異常問題。其他部分記錄數(shù)據(jù)用來做趨勢分析信息。
19)定期的流程查看各個(gè)地方的趨勢數(shù)據(jù)。
20)不要把監(jiān)控弄的很亂,不然他就沒有啥意義了。
21)要確保監(jiān)控系統(tǒng)簡單到讓公司的每個(gè)人都能上手。你可能會(huì)很吃驚監(jiān)控?cái)?shù)據(jù)指標(biāo)轉(zhuǎn)換成為業(yè)務(wù)指標(biāo)、市場指標(biāo)和銷售等等指標(biāo)有多頻繁。
22 ) 只在可以做出相應(yīng)改善的地方做檢查。 否則就不要浪費(fèi)時(shí)間了。
23)公開你的檢查報(bào)告,并附上相關(guān)數(shù)據(jù),以便他人可以容易的閱讀到關(guān)鍵點(diǎn),并能關(guān)聯(lián)到響應(yīng)的數(shù)據(jù)。
24)在每一個(gè)技術(shù)點(diǎn)都分配人手。
25)要給重要人員配備后備人手。
26)要不斷的招聘。甚至是當(dāng)你沒有名額,也要一直招聘。
27)要嚴(yán)于律己。無論你有多聰明或者你認(rèn)為你多NB,你也要不斷的提高自己。
28 )要盡可能多的把自己和其他公司做比較。眼光要往外看。
29) 挑選一個(gè)展會(huì)或回憶,只有一個(gè),一年一次,去參加。如果展會(huì)一年舉辦多次,之參加一次。
30) 購買你需要的,而非你想要的。永遠(yuǎn)都不要摘掉企業(yè)這頂帽子帶上“什么對(duì)我是最簡單最安全的”這頂帽子。
31)永遠(yuǎn)只做最生意有益的事情,即使這意味著你需要離開。
32)正式問責(zé)機(jī)制——記錄承諾,標(biāo)記它們,揭示為兌現(xiàn)的承諾。
33) 你不應(yīng)失敗兩次以上??謶指杏悬c(diǎn)好處。但要知道長期犯錯(cuò)和無意犯錯(cuò)的區(qū)別。
34無情一些——你的對(duì)手如此。
35)視工作為在你完成時(shí)需要簽上你的名字。這也意味著完成你的工作。
36)變得對(duì)別人有用。
37)與初創(chuàng)公司合作——提供你的專業(yè)技術(shù)和規(guī)模,你將獲得免費(fèi)的產(chǎn)品作為回報(bào),有時(shí)甚或一生。
38)容量是一個(gè)業(yè)務(wù)/產(chǎn)品問題。這意外著每個(gè)頁面、每個(gè)請(qǐng)求、每次登錄的網(wǎng)絡(luò)成本等等在做正確的業(yè)務(wù)/產(chǎn)品決策時(shí)候都必須是都透明
39)一直打破預(yù)算。運(yùn)維團(tuán)隊(duì)通常是最大的花費(fèi)者。通常沒有收入沒有達(dá)到預(yù)算,但是運(yùn)維團(tuán)隊(duì)可以有很多方法來延期采購。
40)過去能正常的做的事,不見得現(xiàn)在或者未來都會(huì)正常。所以做的時(shí)候,先用工具測試一下。
41)文檔化。把所有東西都寫成文檔。要讓新人挨個(gè)去問怎么做事。
42)用一張大尺寸的圖繪制你數(shù)據(jù)中心的網(wǎng)絡(luò)拓?fù)洹?nbsp;
43 )用一張圖描繪出你每一個(gè)產(chǎn)品的業(yè)務(wù)流程圖。
44) Faq-O-Matic, Wiki, 在這里人們可以很容易的發(fā)布“這是如何修復(fù)這個(gè)”的文章,并讓它容易被找到的地方。這里是技術(shù)編寫者能派上用場的地方,但是,最重要的是使文檔更容易,即使是非正式的。
45) 確保所有人,任何人都可以被替換。
46)多數(shù)人在家里做的比在辦公室里更多,有些人則不然。
47)捆綁下單——你可以要求更多折扣,更好的條款等等。當(dāng)你成批購進(jìn)硬件時(shí)。你可以要求一切——最低價(jià)格,備件包,租賃期限,只要他們還沒有得到訂單。
48)同你的供貨商保持長期關(guān)系——確保你在下份工作時(shí)依然能夠聯(lián)系他們。
49)給運(yùn)維團(tuán)隊(duì)的每一個(gè)人配置可以用來遠(yuǎn)程工作的超級(jí)裝備:掌上電腦、無線上網(wǎng)卡、24英寸液晶顯示器等等。雇傭大拿得到回報(bào)要遠(yuǎn)大于遠(yuǎn)程雇傭的本地人員。記住運(yùn)維工程師都是用電達(dá)人,能充分的利用屏幕上的每一個(gè)像素點(diǎn)。
50)完全陷入IT標(biāo)準(zhǔn)的泥潭。直到Mac運(yùn)行office 2007和outlook,你必須運(yùn)行windows。間斷的。除非全用mac本,否則這會(huì)破壞會(huì)議日程表、聯(lián)系人或者郵件列表的辦公效率。如果有個(gè)員工愿意工作的在 xp環(huán)境。這是非常少。這條法則,現(xiàn)在是陳舊的/未公認(rèn)的,陷入泥潭不一定是最好的方法。這個(gè)列表非常的07化。
51 )有個(gè)合理的采購流程。知道你的預(yù)算,確信能管好它。從財(cái)務(wù)得到實(shí)際的金額。在技術(shù)驅(qū)動(dòng)的預(yù)算/報(bào)告和財(cái)務(wù)驅(qū)動(dòng)的預(yù)算/報(bào)告直接往往有一定的差距。作為一個(gè)搞的運(yùn)維管理者要能形成模型把這些差距計(jì)入銷售總成本中。一個(gè)理解這些事情的CFO有助于推動(dòng)業(yè)務(wù)決策。
52)周會(huì)一定要持續(xù)進(jìn)行。對(duì)上次會(huì)議的事件逐一落實(shí)結(jié)果和追責(zé)。
53)建立一個(gè)分離的逐級(jí)升級(jí)系統(tǒng),用以消除由于開發(fā)者代碼的問題對(duì)線上系統(tǒng)的不良影響。這主要是運(yùn)維問題、代碼問題都存在的情況下在開發(fā)跟蹤系統(tǒng)或者運(yùn)維跟蹤系統(tǒng)中往往會(huì)丟掉,最后無人理睬。建立一個(gè)獨(dú)立的跟蹤系統(tǒng)來解決這些問題可以使得問題簡單清晰。
54 )產(chǎn)品開發(fā)從設(shè)計(jì)開始的每個(gè)階段都要和運(yùn)維相結(jié)合。這樣,擴(kuò)展性,監(jiān)控和可靠性都融入到產(chǎn)品里。這樣同時(shí)也可以確保運(yùn)維負(fù)責(zé)的硬件采購、監(jiān)控系統(tǒng)按時(shí)到位,運(yùn)維手冊(cè)得到及時(shí)更新,最后產(chǎn)品按照預(yù)計(jì)時(shí)間上線運(yùn)行并且都符合運(yùn)維標(biāo)準(zhǔn)。
55)在公司真正的實(shí)踐——Sarbanes,WebTrust 安全審計(jì)認(rèn)證,SAS 70 審計(jì)標(biāo)準(zhǔn),Visa 和銀行等等。如果你真的成功了,這些都是你不得不打交道的。早點(diǎn)開始這些準(zhǔn)備其實(shí)很簡單,不需要太多的知識(shí)。部署一個(gè)工單/任務(wù)跟蹤工具,使用它。把變更控制和變更管理納入同樣的系統(tǒng)里,使用它。其他信息也可以放進(jìn)來。系統(tǒng)就可以幫助我們找出像“上周變更了什么”這類信息。
56)簡化給冗余留和多點(diǎn)登錄的流程。一開始或許很難,但是一個(gè)沒有真正的擴(kuò)展性和可靠性的系統(tǒng),才會(huì)真正耽誤你獲得成功的時(shí)間。
57)Oracle 標(biāo)準(zhǔn)版(SQL Server 標(biāo)準(zhǔn)版)是值得購買的。如果你可以限制住自己不超過標(biāo)準(zhǔn)版的需求,那就絕對(duì)值得買,哪怕你剛剛開始創(chuàng)業(yè)還不需要他。
58)Postgres 和 MySQL 是一個(gè)免費(fèi)的考慮。如果你不是特別在意事務(wù)完整性,MySQL 是很好的選擇。直到"真空"和Postgres單詞的強(qiáng)制鏈被打斷,Postgres代表一個(gè)不可預(yù)知的,通常消極詭異的數(shù)據(jù)庫。
59)容量設(shè)計(jì)應(yīng)該按照每日峰值再上拋 20% ~ 30% 的冗余。除非你是個(gè)遷移技術(shù)熱衷者。
60)盡量多讀一些經(jīng)濟(jì)雜志。它們通常是免費(fèi)的,只需你填寫一些調(diào)查問卷就可以免費(fèi)獲得。新聞的價(jià)值是巨大的。讓他們投遞到你家里,工作的時(shí)候讀雜志的機(jī)會(huì)趨近于零。
61)保障安全。開發(fā)人員不應(yīng)該有線上環(huán)境的權(quán)限,應(yīng)該做代碼復(fù)核。這是和運(yùn)維之間的職責(zé)分離。運(yùn)維團(tuán)隊(duì)中應(yīng)該有人控制其他運(yùn)維人員權(quán)限的權(quán)限。制定員工手冊(cè),告知違反安全條例所帶來的嚴(yán)重后果。從開始就要從物理的、邏輯的、功能的各個(gè)方面來保護(hù)客戶的數(shù)據(jù)安全和隱私。萬一有客戶要和你對(duì)峙起來,你發(fā)現(xiàn)起來發(fā)現(xiàn)自己只是靠勇氣和勤奮來保護(hù)客戶數(shù)據(jù),那你就傻了。
62) 控制好訪問入口。首先要保證大家可以正常完成工作;其次要確保你知道他們是從哪里登錄的。啟用雙因素身份驗(yàn)證方法。
63)對(duì)于人們?cè)L問生產(chǎn)環(huán)境必經(jīng)之路的壁壘和網(wǎng)關(guān)宿主,擊鍵記錄很重要。對(duì)于 Windows 可能稍微有點(diǎn)難度,不過有些網(wǎng)關(guān)可以提供自動(dòng)截屏功能。
64)如果有狀況的情況下,確保有冗余登錄點(diǎn)連線到生產(chǎn)環(huán)境。不要期望公司的 VPN 在網(wǎng)絡(luò)中斷的時(shí)候還能連上生產(chǎn)環(huán)境。直接把 VPN 架設(shè)在線上環(huán)境里。
65)使用 LDAP 認(rèn)證,哪怕你只有 10 臺(tái)機(jī)器,通過復(fù)制 passwd 和 shadow 文件的方式來管理,你也需要 LDAP 認(rèn)證。
66)不要低估在 UNIX 環(huán)境中一臺(tái) Windows Server 2003(2008)設(shè)備的作用。如果只是因?yàn)椴欢?Windows,那么去學(xué),而不是排斥它。
67)不要在無效的無線方案上浪費(fèi)大家的時(shí)間。人們都機(jī)動(dòng)的,他們希望在沙發(fā)上,會(huì)議室里,門口,到處都要上網(wǎng)。一定要保證無線ad的可靠。
68) 總有人把額外的精力和時(shí)間都投入到工作上——直接通過他們的請(qǐng)假單好了。而另一些人恰恰相反只把注意力放在怎么通過自己的請(qǐng)假單。在個(gè)人時(shí)間安排上,運(yùn)維人員總是做出巨大的犧牲,他們隨時(shí)準(zhǔn)備凌晨3點(diǎn)爬起床快速響應(yīng)排障需求。
69)通過集中式的關(guān)系數(shù)據(jù)庫管理你所有的產(chǎn)品成果。然后通過數(shù)據(jù)復(fù)制分發(fā)到資產(chǎn),人員,網(wǎng)絡(luò),合同等所有數(shù)據(jù)到異地。沒錯(cuò),要的是一個(gè)在線的實(shí)時(shí)可用的復(fù)制,而不是每天晚上備份到磁帶。
70)盡可使用自動(dòng)化流程以確保安全,包括操作系統(tǒng)或者產(chǎn)品的上線,文件的分發(fā),日志的分析等。
71)自動(dòng)化操作通過運(yùn)維數(shù)據(jù)庫獲得配置(真理來源)。
72)服務(wù)器通常有三種狀態(tài)——離線,在線,產(chǎn)品態(tài)。在線就是說正在通過 cfengine、rsync 或者其他你在使用的工具完成配置。產(chǎn)品態(tài)表示已經(jīng)走流量了。同時(shí)還需要一個(gè)狀態(tài),這個(gè)狀態(tài)下的設(shè)備可以在不提供生產(chǎn)服務(wù)的情況下收集或者測試數(shù)據(jù)。
73)注重日志數(shù)據(jù)。在設(shè)備下線或者重建之前,一定要先導(dǎo)出日志。
74)如果規(guī)模發(fā)展太快以至于沒有太多時(shí)間來做優(yōu)化,那就盡力鎖定一切——流程還能進(jìn)行即可,就不要改變它,直到后來有了絕對(duì)必要的理由??傊i定默認(rèn)值,等待成長到必要時(shí)再審視。
75)你永遠(yuǎn)無法避免運(yùn)維工程師在你基礎(chǔ)設(shè)施最關(guān)鍵的地方犯錯(cuò)——比如在哪臺(tái)機(jī)器上不小心執(zhí)行 rm -rf / 命令。
76)為團(tuán)隊(duì)保持好玩和有趣的氣氛——如果他們不再享受他們的工作,他們就會(huì)找別的事情來消遣。要讓團(tuán)隊(duì)有主人翁意識(shí),運(yùn)維不是哪個(gè)經(jīng)理的個(gè)人任務(wù)。
77)提供 99.999% 可用性的真正價(jià)值在于讓我們有能力保持靈活。這意味著當(dāng)你需要的時(shí)候可以充分利用冗余。這會(huì)讓物理變更、設(shè)備登入點(diǎn)變化、代碼修改和回退等等都游刃有余。這個(gè)對(duì)于公司本身價(jià)值巨大,甚至比對(duì)客戶還大。
78)如果你能做到 99.999%,給客戶100% 的服務(wù)承諾。
79) 不要丟掉按流程發(fā)布軟件的能力。應(yīng)該丟掉的是你自己回滾或者轉(zhuǎn)移到舊版本代碼的能力。壓根就不應(yīng)該“處理”這種徒勞的失敗轉(zhuǎn)移。當(dāng)事情變得不 如人意的時(shí)候,你更應(yīng)該做的是找個(gè)大玩意兒來擋住你的肥屁股。CYA = 保持敏捷 = 成功的公司。
80) 在腦子里要清楚知道為什么以及這樣做的為了達(dá)到的目的,為客戶構(gòu)建產(chǎn)品每一個(gè)具體步驟。不管你部署給最終用戶的是什么,把這些放在最先考慮,即你所有(基礎(chǔ)設(shè)施、流程和人員)的設(shè)計(jì)都是為了提供最好的服務(wù)和產(chǎn)品。
81)第一次就要做對(duì)了。很少有機(jī)會(huì)讓你回去在做一遍的。重做是對(duì)公司資源的巨大浪費(fèi)。要提高命中率,一次就要成功。
82)接觸業(yè)內(nèi)人士、盟友和類似的企業(yè),看看他們的運(yùn)維是怎么做的。很可能他們碰到了跟你一樣的挑戰(zhàn),而解決的方法更好。不要害怕分享自己的經(jīng)驗(yàn)和處理過程,因?yàn)閯e人也會(huì)回饋的。他山之石,可以攻玉!
83)招人要招那些好到可以讓你擔(dān)心位子不保的那樣的人,招你欣賞和可以學(xué)習(xí)的榜樣,招那些你愿意和他一起工作的。這感覺甚至超過你招聘一個(gè)工作考評(píng)為A的員工。
84) IT 和運(yùn)維是完全不同的兩個(gè)概念。一個(gè)不錯(cuò)的運(yùn)維經(jīng)理應(yīng)該可以管理好企業(yè)IT,但是一個(gè)傳統(tǒng)的 IT工程師很難有能力處理互聯(lián)網(wǎng)運(yùn)維任務(wù)。
85)當(dāng)你開始一份新工作或者在每年的起始,都應(yīng)該去爭取預(yù)算。這不是說推車那老破車往前走,而應(yīng)該是基 于歷史數(shù)據(jù)做出最佳推薦方案。如果你正在評(píng)估一份新工作,請(qǐng)確認(rèn)你完完全全的知道預(yù)算以及預(yù)算的來源。同時(shí),還應(yīng)該有完善這份預(yù)算的權(quán)利。