服务器部署v1.0方案问题分析
背景
后端项目
后端项目现在以SringBoot的jar包项目为主, 如果使用原生的java -jar jar包名
的方式,如果有代码变动,每次需要在本地打好jar包,上传到服务器,重新执行操作,步骤繁琐,效率低下。
如果使用jenkins持续集成的技术,可以做到定时部署、自动化部署,但是还要编写很多的shell脚本,而且比较重,比较依赖硬件环境,并不适合小型项目的部署。详情可参看另一篇博客:部署SpringBoot的jar包项目让人头疼,不如使用jenkins+docker自动化部署jar包项目
前端项目
以前项目以npm打包和原生的html静态项目为主,如果是静态项目,nginx直接反向代理即可。如果是npm需要让nginx代理到项目的dist文件夹下的静态资源。还是与后端项目相同,如果有代码上的改动,需要再次重新部署。
以上的一些列原生方式,比较繁琐,在开发环境下,每天的代码改动量比较大,部署方式不够自动化和人性化。于是结合中小型项目的特点,诞生了服务器部署v1.0方案。
服务器部署v1.0方案
方案内容
详情可参看一下文档:
- docker 构建centos7+git+nvm镜像,实现自主切换node版本统一部署前端vue项目
- docker 构建git+maven+jdk8的centos7环境,实现轻量级的springboot项目的自动化部署
- docker安装nginx规范所有项目的反向代理(一个项目一个反向代理的conf配置文件)
特点
- 基于docker搭建基础服务的容器(例如mysql、nginx、redis…)
- 在前后端docker镜像中安装git用于项目代码同步,安装vim用于基础文件的编辑
- 在后端镜像中安装java8环境,安装maven进行项目打包
- 在前端镜像中安装nvm实现自主切换node和npm的版本
- 利用shell脚本进行docker容器的生成和前后端项目的部署
问题分析
服务器部署v1.0方案,虽然在一定程度上实现了自动化和规范化,但是在长达半年的部署过程当中,还是发现了很多的问题。具体问题如下:
- start.log日志文件输出内容太多,只需要启动日志
- 部署生产环境所需要的环境依赖流程复杂、耗时长
项目需要依赖mysql、redis、nginx、rabbitmq…等,每次使用docker run命令去构建容器需要挨个构建和配置
每次都需要手动使用docker run
命令去构建容器,不能统一管理 - 部署方式有部分不够统一/规范,比如通过
centos7_mvn_git_java8
镜像构建的项目容器是将/root/project
与容器的/project
进行挂载,而nginx容器保留了之前将/root/project
挂载到/var/www/html
(为了兼容之前的项目) - 在
centos7_mvn_git_java8镜像构建的springboot后端项目容器
中,每次进行项目重新部署都需要进入容器,执行相应的shell命令,相对繁琐 - 构建的容器重新部署可能导致容器的
ip变更
,进而引发nginx反向代理失败 - 构建的容器不能做到网络互通
- mysql没有备份方案
- mysql8版本容器启动时,缺少相应的配置
- 服务器中运行的docker容器不方便进行管理
- 考虑配置集群(mysql、redis、后端项目等)
服务器部署v2.0方案期望
根据以上的问题分析,所以决定迭代服务器部署的v2.0方案。
- 主要使用docker-compose对容器进行编排,做到有限的几条命令,可以构建好所有的基础服务(docker容器)
- 使用portainer图像化管理工具对基础服务进行管理和监控
- 编制更加自动化和规范化shell脚本
- 提供规范的使用手册
- 代码和文档放到github进行开源和不断迭代版本
服务器部署v2.0方案会尽快编制和更新…
服务器部署v1.0方案问题分析相关推荐
- 简单FTP服务器(ccd) v1.0
简介: 简单ftp服务器(ccd)是一个网友自制的FTP服务软件,双击运行即可成为FTP服务器,直接用网页进行访问,访问方式可以用网页:ftp://,非常方便,有需要的小伙伴可以下载试用一下,使用方法 ...
- Linux服务器部署工程(柳州职业技术学院)电信院22级工程
Linux服务器部署工程 组长:蒋文毅 组员:蒋文毅.覃黎国.赖佳俊.潘苗康.龙博文.韦晴 指导老师:黄光明 目录 目录 Linux服务器部署工程项目... 0 目录... 1 1学习项目:... 2 ...
- 【一笔画完】通关路径算法的Java代码实现V1.0
文章目录 前言 一.算法分析 二.算法设计 三.算法实现 四.演示(OneStrokeV1.0) 五.有待改进 1.不符合算法的有穷性,可能无法得到通关的路径 2.空间和时间复杂度高,IDEA的资源开 ...
- Inpho.DtMaster.v1.0.0 1CD
Inpho产品: Inpho.ApplicationsMaster.v5.3.0.Win32_64 2CD Inpho.ApplicationsMaster.v5.1.Win32 1CD Inpho. ...
- 联想m4服务器维修培训ppt,培训联想服务器、存储及方案实战培训v1.0.ppt
培训联想服务器.存储及方案实战培训v1.0 Page * China Server Business GCR | Lenovo Confidential | ? 2008 Lenovo Lenovo ...
- 接口性能测试方案 白皮书 V1.0
一. 性能测试术语解释 1. 响应时间 响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间.响应时间按软件的特点再可以细分,如对于一个 C/S 软件的响应时间可以细分为网 ...
- 即时通讯(IM)开源项目OpenIM本周版本发布- v1.0.7-web端一键部署
介绍 OpenIM:由前微信技术专家打造的基于 Go 实现的即时通讯(IM)开源项目,包括IM服务端和客户端SDK.开发者私有化部署,基于SDK二次开发,可以轻松替代第三方IM云服务,打造具备聊天.社 ...
- 服务器系统部署方案,服务器 部署方案
服务器 部署方案 内容精选 换一换 专属云SAP解决方案开发测试系统部署方案如图1所示.说明如下:VPC网络:为了保证网络的安全,系统中所有节点在一个VPC网络内,且所有节点部署在同一个AZ(Avai ...
- 基于云开发的微信答题活动小程序v1.0搭建部署帮助文档
11月是全国"119"消防宣传月,不少企事业单位都会举办消防安全知识竞答活动,因此我基于云开发搭建了消防安全知识答题活动小程序. 接着,还写完了初阶的手把手教你搭建答题活动小程序系 ...
- ibm x系列服务器操作手册,IBM_X系列服务器操作手册v1.0.doc
IBM_X系列服务器操作手册v1.0 IBM X系列服务器操作手册 PAGE PAGE 1 IBM X系列服务器 操作手册 Ver. 1.0 蓝色快车 武汉二站 肖涵 2008/7/6 目 录 TOC ...
最新文章
- 这三类问题是工控系统最大的威胁
- 基于深度学习的视频预测研究综述
- 附加作业:源自刘乾老师的问题
- javascript 在对象中使用 定时器_如何使用JavaScript 面向对象编程
- C++高质量编程点滴
- 张正友标定法公式详细推导
- margin负值的巧妙运用(HTML、CSS)
- a - 数据结构实验之串一:kmp简单应用_数据结构(C语言版)_笔记_3
- jQuery学习_具备吸附功能的拖曳框
- Node.JS 字符分割
- 万能地图下载器中设置详解
- AspriseOCR图片识别
- 3D风车动画CSS HTML代码
- 宜居房屋===查看所有房源信息===查看单个房屋详情信息
- 最近在玩游戏:魔兽世界
- NX二次开发-UFUN创建工程图注释UF_DRF_create_note
- QQ小程序支付 调起微信支付
- swing小区安全管理系统
- 从零开始设计开发优惠券系统
- python for 循环中的下划线
热门文章
- 完整的支付系统整体架构
- Tushare Day3——了解stock_company并与stock_basic数据规模进行比较
- 人工智能、大数据、云计算概念
- Python反序列化免杀上线CS:两次编码绕过
- android 2个 微信,手机挂2个微信可以吗?安卓手机挂2个微信以上教程
- 微信公众号迁移流程 《openid转换》
- office 2010图标出现异常时的解决办法
- 卸载WPS后office图标异常解决办法
- win10 wifi连接不上服务器未响应,Win10连不上WiFi怎么办?Win10连不上WiFi解决方法介绍...
- Cocos Creator + TiledMap制作瓦片地图部分经验总结