什麼是 Azure Artifacts?
在此單元中,您將會看到如何使用 Azure Artifacts 安全地建立及管理您的應用程式可使用套件的簡短概觀。
讓我們回頭與小組確認,小組會判斷 Azure Artifacts 是否為裝載其 .Net 套件的適當方式。
Mara:對我來說,在 Azure Artifacts 中裝載新的模型套件是合理的。 我們都已是 Microsoft Azure DevOps 組織的一份子,因此驗證會比嘗試在不同的套件管理員上設定更為容易。
Andy:我在開會之前探討過這個問題,而且對我來說似乎直接了當。 我同意 Mara。
Amita:何謂 Azure Artifacts?
Andy:Azure Artifacts 是您 Azure DevOps 組織中的存放庫,您可以在其中管理程式碼基底的相依性。 Azure Artifacts 可以儲存您的成品和二進位檔。 其會針對相依性群組提供稱為「摘要」的容器。 可存取摘要的開發人員就能輕鬆地取用或發佈套件。
如何建立套件,並在管線中使用該套件?
Tim:如果我的理解正確,應用程式程式碼使用來自 NuGet 的套件。 我們將建立自己的套件,並將其裝載在 Azure Artifacts 中。 您可以描繪每個環節,以及這些環節如何搭配運作嗎? 我很難繪出整個流程。
Andy:當然。 讓我們來看看建立套件,並在 Azure DevOps 管線中使用該套件的流程。
Andy 移至白板處。
建立套件
首先,我們需要在 Azure Artifacts 中建立專案。 我們可以從 Azure DevOps 執行此動作。
我們接著會在 Azure Pipelines 中建立管線,連線到套件程式碼的 GitHub 存放庫。 然後,該管線會建置程式碼、將其封裝,並將套件推送至 Azure Artifacts。
我們需要更新取用此套件的應用程式,以指向我們所建立的 Azure Artifacts 摘要。
之後,我們會更新建立應用程式的管線。 此更新可讓我們使用 Azure Artifacts 摘要來提取新的套件相依性,並以一般方式建置。
更新套件
Tim:如果有人更新套件,該怎麼辦?
Andy:當您更新套件加入新功能或 Bug 修正,並執行測試以確保其正常運作時,請提高套件的版本號碼。 然後,認可變更。 套件的管線會看到認可,並使用新的版本號碼在 Azure Artifacts 中建立新的成品。 別擔心,版本號碼較低的舊套件仍在那裡,供依賴該版本的應用程式使用。 這就是為什麼您通常不會取消列出套件的原因。
我們的應用程式可能會想要使用這個較新版本的套件。 在此情況下,我們會將應用程式更新為參考較新的版本,並在本機執行測試,以確保此新版本可與我們的應用程式搭配運作。 當滿意一切正常運作時,我們會將應用程式變更提交至管線。 其是利用套件相依性的新版本所建立。
Amita:這聽起來像是一個不錯的方案,也會協助其他小組。 如您所說,這也會使程式碼免於「漂移」。 這也有助於品質保證。
在組建管線中包含版本設定策略
當您使用組建管線時,套件需要版本,然後您才能取用和測試這些套件。 不過,僅在測試了套件之後,您才能知道其品質。 因為套件版本應該永遠不會變更,所以事先選擇特定版本會變得很有挑戰性。
Azure Artifacts 會將品質等級與其摘要中的每個套件建立關聯,並區別發行前版本和發行版本。 Azure Artifacts 可在套件及其版本的清單上提供不同的檢視,這些檢視會根據品質等級區隔它們。 這種方法非常適用於語意化版本控制系統,因此有助於預測特定版本的意圖。 Azure Artifacts 也會使用描述項,以包含來自 Azure Artifacts 摘要的額外中繼資料。 檢視的常見用途是共用已經過測試、驗證或部署的套件版本,但會保留仍在開發中且尚未準備好公開取用的套件。
Azure Artifacts 中的摘要預設有三個不同的檢視。 建立新的摘要時,就會新增這些檢視。 這三個檢視如下:
- 發行版本:@release 檢視包含被視為正式版本的所有套件。
- 發行前版本:@prerelease 檢視包含其版本號碼中具有標籤的所有套件。
- 本機:@local 檢視包含所有發行和發行前版本套件,以及從上游來源下載的套件。
您可以使用檢視來協助套件摘要的取用者篩選套件的發行版本和未發行版本。 基本上,檢視可讓取用者有意識地決定從已發行的套件中選擇,或是選擇加入特定品質等級的發行前版本。
Azure Artifacts 中的套件安全性
確保套件的安全性與確保程式碼其餘部分的安全性一樣重要。 套件安全性的其中一個層面是保護套件摘要的存取 (其中 Azure Artifacts 中的摘要是您儲存套件的位置)。 設定摘要的權限,可讓您將套件與您情節所需的人員 (無論多寡) 共用。
摘要權限
摘要有四種存取層級:擁有者、參與者、共同作業者和讀者。 每個存取層級都有一組特定的權限。 例如,擁有者可以將任何類型的身分識別 (個人、小組和群組) 新增至任何存取層級。 根據預設,專案集合組建服務為共同作業者,而您的專案小組則是讀者。
設定管線以存取安全性和授權等級
協力廠商提供數個工具,可協助您評估所使用軟體套件的安全性和授權等級。
其中有些工具會掃描套件,因為它們包含在組建或 CD 管線中。 在組建過程中,工具會掃描套件並提供即時的意見反應。 在 CD 過程中,工具會使用組建成品並執行掃描。 這類工具有兩個範例,分別為 Mend Bolt 和 Black Duck。 搭配 Azure DevOps,您可以使用組建工作,將掃描併入您的管線中。