色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>其它程序>

GO語言的可靠性和持久性

大小:0.09 MB 人氣:0 2017-09-28 需要積分:1

  作者在本文介紹了Dropbox公司是如何開啟探索使用Go語言之路的,在探索的過程中遇到了哪些問題,從結(jié)果來看證明了Go語言的可靠性和持久性。以下為譯文。

  

  Tammy Butow(@tammybutow)是Dropbox基礎(chǔ)架構(gòu)開發(fā)團隊的工程經(jīng)理。Tammy管理著代碼工作流——包括了Dropbox內(nèi)使用Go從編碼到上線的整個過程。她在2017年的GopherCon大會上談到了Dropbox的工程師是如何使用Go語言建立和運行大型服務。

  注意:這篇文章記錄了大會上的演講內(nèi)容。如果遺漏了什么,請在Twitter上告訴我(@sqs)。如果有錯誤,肯定是我描述的有問題;因為Tammy的演講太棒了!

  Dropbox探索使用Go語言之旅

  Tammy引用了Rob Pike于2012年編寫的谷歌Go語言:專為軟件工程服務設(shè)計的編程語言》中的說法,解釋了Go語言為何能夠在Dropbox公司當中發(fā)揮重要作用:

  “Go語言非常高效,支持擴展,而且還能提高生產(chǎn)。一些程序員覺得使用Go進行工作很有趣;另一些人則認為它缺乏想象力,甚至枯燥乏味。本文我們將解釋為什么這些對立的觀點是不成立的。Go語言旨在解決谷歌在軟件開發(fā)中所面臨的問題,導致了這門語言并不是一門突破性的研究語言,但對于大型軟件項目來說,它還是一個很優(yōu)秀的工具。”——Rob Pike,2012年

  Dropbox的規(guī)模非常龐大:

  超過5億個用戶

  200000個商業(yè)客戶

  500PB的用戶數(shù)據(jù)

  數(shù)據(jù)EB GO存儲系統(tǒng)

  因此,Dropbox對它們的系統(tǒng)、語言和工程師們有很高的要求。指導原則以及要求是:

  建立可靠的系統(tǒng)

  構(gòu)建安全的系統(tǒng)

  將可靠性和安全性合并到初始設(shè)計中

  99.9999999999%(12個9)的可靠性

  99.99%的可用性

  Dropbox公司對Go語言的應用

  現(xiàn)在Dropbox的大多數(shù)基礎(chǔ)架構(gòu)都是用Go編寫的。具體包括如下:

  Go服務器庫擁有150名貢獻者(來自總計500名工程師)

  Dropbox公司內(nèi)部超過15個團隊構(gòu)建和運行Go服務

  在Dropbox公司內(nèi)總共有130萬行Go語言代碼

  使用Go開發(fā)的關(guān)鍵系統(tǒng)包括:

  RAT:限速與限流工具

  HAT:memcached的替代方案

  AFS:一套用于替代全局Zookeeper的文件系統(tǒng)

  Edgestore:分布式數(shù)據(jù)庫

  Bolt:消息傳遞

  DBmanager:用于對Dropbox的6000多個數(shù)據(jù)庫進行自動化和監(jiān)控

  “Jetstream”、“Telescope” 、分塊路由以及更多……

  其中許多都是原本的非Go系統(tǒng)。

  Dropbox開始使用Go語言的原因是?

  Tammy分享了一些關(guān)于Dropbox是如何一步步使用Go語言的故事。

  Hack技術(shù)周成就Go速率限制器原型設(shè)計

  在一年的Hack技術(shù)周之前,Dropbox的工程師們針對各項服務分別進行限速與限流。所以Dropbox的一位工程師決定為這些事情建立一個公共服務的實現(xiàn),因此RAT誕生了。

  最初的RAT原型是在4天內(nèi)完成的,并在第5天進行演示。短短幾周之后,RAT的大名在公司內(nèi)部迅速擴散。另一位Dropbox工程師給Tammy的團隊發(fā)了電子郵件,看看他們時如何在Python項目中使用RAT。整合過程進展的很順利,采用率也逐漸在提升,RAT也變得越來越實用。現(xiàn)在,Dropbox的好幾個團隊都使用了RAT。

  DBmanager

  Dropbox公司擁有6000多個數(shù)據(jù)庫,這樣一個龐大的系統(tǒng)需要自動化和監(jiān)控。在任意給定的時刻,數(shù)據(jù)庫都在進行復制、故障轉(zhuǎn)移以及通過副本進行主體升級等。

  為了管理這些問題,Dropbox的工程師建立了DBmanager,它是一套Web UI,可以快速查看所有6000多個數(shù)據(jù)庫中發(fā)生的事情。它還將這些狀態(tài)信息發(fā)布到其它系統(tǒng)中。

  Go語言升級版

  有了成百上千的工程師,Dropbox小心翼翼地進行Go語言各主要版本的升級工作。Tammy表示升級過程沒有產(chǎn)生任何問題,過程非常順利!

  下面來看一些有趣的事實:

  Dropbox最近完成了從1.5版升級到1.6版的生產(chǎn)服務。

  為了追蹤升級過程,他們創(chuàng)建了一個簡單的Dropbox文件文檔,并讓每個服務負責人匯報進展,并在必要時向他們尋求幫助。

  Dropbox將會跳過1.7版本,在1.6遷移完全完成(包括非生產(chǎn)服務)的情況下直接升級到1.8。

  Dropbox如何培訓新工程師使用Go

  每個Dropbox工程師都經(jīng)歷了同樣嚴格的培訓過程,包括:

  閱讀基礎(chǔ)設(shè)施拓撲資料、Go語言風格指南以及Protobuf風格指南

  嚴格但友好的代碼審查

  在Go中構(gòu)建一個娛樂性質(zhì)應用程序(應用程序商店)

  學習Bazel的構(gòu)建和代碼測試

  對于有經(jīng)驗的工程師來說,這個過程需要一個星期左右的時間。

  Dropbox的Go語言發(fā)展情況如何?有哪些缺點呢?

  總的來說,Dropbox的Go應用之路非常成功。

  使用Go語言以后富有成效。

  編寫和使用服務變得很容易了。(人們喜歡做這兩種事情!)

  Go語言標準庫非常出色。

  調(diào)試工具(總體上)運行很好。

  一個關(guān)鍵的數(shù)據(jù)點是,Dropbox沒有努力將服務從另一種語言改寫為另一種語言,這表明人們對其相當滿意。(Tammy確實拋出了一份有趣的信息:Dropbox公司也在部分使用Rust,但其并不屬于Go的替代品。)

  Dropbox公司在使用Go語言時遇到哪些困難?

  Tammy證實稱,Go語言最大的問題在于處理競態(tài)條件。

  數(shù)據(jù)競態(tài)類bug給調(diào)試、查詢與修復等工作帶來挑戰(zhàn)。

  一些Dropbox的工程師特別善于發(fā)現(xiàn)這些,而其他工程師則依賴于他們的專業(yè)技能。

  Go數(shù)據(jù)競賽檢測器并不總是有用的。確定這種不起作用的情況非常重要。

  必須以審慎的態(tài)度設(shè)計需要對數(shù)據(jù)進行并發(fā)訪問的Go程序。

  Dropbox雇傭了那些關(guān)心可靠性和持久性的工程師,因此他們亦應當有能力解決上述問題(盡管在任何地方,并發(fā)性都是非常困難的)。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      ?
      主站蜘蛛池模板: 美美哒免费影视8 | 99福利在线观看 | 国产精品亚洲一区二区三区久久 | 久久兔费黄A级毛片高清 | 高冷师尊被CAO成SAO货 | 四虎国产一区 | metart中国撒尿人体欣赏 | 性女传奇快播 | 超碰在线97av视频免费 | 91日本在线观看亚洲精品 | 欧美色妞AV重囗味视频 | 亚洲人视频在线 | 四虎国产精品高清在线观看 | 国产系列在线亚洲视频 | 青青草色青伊人 | 麻豆高清区在线 | 337p欧洲亚大胆精品 | 野花韩国高清完整版在线观看5 | 午夜福利影院私人爽爽 | 大地影院免费观看视频 | 成年人在线免费观看视频网站 | 日韩精品免费在线观看 | 精品国产原创在线观看视频 | 草莓湿漉漉是好事还是恶性 | 国产毛片视频网站 | 国产 亚洲 中文在线 字幕 | 麻豆高清区在线 | 亚洲av欧美在我 | 国产AV高清怡春院 | 同时被两个男人轮流舔 | 欧美性狂猛AAAAAA | 国产成人免费网站在线观看 | 国产蜜臀AV在线一区视频 | 日日摸天天添天天添无码蜜臀 | 欧美激情一区二区三区AA片 | 伊人青青青 | 97人妻精品全国免费视频 | 123成人站| 国产精品亚洲一区二区三区久久 | 亚洲一品AV片观看五月色婷婷 | 色噜噜狠狠一区二区三区 |