流程图:
- 常规系统发布的痛点
- 服务器频繁重启,上面部署的应用服务不能随之重启,导致服务时常宕机
- 应用手动部署相对比较麻烦,步骤繁琐
- 应用发布环境取决于发布人本地环境,导致不同发布人每次发布环境不一致,导致应用出现异常
- 服务异常、服务器宕机不能自动处理,人为应对存在反应时间过长问题
- 各服务器内存消耗严重、压力大,不方便统一管理
- docker容器化概念
- docker是一种轻量级的虚拟化技术,可以将开发环境同时打包到镜像。跟虚拟机一样,可以虚拟出一个环境,但是虚拟机是虚拟硬件,虚拟出整个操作系统,而docker利用的就是本机的硬件、采用的是进程级别的虚拟环境。所以相对来说,docker会更加轻量级、会更快。
- docker容器化指的是将应用整合到容器中,并且运行起来的过程;docker的核心思想就是如何将应用整合到容器中,并且能在容器中实际运行,一旦应用容器化完成,就能以镜像的形式交付并以容器的方式运行。
- docker容器化优势
- 更快速的交付和部署
- 更高效的虚拟化
- 更轻松的迁移和扩展
- 更简单的管理
- 自动化部署(CI/CD)概念
- 部署的过程中所有的操作全部自动化,无需人工手工干预。
- 通过在应用开发阶段引入自动化来频繁向客户交付应用的方法
- 实现自动化部署
- 申请多台linux服务器,统一系统配置
- 没有外网的linux服务器安装同一离线版本docker,设置好docker环境
- 安装docker-compose统一编排,然后安装swarm构建集群
- Linux服务器配置好各开发环境
- 申请一台外网服务器(windows也可以),安装代理,代码编译时直接指向该代理,从而下载对应的包
- 在docker环境安装Jenkins(自动化构建工具)、portainer容器管理工具等
- 将当期各系统陆续迁移到swarm集群