# devops **Repository Path**: doublecc/devops ## Basic Information - **Project Name**: devops - **Description**: devops平台,持续优化 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2024-08-30 - **Last Updated**: 2024-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # devops *启动步骤:* 1. 依赖环境:redis、mysql,node(14+), 2. mysql新建好数据库devops,导入sql脚本,脚本路径:./sql/devops.sql 3. cd vue-devops 4. npm install && npm run serve 5. 修改配置application-dev.yml,修改:redis、mysql和图片路径等三个相关配置信息(账号密码等) 6. 启动DevopsApplication 7. 默认账号密码:admin/devops@123 ## 一、简易版异构数据同步 架构图说明 ![](doc/简易版异构数据.jpg) 上图标红的是暂未实现的 ### 1.1 背景 saas系统开发,有些定制化系统开发并且需要私有化部署的情况,开发完成要交付上线的时候,客户希望把UAT环境的数据同步到他们私有化部署的数据库中,我们第一个版本是使用mysqldump + shell脚本去完成,基本还是可以完成迁移工作,但是在复用性和灵活性上就不太完美了。所以我一直在寻找一个小而不复杂又比较灵活可控的东东完成这份工作,如果这种场景使用dataX或者其他的ETL之类的,那就有点大材小了,第一个开始也找了一个dbswitch的东西,看了下还是不够灵活,之前又接触过anyline的框架,看了下demo,稍微修改下,不正好就是我想要的东西么,所以就有了上面简易版的异构数据同步功能,当然我的蓝图中该平台不止这个功能,持续迭代开发完善吧。 ### 1.2 使用 **步骤:** 建好数据源-》建好同步条件-》建好同步任务-》手工点击同步-》查看同步日志 ![](doc/index.png) ![](doc/condition.png) ![](doc/trigger_job.png) ![](doc/trigger_job_log.png) 1. 数据源管理:数据同步,那第一步肯定是需要管理好数据源的,每个私有化部署的客户都有他们自己的数据库,那也就是一个数据源,所以第一步做好数据源管理,源数据源,目标数据源 2. 同步条件:迁移过程中,需要有一些灵活配置的东西 1. 比如有些日志等表是不需要同步数据到客户环境的,只用同步表结构就好了 2. 有些是全局表,也就是平台表(没有租户隔离),表里面的所有数据都需要同步过去 3. 有些表因为客户没有用到那个功能,那就不需要同步表过去 4. 默认是用租户(tenant_id)迁移数据,也可以做到自定义条件同步数据 5. 表mapping(我们暂时还未用到,所以功能还没有开发) 6. 字段mapping(我们暂时还未用到,所以功能还没有开发) 7. 迁移的过程是否覆盖,也就是先清空目标数据库中的表数据 3. 同步任务,任务关联到数据源和同步条件,然后其他一些辅助字段,比如每次同步多少条数据(数据量大,只能分批同步),同步的状态,同步前在源数据库和目标数据库做一些update的sql语句,主要是做一些准备或者清理的工作,同步这里也有手动触发和定时触发两种(定时的暂时未实现,但是实现不难),也有组合同步类型,组合同步的意思是每次同步多条单个同步任务 4. 同步日志,同步会产生日志,同步了多少张表,同步的数据,同步是否成功等。 ## 二、配置同步 待完善补充 ## 三、框架 非常感谢以下两个开源框架: >1、 https://gitee.com/anyline/anyline.git >2、 https://gitee.com/geshanzsq/geshanzsq-nav