2018 年 5 月

第 33 卷,第 5 期

本文章是由機器翻譯。

DevOps-任何語言,與 Azure 的 DevOps 專案的任何平台

這 Peter SchaubAlex Mullans |可能 2018

過去兩年,Microsoft 已推出確保建構完善的持續整合 (CI) 和持續傳遞 (CD) 管線 initiative 其 DevOps 平台而定。ALM |DevOps Ranger 小組已在作用中的工作,其中涵蓋建立以及與每個版本中,同時在多個部落格文章和獲得的經驗MSDN Magazine發行項,例如 「 套用 DevOps 到軟體開發專案 」 (msdn.com/magazine/mt767695) 和"Continuous Delivery with Visual Studio Team Services 以 Road"(msdn.com/magazine/mt814804)。為 Microsoft 今天具備的快速和異質 DevOps 生態系統中心由 leaps 和 bounds 發展的 Visual Studio Team Services (VSTS) 平台建置支付紅利,年的投資。

後面這項工作是開發團隊的常用應用程式架構、 自動和無縫式的 CI/CD 管線整合,以及內建的監視支援該需求內建支援,在他們所選擇的語言和平。此外,開發人員想要建置其他應用程式,任何 Azure 服務,以分鐘為單位。速度和單純性是最重要的。

Microsoft Azure 的 DevOps 專案 (bit.ly/2E5zkWG) 解決所有這些需求。它可讓開發人員啟動任何 Azure 應用程式服務在幾個快速步驟中,提供所有必要項目來開發、 部署和監視應用程式上的應用程式。建立 DevOps 專案時,會佈建所有 Azure 資源並提供 Git 儲存機制、 Application Insights 整合與連續的傳送管線設定部署至 Azure。DevOps 專案儀表板讓您監視程式碼的認可、 組建和部署在 Azure 入口網站的單一檢視。

本文將探討如何 DevOps 專案可讓雲端供電 CI/使用 CD 來 VSTS:

  • 取得啟動並執行新的應用程式和完整的 DevOps 管線的短短幾分鐘內
  • 支援各種不同的熱門架構如.NET、 Java、 PHP、 Node.js 和 Python
  • 使用內建的 Application Insights,進行即時分析和可執行的洞察力整合
  • 啟動全新或透過整合現有的應用程式從 GitHub

或者,我們無法查看 DevOps 專案做為功能來協助 「 開始 」 在 Azure 上的使用者。假設的開發人員需要開發並部署至 Azure 的 Node.js 方案。使用者必須尋找的 Azure 服務是最適合的語言、 架構和平台案例、 原型環境,並最後建立的小組工程程序。每個步驟都有學習曲線和多個失敗點。DevOps 專案可簡化所有這,並且讓它失敗證明。它不是幾乎 DevOps,也需進行開始在 Azure 上的工作變得更容易。

討論 DevOps

我想要暫停的時間來傳達我們在 Microsoft DevOps 這裡的定義。為 Donovan Brown Azure 群組中的主體 DevOps 管理員描述它:「 DevOps 是人員、 程序和產品啟用連續傳遞至我們的使用者值的聯集 」。

您也可以瀏覽 Microsoft 網站 DevOps (aka.ms/devops) 如需深入的心得由 Microsoft 開發人員部門在敏捷式軟體開發的 DevOps 我們七個年份之旅期間。投入時間所產生的文化特性這裡著重於客戶時,會讓實際執行第一次,並持續以三個星期雲端步調傳遞值。

本文章中我們將焦點放在我們的 DevOps 定義,產品更容易的一部分。如前所述,開發人員真實感是簡單、 快速和一致的處理序。支援各種程式設計語言與平台,以及自動化需求和管線的方塊外 CI/CD。

中所示圖 1,CI/CD 管線是一串相異作法用於持續整合、 測試及部署到生產環境的變更。了解遙測、 使用者意見反應和即時網站事件流程後通知決策,改善未來的版本,且最重要的是,評估基於部署,假設。關於持續提供價值。

