自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Docker 正在驅動一個全新的可擴展的 Uber

云計算
無論你對 Uber 的看法如何, Uber 無疑是創(chuàng)新的同義詞,因為它在顛覆交通行業(yè)的同時引領了共享經濟。像Uber 這樣的最快創(chuàng)新者,就像 Microsoft, Apple 和 Amazon 公司一樣,都面臨一個問題:一旦你開始創(chuàng)新并且取得成功,你不得不一直保持這樣快的創(chuàng)新速度,這就導致了下面的后果:有時你看不到更遠大的前景,有時會被途中的障礙絆倒。

【原文編者的話】快速創(chuàng)新的迫切要求,使得 Uber 開始在服務部署中應用 Docker 。這篇文章講述了部署方式的轉變過程,強調在全面容器化之前,必須做充足的準備。

無論你對 Uber 的看法如何, Uber 無疑是創(chuàng)新的同義詞,因為它在顛覆交通行業(yè)的同時***了共享經濟。像Uber 這樣的最快創(chuàng)新者,就像 Microsoft, Apple 和 Amazon 公司一樣,都面臨一個問題:一旦你開始創(chuàng)新并且取得成功,你不得不一直保持這樣快的創(chuàng)新速度,這就導致了下面的后果:有時你看不到更遠大的前景,有時會被途中的障礙絆倒。

今年初, Uber 發(fā)現自己就處于這樣的境地。那時候,軟件工程師 Casper S. Jensen 加入了 Uber 公司的計算機平臺團隊。

在 Dockercon EU 的***天, Jensen 說 Uber 應用有非常易用的用戶界面,看起來就是一個簡單的應用;“實際上 Uber 是一個非常非常復雜的產品”,“應用只是冰山之一角”,底層包含了無數的功能特性。要知道,目前 Uber 面對的是 69 個國家的不同市場和法律,每天安排百萬次行程,有4,000 員工使用 Uber 平臺。

以前的軟件開發(fā)模式

那時候, Jensen 和團隊中的其他四個人剛剛加入 Uber 不久。工作簡直是“一團糟”,他們正在尋求一種解決方案。

這是去年冬天他們的開發(fā)流程:

  1. 編寫服務 RFC(Request for Commments,請求評論)—— Uber 是一家極其依賴反饋的公司,在啟動一項新服務時,他們首先描述該服務的架構和理念,發(fā)布到郵件列表中。
  2. 收集反饋——例如,“你們知道其他人也在做類似的事情嗎?”——集中精力,力爭在早期就找出錯誤。
  3. 手工列出該服務的所有依賴。
  4. 開始開發(fā)服務。
  5. 等待基礎設施團隊編寫服務的依賴。
  6. 等待 IT 確定服務的位置。
  7. 等待基礎設施團隊提供服務。
  8. 部署到開發(fā)服務器,測試。
  9. 部署到生產環(huán)境的服務器。
  10. 監(jiān)控迭代。

他說,步驟 5-7 “是特別特別令人痛苦的部分,很容易耗費數日乃至數周的時間。”原因何在?“到不是說這些步驟特別難,大部分環(huán)節(jié)我們都有相應的腳本,”只包括大約十行的集成代碼。

“簡單是簡單,但是這些腳本的擴展性差,因為公司里只有少數人真正地知道如何擴展且不會破壞已有的部署”, Jensen 說。再加上一些小錯誤——例如,本來應該是連接線,結果寫成了斜線——***導致所有的服務都慢得要命。

2015 年2 月,在一封內部郵件中,他們設置了下列目標:

 

Jensen 說他們想要做到:

  • 允許服務的擁有者有專用的服務器切片,他們自行決定安裝什么,我們不干涉,但是不能影響其它的服務。
  • 并且,他們的安裝過程也不用我們參與。
  • 必須得有所改變了,還不能破壞現有的服務。

Uber 需要克服的自身問題

如果一家公司有如此快速增長的基礎設施,自然會有一些限定,如 Jensen 所講,“無論如何,我們必須保證基礎設施快速增長,避免拖慢開發(fā)團隊的高速開發(fā)流程”。

這不僅是因為 Uber 要求 7×24 的可用性以及支持無數的本地化特性,更重要的是,“沒有任何一個人能夠看到 Uber 的所有服務,每個人只能看到自己從事的部分。”他列舉了幾個特性,像 UberPOOL、UberKITTENs、UberIceCream 和 UberEATS,每一個都在“增加新功能,好像世界末日到了一樣”。 Uber 的耀眼成功,是建立在全方位超快發(fā)展的基礎之上的,包括數據中心、服務器和基礎設施。需要找到保持增長的解決方案。

