<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          10秒!GitHub工程團(tuán)隊(duì)轉(zhuǎn)移到Codespaces,開(kāi)發(fā)環(huán)境「即開(kāi)即用」

          共 2728字,需瀏覽 6分鐘

           ·

          2021-08-19 20:44



            新智元報(bào)道  

          來(lái)源:GitHub

          編輯:小勻 Priscilla

          【新智元導(dǎo)讀】近日,GitHub宣布轉(zhuǎn)移到去年5月就推出的Codespaces,現(xiàn)在,基于瀏覽器的編碼環(huán)境Codespaces配置了32核、64GB RAM的VM,提前克隆和引導(dǎo)存儲(chǔ)庫(kù),只需要10秒時(shí)間就能夠和團(tuán)隊(duì)共享開(kāi)發(fā)環(huán)境。

          ?


          Github宣布:轉(zhuǎn)移到 Codespaces。

           


          GitHub通過(guò)博客告知開(kāi)發(fā)者們,他們將其擴(kuò)展到GitHub團(tuán)隊(duì)和企業(yè)(云)計(jì)劃,開(kāi)始更廣泛地推出其基于瀏覽器的編碼環(huán)境Codespaces。
           
          這家微軟旗下的公司還宣布,內(nèi)部已經(jīng)從MacOS模式過(guò)渡到Codespaces,后者現(xiàn)在是GitHub的默認(rèn)開(kāi)發(fā)環(huán)境。



          GitHub于去年5月首次推出Codespaces,作為具有所有常用GitHub功能的云托管開(kāi)發(fā)環(huán)境。
           
          它基本上由微軟的Visual Studio Code提供支持,該代碼自2019年起作為基于Web的編輯器提供,并于去年更名為Visual Studio Codespaces。
           
          9 月,微軟還確認(rèn)將Visual Studio Codespaces整合到GitHub Codespaces 中。
           
          GitHub的Codespaces最初是在面向個(gè)人用戶的「有限公開(kāi)測(cè)試版」中推出的,而現(xiàn)在團(tuán)隊(duì)或企業(yè)(不包括自托管)計(jì)劃中的所有企業(yè)都可以在其 GitHub設(shè)置中主動(dòng)啟用Codespaces,并且他們現(xiàn)在可以在所有私有存儲(chǔ)庫(kù)中使用Codespaces。
           
          通過(guò)將編碼環(huán)境帶到云端,開(kāi)發(fā)人員可以更輕松地加入和協(xié)作項(xiàng)目,并以最少的配置開(kāi)始編碼。
           
          在這14年中,支持GitHub.com (github/github) 的核心存儲(chǔ)庫(kù)已經(jīng)收到了超過(guò)一百萬(wàn)次提交。這些提交中的絕大多數(shù)來(lái)自在 macOS 上構(gòu)建和測(cè)試的開(kāi)發(fā)人員。
           

          不行就換!

           

          將GitHub遷移到Codespaces能夠解決開(kāi)發(fā)者環(huán)境不同的問(wèn)題。
           
          想法有多理想,實(shí)現(xiàn)起來(lái)就有多困難。
           
          GitHub.com存儲(chǔ)庫(kù)在磁盤上幾乎占了13GB。
           
          只是簡(jiǎn)單地克隆一下存儲(chǔ)庫(kù),啪,20分鐘就過(guò)去了。
           

          結(jié)合依賴設(shè)置,bootstrap一下GitHub.com的代碼空間,45分鐘過(guò)去了。
           
          一旦將存儲(chǔ)庫(kù)成功掛載到代碼空間中,應(yīng)用程序還不運(yùn)行了。
           
          14年來(lái),以macOS為中心的設(shè)想付之東流。


          但堅(jiān)強(qiáng)的工程團(tuán)隊(duì)又怎么會(huì)輕言放棄!
           
          他們開(kāi)始質(zhì)疑一直以來(lái)的設(shè)想,并在源代碼級(jí)別工作以將GitHub開(kāi)發(fā)與macOS分離。
           
          最后,雖然速度很慢,但至少可以在Linux主機(jī)上提供可用的GitHub.com代碼空間,從Visual Studio Code連接,交付一些工作。
           
          下面來(lái)看看團(tuán)隊(duì)是如何實(shí)現(xiàn)「閃電般速度」的云端開(kāi)發(fā)環(huán)境。
           

          從45min到5min


           
          使用Codespaces的目標(biāo)是希望能夠?yàn)槭诸^的任務(wù)按需提供開(kāi)發(fā)環(huán)境,分支和代碼空間之間的映射大致為1:1。
           
          為了支持基于任務(wù)的工作流,團(tuán)隊(duì)希望能夠做到「即開(kāi)即用」。
           
          團(tuán)隊(duì)不滿足于45分鐘,但是這個(gè)時(shí)間長(zhǎng)度還是能讓人看到希望。
           
           
          首先是要改變Codespaces克隆github/github的方式。
           
          與之前在配置時(shí)執(zhí)行完整克隆不同,現(xiàn)在Codespaces執(zhí)行的是淺層克隆。
           
          然后在使用最新提交創(chuàng)建代碼空間后,在后臺(tái)執(zhí)行非淺層存儲(chǔ)庫(kù)歷史記錄。
           
          這樣克隆時(shí)間就能從20分鐘縮短到90秒!
           
           
          下一個(gè)要改進(jìn)的,是緩存支持GitHub.com的軟件和服務(wù)網(wǎng)絡(luò)
           
          包括傳統(tǒng)的基于Gemfile的依賴項(xiàng)以及用C、Go和自定義構(gòu)建的Ruby編寫的服務(wù)。
           
          團(tuán)隊(duì)提出了一個(gè)解決方案,那就是讓GitHub Action每天晚上夜深人靜的時(shí)候悄悄運(yùn)行。
           
          當(dāng)然是為了克隆存儲(chǔ)庫(kù),引導(dǎo)依賴項(xiàng),還有構(gòu)建和推送結(jié)果的Docker image。
           
          發(fā)布的image隨后被用作github/github的devcontainer-config-as-code中的基礎(chǔ)鏡像,構(gòu)成Codespaces環(huán)境。
           
          在瀏覽器中通過(guò)即時(shí)重新加載來(lái)預(yù)覽更改,還能與隊(duì)友共享私有和公共端口。
           
          就憑這兩項(xiàng)更改(以及少量應(yīng)用程序和服務(wù)級(jí)別優(yōu)化),就能將GitHub.com代碼空間的創(chuàng)建時(shí)間從45分鐘縮短到5分鐘。
           
          不過(guò)這屆GitHub工程團(tuán)隊(duì)真的很嚴(yán)格。
           
          他們覺(jué)得五分鐘,距離「即開(kāi)即用」的目標(biāo)還有相當(dāng)大的距離。


          從5min到10s


          快速啟動(dòng)到代碼空間,淺層克隆方法還是很有用的,不過(guò)有時(shí)還是需要完整克隆。
           
          所以團(tuán)隊(duì)就想,為什么不能提前克隆和引導(dǎo)存儲(chǔ)庫(kù)呢?
           
          光想不做是大忌。
           
           
          進(jìn)入預(yù)構(gòu)建:代碼空間池,完全克隆和引導(dǎo),等待開(kāi)發(fā)人員聯(lián)系。
           
          最終,現(xiàn)在能夠創(chuàng)建可靠的預(yù)配置代碼空間。
           
          而且在10秒內(nèi)就能準(zhǔn)備完畢。
           
          跟以前哼哧哼哧安裝Slack相比,現(xiàn)在新員工可以在更短的時(shí)間內(nèi),從零開(kāi)始進(jìn)入正常運(yùn)行的開(kāi)發(fā)環(huán)境。
           
          要是開(kāi)發(fā)環(huán)境崩潰了,比如太落后,或者測(cè)試數(shù)據(jù)產(chǎn)生了破壞,工程師也能夠快速創(chuàng)建一個(gè)新環(huán)境。
           
          標(biāo)準(zhǔn)化的開(kāi)發(fā)環(huán)境
           
          另外,切換到Codespaces還能解決掉一些非?,F(xiàn)實(shí)的問(wèn)題。
           
          它消除了本地開(kāi)發(fā)環(huán)境的脆弱性和單軌模型,但同時(shí)也改善了GitHub開(kāi)發(fā)人員的體驗(yàn)。
           
          剛開(kāi)始切換到Codespaces時(shí),用的是8核、16GB RAM的VM。
           
          本來(lái)有這些配置已經(jīng)足夠了,但GitHub運(yùn)行的網(wǎng)絡(luò)由不同服務(wù)組成,消耗很大。
           
          所以后來(lái)更換成了32核、64GB RAM的VM,給每位工程師的配置都升了級(jí)。
           
          ?

          參考資料:

          https://github.blog/2021-08-11-githubs-engineering-team-moved-codespaces/

          https://github.com/features/codespaces




          瀏覽 50
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜夜操夜夜爽 | 一级J毛片 | 国产avav | 亚洲va高清 | 操逼网站黄色 |