基本流程部署工具基本包含以下三大块:触发器、CI、CD触发器触发器指的是触发部署动作,分为两大类:cli: 腾讯云 TCD, vercel-cli 这类工具实现本地命令行登陆账号,通过本地命令行出发构建部署 CD产物部署阶段需要进入生产环境中,分为以下三类:静态资源:静态资源,无法部署 node 服务,通常用户静态资源的CDN加速场景,适用于博客类,无法部署API。 serverless:云函数类,部署的是函数服务,使用场景受限,适合轻量的 API 服务容器:微信云托管,托管容器,最为灵活,可以部署任何你想部署的东西,和企业级的部署方式类似。 静态网站部署vercelvercel 是一个前端明星团队。 总结当前处于云原生时代,对前端开发人员也越来越友好,各种部署工具层出不穷,我们只需要专注于自己的核心能力即可,能够被标准化的产业肯定会被标准化的,云函数也好,云托管也好,本质上就是让开发者能够更快更简单的去上线自己的创意
得益于工程化的发展与开源社区的良好生态,前端应用的可用性与效率得到了很大提高。 前端以前是刀耕火种,那前端应用部署在以前也是刀耕火种。那前端应用部署的发展得益于什么,随前端工程化带来的副产品? 为了更清晰地理解前端部署的发展史,了解部署时运维和前端(或者更广泛地说,业务开发人员)的职责划分,当每次前端部署发生改变时,可以思考两个问题 缓存,前端应用中http 的 response header 但是前端部署,仍是刀耕火种 刀耕火种 一台跳板机 一台生产环境服务器 一份部署脚本 前端调着他的 webpack,开心地给运维发了部署邮件并附了一份部署脚本,想着第一次不用套后端的模板,第一次前端可以独立部署 node 版本,前端嚷嚷着测试环境没问题 这个时候运维需要费很多心力放在部署上,甚至测试环境的部署上,前端也要操心放在运维如何部署上。 不过一般只有大厂会有这么完善的前端部署平台,如果你对它有兴趣,你可以尝试下 netlify,可以参考我的文章: 使用 netlify 部署你的前端应用 服务端渲染与后端部署 大部分前端应用本质上是静态资源
1.安装node、npm、cnpm apt install nodejs y apt install npm y node -v npm -v npm install cnpm -g --regist
前端本地化部署 http://zoo.zhengcaiyun.cn/blog/article/localized-deployment 前言 现在成熟的前端团队里面都有自己的内部构建平台,我司云长便是我们 ,最后调用 K8S 的镜像部署服务,进行镜像按环境的部署,这就是我们云长做的事情。 如果想从零开始搭建一个自己团队的部署平台可以看下我们往期文章 如何搭建适合自己团队的构建部署平台,本期我们只是针对云长中静态资源本地化的功能做细致阐述。 场景分析 为了网络安全,客户会要求我们的应用是要完全部署在内网的,那我们需要做什么呢?第一我们需要考虑前端代码中是不是有些直接访问外网资源?第二是不是后端返回了静态资源地址在某种情况下就访问了? 前端直接访问的 CDN 的资源太普遍了,如下既有 at.alicdn.com,又有我们自己内部的静态资源 luban.zcycdn.com, sitecdn.zcycdn.com 等。
大家好,我是山月,这是我最近新开的专栏:「前端部署系列」。 包括 Docker、CICD 等内容,大纲图示如下: 大纲 「前端部署」系列正在更新: 1/20 本篇是关于前端部署的简单介绍,以及如何使用 nodejs 写一个最简静态资源服务器。 : 如何手写一个简单的静态资源服务器用以部署前端 为何需要 nginx、docker 等工具辅助前端部署 1. 小结 本篇文章介绍了了一些对于前端部署的简单介绍,并使用 nodejs 写了两段代码用以提供静态服务,加深对前端部署的理解。 在本文章,将应用在本地或者宿主机进行成功运行,但是现代流行的前端部署方案,都是使用 docker 对前端进行部署。
vercel 是一个可以完成自动化部署前端项目的网站,你只需要把你的项目上传即可。支持与GitHub项目连接。 注册时GitHub邮箱不能为qq邮箱,因此我申请了个GitHub小号。 创建项目,勾选GitHub输入Git地址直接同步项目完成自动部署。 ? 由于push代码又要重新配置key,我直接使用GitHub桌面版来上传我的前端静态代码。 ? vercel 帮我自动完成部署和实时更新,当你push代码会自动重新编译,你还可以免费绑定自定义域名以及ssl证书。 ? 国内访问速度还是很快的,感觉非常满意。 同时他支持较多前端项目的部署,例如hexo,vue,nuxt,next ? ?
大家好,我是山月,这是我最近新开的专栏:「前端部署系列」。包括 Docker、CICD 等内容,大纲图示如下 大纲 示例代码开源,置于 Github 中,演示如何对真实项目进行部署上线。 「前端部署」系列正在更新: 15/15 ---- 这篇关于 k8s 的文章是前端部署系列的最后一篇文章了,后续将会把该系列文章以视频的方式在哔哩哔哩发布,欢迎关注及预约。 ---- 在前边章节中,我们了解了「如何部署容器化的前端应用」,并可通过 CICD 进行自动化部署。 Deployment Deployment 可视为 k8s 中的部署单元,如一个前端/后端项目对应一个 Deployment。 Deployment 可以更好地实现弹性扩容,负载均衡、回滚等功能。 其中 cra-deployment 是 Deployment 名,而该前端应用每次上线升级会部署一个 Replica Sets,如本次为 cra-deployment-555dc66769。
一个脚本辅助部署前端项目 公司有些项目环境没有接入 jenkins 所以部署起来比较麻烦,所以写个脚本节约部署时间。 # 背景 前端项目分开发、测试、生产环境,开发及测试已接入 jenkins 自动部署,生产环境依然还是手动。 每次都需要进行本地打包, 手动压缩上传到服务器目录,ssh 登录服务器后备份旧文件, 手动删除文件再将包解压到指定目录,操作流程比较繁琐,需要提前了解服务器部署目录,不太友好,所以就写了个脚本简化部署操作 # 依赖安装 部署包含压缩文件、ssh 登录、文件上传等几个步骤,所以需要安装如下依赖: archiver,压缩文件使用。 node-ssh,ssh 操作。 silly-datetime,时间处理。 # 使用方法 在根目录新建一个 config.js 用于存放服务器 IP、用户名、密码、部署目录等信息,然后就可以在 package.json 中追加命令去调用上面的 node 脚本。
VNC 项目部署 部署之前需要先下载需要的软件,首先更新软件包: yum -y upgrade 下载一些软件: yum install git nginx openssl curl wget 下载 Nginx 我们的服务器上可能部署了好几个 web 服务器,它们有各自的端口,但是浏览器上访问时默认是 80 端口,这时可以将 Nginx 持有 80 端口,当客户端访问服务器时,先由 Nginx 识别请求 程序虽然部署到服务器上了,但是如果未来程序更新,再次上线时就需要来到服务器,下拉新的仓库代码,重新运行程序,而且单单使用 node 运行程序,在出现异常时,程序很可能会挂掉。 // 打包前端项目,最后使用 PM2 部署后端服务 'post-deploy' : 'npm install --registry=https://registry.npm.taobao.org 这条命令是在首次部署项目时运行的,之后的每次(包括这次)只需要运行下面的命令即可完成部署。
但随着前端工程化的发展,前端基本运维部署相关知识甚至也逐步被重视,如果你公司的运维部门很强大,那么你也可以完全忽略运维相关的。 当然,现在云厂商都想应推出自己的Serverless服务(下一篇会讲~),号称让前端更专注业务的开发,而不用担心底层应用的部署和维护,对开发者而言可以更多聚焦到业务领域的开发,有兴趣的童鞋可以去玩玩 ? 详细流程图可参考 Jenkins+github 前端自动化部署 2.2 配合前端项目自动化部署 这里主要介绍jenkins流水线配置的使用,流水线的代码定义了整个的构建过程, 他通常包括构建, 测试和交付应用程序的阶段 docker容器来运行前端应用 如何安装 yum install docker-ce 项目目录,部署项目需要准备Dockerfile和nginx.conf(如果nginx不作定制化,可以直接用官方镜像 4.1 常见的应用场景 部署node koa2 或 express 项目应用 部署 前端SSR(后端渲染)应用,如nuxt.js(Vue)和 next.js(React)等构建服务端渲染应用框架
生产环境测试 $ npm run build # 打包,生成在生产环境中使用的 dist 目录 进入 dist 目录,可结合 pm2 加 http-server 来发布部署。 /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } } 通常将自己项目部署的配置文件放置到 以上流程可以将服务部署到8080端口,但是如果想要部署到80端口,直接使用域名访问,需要在自建的.conf文件中监听80端口。 但是如果直接填写80端口,会遇到两种情况: 部署无报错,但是直接访问ip依然显示的是nginx默认页面 nginx报错nginx: [error] open() “/run/nginx.pid” failed 以上两个步骤完成之后,如尝试ip直接访问无问题,DNS解析域名到对于IP,就可以直接使用域名来访问前端页面了。 VUEdemo地址:http://hd.bycat.cn
前言 在以前负责测试环境的维护过程中,部署前端项目非常麻烦,需要通过配置nginx.conf、然后在重启nginx配置等一顿操作,维护环境人员需要人工去服务器上打包、部署,甚至经常会操作出去。 另外随着前端项目越来越多,每天需要频繁改配置文件,不断的重启nginx文件,导致影响测试进度。 本文主要介绍通过Docker容器来部署Vue前端项目。 ngxin配置 自定义vue前端项目的nginx配置放在nginx.conf 文件中,替换nginx的默认conf文件。 docker run -d -p 8080:8080 vue-test 对外映射开启8080访问端口 使用浏览器打开,http://127.0.0.1:8080 结语 本文介绍了使用Docker部署 Vue前端项目,使用docker的方式部署前端项目步骤很简单并且配置方便,在实际项目中可以使用docker的特性快速创建多个前端项目的测试环境,要比传统改nginx配置的方式优雅和方便了不少,推荐大家日常工作中使用
基础部署前端网页能被访问的前提,一个是网址对应的资源,一个是网络发现。所以通常来讲,把 .html 等资源放到服务器上,然后使用 nginx 等工具做网络代理,即可将网址指向前端内容。 分布式部署如果你的网站访问量够大,需要分流到多台服务器,那么你可能需要分布式部署了。扯到分布式就要先了解 docker 和 k8s,就要了解下容器化技术。 版本当出现线上问题又难以短期内解决时,你可能需要回滚版本,而回退代码再重新部署还是繁琐了点,所以部署也需要版本管理。 Node 服务的部署比如你还搞了前端网关或 BFF 服务,你可以使用以上相同的逻辑去部署,只是除了资源和网络发现外,又多了一个接口或路由的概念,但实质也可认为是资源,只是路由或接口是业务决定的,比如 koa Node 服务的进程管理另外,当部署 node 服务时,你可以用 pm2、forever 等来做进程管理,提高单个服务器中对批量网络发现的并发能力,压榨一点服务器性能。邀请人:一起重学前端
大家好,我是山月,这是我最近新开的专栏:「前端部署系列」。包括 Docker、CICD 等内容,大纲图示如下: 大纲 示例代码开源,置于 Github 中,演示如何对真实项目进行部署上线。 「前端部署」系列正在更新: 17/18 ---- 三年经验的前端或多或少与 nginx 配置打过交道。 nginx 的重要性不言而喻。 本篇文章以前端的视角,介绍下 nginx 的常见配置。 1. 见文档 https://nginx.org/en/docs/http/ngx_http_index_module.html#index root 与 index 为前端部署的基础,在默认情况下 root 为 /usr/share/nginx/html,因此我们部署前端时,往往将构建后的静态资源目录挂载到该地址。
大家好,我是山月,这是我最近新开的专栏:「前端部署系列」。包括 Docker、CICD 等内容,大纲图示如下: 大纲 示例代码开源,置于 Github 中,演示如何对真实项目进行部署上线。 「前端部署」系列正在更新: 17/18 ---- 三年经验的前端或多或少与 nginx 配置打过交道。 nginx 的重要性不言而喻。 本篇文章以前端的视角,介绍下 nginx 的常见配置。 1. 见文档 https://nginx.org/en/docs/http/ngx_http_index_module.html#index root 与 index 为前端部署的基础,在默认情况下 root 为 /usr/share/nginx/html,因此我们部署前端时,往往将构建后的静态资源目录挂载到该地址。
现在终于开始部署了。 ? 开发一个服务和全面部署还是有很大差距的。主要体现在三个方面。 故障恢复:崩了怎么办? 多核利用:node单进程如何使用? 多进程如何共享端口? 上线部署在大公司里其实是专人操作的,一个产品从构思到发布,许许多多的坑要踩。 对于前端(伪全栈)来说,想要流畅的上手部署。命令行知识还是基础。其次是及时收藏不会的知识点。 ,想要分离部署。 前端项目配置 nginx的主配置文件在 /etc/nginx/nginx.conf。 前端需要调用后端接口。
❝ 聊到运维,很长一段时间我觉得跟前端就是毫无关联的玩意,应该说半毛钱关系都木。 但随着前端工程化的发展,前端基本运维部署相关知识甚至也逐步被重视,如果你公司的运维部门很强大,那么你也可以完全忽略运维相关的。 只是树酱觉得,如果你想更多了解前端架构,还是需要具备一定的运维相关知识储备。 当然,现在云厂商都想应推出自己的Serverless服务(下一篇会讲~),号称让前端更专注业务的开发,而不用担心底层应用的部署和维护,对开发者而言可以更多聚焦到业务领域的开发,有兴趣的童鞋可以去玩玩 ❞ 1.npm ❝ npm 是 Node.js 官方提供的包管理工具,主要用来管理项目依赖,发布等等,下面介绍几个比较常见的部署应用场景,常用的npm命令这里不作介绍了 ❞ 1.1 nrm ❝ nrm
一、删除前端多余文件 同学们拿到的 T 系列前端项目架构,如下图所示。 请同学们删除红圈内的文件,如下图所示。 文件删除后,如下图所示。 npm i -g @vue/cli 提示:根据多次部署的经验,晚上 8点后部分区域会出现下载超时的情况,不是我们的原因,同学们可以开热点或者第二天早上再试。 脚手架安装完成后,如下图所示。 三、拉取前端依赖 请同学们输入 npm i 命令,拉取项目前端依赖,如下图所示。 npm i 提示:根据多次部署的经验,晚上 8 点后部分区域会出现下载超时的情况,不是我们的原因,同学们可以开热点或者第二天早上再试。 前端依赖拉取完成后,如下图所示。 五、前端项目的运行 最后,同学们就可以输入 npm run serve 命令,运行前端项目了,如下图所示。 npm run build 前端项目默认是 8081端口,运行成功后如下图所示。
大家好,我是山月,这是我最近新开的专栏:「前端部署系列」。包括 Docker、CICD 等内容,大纲图示如下 大纲 示例代码开源,置于 Github 中,演示如何对真实项目进行部署上线。 「前端部署」系列正在更新: 16/18 ---- docker 使应用部署更加轻量,可移植,可扩展,更好的环境隔离也更大程度地避免了生产环境与测试环境不 一致的巨大尴尬。 Dockerfile 在使用 docker 部署自己应用时,往往需要自己构建镜像。
从前端的角度考虑,在某些情况下肯定是不能直接通过自动化的方式将最终的 build 结果直接扔到生产机的。持续交互就是可持续性交付供生产使用的的最终 build。最后通过运维或者后端小伙伴进行部署。 yum install git jenkins5.jpg 构建目标:部署到本机 部署前端项目肯定是离不开 nginx 的。 yum install nginx。 想要部署前端项目还需要依赖一个 Node 环境,需要在 Manage Jenkins -> Manage Plugins 在可选插件中搜索 nodejs 选择对应插件进行安装,安装完成后需要重启才会生效 (搞清楚定位能避免好多问题,特别是前端的部署,就是打包,移动,解压很容易搞错路径。) 构建目标:部署到目标主机 在真实的开发场景中,Jenkins 几乎不会和前端资源放到一个服务器。大多数情况下 Jenkins 所处的服务器环境就是一个工具用的服务器,放置了一些公司中常用的工具。