从零开始:生产环境如何部署 Bytebase

file

Bytebase 是面向研发和 DBA 的数据库 DevOps 和 CI/CD 协同平台。目前 Bytebase 在全球类似开源项目中 GitHub Star 数排名第一且增长最快。

file

Bytebase 的架构

Bytebase 是一个单体架构 (monolith),前端是 Vue3 + TypeScript,后端是 Go。前端利用 Go 1.6 引入的 embed 功能把前后端代码打包在了一个二进制文件中。Bytebase 的元数据则存在 PostgreSQL 中。

file

PostgreSQL 元数据库

同样利用 Go embed 功能,Bytebase 的二进制文件也内置了 PG 数据库。这样用户只要在命令行执行 ./bytebase 就能运行一个拥有前后端 + 数据库的完整 Bytebase 应用。不过在生产环境,我们建议用户通过 --pg 来配置外部的 PostgreSQL 数据库,版本要求 14 及以上。这样用户可以独立保障数据库的稳定性以及对数据进行备份。

配置 NGINX 网关

Bytebase 本身不提供 https 能力,需要使用如 NGINX 这样的网关来实现 https 访问。此外为了支持 SQL Editor 中的自动补全,还需要在网关中开启 WebSocket。下图是一个 NGINX 配置示例

file

配置 External URL

file

为了使得 SSO 以及 GitOps 流程可以正常工作,用户需要配置正确的 --external-url 参数。这个参数就是用户访问 Bytebase 的网页URL。如果配置了网关,那就是通过网关暴露出的 Bytebase URL。

Docker 以及 Kubernetes

Bytebase 也提供了 Docker 镜像和 Kubernetes 的 Helm Chart。用户也可以到 Sealos, Rainbond, Zeabur 一键部署 Bytebase 镜像。

机器资源

如果已经配置了外部元数据库,那么运行 Bytebase 本身,1C2G 的机器配置就够了。只有在同时变更大批量的大 SQL 时(我们确实有用户会同时变更上百个数据库,并且每条 SQL 都要 10 MB),才需要根据 SQL 的大小调高内存。

总结

从架构上 Bytebase 就做了简化,以达成一行命令 ./bytebase 就能启动完整应用的效果。再通过如上所述的几个配置,Bytebase 就能稳稳地运行在生产环境中了。


💡 更多资讯,请关注 Bytebase 公号:Bytebase

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/328999.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

好用的内外网快速传输大文件方法

在信息化时代,数据已经成为各行各业的关键资产,数据的传输和交换方式直接影响着数据价值的体现。在众多场景下,我们需要在不同的网络环境中进行文件传输,如同一个局域网内或者互联网上。这时涉及到内外网的概念。 内外网指的是在不…

UE5 nDisplay群集事件的发送和接收

注意: 1.只能在投屏模式下生效 2.需要监听的机器都要执行“1.打开监听”

创意无限!亲测可用的免费Photoshop素材网站大揭秘!

高质量的PS材料可以保证设计师设计作品的质量,但很多人不知道在哪里找到一些免费的材料,尤其是对初学者来说。那么,有没有质量好、免费的PS材料网站呢?别担心,现在就告诉你。 即时设计 被很多人视为免费的PS素材网站…

likeshop知识付费系统PHP版v1.4.0

✅ 新增功能 题库功能 ⚡ 功能优化 数据库检测优化 订单中心页优化 系统-登录时效优化 🐞 功能修复 详情页佣金可见设置未生效 更新内容说明 1.题库 题库功能的引入,不仅仅是对学习方式的一次革新,更是为广大用户提供了更多更丰富的学…

【运维】WSL1如何升级到WSL2

升级WSL1到WSL2:简便快捷版 在这篇博客中,我们将研究如何通过一种更简便的方式,将WSL1迅速升级到WSL2,避免官方文档的繁冗步骤。如果你觉得官方方法太过冗长,那么这里提供的步骤可能更适合你。 官网的办法是&#xf…

GaussDB(DWS)查询优化技术大揭秘

GaussDB(DWS)查询优化技术大揭秘 大数据时代,数据量呈爆发式增长,经常面临百亿、千亿数据查询场景,当数据仓库数据量较大、SQL语句执行效率低时,数据仓库性能会受到影响。本文将深入讲解在GaussDB(DWS)中如何进行表结构设计&#…

Python进阶知识:整理6 -> 正则表达式

1 基础匹配用法 # 演示Python中正则表达式re模块的3个基础匹配方法 import re # 1. match()方法 从头匹配 string "hello world" result re.match("hello", string) # 如果头部没有匹配成功就直接失败了,后面就不会继续匹配了 print(result) print(r…

软件测试|Selenium StaleElementReferenceException 异常分析与解决

