Wayne 开发流程
如果您想尽快地部署 Wayne 而不关心开发流程,我们精简了 部署文档, 请参阅!
环境准备
确保安装了以下软件并将其添加到 $PATH 变量中:
- Golang 1.9+(installation manual)
- Docker 17.05+ (installation manual)
- bee (installation manual) (请务必使用链接版本,不要使用 beego 官方版本,存在一些定制)
- Node.js 8+ and npm 5+ (installation with nvm)
- MySQL 5.6+ (Wayne 主要数据都存在 MySQL 中)
- RabbitMQ (可选,如需扩展审计功能,例如操作审计和 webhook 等,则需部署)
快速启动
开发环境准备(可选)
服务依赖 MySQL/RabbitMQ,若没有可用实例,可通过 Docker 启动本地环境:在根目录下创建 .env 文件 , 配置如下内容
- $ DEV_DB_PORT=3306
- $ DEV_MQ_PORT=5672
使用以下命令启动:
- $ docker-compose up -d mysql
- $ docker-compose up -d rabbitmq
数据库升级迁移(仅升级系统版本时执行)
确定升级的版本
首先确定要升级的系统版本,例如当前版本为 0.19.0,要升级的目标版本为 0.20.0,拷贝 src/backend/database/migrations/v0.19.0_v0.20.0 目录下的go 文件到 src/backend/database/migrations 目录,如果跨越多个版本,则将要升级的版本范围内的文件都拷贝到 src/backend/database/migrations 目录,然后执行迁移脚本命令。
执行迁移脚本
- $ cd src/backend && bee migrate -driver=mysql -conn="root:root@tcp(127.0.0.1:3306)/wayne"
数据库迁移使用 bee 提供的数据库迁移命令 , 注意替换数据库地址和验证信息。更多迁移命令参考 bee migrate
本地启动
克隆 Wayne 仓库到 $GOPATH/src/github.com/Qihoo360/wayne
- $ go get github.com/Qihoo360/wayne
- $ cd $GOPATH/src/github.com/Qihoo360/wayne
在 wayne 目录下,执行如下操作:
- $ git submodule update --init --recursive # 安装 Wayne 官方推荐 plugins
创建开发所需配置文件:
- $ touch src/backend/conf/dev.conf
如果复制 app.conf 中的内容到 dev.conf,必须去掉 include "dev.conf" 否则会出现循环引用导致内存溢出。
参考 配置文件, 正确配置系统启动所需参数。
在 dev.conf 中写入数据库等相关配置,dev.conf 会覆盖 app.conf 中的配置
启动后端服务:
- 创建存储表
- $ make syncdb
- 启动后端服务
- $ make run-backend
启动前端服务:
- 安装前端依赖
- $ cd src/frontend && npm install
- 启动前端服务
- $ make run-frontend
现在你可以通过 http://localhost:4200 访问 Wayne 服务了 !
默认管理员账号 admin:admin, 正式环境一定注意修改 admin 密码,详细配置参考配置文档 集群配置
构建 Wayne 镜像
构建 server 和 ui 编译镜像
- $ make build-server-image
- $ make build-ui-image
构建发布镜像
- $ make
Kubernetes 集群中部署
在 hack/kubernetes 目录中配置好 configmap.yaml,deployment.yaml,service.yaml 为 Wayne 的配置。
- $ kubectl apply -f hack/kubernetes
现在可以通过下面地址访问
- $ http://yourip:NodePort
由于前后端使用 JWT Token 通信,生产环境一定要重新生成 RSA 文件,确保安全。生成 rsa 加密对命令如下:
- $ ssh-keygen -t rsa -b 2048 -f jwtRS256.key
- $ # Don't add passphrase
- $ openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub
Wayne 的官方镜像将同步到如下仓库: 360 搜索私有云团队
如果你是 Wayne 开发者,可以参考 Wayne 的发版流程 发版流程
360 搜索 私有云团队 提供技术支持
原文: https://github.com/Qihoo360/wayne/wiki/Wayne-dev-develop-flow