DevOps 作法
圖 1 DevOps 作法

Azure DevOps Projects

Azure 的 DevOps 專案,您可以建置 Azure 應用程式上一項 Azure 服務,, 以分鐘為單位。您也可以取得自動完整 CI/CD 管線整合、 內建的監視和您選擇的平台部署。中的資料表中所示圖 2,有數個應用程式、 架構和部署類型,可以選擇建立新的 DevOps 專案時。請務必注意此資料表會反映撰寫本文時的資訊並閱讀本文時,將已改善內建支援。

圖 2 應用程式、 架構和部署選項

應用程式 架構 Windows 部署 Linux 部署
    Web 應用程式 虛擬機器 Web 應用程式 容器的 web 應用程式
.NET ASP.NET X X    
ASP.NET Core X X X X
Java 衝刺 (sprint) X     X
JSF X     X
Node.js Express.js X     X
Sails.js       X
簡單的 Node.js X     X
PHP Laravel X     X
簡單的 PHP X     X
Python Django X   X  
Bottle X   X  
酒瓶 X   X X

讓我們來探索如何在 Azure 入口網站上建立新的 DevOps 專案,建立一對應用程式。建議您開始使用 Azure 的 DevOps 專案,並遵循使用您自己的 Azure 和 VSTS 帳戶。這種方法可讓您瀏覽詳細資料中產生的解決方案。

中所示Figure3,第一個應用程式範例根據 Java 與 Spring 架構,並已部署為 Web 應用程式在 Windows 上。這是一個顯示混合的技術在 Windows 上執行許多可能的範例,開發人員的常見案例。

在 Windows 應用程式的 Java JSF,Web 應用程式
圖 3 JSF,Java Web 應用程式在 Windows 應用程式

在 Azure 入口網站,您會建立新的 DevOps 專案。然後您可以選擇從範例應用程式使用.NET、 Node.js、 PHP、 Python 或 Java 中,開發一組,或您可以將自己的程式碼。

若要部署應用程式,(1) 選取的 Java 範例應用程式、 (2) 選擇 Spring 做為您的應用程式架構 (3) 為您的 Azure 服務部署應用程式選取 Windows 上的 Web 應用程式。下一步],(4) 輸入新的專案名稱,然後確認或變更的 Azure 和 VSTS 詳細資料。您會建立新的 VSTS 帳戶,並將應用程式服務的位置變更為加拿大中心。同樣地,您可以變更 Azure 訂用帳戶,例如設定定價方案、 Web 應用程式名稱和 Web 應用程式的位置。內建驗證確定輸入正確的值的下游失敗會避免。

完成後,重複練習中,但這次選取要部署應用程式的.NET、.NET Core Framework 和 Web 應用程式,在 Linux 上的容器。這是顯示混合的技術如何在容器中執行 Linux 上的另一個簡單範例。藉由完成下列四個簡單步驟,您已建立兩個 DevOps 專案中所示圖 4

DevOps 專案
圖 4 DevOps 專案

這些專案可讓您輕鬆地,快速建立數個常用的語言、 架構和平台的完整 CI/CD 管線。這是很有用的資產,快速示範和實驗的專案,並取得您的開發小組的好方法啟動完整、 予以擴充,且一致的程序。

在幕後的識別常數

很明顯地,若是發生了魔術。當您按一下 [完成] 按鈕選取的執行階段架構、 服務和組態之後時,它開始一系列不同階段,顯示Figure5。您可以巡覽至所顯示的 DevOps 專案儀表板的 DevOps 專案清單中選取新的專案,或使用 Azure 入口網站上的通知。

在 Azure 上的管線檢視
圖 5 在 Azure 上的管線檢視

