搞不懂代码里 XXX.sh 或 fis.js 脚本有什么用?从不知道代码 Push 以后到上线经历了什么?一分钟告诉你全流程!
Posted 魏小言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搞不懂代码里 XXX.sh 或 fis.js 脚本有什么用?从不知道代码 Push 以后到上线经历了什么?一分钟告诉你全流程!相关的知识,希望对你有一定的参考价值。
作为一名研发,你有没有想过,自己完成代码 Push 到服务上线启动,这个过程经历了什么?只是交给运维或者平台进行 - 点点点完成就结束了吗?
今天就简单聊下本地 Push 代码后,到服务启动的全过程。
服务上线 == 代码从本地切换到服务器上跑?
看小标题 “ 服务上线 == 代码从本地切换到服务器上跑 ” 没毛病,服务上线就是把我们调试好的代码放到服务器上去运行,对外提供服务。
服务器就是特殊的 Linux 机,提供计算、内存、硬盘等资源,和本地没区别。
对了,这里说的 “ 本地 ”,包含大家做代码编写的 IDE 或者 跳板机,两者无非就是环境的物理位置不同而已,程序运行的环境是一致的。
这里提到了程序运行环境,一般指 go/java/c…开发语言的原生包 + 依赖包「第三方」,你回想回想,开发前是不是就只用装个开发语言环境就成「一些前端语言不需要安装,依赖组件本身这类除外」。
明确了程序需要什么就成了,想要把代码搬到服务器上跑,就需要提供程序需要的运行环境!那么这个环境是怎么提供的呢?
服务器环境需要的物料
构建脚本 —— build
你现在翻翻一些代码库,会发现都含有一个构建脚本,一般是 shell 类型。
这个脚本的作用就是加载程序依赖包,生产程序可执行文件。
加载程序依赖
由于咱们整体环境存在 “ 墙 ” 这一说,一些依赖包在拉去的过程中会出现超时问题。所以,脚本中一般会进行代理的设置,像 github、git、…确保依赖包安全完整的拉取。
可执行文件
在一些编译性语言中,可执行文件通过 build 指令生成,像 go build、等等
执行 —— Docker
你在翻翻代码库,会发现有 docker file、docker-compose.yml、deploy.sh …相关文件。
这些文件的作用就是用于构建程序运行环境,具体各自功能见 docker 文章。
打包工具 —— Jekenis
Jekenis是一打包工具,一般会和代码库进行集成,自动封装打包代码。
整体流程
整个流程是:
代码 Push 完成后 —> Jekenis 打包由服务器拉取 —>Docker 按 dockerfile 生成基本环境 —>执行构建脚本,生成可执行文件 —> Docker 按 docker-compose.yml 启动容器「服务」
Q&A
1、你这不太对,我们代码库没这些东西…
每个公司、部门部署细节会不太一致,整体流程大概一致,文章中流程是以 “ 云原生应用架构 ” 服务为基准。
附录
文章潦草,细琢方能见底!
以上是关于搞不懂代码里 XXX.sh 或 fis.js 脚本有什么用?从不知道代码 Push 以后到上线经历了什么?一分钟告诉你全流程!的主要内容,如果未能解决你的问题,请参考以下文章