架構師需要懂的環境配置標準化

2022-08-21 04:39:12 字數 2285 閱讀 7515

目錄應用引數標準化

在真實的研發環境中,一般存在localdevelopertestproduct等等環境。

如何在這些環境中,實現統一的、標準化的配置問題是架構師需要考慮的一件事情。

每種環境一般都需要配置如下部分:

元件(mysql、redis、mongodb等)

資料(mysql中的表結構、特定的表資料,如:省市區資料)

應用引數

除線上環境需要考慮到穩定性外,在運維角色沒有對容器化有豐富經驗的情況下,可以考慮線上環境傳統部署,如:自己搭元件集群或者使用雲服務。

其餘環境皆使用容器化部署。

可以考慮的部署方案有如下:

local部署:docker-composedevelopertest部署:docker-swarmorkubernetes

所有環境都基於kubernetes部署。

ps:部署指令碼一般由運維角色維護,local部署指令碼從運維角色獲取。

附上乙個local部署docker-compse指令碼

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官方文件

資料標準化主要解決的是各環境表結構不一致的問題。

線上環境一定要關掉該功能。

線上環境的資料變更一定要按規範、走變更流程,經dba或者運維角色執行。

其餘環境個人解決方案:flyway

flyway:

enabled: true

baseline-on-migrate: true

locations: "db/migration"

schemas: table_name

在指定目錄下設定配置指令碼

配置資料庫環境

啟動springboot專案

在資料庫中檢視表結構、表資料

ps:flyway官網

配置中心解決

apollonacosspring cloud config

local環境可以從配置中心拉乙份developer環境配置下來,更改引數至local環境元件。

ps:各環境重要引數,通過配置中心配置,而不是放在專案目錄,上傳至git。這樣配置資訊不會有配置檔案級外洩風險。

ps:apollo

ps:nacos

ps:spring cloud config

分享並記錄所學所見

架構師日記 Nginx的配置優化

優化的方向和目標,無外乎 1.盡量提高單台機器處理效率 2.盡量降低單台機器的負載 3.盡量降低磁碟的i o 4.盡量降低網路i o 5.儘量減少記憶體使用 6.盡量高效利用cpu 生產環境下,應該使nginx模組最小化,就是用到哪幾個就開哪幾個,這個需要在編譯安裝nginx的時候做 使用者和組,最...

RNAseq需要標準化的原因(長度和深度)

需要標準化的原因 樣本內 相對定量而不是絕對定量 僅表示在35次抽樣中,b基因抽樣到了20次,而不是其表達了20次。也不能說其會比genea表達量高,因為基因的長度不同,所以落到基因上的reads數量也不同 樣本件 不同樣本的測序深度也是不同的,測序深度更深的會得到更多的reads。故,需要標準化。...

架構師日記 Nginx的HTTP模組配置

core module支援一些內建的變數,與apache使用的變數相一致。首先,一些變數代表了客戶端請求頭部的一些字段,如 http user agent,http cookie等等。注意,由於這些變數會在請求中定義,所以可能無法保證他們是存在的或者說可以定義到一些別的地方 例如遵循一定的規範 除此...