跳過到頁腳內容
Iron Academy Logo
C# 應用程式
C# 應用程式

其他分類

Web部署自動化 - GitHub Actions、Azure Web Apps和Appsettings

Tim Corey
37m 05s

在今日快速變化的軟體開發世界中,部署自動化不僅變得方便,而且成為必需品。 更快的發布週期、更少的錯誤以及最少的人為干預的壓力,已促使開發和運營團隊採用與版本控制、持續交付以及CI/CD管道良好整合的自動化部署流程。

為了幫助開發者掌握這種自動化,Tim Corey在他的影片中提供了一個實戰指南,名為"Web Deployment Automation – GitHub Actions, Azure Web Apps, and Appsettings"。本文透過解釋關鍵概念來剖析他的策略,以強調可靠的部署流程在開發和生產環境中的重要性。

為何自動化部署?

Tim一開始就將部署過程詮釋成一件應該總是自動化的事情。 他描述這不僅是一種現代最佳實踐,而是透過GitHub Actions和Azure Web Apps等現代部署自動化工具,成為一項令人驚訝地簡單和易於掌握的任務。這消除了手動部署、繁瑣設置或由人工操作往往引起的配置錯誤的需求。

他指出,自動化任務如軟體部署可確保每當您推出新代碼時,它將被自動構建、測試並在完全自動化的工作流程中部署。

構建應用程式:Blazor Web App

在本教程的這一部分,Tim演示如何使用Visual Studio創建基本的Blazor應用程式。 他逐步展示如何選擇專案類型、啟用HTTPS、選擇.NET 8,並配置渲染模式。 這裡的目標不是構建一個複雜的應用,而是擁有一個可以每次使用相同部署流程來部署的簡單專案。

這些早期步驟強調了考慮部署管道來開發的重要性。 從清晰且可測試的應用程式開始,開發團隊可顯著減少後期的部署時間。

使用Appsettings進行本地配置

Tim接著展示如何利用模擬的配置值設置appsettings.json。 這對於配置管理工具至關重要,並有助於團隊維護測試和生產環境設定的分離。

他解釋,透過在Razor元件中注入IConfiguration,您可以輕鬆顯示連接字串和嵌套設定等值——這在雲原生應用程式中是種很好的做法,因為自動化過程依賴於乾淨的配置分離。

開發安全性的本地機密

在這裡,Tim介紹了secret.json,這是Visual Studio的自動部署安全性功能。 他解釋這些機密會覆蓋應用設定,但仍然僅限於開發者的機器,這可保持機密性並最大限度地減少憑據洩露到原始碼控制中的機會。

本教程的這部分強調了devops實踐,這些實踐促進了不同環境中的安全性和一致性,提高了軟體交付週期,而不會暴露敏感信息。

版本控制與GitHub整合

任何CI/CD系統中最基本的部分之一是穩固的版本控制。 Tim利用Visual Studio中的Git整合來初始化資源庫並將原始碼推送到GitHub。 這為構建可以檢測代碼變更並自動啟動部署過程的CI/CD管道奠定了基礎。

他提到每次提交都被追蹤,這對於希望解決錯誤或部署新功能的運營團隊有很大幫助。 使用GitHub Actions,自動化部署過程既可追溯又透明。

配置Azure Web App

Tim轉向Azure門戶,演示如何配置免費的Web應用程式資源。 他創建了一個資源組,為其指定名稱,並選擇像.NET 8和Linux這樣的運行時設定——這在許多雲原生應用程式中是常見的默認值。

他指出,即使您作為"代碼"進行部署,Azure實際上是在容器中運行您的構建工件,有效地抽象了複雜性,同時提供了所需的部署工具。

了解免費層限制

對於小型部署專案,Azure的免費方案是一個很好的起點。 Tim解釋說,雖然它限制了CPU使用並禁用了某些功能,比如部署插槽,但對於開發、演示或階段性來說非常理想。

這一解釋強調了階段性環境在軟體開發中的價值,允許團隊在接近生產的條件下進行測試而不會產生成本。

透過部署中心設置CI/CD

Tim接著演示了Azure的部署中心,並選擇GitHub作為整合源。 這展示了CI/CD模型的核心—將原始碼管理連結到軟體部署的持續整合。

他選擇了他的GitHub資源庫,設置了基本身份驗證,並生成了一個描述自動化管道的YAML文件。他指出了YAML中縮進的重要性,提醒我們即使是自動化部署設置也需要注意細節,以避免錯誤。

解決身份驗證設定

嘗試部署時發現,基本身份驗證默認情況下已被禁用。 Tim導航至Azure設定以啟用它,展示了實際部署自動化過程中經常涉及到其他服務和配置的情況。

問題解決後,他回到部署中心,並成功啟動了自動化工作流程,證明一旦正確設置,此方法需要極少的人為干預。

執行CI/CD工作流程

轉至GitHub,Tim觀察到了工作流程自動觸發。 GitHub Actions構建應用程式,發布並部署到Azure——這一切都基於對資源庫的簡單推送。 這種持續部署方法有助於自動進行錯誤測試的代碼,並完全減少手動部署。

結果是? 更快的發佈週期,較少的停機時間,以及初始配置後運營團隊的最小涉入。

使用Azure管理機密

現在在生產環境中,Tim展示如何在Azure中設置環境變數以覆蓋appsettings.json,無需接觸原代碼。

他解釋如何添加連接字串和嵌套值,使用雙下劃線(__)作為嵌套鍵。 這可確保開發者能在不接觸機密數據的情況下維護代碼——這是一個理想的DevOps場景。

關注點分離是部署自動化的一個最大好處之一:開發人員推出乾淨的代碼,管理員安全管理配置。

動態配置無需代碼更改

Tim強調,Azure中的更改在重新啟動後即可生效—無需手動重新編譯或重新部署。 當不同的變量需要在測試和生產環境中使用時,這尤其有用,減少了配置錯誤的可能性。

即使應用設置發生變化,這也允許devops團隊保持自動化,使其容易支援多個部署環境,而無需重寫代碼。

總結:部署自動化的好處

影片結尾時,Tim強調從編寫代碼到自動部署全過程僅花了約30分鐘。 一旦掌握了訣竅,可以在五分鐘內完成。

他鼓勵開發者即使對於小專案也要採用這些自動化的部署技術,認為它們簡化了軟體交付,減少了錯誤,並能夠更快速地回應新功能或問題。

無論您使用Azure、AWS還是Google Cloud,瞭解和採用部署自動化為更具可擴展性和安全性的軟體專案奠定了基礎。

結束語

Tim Corey的影片提供了一個清晰且有效的路線圖,以建立全自動化的部署過程。 借助像GitHub Actions和Azure Web Apps這樣的工具,現代devops實踐使得自動化應用程式的部署比以往更容易,減少了手動工作,在開發、測試和生產環境中提高了可靠性。

Hero Worlddot related to Web部署自動化 - GitHub Actions、Azure Web Apps和Appsettings
Hero Affiliate related to Web部署自動化 - GitHub Actions、Azure Web Apps和Appsettings

通過分享您所愛的東西賺得更多

您是否在為使用.NET、C#、Java、Python或Node.js的開發者創建內容?將您的專業知識轉化為額外收入!

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我