在真实的研发环境中,一般存在
local
、developer
、test
、product
等等环境。如何在这些环境中,实现统一的、标准化的配置问题是架构师需要考虑的一件事情。
每种环境一般都需要配置如下部分:
成为架构师的条件,除线上环境需要考虑到稳定性外,在运维角色没有对容器化有丰富经验的情况下,可以考虑线上环境传统部署,如:自己搭组件集群或者使用云服务。
其余环境皆使用容器化部署。
可以考虑的部署方案有如下:
local
部署:docker-compose
;developer
、test
部署:docker-swarm
orkubernetes
。- 所有环境都基于
kubernetes
部署。PS:部署脚本一般由运维角色维护,
local
部署脚本从运维角色获取。
附上一个local
部署docker-compse
脚本
docker-compose.yml
version: '2'services:mysql:image: mysql:5.6command: [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 -pports:- "3306:3306"redis:image: redis:3.0command: ['redis-server', '--requirepass 123456']expose:- 6379ports:- "6379:6379"mongo:image: 'umputun/mongo-auth'environment:- MONGO_PASSWD=123456ports:- "27017:27017"
PS:docker-compose官方文档
在资产配置的标准化流程。PS:按需使用相应组件,也可以自己添加需要的组件,local
环境没做数据持久化处理,如需用在其余环境,请参考文档配置。
数据标准化主要解决的是各环境表结构不一致的问题。
线上环境一定要关掉该功能。
线上环境的数据变更一定要按规范、走变更流程,经
DBA
或者运维
角色执行。其余环境个人解决方案:
flyway
springboot
环境中flyway
的使用application.yml
中填入相应配置文件flyway:enabled: truebaseline-on-migrate: truelocations: "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
本文由博客一文多发平台 OpenWrite 发布!
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态