小受被各种姿势打桩gv视频,大胸美女被吃奶爽死视频,精品深夜AV无码一区二区,亚洲a片一区日韩精品无码

發布詢價單
您的位置:首頁 > 資訊 > 企業動態 > 正文

為什么構建過程自動化非常重要?

2023-12-25 09:15 性質:翻譯 作者:Mulan 來源:AGV
免責聲明:AGV網(www.xmydyc.com)尊重合法版權,反對侵權盜版。(凡是我網所轉載之文章,文中所有文字內容和圖片視頻之知識產權均系原作者和機構所有。文章內容觀點,與本網無關。如有需要刪除,敬請來電商榷?。?/div>
作者:喬納森·巴特利特(Jonathan Bartlett),美國沃爾特·布拉德利自然與人工智能中心(WALTER BRADLEY CENTER FOR NATURAL & ARTIFICIAL INTELLIGENCE)高級研究員Jonathan Bartlett...

作者:喬納森·巴特利特(Jonathan Bartlett),美國沃爾特·布拉德利自然與人工智能中心(WALTER BRADLEY CENTER FOR NATURAL & ARTIFICIAL INTELLIGENCE)高級研究員

Jonathan Bartlett 是 Specialized Bicycle Components (美國美國公司,設計、制造和銷售自行車、自行車零部件及相關產品品牌為“Specialized”。)的高級軟件研發工程師,他專注于解決跨多個軟件團隊的問題。此前,他是 ITX 的高級開發人員,為美國各地的公司開發應用程序。他還擔任布萊斯研究所所長,專注于數學、哲學、工程和科學之間的相互作用。喬納森是多本教科書和編輯書籍的作者,這些教科書和編輯書籍已被普林斯頓大學和德弗里大學等多所大學使用。

在規模較小的開發組織中,軟件的構建流程往往被忽視。如果您不是軟件開發人員,那么構建流程就是將源代碼創建成最終軟件包并交付給客戶(或服務器)的一系列步驟。

多年來,大型企業一直在實現構建流程的自動化,原因很簡單,構建流程必須適用于眾多軟件開發人員。它必須每次都能在每個人的機器上運行,并產生可靠的結果。 因此,將這一流程傳達給每個人所需的文檔量與簡單地將其自動化之間的差距并不大。然而,在規模較小的組織中,人們很容易將過程自動化視為不必要的開銷而繞過它。這種邏輯是這樣的--如果只有 Sam 負責 X 產品,那么就只有他需要構建 X 產品。只要構建系統能讓 Sam 輕松工作,這就足夠了。不過,即使是對單個開發人員的組織而言,構建過程自動化也能帶來許多優勢。下面,我將向您介紹這種流程的組成部分,以及為什么它們對任何規模的開發組織都很重要。

雖然構建自動化構建流程有多種方法,但每個構建流程都始于版本控制的源代碼。頻繁提交的版本控制軟件應該是每個開發組織的基石。自動構建流程只能直接從版本控制的源代碼庫中構建。這將迫使開發人員使用該系統,并確保所有構建的代碼都已正確檢查到源代碼庫中。我曾多次遇到過這樣的情況,開發人員在發布產品時忘記提交代碼,而我不得不追查這些代碼。我不得不搜索已離開組織的開發人員的備份硬盤,以找到實際交付的代碼。此外,當代碼必須在構建之前提交時,就意味著你可以可靠地找到哪些版本的代碼進入了哪些版本。錯誤是在 3.5.1 版和 3.5.2 版之間引入的嗎?如果是在版本控制系統中構建的,那么獲取這兩個版本之間的所有變更列表就輕而易舉了。

自動構建流程所需的下一個要素是構建流程本身。 這是實際執行構建的腳本或腳本集合。有了自動化流程,開發人員就必須明確寫下構建流程所需做的所有事情。我不知道有多少次,開發人員告訴我 "構建流程很簡單",但實際上卻需要執行一個或多個非標準步驟。 自動構建流程意味著開發人員必須將所有這些步驟寫入腳本,這樣就很容易檢查了。

標準化環境

構建流程的另一個重要方面是擁有標準化的環境。兩個開發人員可以擁有相同的代碼,運行相同的構建步驟,但一個開發人員可以編譯,另一個卻不行。是開發工具的版本錯誤?錯誤的 Windows 版本?是否有某個開發人員安裝了某些東西,而另一個開發人員沒有?通過 Docker 等工具,您可以創建甚至擁有一個精確的構建環境配方。使用 Docker 來運行構建環境,不僅可以指定(和版本控制)構建環境所需的確切組件,還可以創建一個逐位的構建系統映像。這樣,代碼是如何構建的就不會含糊不清了。例如,假設 2.1.1 版本存在安全漏洞,但您正在發布 5.6.2 版本。很多時候,開發環境已經發生了很大變化,您甚至不記得 2.1.1 版需要安裝哪些工具。但是,如果您使用 Docker 作為自動構建系統的一部分,那么每個版本的整個工具鏈都會記錄在案。

最后是版本控制過程本身。開發過程中一項惱人的任務就是確保正確的版本號附在代碼上。這項工作可以通過自動構建系統實現自動化。我通常會這樣設置我的構建系統:用一個特定格式的標簽(如 release-1-2-3)標記版本庫的版本,就能完成多個重要步驟。首先,它會促使自動構建過程將版本信息設置為 1.2.3。這通常由 shell 腳本完成,腳本會修改代碼中的一些常量來設置版本信息。此外,自動構建流程工具通常也有一個構建編號,也可以使用。其次,我通常會讓自動構建流程將生成的代碼存儲在一個特殊的位置,而這個位置本身就有版本信息。例如,如果是網絡應用程序,我可能會構建一個 Docker 鏡像,并將其存儲在一個 Docker 存儲庫中,該存儲庫也會標記版本信息。

那么,要開始進行自動化構建,你需要哪些工具呢?事實上,這些工具都是現成的。 大多數版本控制軟件中都嵌入了此類工具。Github 有 "Github Actions",Bitbucket 有 "Bitbucket Pipelines"。還有一些其他工具,如 CircleCI,可以連接到你的版本庫,執行類似的功能。如果你想自己管理,可以使用開源工具 Jenkins。就我個人而言,我使用 Bitbucket Pipelines 的經驗最多,而且非常滿意。

自動構建流程有一個很酷的功能,那就是可以在沒有電腦和合適工具的情況下做一些小改動。由于自動構建流程具備執行構建所需的一切功能,因此您實際上可以通過網絡直接在版本庫中進行簡單的更改,然后讓自動構建系統構建最終產品。雖然這并不是自動構建流程最令人興奮的結果,但如果開發人員無法訪問自己的電腦時需要進行一些小改動,自動構建流程有時就會派上用場。

持續集成/部署

自動化構建還允許執行對開發團隊非常有益的其他任務,即 CI/CD。CI/CD 是 "持續集成/持續部署 "的縮寫,是可以添加到自動化構建流程中的兩項任務。持續集成指的是在自動構建過程中自動執行測試并報告測試結果的能力。這樣做的目的是對開發流程進行檢查,確保至少在某些分支上,開發人員不會檢入導致測試失敗的代碼,從而給項目中的其他開發人員帶來問題?;旧?,它可以持續測試開發人員的協作結果,并在出現問題時通知所有人。

持續部署允許您從構建系統中進行全面部署,無論是部署到網站還是應用程序商店。 就我個人而言,我不喜歡構建系統本身執行部署,但我傾向于讓構建系統為項目的部署做好準備,這樣我只需點擊一個按鈕或執行一個命令就能讓一切正常運行。例如,對于發布到亞馬遜網絡服務(Amazon Web Services)的網絡項目,我喜歡讓持續部署流程為生成的網絡應用程序構建一個 docker 鏡像,然后將其發送到亞馬遜的容器存儲庫(Container Repository),并標注發布版本。然后,我只需為容器任務更改映像的名稱,就能啟動部署流程。請注意,我還將亞馬遜配置保存在版本控制中,這樣我就能記錄哪些版本在何時發布。

總之,自動化構建流程可以實現開發管道的標準化和系統化。這就迫使開發團隊將構建流程的所有步驟明確化、可重復化,并對每個版本的軟件進行審計。使用自動化構建系統能迫使開發人員以 "正確 "的方式發布產品,而不走彎路,同時為開發人員和組織增加優勢。無論您的開發組織是一個人還是一個大型團隊,自動化構建流程都能為您的組織帶來諸多好處。

網友評論
文明上網,理性發言,拒絕廣告

相關資訊

關注官方微信

手機掃碼看新聞

主站蜘蛛池模板: 杭锦旗| 甘德县| 体育| 东丰县| 漠河县| 龙岩市| 城市| 乌兰浩特市| 津南区| 九寨沟县| 鹤庆县| 柞水县| 南溪县| 大悟县| 杨浦区| 商南县| 邵阳市| 淳安县| SHOW| 闽侯县| 汉阴县| 获嘉县| 泊头市| 卢氏县| 泰宁县| 遵义县| 马边| 东至县| 涞源县| 汉沽区| 甘德县| 浑源县| 安陆市| 南宫市| 太仓市| 黎川县| 区。| 长宁县| 扎赉特旗| 微山县| 区。|