你真的知道什么叫部署吗

对于程序员来说,部署这个词已经是耳熟能详的了,你可能会觉得很可笑,连部署都不知道一定是个超级小白。

没错,对于刚入职不久的我来说的确还是个小白,虽然之前无数次听过部署这个概念,大概知道是啥,但老实说,如何解释部署,部署过程到底做了什么我整个都是懵的,可能就是传说中的“只可意会不可言传”吧。

人有时候就是这样不到非要用的时候永远都不知道自己不知道什么。

以前我知道的部署是将开发出的软件通过某种方式放到一个远程服务器上,然后在远程服务器上进行环境的配置使得代码能够工作,在这中间如何去做一概不知,更不知道这其实只是部署中的一种方式而已。

一切源于最近的一个作业,要求使用jenkins对一个git项目进行部署,由于只是简单的作业,所以只需要本地部署即可。

其实我一开始并不清楚要求的是本地部署,因为就不知道还有什么本地部署,嗯,感觉自己宛如一个智障。后来完成作业过程中遇到了一些问题,在求助他人的时候才发现原来自己一直在误区里面。

科科,开始说正事了。

所谓部署,就是让开发出的产品能够在某一环境中运行起来。

至于这个环境是什么,根据具体情况而定,可以是一个公司买的实体服务器,可以是类似AWS提供的云平台服务,也可以是本地环境,所以相应地部署就分为远程部署和本地部署。

远程部署很容易理解,因为是很常见的部署形式,对于本地部署,至少我最初是很难理解的,因为在我看来本地进行开发工作的时候项目本来就是可以正常工作的,为什么还要多此一举地去进行本地部署呢,这跟开发环境有什么区别呢,完全不能理解呀。

一般的软件都会存在至少两个阶段,开发和部署。

开发工作是在本地进行的,这时我们会使用一些编辑器,例如WebStorm,VScode等等类似的IDE,但是这个时候项目只能在我们本地环境才能正常工作,别人的电脑上是访问不到的,要想别人也能够正常使用我们的项目就得进行部署。

部署刚刚已经提到过,就是使得软件在某一环境中运行起来,这个过程中会将源代码生成可运行的软件包,然后将软件包放到要部署的环境中,通过一些配置使得这个软件包在目标环境上也能够正常工作。

因为对于一个项目来说,不同人群需要的“产品”类型是不一样的,假设我们要为某一个公司开发一个网站,开发人员关心的是源代码,而项目管理人员要的是一个可运行的软件包,然而客户要的是能够打开网页就能显示预期内容的页面。

从源代码到能够看到具体的页面就是一个部署的过程。

因此部署要做的工作大致分为三步:

1. 将源代码生成可运行的软件包,例如 jar 包或 war 包等;
2. 将可运行的软件包放到目标环境上;
3. 配置目标环境使得软件包能够运行起来;

知道了这些再去看开发和本地部署的确是有区别的,尽管都是在同一台机器上,但是本质不同,和远程部署相比只是目标环境不同而已,但依旧叫做部署。

部署的工具也有很多,在我本次的作业中使用的是jenkins,通过在本地启动一个虚拟机然后运行jenkins,将其作为目标环境使用jenkins的pipeline进行部署,因为是在一台机器上故而是本地部署了。

一般来说,我们提到的部署都是远程部署,因为毕竟是要真正地投入使用嘛,如果只是学习就可以本地部署啦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,899评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 先说项目开发过程中团队人员的分工协作。 一 人员安排 毕业至今的大部分项目都是独立完成,虽然也有和其他同事协作的时...
    SnowflakeCloud阅读 10,906评论 3 59
  • Android屏幕适配是个头疼的问题,同时关于这方面的讲解也是烂大街了,那么为什么还要写这篇博文呢,一方面是想基于...
    北五环外阅读 4,040评论 0 40
  • 婉婉,一个多么低调的名字?在这俩个字里,无论你是读还是念,都叫不出那种高亢而有力的声调,对……她就是那么低调的一个...
    很帅的粑粑阅读 561评论 2 2