當前情況: 我們有一個用C++編寫的應用程序,用cmake構建,使用googletest進行單元測試。C++應用程序在不同環境下自動構建
我們有兩種環境:
- 測試:本地不那麼強大的服務器
- 製作:用預構建AMI圖像幾個亞馬遜EC2實例
我們測試本地計算機上,當我們發佈時,我們在生產機器上籤出代碼,構建它並運行。
現在公司正在用自動化構建工具(如Jenkins)來推廣CI。 儘管我們可以自動化構建過程,但有些人建議不建議直接在生產機器上構建。
但在我看來,不像Java程序可以運行,只要有JRE,C++應用程序就非常依賴於機器。
大多數情況下,Docker可能是銀色的子彈,但不幸的是,我們的應用程序無法放入docker中,因爲它需要在一組真正的機器上運行。
行業中是否存在處理這類問題的一般/常用方式?
恕我直言只要圖像相同,應用程序就會表現相同。所以我會設置一個具有相同映像的本地虛擬機,並首先對其進行測試和/或創建另一個亞馬遜實例(不是很強大),並在那裏測試並構建它,然後將二進制文件移動到生產系統。直接在生產環境中構建可能會破壞服務,並可能使用大量資源。 – knightrider