在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

GO語(yǔ)言的可靠性和持久性

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

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

  

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

  注意:這篇文章記錄了大會(huì)上的演講內(nèi)容。如果遺漏了什么,請(qǐng)?jiān)赥witter上告訴我(@sqs)。如果有錯(cuò)誤,肯定是我描述的有問(wèn)題;因?yàn)門(mén)ammy的演講太棒了!

  Dropbox探索使用Go語(yǔ)言之旅

  Tammy引用了Rob Pike于2012年編寫(xiě)的谷歌Go語(yǔ)言:專(zhuān)為軟件工程服務(wù)設(shè)計(jì)的編程語(yǔ)言》中的說(shuō)法,解釋了Go語(yǔ)言為何能夠在Dropbox公司當(dāng)中發(fā)揮重要作用:

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

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

  超過(guò)5億個(gè)用戶

  200000個(gè)商業(yè)客戶

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

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

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

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

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

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

  99.9999999999%(12個(gè)9)的可靠性

  99.99%的可用性

  Dropbox公司對(duì)Go語(yǔ)言的應(yīng)用

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

  Go服務(wù)器庫(kù)擁有150名貢獻(xiàn)者(來(lái)自總計(jì)500名工程師)

  Dropbox公司內(nèi)部超過(guò)15個(gè)團(tuán)隊(duì)構(gòu)建和運(yùn)行Go服務(wù)

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

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

  RAT:限速與限流工具

  HAT:memcached的替代方案

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

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

  Bolt:消息傳遞

  DBmanager:用于對(duì)Dropbox的6000多個(gè)數(shù)據(jù)庫(kù)進(jìn)行自動(dòng)化和監(jiān)控

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

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

  Dropbox開(kāi)始使用Go語(yǔ)言的原因是?

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

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

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

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

  DBmanager

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

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

  Go語(yǔ)言升級(jí)版

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

  下面來(lái)看一些有趣的事實(shí):

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

  為了追蹤升級(jí)過(guò)程,他們創(chuàng)建了一個(gè)簡(jiǎn)單的Dropbox文件文檔,并讓每個(gè)服務(wù)負(fù)責(zé)人匯報(bào)進(jìn)展,并在必要時(shí)向他們尋求幫助。

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

  Dropbox如何培訓(xùn)新工程師使用Go

  每個(gè)Dropbox工程師都經(jīng)歷了同樣嚴(yán)格的培訓(xùn)過(guò)程,包括:

  閱讀基礎(chǔ)設(shè)施拓?fù)?a href='http://m.xsypw.cn/soft/special/' target='_blank' class='arckwlink_none'>資料、Go語(yǔ)言風(fēng)格指南以及Protobuf風(fēng)格指南

  嚴(yán)格但友好的代碼審查

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

  學(xué)習(xí)Bazel的構(gòu)建和代碼測(cè)試

  對(duì)于有經(jīng)驗(yàn)的工程師來(lái)說(shuō),這個(gè)過(guò)程需要一個(gè)星期左右的時(shí)間。

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

  總的來(lái)說(shuō),Dropbox的Go應(yīng)用之路非常成功。

  使用Go語(yǔ)言以后富有成效。

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

  Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)非常出色。

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

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

  Dropbox公司在使用Go語(yǔ)言時(shí)遇到哪些困難?

  Tammy證實(shí)稱(chēng),Go語(yǔ)言最大的問(wèn)題在于處理競(jìng)態(tài)條件。

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

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

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

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

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

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?
      主站蜘蛛池模板: 国产日韩精品一区二区三区 | 国语自产免费精品视频一区二区 | 久久久精品免费视频 | 色多多免费视频观看区一区 | 色天天综合久久久久综合片 | 国产特级毛片 | 日本69sex护士hd | 性殴美高清视频 | 日本一区免费观看 | 一卡二卡卡四卡无人区中文 | 天天操天天干天天舔 | 亚洲性夜 | 欧美一区二区三区免费高 | 黄到让你下面湿的视频 | 老师在办公室被躁得舒服小说 | www日| 伊人玖玖 | 色妞影视| 69视屏| 国产女人小便视频 | 久久婷婷激情综合色综合也去 | 丁香婷婷影院 | 狠狠色噜噜狠狠狠狠黑人 | 午夜精 | 在线看欧美成人中文字幕视频 | 99热在线获取最新地址 | 成人黄网大全在线观看 | 天天看片天天干 | 一级毛片aaa片免费观看 | aaa在线观看视频高清视频 | 亚洲午夜精品久久久久久抢 | 欧美二级 | 日日夜夜操天天干 | 4虎影院永久地址www | 伊人2233| 欧美一区二区三区成人看不卡 | 久久综合视频网 | 亚洲黄页网站 | 96福利视频 | 欧美成人免费午夜全 | 国产美女一级视频 |