DevOps 解決方案

探索工具和技術,以更快也更可靠的方式傳遞軟體

Azure 上的 DevOps 工具

團隊可以利用 Azure 上的全面解決方案,在每個應用程式生命週期階段實作 DevOps 做法:規劃、開發、傳遞及操作。這些 DevOps 技術與人員和程序相結合,可讓團隊持續為客戶提供價值。

方案

使團隊能夠靈活地管理他們的工作,並全面了解產品和專案。透過工作流程看板來定義、追蹤及配置工作,並使用 Azure Boards 進行待辦項目自訂儀表板和報表功能。利用 GitHub 讓開發工作保持透明並按排程進行。使用視覺效果來探索分析,並透過 Power BI 將資料轉換為見解。

開發

使用 Visual StudioVisual Studio Code 以更快速且更聰明的方式編碼。透過 GitHub 與志同道合的開發人員共用程式碼及共同作業。使用 Azure Pipelines 將測試自動化並在雲端實作持續整合、使用 GitHub Actions 建立從構思到生產的自動化工作流程,甚至可將您的 Jenkins 工作負載帶進 Azure。利用 DevTest Labs,在數分鐘內即可為開發人員佈建環境。

傳遞

自動將應用程式部署至任何 Azure 服務並完全掌控,以持續為客戶提供價值。使用 Azure Resource ManagerHashiCorp Terraform 來定義並啟動多個雲端環境,再使用 Azure PipelinesJankins 和 Spinnaker 等工具來建立持續傳遞管道到這些環境中。

操作

使用 Azure 監視器 實作完整的堆疊監視、獲得可操作的警示,並從記錄和遙測獲得見解。使用 Azure AutomationAnsibleChef 或 Puppet 等工具來管理您的雲端環境。

利用 Azure 藍圖或 Chef Automate 來將您佈建的基礎結構與應用程式保持符合規範。與 Azure 資訊安全中心搭配使用可降低威脅暴露程度,並加快偵測與補救弱點的速度。

DevOps 與 GitHub

透過 GitHub 中與 Azure 整合的輕量型工具與功能,在雲端中找出能改進 DevOps 程序和做法的新方法。

在 GitHub 和 Azure 上建置您的 DevOps 工作流程

使用 GitHub 與 Azure BoardsAzure Pipelines 之間的深度整合來促進更佳程式碼檢閱,並使開發團隊保持協調。管理身份和權限,以便與 GitHub 和 Azure Active Directory 進行更順暢的共同作業。使用您現有的 GitHub 認證來登入 Azure 和 Azure DevOps,以更快的速度存取任何其他 Azure 解決方案。

將開放原始碼的優點與企業級安全性結合

以稱為 innersource 的開發方法,使用大型開放原始碼專案的最佳做法來建置組織專有軟體,例如開放式共同作業、共用和重新使用程式碼,並及提升透明度。

透過 GitHub 實作 innersource 方法可以提升團隊合作、參與和生產力,同時解決隨著程序更加開放而出現的企業級安全性與合規性需求。

適用於 DevOps 做法的解決方案

以內建 Azure 服務 (例如 Azure DevOps) 來滿足您需求的 DevOps 解決方案。同樣地,結合開放原始碼 DevOps 工具以符合您獨特的工作流程,然後將它們順暢整合到 Azure 上。不論您的應用程式使用虛擬機器、Web 應用程式或 Kubernetes,都可如同持續整合與持續傳遞 (CI/CD)、基礎結構即程式碼來實作 DevOps 做法,並使用 Azure 和您所選的 DevOps 工具鏈進行持續監視。

透過持續整合與持續傳遞以及您選擇的工具,從程式碼到雲端將 DevOps 程序的每個部分自動化:

  • 使用 Azure Pipelines 定義 CI/CD 管線並管理具有多個環境的版本。
  • 定位 Azure 上的任何服務,包括 Azure Kubernetes Service (AKS)、Azure 虛擬機器或 Azure Functions。
  • 使用 GitHub Actions 將工作流程自動化。
  • 使用適用於 Azure 的 Jenkins 外掛程式來裝載 Jenkins 工作負載、延伸現有設定或簡化 CI/CD。
  • 使用 Spinnaker 在 Azure 中建立快速且可重複的部署。

採用敏捷式軟體開發 (Agile Software Development) 方法,包括規劃、追蹤及報告以縮短發行週期,並全面了解您的軟體開發程序。透過 GitHub 管理專案。並使用 Azure Boards 來:

  • 定義、指派及追蹤工作項目。
  • 管理待辦項目。
  • 建立自訂儀表板以追蹤進度。
  • 獲得進階分析和報告。

透過 GitHub 管理 Git 存放庫、共用及共同作業。使用下列項目,為團隊建立可靠的程式碼工作流程:

以描述性方式定義雲端資源,以將環境版本化並與應用程式程式碼一起認可至存放庫中。將基礎結構視為程式碼,可讓您以可重複且可靠的方式來部署雲端資源,進而確保能夠完全控管雲端環境。

