日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入浅出Docker(三):Docker开源之路

發(fā)布時間:2023/12/4 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出Docker(三):Docker开源之路 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?背景

Docker從一開始的概念階段就致力于使用開源驅(qū)動的方式來發(fā)展,它的成功緣于國外成熟的開源文化氛圍,以及可借鑒的社區(qū)運營經(jīng)驗。通過本文詳細(xì)的介紹,讓大家可以全面了解一個項目亦或者一項技術(shù)是如何通過開源的方式發(fā)展起來的。為了更準(zhǔn)確的描述Docker的社區(qū)狀況,請先看一份來自Docker官方的數(shù)據(jù):

圖中數(shù)據(jù)的看點有:

  • 超過500個代碼貢獻(xiàn)者。代碼的貢獻(xiàn)者在社區(qū)發(fā)展過程中是非常重要的催化劑,它會不斷加快產(chǎn)品迭代的速度,讓項目更快的交付到最終用戶的手里。
  • 20個全職開發(fā)。一般的開源項目一般都不會有如此多的全職開發(fā)人員,但是Docker卻有20個全職開發(fā)人員來驅(qū)動一個社區(qū)項目。這也從側(cè)面證明了國外公司對開源項目的支持力度,以至于一家初創(chuàng)公司都舍得投入20個全職開發(fā)來推動開源技術(shù)的發(fā)展。
  • 超過8000個創(chuàng)建在GitHub上的Docker相關(guān)項目。通過這個規(guī)模可以看到圍繞Docker可以使用的項目已經(jīng)非常豐富。
  • Docker技術(shù)聚會。30個國家超過90個城市舉辦超過250個Docker技術(shù)聚會,這樣的技術(shù)聚會還在不斷增加,Docker技術(shù)愛好者可以在線申請承辦此類技術(shù)聚會。
  • 50萬次的boot2docker下載。boot2docker為Docker官方推薦客戶端,50萬次也代表當(dāng)前潛在的用戶群體。
  • Docker公司目前正式員工50多名,由開源老手Ben Golub(前GlusterFS CEO)主持運營。現(xiàn)在主要有以下幾個贏利點:

  • 印有藍(lán)鯨的T恤和貼紙的品牌價值
  • 通過Docker Hub服務(wù)提供SaaS的分發(fā)服務(wù)
  • 提供Docker技術(shù)支持和培訓(xùn)
  • 通過了解Docker的社區(qū)現(xiàn)狀和公司的運營狀況,可以發(fā)現(xiàn)其在運營的方式上并沒有什么特別的地方。除了支付公司員工的正常開支外,它并沒有像一般商業(yè)公司那樣在推廣上投入很多資金。Docker在推廣上主要是將開源社區(qū)和社交網(wǎng)絡(luò)作為基礎(chǔ)推廣平臺,結(jié)合全球范圍的Docker技術(shù)聚會,形成了良好的良性的客戶互動和口口相傳的品牌效應(yīng)。在Docker的開源歷程中,通過分析觀察用戶社區(qū)、源代碼管理、合作伙伴的生態(tài)圈這三種形式,梳理出一套實踐經(jīng)驗的案例,方便大家參考學(xué)習(xí)。

    2. 用戶社區(qū)維護(hù)

    Docker技術(shù)首先考慮的是在技術(shù)社區(qū)里通過各種渠道來找到它的用戶,而當(dāng)前最流行的技術(shù)社交網(wǎng)絡(luò)不是Twitter,而是GitHub。所以Docker第一步是向GitHub上提交自己的代碼開始吸引自己的用戶的。我們總說萬事開頭難,那么Docker的第一個Commit應(yīng)該是什么,它是否需要包括測試、用戶文檔、用戶開發(fā)指南、設(shè)計理念等一系列的文檔和代碼呢?如果參照常規(guī)的開源項目,它們都考慮的都很周到,完善的代碼文檔結(jié)構(gòu)會讓用戶第一眼就知道這是一個成熟的項目,我們只要用就可以了。但Docker公司卻不按套路出牌,第一個Commit僅包括6個主文件:

    沒有README,沒有開發(fā)環(huán)境指南,開始階段用戶無法有效的了解Docker項目。但是,這其實也是對的,因為在一個小眾的開源項目的初期,很難吸引到社區(qū)用戶來為它貢獻(xiàn)代碼。在接下來的很長一段時間,Docker主要是由Docker之父Solomon Hykes開發(fā)維護(hù)。在沒有社區(qū)用戶參與的情況下,他每天不分晝夜地提交代碼,也許是為了生活,也許是為了愛好,Solomon Hykes在拼命的實現(xiàn)心中那個目標(biāo):讓LXC創(chuàng)建的容器更容易使用。用當(dāng)下時髦的那句話講就是不忘初衷。

    從 Solomon Hykes 貢獻(xiàn)代碼的趨勢圖,我們可以看到只有保證項目的活躍度(持續(xù)貢獻(xiàn)代碼)那么項目才有可能獲得用戶的認(rèn)可和關(guān)注。試想,“三天打魚,兩天曬網(wǎng)”的開源項目會給用戶怎么樣的感覺?作者都不專注,用戶怎么可能忠實?這種投入,并不是偶然性的,這是國外業(yè)界的開源文化,非常值得我們學(xué)習(xí)。

    在代碼貢獻(xiàn)的同時,Docker.io的主站也在2013年的5月30日第一次提交到GitHub。這距離第一行代碼提交到GitHub已經(jīng)有5個月。總體來看,Docker從一開始僅僅是一個很酷的想法,到真正完成并可以對外發(fā)布版本,也是經(jīng)歷了小半年之久。開源的意義并不像國內(nèi)大多數(shù)廠商發(fā)布開源項目一樣,一定要在內(nèi)部應(yīng)用的很成功才發(fā)布到技術(shù)社區(qū)。我們通過以上數(shù)據(jù),可以很容易的看出來,它一定是一個長期的、持續(xù)的過程。你越專注的投入,你的項目越有可能成功。

    當(dāng)然,如果僅僅Docker只在GitHub上提供代碼來吸引用戶,那也不會是最佳的實踐。在網(wǎng)站建立后的下一步,它開始在全球各大城市的技術(shù)聚會上推廣介紹Docker。Docker技術(shù)在全球推廣的方法是通過線下的技術(shù)聚會,外加社交網(wǎng)絡(luò)媒體傳播才得到流行的。Docker官網(wǎng)通過發(fā)布“創(chuàng)建Docker技術(shù)聚會指南”,引導(dǎo)Docker技術(shù)的愛好者自發(fā)申請承辦技術(shù)聚會。Docker官網(wǎng)主要通過類似Twitter、Docker周報、用戶論壇等渠道,及時的把每個城市即將開始的技術(shù)聚會時間和聯(lián)系人發(fā)布出來,就可以把Docker的技術(shù)推廣做下去。并且這種形式的最大好處是口碑相傳,其長尾效應(yīng)的結(jié)果是Docker技術(shù)開始在當(dāng)?shù)氐募夹g(shù)圈得到關(guān)注。像這樣的技術(shù)聚會,一般都在30到200人之間,對于商業(yè)項目的推廣是無法參照這樣推廣的。但這種形式就像一顆種子散落在城市中間,一旦有人介紹Docker技術(shù)到這個城市的技術(shù)圈,就會有更多的用戶去GitHub上關(guān)注Docker的項目進(jìn)展。

    3. 源代碼管理

    Docker的源碼是按照模塊劃分的,每一個模塊都會單獨放在一個目錄里。并且每個目錄都會包含一個MAINTAINERS.md。當(dāng)你提交一個Pull Request的時候,子模塊的維護(hù)者就會站出來回答“LGTM (Looks Good To Me)” 表示已經(jīng)看了你的代碼并接受你提交的代碼。

    每一個想?yún)⑴cDocker開發(fā)的開發(fā)者,你需要進(jìn)入一個特殊的目錄hack,這個目錄包括了所有你想知道的開發(fā)相關(guān)信息。它把開發(fā)者分為4類人,

  • 代碼貢獻(xiàn)者,詳細(xì)指南看CONTRIBUTORS.md。
  • 代碼維護(hù)者,詳細(xì)指南看MAINTAINERS.md。
  • 程序打包者,詳細(xì)指南看PACKAGERS.md。
  • 負(fù)責(zé)發(fā)布版本的維護(hù)者,詳細(xì)指南看RELEASE-CHECKLIST.md。
  • 所有的指南文檔都非常詳細(xì)完整,可以做到看完此文檔就可以開始相應(yīng)角色的任務(wù)。除了這些文檔之外,hack目錄還包括了發(fā)布,開發(fā),測試等環(huán)節(jié)需要的輔助腳本,讓開發(fā)者可以得到很多開發(fā)上的便利。

    Docker從一開始就是圍繞LXC開發(fā)的,但在版本穩(wěn)定后,使用Go重寫了一套類LXC接口實現(xiàn)。也就是?libcontainer?項目。它的代碼管理方式與上面的Docker源代碼管理方式一樣,開發(fā)者可以很容易的導(dǎo)入到子項目libcontainer的開發(fā)。一致的管理方法可以提高流程的復(fù)用,這種管理方式希望能得到大家的借鑒參考。

    4. 創(chuàng)建合作伙伴生態(tài)圈

    首先,Docker從一開始使用Ubuntu版本作為開發(fā)環(huán)境,主要是Ubuntu上支持aufs(advanced multi layered unification filesystem)文件系統(tǒng)。所以,Docker對Ubuntu的支持是最好的。

    還有就是大家非常熟悉的Google的GCE,在沒有Docker之前,就已經(jīng)使用自己開發(fā)的類LXC容器。在有了Docker之后, Google開發(fā)了kubernetes來管理Docker。

    商業(yè)版本Linux的領(lǐng)導(dǎo)者RedHat,也是Docker生態(tài)圈非常重要的合作伙伴。并且它支持的Fedora社區(qū)、CentOS社區(qū)會對推廣Docker技術(shù)起到關(guān)鍵性作用。

    還有就是OpenStack的建立者Rackspace,在混合云解決方案上具有全球領(lǐng)導(dǎo)地位。Docker與它的合作,可以幫助Docker技術(shù)在混合云的解決方案中得到推廣。

    最后就是開源PaaS項目DEIS,基于Docker和CoreOS技術(shù)構(gòu)建的類如Heroku發(fā)布流程的PaaS應(yīng)用。與它的合作,可以讓更多的企業(yè)看到一個使用Docker技術(shù)的范本。

    5. 結(jié)論

    Docker的開源之路可以說是開源項目的最佳實踐,它從屌絲瞬間變?yōu)楦吒粠浀臍v程并不是偶然。Docker的開源之路還在進(jìn)行中,從它的模式中我們可以學(xué)習(xí)到的東西并不僅僅局限于以上羅列的幾點,讀者可以在參與開源項目的過程中多體會,找到自己的“痛點”,然后參考Docker等開源項目的做法,相信可以很快解決你的問題。

    6. 作者簡介

    肖德時, Red Hat Engineering Service/HSS 內(nèi)部工具組Team Leader. Nodejs開源項目nodejs-cantas Lead Developer。擅長企業(yè)內(nèi)部工具的設(shè)計以及實現(xiàn)。開源課程Rails Starter的發(fā)起人。rubygem: lazy_high_charts的Maintainer。twitter賬號:xds2000,郵箱:xiaods@gmail.com

    7.下期預(yù)告

    Docker技術(shù)基本信息已經(jīng)介紹的差不多了,接下來的系列將進(jìn)入實戰(zhàn)篇。下一篇將重點講解Docker的集成測試部署方法,并結(jié)合眾場景(數(shù)據(jù)庫集成、測試、審查、部署)給出參考解決方案,敬請期待!

    總結(jié)

    以上是生活随笔為你收集整理的深入浅出Docker(三):Docker开源之路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。