背景

后端项目

后端项目现在以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方案,虽然在一定程度上实现了自动化和规范化,但是在长达半年的部署过程当中,还是发现了很多的问题。具体问题如下:

  1. start.log日志文件输出内容太多,只需要启动日志
  2. 部署生产环境所需要的环境依赖流程复杂、耗时长
    项目需要依赖mysql、redis、nginx、rabbitmq…等,每次使用docker run命令去构建容器需要挨个构建和配置
    每次都需要手动使用docker run命令去构建容器,不能统一管理
  3. 部署方式有部分不够统一/规范,比如通过centos7_mvn_git_java8镜像构建的项目容器是将/root/project与容器的/project进行挂载,而nginx容器保留了之前将/root/project挂载到/var/www/html(为了兼容之前的项目)
  4. centos7_mvn_git_java8镜像构建的springboot后端项目容器中,每次进行项目重新部署都需要进入容器,执行相应的shell命令,相对繁琐
  5. 构建的容器重新部署可能导致容器的ip变更,进而引发nginx反向代理失败
  6. 构建的容器不能做到网络互通
  7. mysql没有备份方案
  8. mysql8版本容器启动时,缺少相应的配置
  9. 服务器中运行的docker容器不方便进行管理
  10. 考虑配置集群(mysql、redis、后端项目等)

服务器部署v2.0方案期望

根据以上的问题分析,所以决定迭代服务器部署的v2.0方案

  • 主要使用docker-compose对容器进行编排,做到有限的几条命令,可以构建好所有的基础服务(docker容器)
  • 使用portainer图像化管理工具对基础服务进行管理和监控
  • 编制更加自动化和规范化shell脚本
  • 提供规范的使用手册
  • 代码和文档放到github进行开源和不断迭代版本

服务器部署v2.0方案会尽快编制和更新…

服务器部署v1.0方案问题分析相关推荐

  1. 简单FTP服务器(ccd) v1.0

    简介: 简单ftp服务器(ccd)是一个网友自制的FTP服务软件,双击运行即可成为FTP服务器,直接用网页进行访问,访问方式可以用网页:ftp://,非常方便,有需要的小伙伴可以下载试用一下,使用方法 ...

  2. Linux服务器部署工程(柳州职业技术学院)电信院22级工程

    Linux服务器部署工程 组长:蒋文毅 组员:蒋文毅.覃黎国.赖佳俊.潘苗康.龙博文.韦晴 指导老师:黄光明 目录 目录 Linux服务器部署工程项目... 0 目录... 1 1学习项目:... 2 ...

  3. 【一笔画完】通关路径算法的Java代码实现V1.0

    文章目录 前言 一.算法分析 二.算法设计 三.算法实现 四.演示(OneStrokeV1.0) 五.有待改进 1.不符合算法的有穷性,可能无法得到通关的路径 2.空间和时间复杂度高,IDEA的资源开 ...

  4. Inpho.DtMaster.v1.0.0 1CD

    Inpho产品: Inpho.ApplicationsMaster.v5.3.0.Win32_64 2CD Inpho.ApplicationsMaster.v5.1.Win32 1CD Inpho. ...

  5. 联想m4服务器维修培训ppt,培训联想服务器、存储及方案实战培训v1.0.ppt

    培训联想服务器.存储及方案实战培训v1.0 Page * China Server Business GCR | Lenovo Confidential | ? 2008 Lenovo Lenovo ...

  6. 接口性能测试方案 白皮书 V1.0

    一. 性能测试术语解释 1. 响应时间 响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间.响应时间按软件的特点再可以细分,如对于一个 C/S 软件的响应时间可以细分为网 ...

  7. 即时通讯(IM)开源项目OpenIM本周版本发布- v1.0.7-web端一键部署

    介绍 OpenIM:由前微信技术专家打造的基于 Go 实现的即时通讯(IM)开源项目,包括IM服务端和客户端SDK.开发者私有化部署,基于SDK二次开发,可以轻松替代第三方IM云服务,打造具备聊天.社 ...

  8. 服务器系统部署方案,服务器 部署方案

    服务器 部署方案 内容精选 换一换 专属云SAP解决方案开发测试系统部署方案如图1所示.说明如下:VPC网络:为了保证网络的安全,系统中所有节点在一个VPC网络内,且所有节点部署在同一个AZ(Avai ...

  9. 基于云开发的微信答题活动小程序v1.0搭建部署帮助文档

    11月是全国"119"消防宣传月,不少企事业单位都会举办消防安全知识竞答活动,因此我基于云开发搭建了消防安全知识答题活动小程序. 接着,还写完了初阶的手把手教你搭建答题活动小程序系 ...

  10. 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 ...

最新文章

  1. 这三类问题是工控系统最大的威胁
  2. 基于深度学习的视频预测研究综述
  3. 附加作业:源自刘乾老师的问题
  4. javascript 在对象中使用 定时器_如何使用JavaScript 面向对象编程
  5. C++高质量编程点滴
  6. 张正友标定法公式详细推导
  7. margin负值的巧妙运用(HTML、CSS)
  8. a - 数据结构实验之串一:kmp简单应用_数据结构(C语言版)_笔记_3
  9. jQuery学习_具备吸附功能的拖曳框
  10. Node.JS 字符分割
  11. 万能地图下载器中设置详解
  12. AspriseOCR图片识别
  13. 3D风车动画CSS HTML代码
  14. 宜居房屋===查看所有房源信息===查看单个房屋详情信息
  15. 最近在玩游戏:魔兽世界
  16. NX二次开发-UFUN创建工程图注释UF_DRF_create_note
  17. QQ小程序支付 调起微信支付
  18. swing小区安全管理系统
  19. 从零开始设计开发优惠券系统
  20. python for 循环中的下划线

热门文章

  1. 完整的支付系统整体架构
  2. Tushare Day3——了解stock_company并与stock_basic数据规模进行比较
  3. 人工智能、大数据、云计算概念
  4. Python反序列化免杀上线CS:两次编码绕过
  5. android 2个 微信,手机挂2个微信可以吗?安卓手机挂2个微信以上教程
  6. 微信公众号迁移流程 《openid转换》
  7. office 2010图标出现异常时的解决办法
  8. 卸载WPS后office图标异常解决办法
  9. win10 wifi连接不上服务器未响应,Win10连不上WiFi怎么办?Win10连不上WiFi解决方法介绍...
  10. Cocos Creator + TiledMap制作瓦片地图部分经验总结