為所涉及的四個階段:

  1. Azure 資源:建立並設定您的 Azure 應用程式服務資源,應用程式服務方案和應用程式端點。
  2. 儲存機制: 建立分散式的 Git 儲存機制並簽入程式碼範例。
  3. CI/CD 管線: 順暢地連接到 VSTS 共同作業解決方案的工程小組,讓您計劃,測試、 發行和監視您的方案。
  4. Application Insights:  建立並設定 Application Insights 遙測。此工具可讓使用中的監視和主動偵測問題和持續分析及測試假設沒有程式碼,藉以了解。

請注意,DevOps 專案階段不僅建立並設定 CI/CD Pipeline(see section 3 in Figure 5),它們也執行的程式碼中,持續整合建置提取和部署發行到開發環境。

DevOps 專案儀表板中,監視您的 CI/CD 管線、 Application Insights 遙測,並瀏覽至相關的 Azure 或 VSTS 資源。

當您導覽至您的新 VSTS 帳戶時,您會發現兩個新的專案:JaSpWeADemo 和 dNCoWe4DDemo (圖 6)。這些會連結到兩個 Azure 的 DevOps 專案。

Visual StudioTeam 服務帳戶和 Team 專案
圖 6 Visual StudioTeam 服務帳戶和 Team 專案

在組建中,CI 執行 Maven 建置每次有人簽入程式碼。若要減少執行組建的數目,變更會批次處理組建正在執行時。您可以微調的事件觸發組建,例如指定分支,或使用路徑篩選以減少的一組可以觸發動作的檔案。

當您瀏覽 JaSpWeADemo 專案管線中所示圖 7,您會有的成品 (1) 和 (2) 環境。Dropartifact 是應用的 Build.The 連續部署觸發程序所產生程式可部署的一部分會指示 Release Management 時偵測到新的成品可建立新的版本。同樣地,您可以微調的事件觸發發行,例如只處理成品從 「 主要 」 分支。

在 Visual Studio Team Services PipelineView
在 Visual Studio Team Services Figure7 管線檢視

根據預設,CI/CD 管線 DevOps 專案所建立的自動將部署到 Devenvironment 連續部署觸發程序所建立的版本時。開發人員環境需要任何手動核准、 Gatesare 停用,且有只有一個部署範例 Azure 應用程式服務的工作。

DevOps 專案所產生的管線是很好的起點示範和試驗。若是生產環境中,管線可能需要一些額外的愛,我們將在下一節中討論。

最後,開啟第二個 dNCoWe4DDemo 範例專案,並看看 CI/CD 管線。整體管線看起來非常類似。不過,向下鑽研至組建,您會注意到,CI 組建觸發程序建置容器映像,將它推送到 Azure 容器登錄中。CD 發行部署 Azure 應用程式服務,在 Linux 上不需要任何 Linux 或容器的專業知識。

本快速逐步解說所示,DevOps 專案會取得您快速地開始使用完整且實用的 CI/CD 管線。使用 DevOps 專案中,相較於手動建立方案和 CI/CD 管線時,會大幅降低 Azure、 VSTS 和 DevOps 的學習曲線。您現在要賦予使用專案關係人,例如安全性、 作業和發行管理 CI/CD 管線所採取的下一個層級。

修改產生的管線

CI/CD 管線是一致的方式可協助小組的 DevOps 的基本項目,並持續提供價值,較快的速度和降低風險。您可以加強產生的管線中,以配合您的程序和組織的原則。您可以完全自動化測試,驗證和傳遞您的軟體在實際執行環境,多個環境,或半自動管線與核准和閘道設定。您甚至可以提升的品質、 安全性及漸進式的新功能的風險。

以下是幾個可協助您開始的指標:

  • Greenlighting 和閘道: 精簡您的閘道部署前後整合訊號的監視系統和其他外部服務的選項中的一組的發行管線 (bit.ly/2E549uG)。
  • 分析開放原始碼專案: 持續分析及測量技術,使用品質 SonarCloud 和 VSTS,從您的專案,向每個方法 (bit.ly/2J4v0ea)。
  • 安全性驗證:CI/CD 管線內的連續安全解決方案。位址安全基礎結構、 驗證安全性、 掃描弱點的開放原始碼元件和監視攻擊 (bit.ly/2Gmczjg)。
  • 新的發行部署:  使用部署環逐漸公開新的版本中,並微調功能旗標使用生產環境中的版本 (red.ht/2GTsQNC)。

