iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0

成品倉庫(Artifact Repository)

昨天,我們成功安裝及設定好Dependency Track在Jenkins的自動化流程。當我們在開發的安全性得到保障以後,我們可以開始為我們的程式發佈做準備。

一般來說,我們有三種不同的方式去發佈一個我們開發的程式:

  • 以可引用的套件方式去發佈
  • 以可執行的程序發佈
  • 作為一個運作的服務發佈

以上三種不同的方式,其實都會經過一個相同的步驟,就是把源碼編譯成可供引用或是可供執行的檔案。因此無論哪一種發佈方式,最後都需要找一個位置去存放編譯好的檔案,以便開發者引用或是取得程序去執行。

當我們使用CICD Pipeline進行自動部署的時候,我們亦經常需要把編譯完成後的檔案部署到不同的環境中。有時候這個過程並不一定會同時進行,例如先部署到測試環境中,測試完成後再部署到生產環境中。而為了保持不同環境下源碼的一致性,我們不應該每次都重新編譯一次我們的代碼。因此,我們應該在自動化部署的流程中,每次都編譯完成的程序進行存檔,以便重新利用。

而這個存放程序或套件的工具,就是成品倉庫了。

Nexus OSS

市面上有很多不同種類的Artifact Repository,而比較有名的有JFrog Artifactory跟Nexus Repository。

今天我會介紹一下Nexus Repository的Nexus OSS版本。除了因為個人原因,比較常用Nexus Repository以外,另一個主要原因是JFrog Artifactory的自託管服務並不是免費服務。當然你亦可以選擇JFrog Artifactory的雲端服務,但放上雲端有機會會引伸致一些企業安全規限問題,在此不詳細討論。因此本次選擇了Nexus OSS進行介紹。
https://ithelp.ithome.com.tw/upload/images/20220925/201520129c51dSd5yx.png

Nexus OSS提供了不同套件管理工具的支援,例如Java比較常用的Maven、NodeJS常用的npm、Python的PyPI等。最新的版本甚至支援Docker的儲存。用戶可以把開發的套件進行編譯再上傳到Nexus OSS中,當有需要引用或存取時,就從Nexus OSS直接取得相關套件。

而且Nexus OSS亦支援鏡像倉庫,例如使用Nexus OSS作為公共Maven的Repository,或是公共npm套件的Repository。當取得套件時,Nexus OSS會緩存一份相同的套件在Nexus OSS中,當下次要使用的時候,就可以更快捷取得相關的套件而不用重新下載。

當進行本地開發時,某一些安全性需求較高的企業甚至會在網絡層面上,阻擋開發人員直接存取公共的Repository,這個時候,開發人員就必須使用 Nexus才能取得所需的套件。

因此一套Artifact Repository除了可以方便保存開發的成品以外,其實還可以保證企業在開發過程中的安全性。

小結

今天先介紹一下Nexus的功能,明天我們一起安裝Nexus及學習如何使用它。

題外話

卡文了…


上一篇
Day 12: 快快樂樂地用Dependency Track自動化管理專案漏洞
下一篇
Day 14: 興建我的成品倉庫!Nexus OSS!
系列文
不想吃土嗎?就利用開源軟體打造CICD Pipeline吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言