首页>国内 > 正文

世界观热点:有意思,这个工具可以让你像 GitLab 一样管理数据库

2022-08-03 09:55:45来源:Github爱好者

Bytebase是一个开源数据库 DevOps 工具,它相当于在整个应用程序开发生命周期中管理数据库的 GitLab,它为 DBA 和开发人员提供了一个基于 Web 的工作空间,以安全有效地协作和管理数据库变更。

随着 DevOps 进入主流,大部分团队采用 GitLab/GitHub 等工具来管理代码,并开始采用 Terraform 来管理基础设施,同样的,Bytebase 就是在应用程序开发期间管理数据库的这样的一个工具。Bytebase 是对现有云提供商的数据库平台或公司内部数据库运维平台的补充,虽然这些平台负责数据库实例级别的操作(例如配置数据库实例),但 Bytebase 会帮助团队使用配置的数据库来构建他们的应用程序。

特性架构 (DDL) 和数据 (DML) 变更审核工作流程:与代码审查一样,Bytebase 简化了数据库变更过程,在单个工作流中,可以从开发环境一直到生产环境审查和部署数据库更改。SQL 质量检查:Bytebase 分析 SQL 变更以执行符合您组织策略的规则。强制执行包括命名约定、反 SQL 模式检测等。生产环境和非生产环境也可以分别强制执行不同的规则。SQL 编辑器:基于 Web 的用于查询和导出数据的 SQL 编辑器,当开发人员需要访问数据时,DBA 不再需要提供敏感的数据库凭据。与 VCS 集成的版本控制:Bytebase 可以保留完整的 Schema 变更历史记录,它还与 VCS 系统(例如 GitLab)集成。团队可以在 VCS 中管理 SQL 迁移脚本,并在代码提交时触发 Schema 部署。备份还原:Bytebase 支持数据库级别的手动和定期备份。多租户支持:多租户服务可以为其每个租户创建单独的数据库,Bytebase 可以在单个工作流中为所有租户管理特定的数据库更改部署。部署

Bytebase 提供了多种部署方式,最简单就是使用 Docker 进行一键启动。


(资料图)

docker run --init \  --name bytebase \  --restart always \  --add-host host.docker.internal:host-gateway \  --publish 8080:8080 \  --volume ~/.bytebase/data:/var/opt/bytebase \  bytebase/bytebase:1.2.2 \  --data /var/opt/bytebase \  --host http://localhost \  --port 8080

上面的命令启动后我们可以通过http://localhost:8080直接访问 Bytebase,就是这么简单。

如果你想要在生产环境中使用,我们建议将其部署到 Kubernetes 集群中去。

我们可以使用下面的最基础的资源清单来部署 Bytebase,最好使用一个 Volume 来持久化数据,这里我们定义的是一个LoadBalancer类型的 Service,当然我们也可以创建一个 Ingress 对象来进行暴露,具体使用哪种方式需要结合你 Kubernetes 集群来决定,可以在下面资源清单基础上进行修改。

apiVersion: apps/v1kind: Deploymentmetadata:  name: bytebase  namespace: defaultspec:  selector:    matchLabels:      app: bytebase  template:    metadata:      labels:        app: bytebase    spec:      containers:      - name: bytebase        image: bytebase/bytebase:1.2.2        args: ["--data", "/var/opt/bytebase", "--host", "http://localhost", "--port", "8080"]        ports:        - containerPort: 8080        volumeMounts:        - name: data          mountPath: /var/opt/bytebase      volumes:      - name: data        emptyDir: {}---apiVersion: v1kind: Servicemetadata:  name: bytebase-entrypoint  namespace: defaultspec:  type: LoadBalancer  selector:    app: bytebase  ports:  - protocol: TCP    port: 8080    targetPort: 8080

直接在 Kubernetes 集群中部署上面的对象即可。

此外我们还可以使用 Bytebase 官方提供的安装脚本进行安装,脚本托管在https://github.com/bytebase/install仓库。

使用

Bytebase 部署成功后,我们需要为团队成员注册账号,第一次注册的账号会被授予Workspace Owner角色。

admin账号创建后,我们可以注册一个普通的账号会被授予Workspace Developer角色。

登录后进入到 Bytebase 的主页我们就可以根据需要创建项目、添加数据实例或者环境了,下面的一些图展示了 Bytebase 的一些示例。

图 1 - Dashboard图 2 - SQL review issue 流水线

图 3 - 基于 GitLab 的 schema 迁移(Database as code)图 4 - 内置的 SQL 编辑器

此外 Bytebase 还可以了一些在线 Demo 可以体验,地址:https://demo.bytebase.com,我们可以前往进行体验。关于 Bytebase 的更多使用可以参考官方文档 https://www.bytebase.com/docs 了解更多相关信息。

Git 仓库:https://github.com/bytebase/bytebase。

关键词: 生产环境 应用程序 开发人员 强制执行 开发环境

相关新闻

Copyright 2015-2020   三好网  版权所有