丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
業(yè)界 正文
發(fā)私信給左芬
發(fā)送

3

Google是如何做到從不宕機的?

本文作者: 左芬 2017-02-15 18:36
導語:某一天,你需要使用Google,但Google并不可用——你上一次遇見這種情況是什么時候?

雷鋒網(wǎng)注:本文來自微信公眾號“運維派”(ID:yunweipai),雷鋒網(wǎng)獲授權(quán)發(fā)布。

很有可能,這種情況根本沒有發(fā)生過(譯注:這是文章是美國人寫的)。的確,有時也會出現(xiàn)因為網(wǎng)絡連接中斷而用不上Google的情況;但是Google的基礎(chǔ)性在線服務——從搜索引擎到Gmail再到Google Docs等等——幾乎永遠垂手可及。根據(jù)Google官方的數(shù)據(jù),2015年該公司旗下的Google App套件在99.97%的時間里都處于可用狀態(tài)。也許我們認為這是理所當然的,但它的確是一個了不起的事實;而全世界數(shù)十億的Google用戶似乎從來沒有停下來想想:Google是如何把一件如此激動人心的事情處理得如此波瀾不驚的。

用軟件取代人工

Google用了這三個詞來解釋這個問題:Site Reliability Engineering(中文可譯為:網(wǎng)站可靠性工程,后文簡稱SRE)。也許這三個詞聽起來并不是特別性感,但它們確實是(名字聽起來更不性感)的Google在10年前就已經(jīng)秉承的核心理念。這個理念很難用一兩句話說清楚,不過可以歸結(jié)到一個中心思想:讓碼農(nóng)而非那些專門從事網(wǎng)絡服務的IT人士來運營網(wǎng)絡服務。如果這個思想得以執(zhí)行,那么碼農(nóng)們就會開發(fā)出一種不需要人為介入的工具來幫助完成運營工作(這里所說的運營,主要是指維護服務的穩(wěn)定和性能)。

“我們通過這種方法建立這樣一個團隊:大家都比較厭倦自己親自動手去完成任務,而是通過寫出軟件來取代此前需要人工完成的事情。”一位名叫Ben Treynor Sloss的Google員工在一篇文章中寫道。

對于硅谷的很多人來說,這似乎已經(jīng)成為一個常識;從亞馬遜到Box.com,這種方法已經(jīng)被整個科技圈所采用。人們稱其為DevOps(Development加上Operations)模式,意即通過某種努力將軟件開發(fā)者與系統(tǒng)管理員聯(lián)系起來。但是以Chef和Puppet為代表,自從DevOps模式從Google的SRE漸漸衍生出來之后已經(jīng)發(fā)生了很大的改變。只不過Google在過去的十年里一直對SRE默不作聲,但是過去它在應對大規(guī)模高效率的網(wǎng)絡操作時的確是這么做的。

不過目前Google已經(jīng)進入到一個新的階段,它更愿意討論SRE的相關(guān)問題了。(這主要是因為Google想推銷自己的云服務,以便外界公司能夠用上自己的軟件服務。)不僅如此,Google還專門寫了一本書來探討關(guān)于SRE的問題。

好吧,這本書的名字就是Site Reliability Engineering。此書剛剛被O’Reilly(譯注:一個專注于科技類書籍的出版公司)出版,而來自Sloss的那篇論文被作為此書的第一章。如果你對DevOps感興趣,那么此書在必讀之列;即使不感興趣,這本書的開頭——序言、介紹以及第一章——也足以讓我們了解到Google這個全世界最大的網(wǎng)絡帝國的驅(qū)動之道。

對于很多科技公司——其實也可以是科技圈之外的所與人——而言,系統(tǒng)管理(或者說運作, 隨你怎么稱呼)是收尾工作,是計算機科技最煩人的一個方面之一。但是Sloss,也就是外界所知道的Google內(nèi)部負責“不間斷運行”的副總裁,卻把這個問題反過來看,辯稱網(wǎng)站可靠性“是所有產(chǎn)品最基礎(chǔ)的功能”,畢竟,“如果一個系統(tǒng)不能工作,那么它一點用處都沒有。”

黑格爾的對立統(tǒng)一理論

Sloss就是SRE的原點。早年Google招他來負責公司的運營項目時,他創(chuàng)立了這個項目?!爱斈阋笠粋€軟件工程師去設計一個運作團隊的時候,SRE就產(chǎn)生了”,他說,“我設計并管理這個團隊;這個團隊運作起來就像我自己是一個SRE一樣?!?

Todd Underwood目前是Google的一個SRE總監(jiān);他認為Google雇傭Sloss這樣的碼農(nóng)是一件非常自然的事情?!爱擥oogle還處于早期發(fā)展階段時候,就已經(jīng)有軟件工程師很清楚地意識到哪里會出問題以及如何解決這些問題,但是他們中沒有人愿意親自去處理這些事情?!?

這其實是一件麻煩事。但是Chef的CTO(首席技術(shù)官)Adam Jacob也認為要想成長為一個大體量的公司,做出這種轉(zhuǎn)變也是應該的?!皩④浖_發(fā)和實際運營連接在一起是一件非常自然的事情,你不可能將兩者自然分開;尤其是當你歷史地看待這個問題的時候,你可能會更加意識到這一點?!?