简介 Selenium 是一个流行的自动化测试工具,用于模拟用户与网页交互。然而,当我们在使用 Selenium 时,可能会遇到一个常见的异常,即 StaleElementReferenceException。这个异常通常在我们尝试与网页上的元素交互时抛出&#xff0…

牛客-寻找第K大、LeetCode215. 数组中的第K个最大元素【中等】

文章目录 前言牛客-寻找第K大、LeetCode215. 数组中的第K个最大元素【中等】题目及类型思路思路1:大顶堆思路2:快排二分随机基准点 前言 博主所有博客文件目录索引:博客目录索引(持续更新) 牛客-寻找第K大、LeetCode215. 数组中的第K个最大元…

pytest -- 进阶使用详解

pytest-html⽣成报告 Pytest-HTML 是⼀个插件,它可以⽣成漂亮且易于阅读的 HTML 测试报告。 pytest-html ⽣成报告的步骤 ① 安装 pytest-html 插件: pip install pytest-html ② 运⾏测试并⽣成报告: file name:main.pyimport pytest&qu…

苹果MAC怎么清理内存?苹果MAC清理内存的方法

很多使用苹果电脑的用户都喜欢在同时运行多个软件,不过这样会导致在运行一些大型软件的时候出现不必要的卡顿现象,这时候我们就可以去清理下内存,不过很多人可能并不知道正确的清内存方式,下面就和小编一起来看看吧。 苹果MAC清理…

opengauss-高斯数据库的安装部署及MySQL数据迁移实战.

目录 介绍 下载安装包 安装 1.设置SEMMNI 2.新建用户和用户组 3.下载安装包解压 4.安装数据库 5.修改配置 6.重启服务 数据库使用 gsql命令和常用sql 1.使用omm用户连接数据库-本地登陆无需输入密码: 2.查看用户信息 3.删除数据库 4.创建用户 5.创建…

SSL之mkcert构建本地自签名

文章目录 1. 什么是SSL2. mkcert:快速生成自签名证书2.1 mkcert的工作流程如下:2.2 window 本地实现自签证书2.2.1 下载安装2.2.2 下载,生成本地 SSL2.2.3 生成 pem 自签证书,可供局域网内使用其他主机访问。2.2.4 使用-psck12 生成*.p12 文件 2.3 Sprin…

【设计模式-06】Observer观察者模式

简要说明 事件处理模型 场景示例:小朋友睡醒了哭,饿! 一、v1版本(披着面向对象的外衣的面向过程) /*** description: 观察者模式-v1版本(披着面向对象的外衣的面向过程)* author: flygo* time: 2022/7/18 16:57*/ public class ObserverMain…

Odoo14 动态过滤或联动domain

在 Odoo14 中最常用的动态过滤或联动domain的方法有两种 1. 使用 上下文 context 和 重写 _search() 或 _name_search() 方法 2. 使用 onchange() 装饰器 的 domain 返回值 示例: 这个图有字段:项目,上级任务,任务 要求&#…

论文笔记(四十)Goal-Auxiliary Actor-Critic for 6D Robotic Grasping with Point Clouds

Goal-Auxiliary Actor-Critic for 6D Robotic Grasping with Point Clouds 文章概括摘要1. 介绍2. 相关工作3. 学习 6D 抓握政策3.1 背景3.2 从点云抓取 6D 策略3.3 联合运动和抓握规划器的演示3.4 行为克隆和 DAGGER3.5 目标--辅助 DDPG3.6 对未知物体进行微调的后视目标 4. 实…

现代密码学 考点汇总(上)

现代密码学 考点汇总(上) 写在最前面考试范围一、给一个简单的方案,判断是否cca安全二、随机预言机模型之下的简单应用 0. 规约证明一个规约法证明PRG(伪随机生成器)的例子定长加密方案,并证明不可区分加密…

【二、自动化测试】为什么要做自动化测试?哪种项目适合做自动化?

自动化测试是一种软件测试方法,通过编写和使用自动化脚本和工具,以自动执行测试用例并生成结果。 自动化旨在替代手动测试过程,提高测试效率和准确性。 自动化测试可以覆盖多种测试类型,包括功能测试、性能测试、安全测试等&…

wins安装paddle框架

一、安装 https://www.paddlepaddle.org.cn/install/quick?docurl/documentation/docs/zh/install/pip/windows-pip.html 装包(python 的版本是否满足要求: 3.8/3.9/3.10/3.11/3.12, pip 版本为 20.2.2 或更高版本 ) CPU 版:…

python贪吃蛇游戏

为了实现这个游戏,需要用到Python的pygame模块,它是一个专门用于开发游戏的模块,提供了很多方便的功能,比如窗口、图形、音效、事件处理等。 用pygame来创建一个窗口,设置游戏的背景色,画出蛇和食物&#…