TiDB Serverless Branching:通过数据库分支简化应用开发流程

这篇具有很好参考价值的文章主要介绍了TiDB Serverless Branching:通过数据库分支简化应用开发流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2023 年 7 月 10 日,TiDB Serverless 正式商用。这是一个完全托管的数据库服务平台(DBaaS),提供灵活的集群配置和基于用量的付费模式。紧随其后,TiDB Serverless Branching 的测试版也发布了。

TiDB Serverless Branching 功能使用户能够为其 TiDB Serverless 集群创建分支。这些分支可以实现并行开发,促进新功能快速迭代,排查故障,开发者无需中断生产数据库的运行。该功能不仅简化了开发和部署过程,还保持了生产环境中数据库的稳定性和可靠性。

分支是什么?

对于集群而言,分支是一个独立的实例,其中包含一份原始集群的数据快照。它建立了一个隔离的环境,以便在不影响原始集群的情况下进行各种操作。

当为集群创建一个分支时,该分支中的数据与原始集群开始分叉,这意味着在原始集群或分支中进行的后续更改将不会被同步。

TiDB Serverless 采用了写时复制 (copy-on-write )技术,以实现快速、平稳地创建分支。这种方法允许原始集群与其分支之间共享数据。这个操作一般在几分钟内就能完成,对用户来说是无感知的,对原始集群的性能也不会有影响。

平衡软件开发速度和质量

在软件开发中,快速推出新功能和全面测试之间的微妙平衡是一个挑战。找到正确的平衡可以实现敏捷开发、更快的迭代,并及时收到宝贵的客户反馈,同时不会影响软件的质量和可靠性。TiDB Serverless Branching 提供了一种方式来找到这个最佳平衡。

为开发人员提供独立环境

在日常开发和测试活动中使用数据库时,开发人员经常面临配额限制、高成本、资源限制和数据质量等挑战。所以通常在团队内共享数据库更实际。但共享数据库往往会导致环境的冲突,开发人员不得不花费额外的精力在应用中添加一些隔离的逻辑。

TiDB Serverless Branching 通过为每个开发人员提供独立的开发和测试环境来解决这些问题。通过消除资源共享和任务干扰,提高生产效率并促进高效的团队协作。

TiDB Serverless Branching:通过数据库分支简化应用开发流程,数据库,TiDB,tidb,pingcap

通过类似生产的分支进行高效测试

为了 消除资源共享和任务 间干扰带来的烦恼 ,开发人员通常会在进行开发工作时使用单独的数据库环境,比如在服务器上设置自己的数据库或在 Docker 上启动数据库容器。 然而,这些环境与生产环境存在显著差异,很难模拟出实际的性能和延迟状态。 对于功能测试,则总是需要大量的数据准备工作,可能却仍然无法与实际的生产环境相匹配。 为了确保数据质量,开发人员可以选择生成生产数据库的快照,并在测试环境中还原它,或者费力地构建模拟数据。 然而,这两种方法都很繁琐,会显著降低开发效率。

通过 TiDB Serverless Branching,开发人员将能够在几分钟内快速创建与生产环境相同的分支。这些分支有助于使用最新的生产数据进行测试,并快速检测问题。此外,这些分支完全与生产集群隔离,可以进行更安全的功能测试和故障排除。

TiDB Serverless Branching:通过数据库分支简化应用开发流程,数据库,TiDB,tidb,pingcap

与持续集成和持续部署(CICD)流程无缝集成

自动化场景需要先进的环境管理和质量控制。TiDB Serverless Branching 可以轻松集成到自动化的 CICD 工作流中,通过分支整合, 代码质量的把控和测试流程都变得更加流畅 。这确保了产品的质量,同时遵循了高效的软件开发实践。

TiDB Serverless Branching:通过数据库分支简化应用开发流程,数据库,TiDB,tidb,pingcap

与 GitHub 集成的分支管理

