IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 搞不懂代码里 XXX.sh 或 fis.js 脚本有什么用?从不知道代码 Push 以后到上线经历了什么?一分钟告诉你全流程! -> 正文阅读

[系统运维]搞不懂代码里 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、你这不太对,我们代码库没这些东西…

每个公司、部门部署细节会不太一致,整体流程大概一致,文章中流程是以 “ 云原生应用架构 ” 服务为基准。

附录

文章潦草,细琢方能见底!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:50:23  更:2021-08-11 12:51:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:21:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码