封裝管理的重要性

如果您想要更快速地提供更多的價值給您的使用者的方式的相關,然後您可能使用的封裝 (例如 NuGet、 npm 等等)。封裝和 DevOps 有 symbiotic 關聯性。封裝管理著重在 CI/CD 管線提供額外的值,透過已封裝的產品和執行組建與版本自動化。Vsts,封裝管理延伸模組被設計為您的 DevOps 管線,以負責的態度使用公用來源的封裝更容易更快速地建立及共用您自己的封裝,讓無縫式的一部分。

若要加入封裝管理神奇 DevOps 管線最簡單的方法是使用上游來源,連線您的封裝管理摘要公用的來源,例如nuget.orgnpmjs.com。若要使用從下列來源透過封裝管理封裝有很大的優點:

  • 每次您使用的封裝,儲存的複本就會保留在您的摘要,這表示您正在保護從左填補事件等問題 (請參閱bit.ly/2pO1Do5)、 公用中斷和其他任何世界可能會在擲回您的來源。您只需要將您的管線流動是摘要您 VSTS 封裝。
  • 在您的摘要,您可以看到所有已儲存的複本和其 provenance, 以便您可以篩選並查看您曾經使用完全哪些封裝從何處。

從封裝管理會採用兩個步驟。首先,安裝封裝管理並建立摘要所示在bit.ly/2GDj5W9。根據預設,新的摘要已自動設定上游來源nuget.orgnpmjs.com。然後,Visual Studio (bit.ly/2pR3aZZ) 或 npm (bit.ly/2J2xVUq) 若要使用您新的摘要。從該處,它是一般的步驟。當開始,您可以執行乾淨的組建,以強制執行您的封裝儲存至摘要。

總結

這是一系列的文章,以涵蓋新的和未來的功能,我們計劃中的第一個。我們認為透明度可協助建立 empathy 和信任,而且很重要,可讓您採取累加採用的產品,並改善您的處理序的步驟。書籤我們時間表 (bit.ly/2uv25fM)、 監看的未來的發行項,並尋找公告,在未來的 Microsoft Build 和激發事件。此時,我們可以提及我們正努力一些有趣的 DevOps 專案中,展開 Azure VM 資源、 加入支援移至] 與 [Ruby,以及擴充資料庫的支援包括增強功能。

既然我們已導入 DevOps 專案,並涵蓋在幕後識別常數,您可以確信瀏覽的方式,來增強您 CI/CD 的管線。請記住,DevOps 不是目的地,它會連續、 快速改進的旅程。

DevOps 資源

DevOps 與 CI/CD 舞會快速的演變,因此有很多的開發人員在涵蓋的範圍。若要協助與挑戰,我們在此您可以瀏覽的內容和書籤供日後參考組合幾個資源和連結。這些資源提供最新的產品更新和與我們的 DevOps 轉換劇本獲得的經驗。我們希望如此可讓您簡化及加速 DevOps 轉換。


這 Peter Schaub是 VSTS,在 Microsoft 溫哥華美麗不列顛哥倫比亞省的工作中的程式管理員。Mid-80 年代,因為他有已可完成為了簡化和軟體工程的可維護性。他依照在 LinkedIn aka.ms/willysli或 Twitter 上: @wpschaub

Alex Mullansvsts,更容易更快速的小組共用及重複使用程式碼,讓程式管理員。您可以在 Twitter 上關注他: @alexmullans

這點受惠檢閱本文章下列技術專家:ALM |DevOps Ranger,Gopinath Chigakkagari Atul Malaviya


MSDN Magazine 論壇中的這篇文章的討論