精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

谷歌是如何做到幾乎從不宕機(jī)的?

責(zé)任編輯:editor006

作者:科技新知

2016-04-12 16:02:21

摘自:虎嗅網(wǎng)

考慮到在傳統(tǒng)意義上開(kāi)發(fā)和運(yùn)營(yíng)是完全不搭界的兩個(gè)層面,你會(huì)覺(jué)得這種轉(zhuǎn)變非常有意思。她的上司否決了整個(gè)想法,辯稱宇航員絕不會(huì)犯這種錯(cuò)誤;但是在阿波羅8號(hào)中,宇航員的確犯了這么一個(gè)錯(cuò)誤。

某一天,你需要使用Google,但Google并不可用——你上一次遇見(jiàn)這種情況是什么時(shí)候?

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

用軟件取代人工

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

“我們通過(guò)這種方法建立這樣一個(gè)團(tuán)隊(duì):大家都比較厭倦自己親自動(dòng)手去完成任務(wù),而是通過(guò)寫(xiě)出軟件來(lái)取代此前需要人工完成的事情。”一位名叫Ben Treynor Sloss的Google員工在一篇文章中寫(xiě)道。

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

不過(guò)目前Google已經(jīng)進(jìn)入到一個(gè)新的階段,它更愿意討論SRE的相關(guān)問(wèn)題了。(這主要是因?yàn)镚oogle想推銷(xiāo)自己的云服務(wù),以便外界公司能夠用上自己的軟件服務(wù)。)不僅如此,Google還專(zhuān)門(mén)寫(xiě)了一本書(shū)來(lái)探討關(guān)于SRE的問(wèn)題。

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

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

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

Sloss就是SRE的原點(diǎn)。早年Google招他來(lái)負(fù)責(zé)公司的運(yùn)營(yíng)項(xiàng)目時(shí),他創(chuàng)立了這個(gè)項(xiàng)目。“當(dāng)你要求一個(gè)軟件工程師去設(shè)計(jì)一個(gè)運(yùn)作團(tuán)隊(duì)的時(shí)候,SRE就產(chǎn)生了”,他說(shuō),“我設(shè)計(jì)并管理這個(gè)團(tuán)隊(duì);這個(gè)團(tuán)隊(duì)運(yùn)作起來(lái)就像我自己是一個(gè)SRE一樣。”

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

這其實(shí)是一件麻煩事。但是Chef的CTO(首席技術(shù)官)Adam Jacob也認(rèn)為要想成長(zhǎng)為一個(gè)大體量的公司,做出這種轉(zhuǎn)變也是應(yīng)該的。“將軟件開(kāi)發(fā)和實(shí)際運(yùn)營(yíng)連接在一起是一件非常自然的事情,你不可能將兩者自然分開(kāi);尤其是當(dāng)你歷史地看待這個(gè)問(wèn)題的時(shí)候,你可能會(huì)更加意識(shí)到這一點(diǎn)。”

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

Underwood稱之為“黑格爾的對(duì)立統(tǒng)一理論”;不過(guò)當(dāng)他這么說(shuō)的時(shí)候,沒(méi)有人買(mǎi)賬。“人們都不再讀黑格爾了”,他自嘲說(shuō)。不過(guò)這種描述方式說(shuō)到點(diǎn)子上了。一旦這種準(zhǔn)備就緒,Google就加快了將所有的好想法都付諸這種模式的進(jìn)程。

開(kāi)發(fā)與運(yùn)營(yíng)之間的平衡

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

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

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

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

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

SRE的雄心

從多種層面上而言,這是一種全新的理念。但是在他的書(shū)中,當(dāng)他們?cè)噲D描述這種理念的時(shí)候,Google團(tuán)隊(duì)卻選用了一個(gè)比較老舊的例子。Google SRE的精神先行者是一個(gè)來(lái)自MIT的名為Margaret Hamilton的程序員,她在六十年代為阿波羅飛船編寫(xiě)了登月程序。正如Hamiltion自己說(shuō)的那樣,阿波羅項(xiàng)目中衍生出的部分文化是向所有人和所有事物學(xué)習(xí),包括那些看起來(lái)學(xué)不到什么的人和事。

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

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

如果你過(guò)來(lái)跟我說(shuō)“它會(huì)死機(jī)”,那沒(méi)有什么用;但是如果你說(shuō)“它會(huì)死機(jī),讓我來(lái)告訴你怎么解決”,那你就很棒了——Underwood說(shuō)。“而在我們這里,會(huì)有人既知道會(huì)出現(xiàn)一些問(wèn)題,也知道問(wèn)題出在哪里,并且能找出方案防止問(wèn)題發(fā)生。”

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

“我們希望長(zhǎng)久以后,沒(méi)有人再做運(yùn)營(yíng)了。”Underwood如是說(shuō)。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 阳谷县| 金湖县| 环江| 西乌珠穆沁旗| 北海市| 玉屏| 临城县| 湘潭县| 宜君县| 平乡县| 杂多县| 江阴市| 元氏县| 呼伦贝尔市| 正镶白旗| 安远县| 河池市| 田林县| SHOW| 宁国市| 陆河县| 彩票| 刚察县| 芮城县| 昭平县| 民县| 孙吴县| 长海县| 包头市| 维西| 简阳市| 万年县| 南汇区| 临夏市| 威信县| 牙克石市| 五莲县| 峨边| 鄂尔多斯市| 曲靖市| 宣化县|