“我們希望有非常方便的流程和基礎設施,這樣開發(fā)者就能非??斓卦黾有鹿δ?。其中最重要的一個部分是創(chuàng)建新服務的流程,” Jensen 說,“我們意識到這不就是 要用 Docker 嗎。”理由很簡單,“很容易向別人解釋 Docker 的作用,人們早就了解過它,理解基本的概念”。每個人都有自己喜歡使用的容器,因此開發(fā)團隊很容易接受 Docker 。

容器帶來的痛苦

他們心想,“我們都能寫代碼,這還不是小菜一疊?兩天就能干完。”實際上不是那么回事。他們 2月份作出決定,直到仲夏,才真正用上 Docker 。

Jensen 解釋說,用了 Docker ,“一切都有所改變,思路也必須隨之轉換。”

采用 Docker 的***障礙是 Uber 內部使用的集群管理系統 uDeploy 。它要能在支持回滾的前提下做持續(xù)的滾動升級。它包含很多報錯的觸發(fā)器,像健康檢查或者發(fā)生故障時的圖形化顯示。它還支持有錯就回滾的負載測試和集成測試。 uDeploy 包括:

  • 每周 4,000 次升級
  • 每周 3,000 次構建
  • 每周 300 次回滾
  • 管理系統包含的 600 多個服務

做不到完全不使用 uDeploy ,所以 Uber 團隊決定同時部署舊有的服務和 Docker 服務。

“我為此花了很多時間,檢查每一個功能,添加支持以便能夠把它封裝為 Docker 服務,” Jensen 說,“ uDeploy 支持顯示標準輸出和標準錯誤,我們必須在 Docker 中也實現這一點。”

他們在開始使用 Docker 時,沒有那么多規(guī)劃。后來 Jensen 意識到一開始給予開發(fā)者的自由度太大。“不應該這樣,”他打了個響指,說:“你真的要考慮到基礎設施的方方面面”。

Jensen 說,如果你提前做好規(guī)劃,真正審視基礎設施以及容器在其中的一小部分作用,結果就會好很多。

Docker 正在驅動一個全新的可擴展的 Uber

現在 Uber 大約有 1/3 服務是 Docker 化的,希望不久實現***的容器化。為什么?雖然轉換的過程很痛苦,但是最終的結果符合期望,去掉了持續(xù)部署中的三個巨大的痛點。有了 Docker ,他們無需再:

  • 等待基礎設施團隊編寫服務的依賴;
  • 等待 IT 確定服務的位置;
  • 等待基礎設施團隊提供服務。

現在,他們不再手工編寫或者復制以前項目的依賴定義,而是使用包含標準服務的配置和構建文件的工具,從而把服務提供時間從以前的幾小時、幾天縮短到現在的大約 10 分鐘。

不僅如此, Uber 認識到, Docker 消除了團隊之間的依賴,提供了更高的自由,因為不再綁定在特定的框架和版本??蚣芎头盏膿碛姓攥F在可以嘗試新技術,管理自有的環(huán)境。

原文鏈接:http://dockone.io/article/864

責任編輯:Ophira 來源: dockerone
相關推薦

2024-11-20 13:18:21

2023-02-01 16:36:31

GNOMEChatGPTLinux

2020-03-05 09:54:54

數據驅動數據數據分析

2022-07-21 07:09:21

React前端項目

2022-04-08 11:40:51

KServe

2013-01-25 09:53:40

GitHub

2015-08-19 09:29:35

Git協議編寫

2022-03-21 08:49:01

存儲引擎LotusDB

2015-12-04 11:36:04

SaaS架構設計可持續(xù)

2016-01-06 09:57:23

編寫PHP擴展

2010-04-01 09:18:38

云計算

2020-06-02 10:04:58

IT部門首席信息官CIO

2019-06-05 13:05:47

PHP語法糖編碼

2022-01-04 12:41:37

Collabora圖形后端Cairo

2014-10-15 11:01:02

Web應用測試應用

2022-04-12 14:00:05

元宇宙人工智能安全

2013-02-19 10:14:37

NexusGoogle

2024-08-14 13:24:24

2021-02-02 10:41:29

Ubuntu安裝程序開發(fā)人員

2022-03-28 08:00:00

數據庫GraphQL公共云
點贊
收藏

51CTO技術棧公眾號