结合 TiDB Serverless Branching 功能,我们推出了 TiDB Cloud 分支管理 GitHub App。如果开发人员使用 GitHub flow ( https://docs.github.com/en/get-started/quickstart/github-flow ),该应用能够极大程度地简化将分支集成到 CI 流水线中的工作。有关该 GitHub App 的更多详细信息,请参阅我们的文档 ( https://docs.pingcap.com/tidbcloud/branch-github-integration )。

将 TiDB Serverless Branching 与 GitHub CI 流水线集成

我们将使用 tidbcloud-branch-gorm-example ( https://github.com/shiyuhang0/tidbcloud-branch-gorm-example ) 来演示集成过程。tidbcloud-branch-gorm-example ( https://github.com/go-gorm/playground )是一个适用于 TiDB Serverless Branching 的 gorm playground 项目的分支版本 。操作如下:

  1. 按照说明将您的 TiDB Serverless 集群与 GitHub 仓库连接起来。这将在您的 GitHub 帐户上安装 TiDB Cloud 分支管理 GitHub App。每次创建 pull request 时, 都会触发创建一个新的对应 TiDB Serverless 分支。
  2. 调整 CI 流水线,使用新创建的 TiDB Serverless 分支来运行测试。
name: tests
​
on:
  pull_request:
    branches: [ master ]
​
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: tidbcloud/wait-for-tidbcloud-branch@v0
        id: wait-for-branch
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          public-key: ${{ secrets.TIDB_CLOUD_PUBLIC_KEY }}
          private-key: ${{ secrets.TIDB_CLOUD_PRIVATE_KEY }}
          timeout-seconds: 600
      
      - name: Set up Go 1.19
        uses: actions/setup-go@v2
        with:
          go-version: 1.19
​
      - name: go mod pakcage cache
        uses: actions/cache@v2
        with:
          path: ~/go/pkg/mod
          key: ubuntu-latest-go-1.19-${{ hashFiles('go.mod') }}
​
      - name: Tests
        run: |
          GORM_ENABLE_CACHE=true GORM_DIALECT=tidb GORM_DSN="${{ steps.wait-for-branch.outputs.username }}:${{ steps.wait-for-branch.outputs.password }}@tcp(${{ steps.wait-for-branch.outputs.host }}:${{ steps.wait-for-branch.outputs.port }})/test?parseTime=true&tls=tidb" ./test.sh

为了简化 CI 流水线,我们开发了 wait-for-tidbcloud-branch ( https://github.com/tidbcloud/wait-for-tidbcloud-branch ),这是一个辅助的 GitHub Action。它会等到 pull request 对应的 TiDB Serverless 分支就绪后,创建一个新的数据库用户供后续使用。

在完成设置后,每当创建 pull request 时,TiDB Cloud 分支管理 GitHub App 将为拉取请求生成一个 TiDB Serverless 分支。然后,CI 流程将等待分支就绪并将其用于测试。这确保您使用这些分支执行的任何测试都可以映射到生产数据库中的数据,从而更容易及时发现任何潜在问题。

TiDB Serverless Branching:通过数据库分支简化应用开发流程,数据库,TiDB,tidb,pingcap

一个具体的开发案例

比如你正在开发 一个 添加唯一索引的 功能 ,但生产数据库中已经存在重复的行。 借助 Ti DB Serverless Branching,CI 流水线可以迅速识别出这类问题。 这是因为测试负载在与生产数据库镜像一致的分支中执行,可以在早期检测到潜在问题。 然而,如果是在模拟数据上进行测试,这类问题很容易被忽视,甚至可能会遗漏到生产环境。

TiDB Serverless Branching:通过数据库分支简化应用开发流程,数据库,TiDB,tidb,pingcap

在上面的示例中,我们在数据库中执行了一个简单的 DDL 更改。TiDB 支持在线 DDL ( https://docs.pingcap.com/tidb/stable/ddl-introduction#execution-principles-and-best-practices-of-ddl-statements )变更,用户无需担心影响应用工作负载。然而,随着应用的扩展和测试涉及到更多的业务逻辑,分支对于效率提高和质量保证变得越来越有益。

使用 TiDB Serverless Branching 定制 CI/CD 工作流

TiDB Cloud Branching 工作流专门设计成与流行的应用程序框架兼容,开发人员可以将其简单地集成到现有的 CI 流水线中。 如 果 TiDB Serverless Branching GitHub App 不能完全满足你的需求,在 TiDB Cloud CLI ( https://docs.pingcap.com/tidbcloud/get-started-with-cli )、setup-tidbcloud-cli ( https://github.com/tidbcloud/setup-tidbcloud-cli ) 和 GitHub Actions 的帮助下,你也可以定制分支的 CI/CD 工作流。

结论

借助 TiDB Serverless Branching,开发人员可以并行工作,快速进行新功能的迭代而不影响生产数据库的正常稳定运行。该功能简化了开发和部署过程,同时确保了生产数据库的稳定性和可靠性。

我们希望更多的开发人员能够使用到 TiDB Serverless Branching,我们也将不断改进和扩展这一功能,以满足大家不断变化的需求,敬请期待!

点击链接,立即试用 TiDB Serverless Branching,获取更简化、快速的应用程序开发体验!

TiDB Cloud文章来源地址https://www.toymoban.com/news/detail-686213.html

到了这里,关于TiDB Serverless Branching:通过数据库分支简化应用开发流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TiDB数据库从入门到精通系列之六:使用 TiCDC 将 TiDB 的数据同步到 Apache Kafka

    快速搭建 TiCDC 集群、Kafka 集群和 Flink 集群 创建 changefeed,将 TiDB 增量数据输出至 Kafka 使用 go-tpc 写入数据到上游 TiDB 使用 Kafka console consumer 观察数据被写入到指定的 Topic (可选)配置 Flink 集群消费 Kafka 内数据 部署包含 TiCDC 的 TiDB 集群 在实验或测试环境中,可以使用 TiU

    2024年02月12日
    浏览(58)
  • 【NewSQL】-- 分布式数据库 TiDB 和 CockroachDB

          国产骄傲。从2015年开始,至今已8年,当前最新版本是7.5.x。TiDB 开源分布式 NewSQL 关系型数据库 是新一代开源分布式 NewSQL 数据库,模型受 Google Spanner / F1 论文的启发,实现了自动的水平伸缩,强一致性的分布式事务,基于 Raft 算法的多副本复制等重要 NewSQL 特性。  

    2024年01月21日
    浏览(61)
  • 分布式数据库(DorisDB、Clickhouse、TiDB)调研

    B站视频:DorisDB VS ClickHouse OLAP PK 1.1 DorisDB 场量:线上数据应用 访问官方网站 DorisDB企业版文档 单表/多表查询,DorisDB总体时间最短 单表查询:DorisDB最快次数最多,ClickHouse次之 多表查询:DorisDB所有执行均最快 DorisDB多表关联效率好 支持各种主流分布式Join,不仅支持大宽表模

    2024年02月06日
    浏览(44)
  • 【产品兼容认证】WhaleStudio 成功兼容TiDB数据库软件

    北京,2023年12月27日 - 平凯星辰(北京)科技有限公司(以下简称平凯星辰)旗下的 TiDB 产品与白鲸开源的 WhaleStudio 已成功完成产品兼容性认证。这一重要合作旨在为全球客户提供更大的价值。 WhaleStudio 是一款由 Apache DolphinScheduler 和 SeaTunnel 核心团队打造的商业版高性能分布

    2024年01月24日
    浏览(43)
  • 负载均衡–HAProxy安装及搭建tidb数据库负载服务

    作为一名开发人员,随着经验的增加和技术的沉淀,需要提高自己架构方面的知识,同时对于一个企业来说,搭建一套高可用、高性能的技术架构,对于公司的业务开展和提高服务的性能也是大有裨益的。本文重点从软件安装和搭建tidb负载均衡数据库服务介绍下HAProxy的使用

    2024年02月13日
    浏览(40)
  • TiDB 企业版全新升级,平凯数据库核心特性全解读

    作为 TiDB 企业版的全新升级,平凯数据库一经推出便广受媒体及用户关注。 近日,平凯星辰首席科学家丁岩在“平凯数据库全解读”活动中,首次详细介绍了平凯数据库的核心能力。 本文为丁岩演讲实录全文,为方便阅读,已做部分编辑。 平凯数据库(TiDB 企业版)由 TiD

    2024年02月06日
    浏览(55)
  • TiDB x 汉口银行丨分布式数据库应用实践

    汉口银行是一家城市商业银行,近年来专注科技金融、民生金融等领域。在数据库国产化改造中,汉口银行引入了 TiDB 数据库,并将其应用在重要业务系统:头寸系统中,实现了一栈式的数据服务,同时满足了高并发、低延时、数据一致性和高可用需求,解决了传统数据库的

    2024年02月06日
    浏览(41)
  • TiDB数据库从入门到精通系列之四:SQL 基本操作

    成功部署 TiDB 集群之后,便可以在 TiDB 中执行 SQL 语句了。因为 TiDB 兼容 MySQL,你可以使用 MySQL 客户端连接 TiDB,并且大多数情况下可以直接执行 MySQL 语句。 SQL 是一门声明性语言,它是数据库用户与数据库交互的方式。它更像是一种自然语言,好像在用英语与数据库进行对

    2024年02月12日
    浏览(59)
  • 【腾讯云 TDSQL-C Serverless 产品测评】- 云数据库之旅

    “腾讯云 TDSQL-C 产品测评活动”是由腾讯云联合 CSDN 推出的针对数据库产品测评及产品体验活动,本次活动主要面向 TDSQL-C Serverless版。 本次参与活动可以涵盖不同技术层面的用户,可以针对TDSQL-C产品的自动弹性能力、自动启停能力、兼容性、安全、并发、可靠性等多方面进

    2024年02月11日
    浏览(57)
  • 【腾讯云 TDSQL-C Serverless 产品体验】TDSQL-C MySQL Serverless云数据库化繁为简

    随着互联网的发展,企业的规模也在不断的发展,企业内部的在线业务量也随之骤增,海量的数据访问和存储压力已经日益不满足公司业务的需求了,而且搭建传统集中式数据库也增加运维工作量和公司软硬件成本,对于突发的业务,无法满足更快更稳定的业务性能。 企业级

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包