
從管道部署與釋出 |
283
- test-featureflags-db
environment:
- spring.profiles.active=test
最後一個元素
environment
將環境變數
spring.profiles.active
設為
test
,這會覆寫
application.properties
檔案內的設定,並且會要求 Spring Boot 在啟動與設置 Feature
Flags 服務時使用
application-test.properties
檔。藉此,你可以在使用 baked-in 組態模式
的同時,為不同的環境維護不同的組態組合。
外部化組態
使用 baked-in 組態有一個後果,因為你將它視為另一個程式碼檔案(或一組檔案)來
追蹤,所以你對組態做的任何更改都會被組建管道當成程式碼的更改。這種情況有時是
有幫助的,因為組態的變動或許需要測試,但是在其他情況下,它只會觸發沒必要的工
作:例如,當你更改測試環境的旗標時,它不但會觸發整組設定,也會為了完全不影響
生產環境的東西,而對生產環境進行新的部署。
baked-in 組態還有一項缺點:因為它被當成程式碼存放區的另一個檔案來管理,所以只
有開發者可以更改它。有些組態選項可能適合這種做法(例如資料庫連結的連接池參
數),但有時你想要把這個權力授與組織的其他成員。例如,在管理功能旗標時,你可
能想要讓商務人員決定何時與如何調整它們。另一個例子是,如果基礎設施團隊提供某
些資源讓 app 使用,例如 log 池(見第 13