管理整個系統的資源設定以強制執行所需狀態、推出設定更新並自動解決非預期的變更和問題。Azure 提供多個用於設定管理的 DevOps 工具,包括 AnsibleChef、Puppet 和 Azure 自動化

利用 Azure 監視器來監視基礎結構健康情況,並整合至 Grafana 或 Kibana 等現有的儀表板或是 Azure 入口網站中。

  • 實施完整堆疊持續監視。
  • 跨 Azure 服務設定可操作的警示。
  • 收集、查詢及分析記錄以獲得見解並減少問題。
  • 使用 Azure Kubernetes Service (AKS) 的內建容器監視。

DevOps 解決方案架構

了解如何在這些常見的 DevOps 方案中將多種工具和技術與 Azure 搭配使用。

CI/CD for ContainersContainers make it very easy for you to continuously build and deploy your applications. By orchestrating deployment of those containers using Kubernetes in Azure Kubernetes Service (AKS), you can achieve replicable, manageable clusters of containers.12345678910
  1. 概觀
  2. 流程

容器的 CI/CD

概觀

容器讓您能夠非常輕鬆地持續建置與部署應用程式。您可以使用 Azure Kubernetes Service (AKS) 的 Kubernetes 協調這些容器的部署,建立可複寫及管理的容器叢集。

Azure DevOps 可以藉由設定持續組建來生產容器映像及協調流程,提升部署的速度與可靠性。

流程

  1. 1 變更應用程式原始程式碼
  2. 2 認可應用程式的程式碼
  3. 3 持續整合會觸發應用程式組建、容器映像組建與單元測試
  4. 4 將容器映像推送到 Azure Container Registry
  5. 5 持續部署觸發程序會協調應用程式構件的部署與環境專屬的參數
  6. 6 部署到 Azure Kubernetes Service (AKS)
  7. 7 容器會從 Azure Container Registry 使用容器映像啟動
  8. 8 Application Insights 會收集與分析健康情況、效能及使用方式資料
  9. 9 檢閱健康情況、效能及使用方式資訊
  10. 10 更新待辦項目
Java CI/CD using Jenkins and Azure Web AppsAzure App Service is a fast and simple way to create web apps using Java, Node, PHP or ASP.NET, as well as support for custom language runtimes using Docker. A continuous integration and continuous deployment (CI/CD) pipeline that pushes each of your changes automatically to Azure app services allows you to deliver value faster to your customers.JenkinsAzure ContainerInstancesAzureFilesAzure WebAppsAzure Databasefor MySQLGitHubIntelliJEngineerApplicationInsights182345677
  1. 概觀
  2. 流程

使用 Jenkins 和 Azure Web Apps 的 Java CI/CD

概觀

不論使用 Java、Node、PHP 或 ASP.NET 建立 Web 應用程式,或支援使用 Docker 的自訂語言執行階段,Azure App Service 都是快速又簡單的方式。持續整合與持續部署 (CI/CD) 管線會自動將每項變更推送到 Azure 應用程式服務,讓您能夠更快將價值傳遞給客戶。

流程

  1. 1 變更應用程式原始程式碼
  2. 2 將程式碼認可到 GitHub
  3. 3 目標為 Jenkins 的持續整合觸發程序
  4. 4 Jenkins 會使用 Azure Container Instances 為動態組建代理程式觸發組建工作
  5. 5 Jenkins 會在 Azure 儲存體中建置及儲存構件
  6. 6 Jenkins 會將 Java 應用程式部署到具備適用於 MySQL 的 Azure 資料庫支援的 Azure Web Apps
  7. 7 Azure App Insights 會提供應用程式效能的計量
  8. 8 監視應用程式並加以改善
Container CI/CD using Jenkins and Kubernetes on Azure Kubernetes Service (AKS)Containers make it easy for you to continuously build and deploy applications. By orchestrating the deployment of those containers using Azure Kubernetes Service (AKS), you can achieve replicable, manageable clusters of containers.123456778
  1. 概觀
  2. 流程

在 Azure Kubernetes Service (AKS) 使用 Jenkins 與 Kubernetes 的容器 CI/CD

概觀

容器讓您能夠輕鬆地持續建置與部署應用程式。您可以使用 Azure Kubernetes Service (AKS) 協調這些容器的部署,建立可複寫及管理的容器叢集。

您可以藉由設定持續組建來生產容器映像及協調流程,提升部署的速度與可靠性。

流程

  1. 1 變更應用程式原始程式碼。
  2. 2 將程式碼認可到 GitHub。
  3. 3 目標為 Jenkins 的持續整合觸發程序。
  4. 4 Jenkins 會使用 Azure Kubernetes Service (AKS) 為動態組建代理程式觸發組建工作。
  5. 5 Jenkins 會建置 Docker 容器並將其推送到 Azure Container Registry。
  6. 6 Jenkins 可將您新的容器型應用程式部署到 Azure 上的 Kubernetes。
  7. 7 具備 Azure Cosmos DB 支援的 Container Service (AKS)。
  8. 8 Grafana 透過 Azure 監視器以視覺呈現基礎結構與應用程式計量。
  9. 9 監視應用程式並加以改善。
Immutable Infrastructure CI/CD using Jenkins and Terraform on Azure Virtual Architecture overviewAzure is a world-class cloud for hosting virtual machines running Windows or Linux. Whether you use Java, Node.js, Go or PHP to develop your applications, you’ll need a continuous integration and continuous deployment (CI/CD) pipeline to push changes to these virtual machines automatically.JenkinsAzure Virtual MachineScale SetsTerraformAzure Managed Disks(VM Image)PackerGitHubEngineerAzure Log Analytics1765554423Visual Studio Code
  1. 概觀
  2. 流程

在 Azure 虛擬架構上使用 Jenkins 與 Terraform 的固定基礎結構 CI/CD 概觀

概觀

Azure 是世界級的雲端,用於裝載執行 Windows 或 Linux 的虛擬機器。不論您使用 Java、Node.js、Go 或 PHP 開發應用程式,都需要持續整合與持續部署 (CI/CD) 管線,以自動將變更推送到這些虛擬機器。

流程

  1. 1 變更應用程式原始程式碼。
  2. 2 將程式碼認可到 GitHub。
  3. 3 目標為 Jenkins 的持續整合觸發程序。
  4. 4 Jenkins 會觸發 Packer 映像組建以使用 Azure 受控磁碟建立 VM,並以 VM 映像的形式加以儲存。
  5. 5 Jenkins 會觸發 Terraform 以使用 Azure 受控磁碟 VM 映像佈建新的虛擬機器擴展集。
  6. 6 Azure Log Analytics 會收集與分析記錄。
  7. 7 監視應用程式並加以改善。
CI/CD for Azure VMsAzure is a world-class cloud for hosting virtual machines running Windows or Linux. Whether you use ASP.NET, Java, Node.js, or PHP to develop applications, you’ll need a continuous integration and continuous deployment (CI/CD) pipeline to push changes to these virtual machines automatically.1234567888910
  1. 概觀
  2. 流程

Azure VM 的 CI/CD

概觀

Azure 是世界級的雲端,用於裝載執行 Windows 或 Linux 的虛擬機器。不論您使用 ASP.NET、Java、Node.js 或 PHP 開發應用程式,都需要持續整合與持續部署 (CI/CD) 管線,以自動將變更推送到這些虛擬機器。

Azure DevOps 提供 CI/CD 管線,從用於管理應用程式原始程式碼及基礎結構程式碼 (ARM 範本) 的 Git 存放庫開始,到用於生產套件及其他組建成品的建置系統,以及用於設定管線,以將變更部署到整個開發、測試及生產環境的發行管理系統。管線會使用 ARM 範本,必要時在各個環境中佈建或更新您的基礎結構,然後部署更新的組建。您也可以使用 Azure Dev/Test Labs 自動拆解未使用的測試資源。

流程

  1. 1 變更應用程式原始程式碼
  2. 2 認可應用程式的程式碼及 Azure Resource Manager (ARM) 範本
  3. 3 持續整合會觸發應用程式組建與單元測試
  4. 4 持續部署觸發程序會協調應用程式構件的部署與環境專屬的參數
  5. 5 QA 環境的部署
  6. 6 預備環境的部署
  7. 7 生產環境的部署
  8. 8 Application Insights 會收集與分析健康情況、效能及使用方式資料
  9. 9 檢閱健康情況、效能及使用方式資訊
  10. 10 更新待辦項目
CI/CD for Azure Web AppsAzure Web Apps is a fast and simple way to create web apps using ASP.NET, Java, Node.js, or PHP. Deliver value faster to your customers with a continuous integration and continuous deployment (CI/CD) pipeline that pushes each of your changes automatically to Web Apps.12345678
  1. 概觀
  2. 流程

Azure Web Apps 的 CI/CD

概觀

Azure Web Apps 可讓您快速、輕鬆地使用 ASP.NET、Java、Node 或 PHP 來建立 Web 應用程式。透過持續整合與持續部署 (CI/CD) 管線自動推送每項變更到 Web Apps,以更快將價值傳遞給客戶。

流程

  1. 1 變更應用程式原始程式碼。
  2. 2 認可應用程式的程式碼與 Web Apps 的 web.config 檔案。
  3. 3 持續整合會觸發應用程式組建與單元測試。
  4. 4 持續部署觸發程序會協調應用程式構件的部署與環境專屬的參數。
  5. 5 部署到 Web Apps。
  6. 6 Azure Application Insights 會收集與分析健康情況、效能及使用方式資料。
  7. 7 檢閱健康情況、效能及使用方式資訊。
  8. 8 更新待辦項目。
DevTest image factoryCreate, maintain, and distribute custom images with the DevTest Image Factory, an automated image development and management solution from Azure Dev Test Labs.