Wayne 开发流程

如果您想尽快地部署 Wayne 而不关心开发流程,我们精简了 部署文档, 请参阅!

环境准备

确保安装了以下软件并将其添加到 $PATH 变量中:

快速启动

开发环境准备(可选)

服务依赖 MySQL/RabbitMQ,若没有可用实例,可通过 Docker 启动本地环境:在根目录下创建 .env 文件 , 配置如下内容

  1. $ DEV_DB_PORT=3306
  2. $ DEV_MQ_PORT=5672

使用以下命令启动:

  1. $ docker-compose up -d mysql
  2. $ 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 目录,然后执行迁移脚本命令。

执行迁移脚本

  1. $ 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

  1. $ go get github.com/Qihoo360/wayne
  2. $ cd $GOPATH/src/github.com/Qihoo360/wayne

在 wayne 目录下,执行如下操作:

  1. $ git submodule update --init --recursive # 安装 Wayne 官方推荐 plugins

创建开发所需配置文件:

  1. $ touch src/backend/conf/dev.conf
如果复制 app.conf 中的内容到 dev.conf,必须去掉 include "dev.conf" 否则会出现循环引用导致内存溢出。
参考 配置文件, 正确配置系统启动所需参数。
在 dev.conf 中写入数据库等相关配置,dev.conf 会覆盖 app.conf 中的配置

启动后端服务:

  • 创建存储表
  1. $ make syncdb
  • 启动后端服务
  1. $ make run-backend

启动前端服务:

  • 安装前端依赖
  1. $ cd src/frontend && npm install
  • 启动前端服务
  1. $ make run-frontend

现在你可以通过 http://localhost:4200 访问 Wayne 服务了 !

默认管理员账号 admin:admin, 正式环境一定注意修改 admin 密码,详细配置参考配置文档 集群配置

构建 Wayne 镜像

构建 server 和 ui 编译镜像

  1. $ make build-server-image
  2. $ make build-ui-image

构建发布镜像

  1. $ make

Kubernetes 集群中部署

在 hack/kubernetes 目录中配置好 configmap.yaml,deployment.yaml,service.yaml 为 Wayne 的配置。

  1. $ kubectl apply -f hack/kubernetes

现在可以通过下面地址访问

  1. $ http://yourip:NodePort
由于前后端使用 JWT Token 通信,生产环境一定要重新生成 RSA 文件,确保安全。生成 rsa 加密对命令如下:
  1. $ ssh-keygen -t rsa -b 2048 -f jwtRS256.key
  2. $ # Don't add passphrase
  3. $ 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