Docker之父Solomon Hykes談項目開發的初衷和挑戰
英文原文: The New Stack Makers: Docker Creator Solomon Hykes
時至今日,Docker 的談論已隨處可見,這個極具人氣的開源項目讓人們可以使用軟件容器自動化應用程序的部署過程,受眾多 IT 巨頭喜愛。近日,Luke Lefler 在 The New Stack 上總結了 Docker 之父 Solomon Hykes 的主題演講,描述了 Docker 創建的原因和環境。
以下為譯文:
在 New Relic 的 FutureStack14 Conference 會議上,Docker 之父兼 Docker 公司 CTO Solomon Hykes 的主題演講總結了 Docker 創建和發展的環境與原因。
Solomon 指出,當下的分布式應用程序已與互聯網密不可分,機構們期望不管有多少用戶,無論在任何設備上,這些程序都隨時隨地的可用和運行。而著眼應用程序,它們必 須具備足夠的彈性、互操作性,并可以被大規模擴展。越來越多的開發者不僅需要滿足眼前需求,還需要建立復雜且通常被廣泛采用的下一代應用程序。
這個工作并不簡單,特別在那些不能應對這些挑戰的老平臺上。當開發者碰到難題時,簡單的給 Andriod 或 iOS 朋友打電話這個途徑已經行不通了。
工具解決方案必須解決開發者面對的最大挑戰——應用程序不再只運行在一臺計算機上。這個解決方案需要將邏輯軟件組件和底層基礎設施拆分,因此當主機發生故障、升級或者在其他環境重部署時,服務總是隨處可用,獨立于之前的基礎設施環境。
大的技術公司,比如亞馬遜、蘋果、谷歌和微軟,往往會長期給自己內部堆棧投入大量時間和資源,而余下的機構只能東平西湊一些開源工具,并苦苦支撐。Solomon 感慨道:
這給人的感覺是一盤散沙。開發者無法義正言辭指著某個東西說,‘這就是我構建的基礎,這就是我的平臺’。正是這種情況啟發了我們,共同著手定義和建立一個滿足需求的平臺,并且可以長期從中取樂……
“不只運行在一臺計算機”可以拆分成一系列問題,每個都需要被單獨處理。在 Docker 發布之前,Solomon 和他的團隊羅列了這些問題,并致力解決。
它們首要解決的問題就是封裝(packaging)和分發(distribution),沒有一致性的封裝方法,給打上了標簽的軟件更換操作系 統、設備或者數據中心必然會導致不穩定因素產生。為此,他們不得不通過現存技術打造一個標準格式:一個始終如一的容器,一個可以移動,payload- ready 的 Docker 容器。第二個問題就是沙箱運行時,如何在不同的機器上執行這些 payload,并產生一致的、可預期的結果?這兩個問題定義了大部分的 Docker 發布前的工作,也讓這個項目堅如磐石。
其他問題的解決則承諾了一個令人激動(及繁忙)的未來。Docker 聚焦網絡上的困境,在簡單的工具上讓開發者可以完成應用程序多個組件與依賴服務之間的連接。
“你有多臺主機,但是你想用一個通用的方式進行交互”,Solomon 通過這個思想解決了集群問題,“你拋出了各種各樣的技術,而我們試圖將它們連接到一起,并且提供一系列的接口讓用戶可以簡單的利用”。同樣的問題出現在組 合中,這里需要將多個邏輯組件合理、版本化的連接到一起,并進行整體的測試。
“當你跨多個復雜的基礎設施部署復雜的分布式應用程序時,問題很快就會產生,特別是在安全、穩定及控制程度要求比較高的生產環境中。在這里,開 發者需要確切的控制運行進度,確切的知道建立者及清楚誰提供了某個部分……,追溯到你熟知并信任的源代碼、組織及開發者。”Solomon 解釋在部署過程中進行每個部分 cryptographically-enforced 身份校驗的關鍵挑戰:“這與授權問題相輔相成,使用一個連接到基礎設施的層來實現應用程序每個組 件的訪問控制。”而在 IT 部門中,授權一直是一個比較熱門的話題。
Docker 的 IRC 頻道一直很活躍,匯聚了數十個來自不同公司的工程師,其中有些人是首次貢獻到一個開源項目,而有些則是期望為岌岌可危的項目尋找一線生機。
為了建立這個雪球效應,將越來越多的人才和資源吸引到這個項目,建立這樣一個印象非常必要——“it’s going to happen, with or without you”。
然而,如果所有出現的規格和變化都被接受,那么項目就沒有任何可提升的余地。Solomon 強調,大家都期望松耦合工具,因此需要將許多個體工具(往往使用最簡單的途徑解決一個問題)整合成一個新的工具,這個過程中整合的解決方案被稱為 “scale by composition”。這個組合必須使用標準接口,因此未來的貢獻者可以非常便捷的參與到這個工具集的擴展,這種標準為所有人所 接受。
“我們一直貫徹著 Unix 設計原則,這個原則曾幫助了 Unix 系統的實現,30 年后,我們將這個原則應用到了 21 世紀出現的問題。”非常受大家歡迎,Solomon 說。
“建立一個為所有生產軟件共有的系統,使用一種被廣泛接受的方式,讓它可以很好的運行和擴展,讓它可以被所有人依賴,然后將它視為理所當然的存在,并使用它創造自己的奇跡,這是個挑戰。”
<span id="shareA4" class="fl">
</span>
</div>