簡體   English   中英

發布配置管理

[英]release configuration management

我們的Windows可交付產品為不同的客戶提供不同的配置文件和二進制資產。 現在,配置是在包裝之前手工完成的,並且容易出錯。 您如何看待為每個客戶使用分支機構,並使用軟件包構建/腳本自動將客戶的分支機構與主干分開?

我不太關心可擴展性而不是我自動獲得ASAP。

整個packag內容都是SVN,但SVN分支和合並是如此微妙,以至於我不相信它在自動化時能夠始終如一地工作。 如果你們喜歡這個想法,我可能會嘗試使用git-svn,因為它有望使合並變得不那么精致。 我們不一定要合並資產,因為它們是有條理的,所以安裝程序可以跳過不適當的目錄樹,但配置並不那么簡單。

我想這取決於有多少事情需要改變。 對於配置文件,我喜歡將單個文件保留在源代碼管理下,並使用構建腳本來設置特定於環境的(或在特定於客戶端的情況下)項目。

http://automaticchainsaw.blogspot.com/2008/02/automate-config-changes-for-different.html

對於二進制文件,它可能更多地與您擁有的數量和它們來自何處有關。 如果它們是代碼編譯的一部分,那么理想的編譯過程將創建您需要的內容。 如果它們是其他資源(例如圖形),則可能在一個目錄下有一組客戶特定的文件夾。 構建腳本將根據傳遞給腳本的參數拉入正確的客戶端文件夾。 這基本上是您在問題中提到的分支和合並想法。

關於您以后關於多行配置更改的評論 - 假設它是xml,您可以查看MSBuild社區任務中的XmlMassUpdate類。 我自己沒有用它,但看起來它可能就是你需要的東西。

您沒有提到哪種語言,但您可以考慮進行條件編譯

#If FirstCustomer Then
   ' <code specific to the FirstCustomer version>.
#ElseIf SecondCustomer Then
   ' <code specific to the SecondCustomer version>.
#Else
        ' <code specific to other versions>.
#End If

這可能發生在不同的客戶,環境(QA,登台,生產......),地區(美國,歐盟,亞洲......)或不同的應用程序類型(如果您必須在服務移動客戶端時配置服務器)而不是網絡或桌面)。

通常,人們要么手動維護配置文件(如你所提到的),這是容易出錯且不安全的。 或者像佩德羅提到的那樣,使用構建腳本“窺視並捅”配置文件中的正確值。 這種方法還意味着對於影響配置的每個代碼更改,腳本也應該更改哪個不理想。 調試和測試這些腳本(無論它們是什么語言)通常很難,如果不是不可能的話。

面對您的確切問題,我們開發了一個基於中央配置服務器的解決方案,為客戶端提供配置服務。 服務器支持值的繼承,更改的審計和版本控制,模板甚至是實時下推到客戶端的運行時更改。

我們非常接近將此服務作為雲托管配置管理解決方案發布。 如果您想嘗試一下,請在http://woot.configchief.com注冊測試版

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM