架構師需要懂的環境配置標準化
目錄- 架構師需要懂的環境配置標準化
- 基本概述
- 組件標準化
- 資料標準化
- springboot環境中flyway的使用
- 應用引數標準化
基本概述
在真實的研發環境中,一般存在
local、developer、test、product等等環境,如何在這些環境中,實作統一的、標準化的配置問題是架構師需要考慮的一件事情,
每種環境一般都需要配置如下部分:
- 組件(MySQL、Redis、MongoDB等)
- 資料(MySQL中的表結構、特定的表資料,如:省市區資料)
- 應用引數
組件標準化
除線上環境需要考慮到穩定性外,在運維角色沒有對容器化有豐富經驗的情況下,可以考慮線上環境傳統部署,如:自己搭組件集群或者使用云服務,
其余環境皆使用容器化部署,
可以考慮的部署方案有如下:
local部署:docker-compose;developer、test部署:docker-swarmorkubernetes,- 所有環境都基于
kubernetes部署,PS:部署腳本一般由運維角色維護,
local部署腳本從運維角色獲取,
附上一個local部署docker-compse腳本
docker-compose.yml
version: '2'
services:
mysql:
image: mysql:5.6
command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci]
environment:
MYSQL_ROOT_PASSWORD: 123456
# For testing from the host:
# mysql --host=127.0.0.1 --port=3306 --user root -p
ports:
- "3306:3306"
redis:
image: redis:3.0
command: ['redis-server', '--requirepass 123456']
expose:
- 6379
ports:
- "6379:6379"
mongo:
image: 'umputun/mongo-auth'
environment:
- MONGO_PASSWD=123456
ports:
- "27017:27017"
PS:docker-compose官方檔案
PS:按需使用相應組件,也可以自己添加需要的組件,local環境沒做資料持久化處理,如需用在其余環境,請參考檔案配置,
資料標準化
資料標準化主要解決的是各環境表結構不一致的問題,
線上環境一定要關掉該功能,
線上環境的資料變更一定要按規范、走變更流程,經
DBA或者運維角色執行,其余環境個人解決方案:
flyway
springboot環境中flyway的使用
- 在
application.yml中填入相應組態檔
flyway:
enabled: true
baseline-on-migrate: true
locations: "db/migration"
schemas: table_name
- 在指定目錄下設定配置腳本
- 腳本命名規范:
V{版本}__{腳本名}.sql
- 腳本命名規范:
- 配置資料庫環境
- 啟動
springboot專案 - 在資料庫中查看表結構、表資料
PS:flyway官網
應用引數標準化
配置中心解決
apollo、nacos、spring cloud config
local環境可以從配置中心拉一份developer環境配置下來,更改引數至local環境組件,
PS:各環境重要引數,通過配置中心配置,而不是放在專案目錄,上傳至git,這樣配置資訊不會有組態檔級外泄風險,
PS:apollo
PS:nacos
PS:spring cloud config
分享并記錄所學所見
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/183580.html
標籤:Java
