使用GitHub Actions將代碼部署到Azure

微軟的GitHub Actions for Azure讓你可以從GitHub內部自動化管理Azure開發生命週期。

使用GitHub Actions將代碼部署到Azure

【51CTO.com快譯】構建現代應用程序絕非按F5鍵後開始構建這麼簡單。代碼只是整個過程的一部分。構建有效的CI/CD(持續集成/持續交付)服務是培育DevOps文化及自動化管理軟件開發生命週期的關鍵部分。

自動化是整個過程的重要方面。你只需簽入更新或合併pull request,就能夠運行測試、驅動構建、包裝代碼甚至部署代碼。微軟旗下的GitHub之類的工具對公共代碼和私有代碼而言都變得越來越重要,我們圍繞它們構建的工作流程是自動構建軟件的關鍵。

GitHub Actions簡介

GitHub最近發佈了GitHub Actions自動化工具的正式版。與Jenkins或Travis等以構建為中心的CI/CD工具不同,GitHub Actions專注於你的代碼。這種方法不僅對GitHub來說很有意義,而且對開發人員來說比其他工具更有效。你可能已經在使用基於Git的開發工作流程,使用分支、pull request、代碼審查和合並來管理開發團隊協作開發應用程序的方式。

GitHub Actions是一種基於事件的工作流程服務,它使用常見的GitHub事件在GitHub內部或在其他開發工具中觸發操作。GitHub中託管的代碼可以在GitHub託管的環境中加以測試和運行,你也可以在自己的環境中託管自己的運行器。執行工作流程步驟時,結果將顯示在GitHub視圖中,你可以按照自己的步調逐步執行。

你可以用YAML編寫工作流程,一系列作業(job)與觸發器相關聯。作業可以串行或並行運行,因此如果你適當調整GitHub Actions,可以顯著加快速度。因而獲得的工作流程描述易於閱讀;由於它是代碼,你可以在GitHub中存儲和管理各種Actions。入門工作流程庫有助於加快開發流程的自動化。

GitHub Actions與Azure結合使用

微軟一直在開發一套與Azure結合使用的GitHub Actions,現在這些也有了正式版。最初的一套專注於將工件從GitHub部署到Azure。由於託管在GitHub存儲庫中,最好將它們視作一系列Actions的端點,拿來構建好的代碼和容器後交付給Azure的平臺服務。一組將GitHub Actions與Azure App Services整合起來,另一組控制部署到Azure Kubernetes Services的工作。你可以將Azure CLI用作運行器,使用GitHub Actions觸發管理Azure資源的腳本。其他操作包括管理Azure數據庫以及構建和部署Azure Functions。

你先需要使用預生成的服務原則登錄到Azure。 GitHub Actions包括自己的秘密存儲區,因此你可以使用Azure CLI創建令牌,然後將其複製到Action的存儲區中,用於將來的每個連接。將一個令牌放在安全存儲區中降低了風險,同時仍讓Actions可以自動執行與Azure的交互。額外的登錄操作將管理連接至AKS和Azure容器註冊中心的工作。

從GitHub Action部署到Azure App Service支持使用常見的存檔格式或使用容器。值得一提的是,微軟的操作確實依賴其他GitHub Actions,比如為你的代碼創建.NET環境。

微軟提供了一組入門GitHub Actions for Azure,幫助你將它們整合到開發工作流程中。示例代碼顯示了GitHub Actions for Azure如何運行以及它們如何與其他Actions協同運行。已發佈的YAML顯示了一系列GitHub的自有操作,比如處理存儲庫簽出,以及在通過其中一個GitHub Actions for Azure部署代碼之前安裝Node.js運行器以構建和測試代碼。

實際的部署很簡單;只需要存儲的秘密和應用程序名稱。秘密可以是發佈配置文件登錄信息;如果是較複雜的部署(交付容器),你可以使用一組服務原則,並登錄到Azure帳戶。你的Actions完成後,別忘了退出!

自動化管理CI/CD比較有意思的方面之一可能是,我們不僅限於一個平臺。我們正在使用開放的API將服務器和服務連接在一起。自動化可以從Visual Studio開始,通過GitHub Actions繼續下來,然後進入Azure Pipelines,之後將構建工件存儲在GitHub存儲庫中。混合搭配的功能很關鍵。我們不僅限於一種做事方式;我們可以選擇工具並以最適合我們工作流程的方式來配置它們。如果你需要在開發的某個環節使用Jenkins,就可以使用它,與Azure DevOps或你環境中的其他任何平臺一起使用。

本質上講,這是一種全然不同的管理應用程序開發的方式,現在由我們的源代碼存儲庫推動。這導致GitHub重新考慮其在開發生態系統中的作用,因為它顯然不再是我們僅僅存儲和審查代碼的平臺。

代碼歸檔千年

GitHub立足於搜索和索引數百萬行公共代碼的能力,正利用該專長來試圖使我們構建的代碼更安全,並添加集成的工具,以便及早發現安全問題、進行安全報告以及管理公共存儲庫中的安全事件。現在,我們的代碼依賴許多不同的開源開發團隊,這需要使用今年早些時候GitHub從Dependabot獲得的工具來自動修復依賴項問題。

GitHub在代碼生態系統的核心扮演重要角色,現計劃將你的代碼保存數百年、甚至數千年。作為該計劃的一部分,它最近在靠近全球種子庫的斯瓦爾巴德礦山保存了第一批代碼。由於放在北極氧氣稀薄的岩石深處,光學編碼數據存儲罐至少可以保存500年。該項目的下一階段將在2020年2月2日將所有公共存儲庫做成映像,存儲在同一個保管庫中。

GitHub正在考慮其他代碼歸檔方法,與Long Now Foundation、牛津大學博德利圖書館和互聯網檔案館等組織合作,不僅保存我們的代碼,還保存我們圍繞代碼建立的社交網絡和討論內容。甚至可能使用微軟研究院的Project Silica基於3D玻璃的存儲技術來創建壽命更久的檔案。

IT行業的歷史還不到一個世紀,而我們已經在建立可以保存數千年的代碼庫。這標誌著軟件和開發的重要性及其對文明的意義。對於開發人員來說,責任重大。

原文標題:Use GitHub Actions to deploy code to Azure, 作者:Simon Bisson


分享到:


相關文章: