项目部署到服务器上_如何自动化部署项目?折腾服务器之旅~

如何自动化部署项目?折腾服务器之旅~

本篇文章讲的不是如何把一个项目部署上线,而是如何自动化上线。

开发了一个需求管理和发布系统。

通过这个系统,可以创建需求、创建发布计划、创建分支、部署到测试环境、部署到生产环境、正式上线、合并代码等。

一、功能设计

9.9元的阿里云服务器真的很慢,但还是足够折腾完这个项目。 用3个目录来模拟不同的环境。

目录存放project存放所有的项目,比如本系统的前后端代码。pre-dir预发环境,当然是用来测试的。pro-dir生产环境,测试没问题,部署上线。图胜千言。

324b3b86afb868d2927de7a3692dbb9d.png

二、系统页面

我的任务

接到一个新的需求,可以新建一个需求,并创建开发分支。

49324afd839e9c64b742481220a5a456.png

发布队列

开发结束之后,便可以到发布队列中,部署到预发环境进行测试。 测试通过指定Cookie 就可以访问到测试的代码。最终再进行线上部署。

797c61a8d3a81c317244e08a8f64cd6e.png

项目信息

14fff902d51fba593dcac688b168c988.png

二、技术栈

前端技术栈

Vue + elementUI,具体代码在Github,感兴趣的可以看下并点个star哈~✨

服务端技术栈

非常常见的Node.js(Koa2) + Mysql + Redis + Pm2。 具体代码在Github,感兴趣的可以看下并点个star哈~✨

三、Redis和Session配置

// utils/Store.jsconst Redis = require("ioredis");const { Store } = require("koa-session2"); class RedisStore extends Store { constructor() { super(); this.redis = new Redis(); }  async get(sid, ctx) { let data = await this.redis.get(`SESSION:${sid}`); return JSON.parse(data); }  async set(session, { sid = this.getID(24), maxAge = 1000 * 60 * 60 } = {}, ctx) { try { console.log(`SESSION:${sid}`); // Use redis set EX to automatically drop expired sessions await this.redis.set(`SESSION:${sid}`, JSON.stringify(session), 'EX', maxAge / 1000); } catch (e) {} return sid; }  async destroy(sid, ctx) { return await this.redis.del(`SESSION:${sid}`); }} module.exports = RedisStore;复制代码// 入口文件const session = require("koa-session2");const Store = require("./utils/Store.js");// session配置app.use(session({ store: new Store(), key: "SESSIONID
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值