企业信息化系统 DevOps 流水线搭建
DevOps 对企业的价值
企业信息化系统的迭代频率直接影响业务响应速度。通过搭建 DevOps 流水线,可以实现代码提交后的自动构建、测试、部署,将发布周期从天级缩短到小时级,同时降低人为操作失误风险。
流水线整体架构
代码提交 → 静态检查 → 单元测试 → 构建镜像 → 部署测试环境
↓
生产发布 ← 蓝绿切换 ← 集成测试 ← 人工审批
核心工具链选型
| 环节 | 工具 | 说明 |
|---|---|---|
| 代码托管 | GitLab / Gitea | 私有化部署,支持代码审查 |
| CI/CD | GitLab CI / Jenkins | 流水线编排,支持多环境 |
| 镜像构建 | Docker + Harbor | 镜像仓库私有化存储 |
| 容器编排 | Docker Swarm / K3s | 轻量级,适合中小团队 |
| 配置管理 | Nacos / Consul | 动态配置,环境隔离 |
GitLab CI 流水线示例
stages:
- lint
- test
- build
- deploy
lint:
stage: lint
script:
- npm run lint
only:
- merge_requests
- main
test:
stage: test
script:
- npm run test:unit
- npm run test:coverage
coverage: '/All files[^|]*\|[^|]*\s+([\d\.]+)/'
build:
stage: build
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
only:
- main
deploy_staging:
stage: deploy
script:
- docker stack deploy -c docker-compose.yml eims-staging
environment:
name: staging
only:
- main
环境管理策略
多环境隔离
- 开发环境:开发者本地或远程开发机,数据可随意重置
- 测试环境:QA 验证功能,数据定期从生产脱敏同步
- 预发布环境:与生产一致,用于上线前最终验证
- 生产环境:线上服务,变更需审批,具备回滚能力
数据库变更管理
企业系统的数据库变更需要格外谨慎,推荐采用:
- Flyway / Liquibase 管理版本化迁移脚本
- 变更脚本必须经过测试环境验证
- 生产发布选择低峰期,保留回滚脚本
- 大表变更使用 pt-online-schema-change 等工具避免锁表
监控与告警
流水线只是起点,运行态监控同样重要:
- 应用日志:ELK(Elasticsearch + Logstash + Kibana)
- 指标监控:Prometheus + Grafana
- 链路追踪:Jaeger / Zipkin
- 告警通知:Alertmanager → 企业微信 / 钉钉