传统项目开发部署的流程是怎样的?

题外话

我个人的文档风格,不会一上来就讲什么专业名词、贴原理图、贴架构图、贴代码啥的。。。感觉这样会给人一种很大的入门门槛,会让很多人一开始就失去了学习的兴趣和信心(我不喜欢那样的“装逼”风格,虽然看似很牛B的样子,其实对于新手入门的朋友而言,是没有任何参考价值的)。

考虑到一些对于某一技术不太懂、或者刚刚接触的朋友,所以尽量会写的通俗易懂。

前言

学习docker技术之前呢,我们通过引入一个大家都经历过的开发场景,由此作为切入点,学习起来思路会很清晰明白。

传统项目开发部署的基本流程

这里只简单描述一下,项目发布的基本流程

  • 本地开发+测试,没有问题的话,编译打包发布到测试环境

  • 在测试环境中进行测试,测试完成后,发布到生产环境

  • 在生产环境中进行最后的测试,如果没有问题,那么一切就OK了

存在什么问题?

我想100%的人都亲身经历过这样的事情 —— 在自己本地测试都没有问题,发布到测试环境、生产环境后,就出现问题了!搞得自己非常苦恼!非常纠结!到底是哪里出了问题呢?明明代码什么的都一样啊~

好吧,这里我就不仔细分析具体的原因是什么了,因为可能会有N种原因。

这里就列举一个比较常见的原因,就是:

  • 本地开发环境与测试环境、生产环境上的软件环境配置,可能出现不一致的情况,导致有些时候相同的代码在不同的环境下运行会出现问题。

存在问题:不同机器上的软件环境不一致。(比较核心的问题)

再列举几个实际开发中遇到的情况:

  • 公司在阿里云买了一台新服务器,要想能正常发布项目等,前提是需要在服务器上重新安装一些软件环境(比如jdk、tomcat等),在安装软件环境的过程中,很大几率会出现配置错误的情况;一些比较复杂的环境配置步骤会很多,很多人都记不清具体的步骤和命令,还得上网搜索......

存在问题:软件环境的配置繁多、命令记不清楚。

  • 像jdk、tomcat等基础的环境搭建,都已经很熟练了,每次有新机器的时候,都要重新搭建,这样就造成了重复性工作、效率低下、配置繁琐麻烦、易出错等情况。

存在问题:重复性搭建软件环境、效率低下。

当然也会有其他的问题,这里就不多做说明了。

比较好的做法是什么样的?

举个例子:

比如你到了一家新公司工作,一般都会让你在电脑上安装开发环境(比如JDK等),这时候一个技术人员递给了你一个U盘,里面有很多安装文件以及资源,你直接插在自己电脑上,copy需要的软件安装就行了,无需重新下载软件。

上面的场景,比较好的一点是:不用在网上重新下载对应的软件,直接使用U盘里面已经有的软件进行安装就行了。而且,U盘中的软件可以进行版本更新以及提供给他人直接使用。多么方便。

所以,针对上面提到的开发过程中遇到的开发环境等问题,如果能做到只搭建一次环境,多次复用的话,就nice了!就不会出现环境不一致的问题,也不用重复搭建软件环境了。

有什么技术方案能解决这样的痛点吗?

技术方案

因此,Docker出现了!

posted @ 2021-11-25 22:20  筱进GG  阅读(188)  评论(0编辑  收藏  举报
SpringBoot SpringCloud Docker