转行过来的,没有接触过这个,看入门教程都是直接在代码中写,但生产环境肯定不行。是写入配置文件里还是怎么操作的?
1
loading 2021-01-01 10:54:46 +08:00 via Android
一般写配置文件,起码我看到很多产品都是。
|
2
Jacky23333 2021-01-01 10:55:11 +08:00 via Android 1
有个配置中心 Server,项目启动会自动从配置中心加载数据库信息
|
3
oott123 2021-01-01 10:55:13 +08:00 via Android
配置文件 /环境变量 /分布式配置系统( etcd 之类的)
|
4
ginjedoad 2021-01-01 11:39:21 +08:00 1
用 appolo 或者 etcd 建一个数据中心,你的项目初始化的时候读取一次配置中心的配置,加载到内存。设置一个回调事件,监听配置中心变动。有变动,马上更新全局配置值,perfect!
|
5
wpblank 2021-01-01 11:59:41 +08:00
一般就写配置文件就好了,新手注意一下别把密码随代码传到公共的 git 上
|
6
YouLMAO 2021-01-01 12:19:55 +08:00 via Android
我们用的 sql,nosql,newsql,全部都是 kerberos 验证,MySQL 是美国定制安全版的
|
7
YouLMAO 2021-01-01 12:20:38 +08:00 via Android
都 2021 了,还用密码登录,就是侮辱先人了
|
9
hantsy 2021-01-01 13:12:31 +08:00
Vault
|
10
hantsy 2021-01-01 13:13:29 +08:00
大部分云环境都是支持 https://www.vaultproject.io/ 或者类型的产品。
|
11
hantsy 2021-01-01 13:13:55 +08:00
所谓的数据堡垒,保险箱。
|
12
yeqizhang 2021-01-01 13:18:13 +08:00 via Android
代码写和配置文件里写没啥本质区别,甚至代码写安全性更高,只是为了维护方便就用配置文件。
为了通过第三方代码安全扫描,会加盐加密配置在配置文件,代码里解密使用 |
13
makdon 2021-01-01 13:19:06 +08:00
写配置文件。生产上网络隔离,外部访问生产集群只允许通过网关鉴权后访问 server 层机器,DB 不允许非白名单机器访问
|
14
xuanbg 2021-01-01 14:29:10 +08:00
既不写在代码里面,也不写在配置文件里面。正确的做法是保存在配置中心,由专职的运维人员管理和维护。
|
15
danieladu 2021-01-01 14:38:00 +08:00 via Android
key vault
|
16
boris93 2021-01-01 15:06:28 +08:00 via Android
写在密钥库,搭配 CICD 工具在构建过程中注入
比如 Concourse + Vault |
17
smilingsun 2021-01-02 07:04:38 +08:00
@boris93 是把密码写到了 artifact 里面?
|
18
xiaochong0302 2021-01-02 09:03:15 +08:00 via iPhone
@yeqizhang 之前项目用 ansible 搞过,想想就蛋疼
|
19
haosamax 2021-01-02 11:28:14 +08:00 via iPhone
配置中心
|
20
boris93 2021-01-02 22:29:12 +08:00 via Android
@smilingsun #17 我们用的是 AppEngine,所以最终状态下配置文件里还是占位符,运行时通过 AppEngine 的配置文件,用环境变量传进去
|