线上环境和本地开发环境配置如何优雅切换?
平时工作中线上使用的配置和线下配置都是分开的。但是这样就有一个问题,平时开发时候需要测试往往要手动改为测试环境的配置,等上线再修改回线上环境的配置。手动修改配置太麻烦,而且有时候容易使用错配置。下面介绍几种比较优雅的方式来区分线上和线下环境。
1. 通过操作系统识别
我们线上环境一般都使用的Linux系统部署,开发人员使用Mac和Wiondows系统开发。
以go语言为例,可以使用runtime.GOOS方法获取当前操作系统。主要有以下几个枚举值
const (
OsLinux = "linux" // linux
OsWindows = "windows" // windows
OsDarwin = "darwin" // mac系统
)
func main() {
var (
confPath string
)
// 这里我们公司使用的是Mac,可以这样判断
if runtime.GOOS == "darwin" {
confPath = "./conf/test.toml"
} else {
confPath = "./conf/product.toml"
}
fmt.Printf("my conf path:%s", confPath)
}
2. 通过脚本获取,定位到对应配置文件或文件夹
线上服务器会对应有个环境变量或者目录文件,通过获取变量和目录文件识别。比如华南a机房下目录文件名为hna-v,华南b机房目录文件名为hnb-v。
这种方式下次做详细介绍......