考慮到在傳統(tǒng)意義上開發(fā)和運營是完全不搭界的兩個層面,你會覺得這種轉(zhuǎn)變非常有意思。開發(fā)人員致力于寫出一個新的軟件,然后修改,最后再盡可能快地將軟件推向大眾用戶;而運營人員則是保證不出差錯,而最好的方式是將變化減少到最小?!斑@些本來是毫不相干的目標”,Underwood說,“不過開玩笑的是,當你把開發(fā)和運營聯(lián)系起來,你就開始消弭他們之間的競爭目標了”。

Underwood稱之為“黑格爾的對立統(tǒng)一理論”;不過當他這么說的時候,沒有人買賬?!叭藗兌疾辉僮x黑格爾了”,他自嘲說。不過這種描述方式說到點子上了。一旦這種準備就緒,Google就加快了將所有的好想法都付諸這種模式的進程。

開發(fā)與運營之間的平衡

有一個很重要的想法是:為了減少開發(fā)和運營之間的沖突,Google并不要求100%的正常運行時間。正如Sloss在書中所寫,實際上并不需要保證網(wǎng)絡服務100%的時間里處于可用狀態(tài)。用戶也并不能真正區(qū)分出100%和99.999%的 區(qū)別(實際上他們的筆記本、WiFi、電量掉線的時間遠遠超過0.001%)。如果你在100%之下設置一個合理的在線時間比例——誤差預算——那么你將會足夠的時間做出改變并且調(diào)試完畢。

“誤差預算的運用消解了開發(fā)工作和SRE工作之間的沖突誘因”,Sloss說,“一次中斷不再是一件壞事。它存在于一個創(chuàng)新過程中的可預期范圍之內(nèi);這樣一來,開發(fā)部門和SRE部門都能夠解決這個問題,而不會感到害怕。”

與此同時,Google公司也推出一些相應的規(guī)定來保證SRE不會演變?yōu)槔鲜降南到y(tǒng)管理。原則上,SRE不允許花費50%以上的時間在傳統(tǒng)的運營工作(與編程相抵觸)上。如果在一個SRE團隊中,運營的優(yōu)先權(quán)已經(jīng)超過了開發(fā),Google就會將一些運營人員調(diào)配到普通的軟件開發(fā)工作中去?!坝幸庾R地調(diào)節(jié)開發(fā)和運營之間的平衡,能夠保證SRE們有足夠的空間去投入到有創(chuàng)造性的、自動化的工程中去,”Sloss說,“當然,他們同時也得聽取運營部門的意見?!?

Chef公司的Jacob認為這里所提到的50%的比率并沒有那么重要,但是他喜歡這種態(tài)度。他說“那是業(yè)務,總要有人去處理運營工作;而且運營工作幾乎是無窮無盡的,所以你硬要給他們扣上一頂帽子也是可以理解的?!?

在雇傭SRE時,Google甚至制定了嚴格的規(guī)范。在招募的人員中,有50%到60%的人員會通過像其他所有Google工程師那樣的嚴格考核,剩下的需要擁有85%到99%的Google工程師技能,加上一些特殊適用于SRE但是大多數(shù)軟件工程師不具備的技能——比如說對于UNIX操作系統(tǒng)和硬件網(wǎng)絡協(xié)議了如指掌等。這些都是為了保證開發(fā)和運營之間能夠保證一個恰當?shù)钠胶狻?

SRE的雄心

從多種層面上而言,這是一種全新的理念。但是在他的書中,當他們試圖描述這種理念的時候,Google團隊卻選用了一個比較老舊的例子。Google SRE的精神先行者是一個來自MIT的名為Margaret Hamilton的程序員,她在六十年代為阿波羅飛船編寫了登月程序。正如Hamiltion自己說的那樣,阿波羅項目中衍生出的部分文化是向所有人和所有事物學習,包括那些看起來學不到什么的人和事。

雖然Hamilton是一個碼農(nóng),但她在運營中承擔重要角色。為了證明這一點,這本書中講了一個故事:她經(jīng)常帶她的女兒Lauren進入到計算機實驗室,有一天,Lauren恰好碰到一個按鈕,然后把阿波羅的預發(fā)射程序植入到一個正在運行“發(fā)射后場景”程序的計算機中去。

這一下讓整個系統(tǒng)卡死;Hamilton試圖在系統(tǒng)中添加一段錯誤監(jiān)測代碼,以便在真實的飛行過程中能夠阻止這種錯誤。她的上司否決了整個想法,辯稱宇航員絕不會犯這種錯誤;但是在阿波羅8號中,宇航員的確犯了這么一個錯誤。幸運的是,Hamilton在系統(tǒng)文檔中加入了一個變通方案。在后續(xù)工作中,她還是加入了這段錯誤監(jiān)測代碼。

如果你過來跟我說“它會死機”,那沒有什么用;但是如果你說“它會死機,讓我來告訴你怎么解決”,那你就很棒了——Underwood說?!岸谖覀冞@里,會有人既知道會出現(xiàn)一些問題,也知道問題出在哪里,并且能找出方案防止問題發(fā)生。”

這就是DevOps,或者用Google的話說,SRE。這三個詞聽起來沒什么,但是它的確是一個非常強大的想法。通過它,Google已經(jīng)誕生了,但是對于某些像Underwood這樣富有哲學思維的SRE來說,他們有著更大的雄心。在他們的構(gòu)想中,運營本身比開發(fā)前進得更快。

“我們希望長久以后,沒有人再做運營了?!盪nderwood如是說。

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

分享:
相關(guān)文章
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說