客户需要在单台 CentOS 7 服务器上快速构建一套标准化的后端开发与运行环境。目标是替代繁琐的手动安装过程,通过容器化技术统一部署 MySQL、MongoDB、Redis、Kafka、Zookeeper、MinIO 等中间件,并预置 GoLang 开发环境,确保环境的一致性和可移植性。
功能模块:
1.中间件容器化: 集成 MySQL 5.7+、MongoDB 6.0+、Redis 7.0+、Kafka 及 Zookeeper 等核心组件,通过 Docker Compose 进行统一编排启动。
2.对象存储服务: 部署 MinIO 对象存储,用于非结构化数据的存储测试。
3.环境初始化: 编写初始化脚本,自动完成各组件的用户名密码配置(如 mysql/mongodb/redis/minio 统一认证),并安装 GoLang 1.18 及 Git 工具链,交付即可用的基础镜像环境。
一、架构与思路
基于 Linux (CentOS 7.4-7.9) 系统,使用 Docker (v24.0.5+) 和 Docker Compose 作为核心部署工具。设计思路是将所有依赖服务写入 docker-compose.yml,通过 Volume 映射实现数据持久化,通过 Environment 变量注入配置,避免硬编码。
二、具体工作与难点解决
1.编排脚本编写: 编写了包含 8 个服务的 Compose 文件,处理了 Kafka 与 Zookeeper 的启动依赖顺序(depends_on),确保服务按序拉起。
2.配置标准化: 针对客户需求,统一了所有数据库组件的账号密码策略,并在脚本中完成了端口映射(如 MySQL 3306, Redis 6379 等),防止端口冲突。
3.资源限制: 针对单机 8C 16G 的硬件资源,在 Docker 层面进行了基础的资源限制配置,防止单个容器占用过多内存导致宿主机宕机。
4.交付验证: 提供了自动化检查脚本,一键验证所有容器状态是否为 Up,确保交付时服务全部正常运行。