GitHub 工程團(tuán)隊(duì)的開發(fā)環(huán)境遷移至 Codespaces
GitHub 官方宣布,負(fù)責(zé) github.com 的工程團(tuán)隊(duì)已將開發(fā)環(huán)境遷移至 Codespaces。
GitHub.com 的代碼庫已誕生將近 14 年。當(dāng) github.com 的第一個(gè) commit 被推送時(shí),Rails 只有兩年的歷史,AWS 才誕生一年,Azure 和 GCP 尚未問世。在這 14 年里,GitHub.com 的核心倉庫 (github/github) 已收到超過一百萬次 commit,其中絕大部分來自于在 macOS 上構(gòu)建和測(cè)試的開發(fā)者。
GitHub 稱,他們的開發(fā)平臺(tái)在不斷發(fā)展,過去的幾個(gè)月里,工程團(tuán)隊(duì)從 macOS 轉(zhuǎn)向使用 Codespaces 進(jìn)行 github.com 的大部分開發(fā)。這對(duì)于工程師的日常開發(fā)流程是一個(gè)根本性的轉(zhuǎn)變。GitHub 認(rèn)為此舉讓 Codespaces 變得更強(qiáng)大,他們也為 github.com 的未來發(fā)展做好了準(zhǔn)備。
GitHub 表示,他們長(zhǎng)期投入了大量時(shí)間和精力來為團(tuán)隊(duì)打造一個(gè)“開箱即用”的本地開發(fā)環(huán)境,讓新員工可以迅速配置和運(yùn)行 github.com 的本地實(shí)例。
但現(xiàn)實(shí)情況是,雖然付出了許多努力,這樣的開發(fā)環(huán)境卻依舊十分脆弱。任何看似無害的變更都可能會(huì)導(dǎo)致本地環(huán)境失效,更糟糕的是,這種情況往往需要數(shù)小時(shí)的寶貴開發(fā)時(shí)間來恢復(fù)。
考慮到工程師的開發(fā)環(huán)境各不相同,而且每個(gè)人都有自己習(xí)慣的特殊癖好。GitHub 被 Codespaces 啟發(fā),他們可以像對(duì)待基礎(chǔ)設(shè)施一樣對(duì)待開發(fā)環(huán)境,也就是說沒有什么是不可替換,或者不可或缺的,并且如果出現(xiàn)意外情況,可在已知的良好狀態(tài)下提供一個(gè)新的 Codespaces 然后重新開始工作。
GitHub 表示,遷移到 Codespaces 解決了現(xiàn)有開發(fā)環(huán)境中的缺點(diǎn),激勵(lì)他們進(jìn)一步推動(dòng)改進(jìn)產(chǎn)品,并提升了整體的開發(fā)體驗(yàn)。雖然此次開發(fā)環(huán)境的遷移結(jié)局還算美好,但剛開始時(shí)還是頗具挑戰(zhàn)性。據(jù)介紹,GitHub.com 代碼庫在磁盤上大約使用了 13GB 空間。單是克隆倉庫大約需要 20 分鐘,再加上設(shè)置依賴項(xiàng)等,引導(dǎo) GitHub.com 的 Codespaces 會(huì)耗時(shí) 45 分鐘以上。
改變往往是十分困難的事,對(duì)于開發(fā)環(huán)境來說更是如此。GitHub 表示,他們此次遷移至 Codespaces 作為默認(rèn)開發(fā)環(huán)境的舉動(dòng)雖然遇到不少挑戰(zhàn),但對(duì)最后的結(jié)果十分滿意,未來會(huì)繼續(xù)優(yōu)化在上面開發(fā)的體驗(yàn)。