在今年的 Percona Live 开源数据库会议上,我将讨论使用 Skeema 进行自动 MySQL 模式管理。Skeema 解决了软件工程师和 DBA 在管理迁移时遇到的许多问题。他们如何使开发、暂存和生产系统之间的模式保持同步?他们如何在 分片 环境中执行在线模式更改,并与服务发现集成?开发人员如何使用基于自助服务、拉取请求的工作流程进行迁移?Skeema 帮助解决这些挑战以及更多问题。
我最早在 2003 年在大学的 IT 工作中使用 MySQL,多年来,我最终开始在 Tumblr 和 Facebook 处理更大规模的部署。在过去的十年中,我大部分时间都在社交网络领域工作,大规模高容量数据库技术是产品的根本。我喜欢这种环境中存在的技术挑战,以及数据库自动化和工具的巨大潜在影响。在拥有巨型数据库和众多工程师的公司中,设计良好的自动化系统可以真正大幅提高生产力。
我今年的演讲名为 使用 Skeema 的自动 MySQL 模式管理。Skeema 是一款用于管理 MySQL 模式和迁移的开源工具。它允许用户在本地文件系统和一个或多个数据库之间差异、推送或拉取模式定义。它可以配置为支持多种环境(例如,开发/暂存/生产)、外部在线模式更改工具、分片和服务发现。配置完成后,工程师或 DBA 可以使用 Skeema 通过简单地编辑文件中的 CREATE TABLE 语句并运行 skeema push,即可在多个分片上并发执行在线模式更改。
整个行业都在朝着基础设施即代码的解决方案发展,提供可在多种环境中复制的自动化配置。在将此概念扩展到数据库模式时,文件存储库存储每个表的期望状态,模式更改与简单地更改这些文件相关联。像 Facebook 这样的一些大型公司拥有内部闭源工具,可以将 MySQL 模式与 git 仓库关联起来,从而允许通过拉取请求驱动模式更改(无需任何手动 DBA 工作)。然而,以前没有开源的通用工具以这种方式管理模式和迁移。我开发 Skeema 就是为了填补这个空白。
在本次会议中,MySQL DBA 将学习如何自动化其模式更改工作流程以减少手动操作工作,而软件工程师将发现 Skeema 如何在 Rails 或 Django 等框架中实现轻松的在线迁移。Skeema 是一款全新的工具,这是首次在会议上介绍它。在这个相对早期的阶段,与会者的反馈和功能请求将极大地影响未来发展的方向和优先级。
Skeema 使用 Go 编程语言编写,目前处于公开 Beta 测试阶段。二进制文件可以在 MacOS 或 Linux 上编译。您可以在 GitHub 上找到 Skeema 的源代码,它采用 Apache 2.0 开源许可证,并提供完整的文档。
注册参加 2017 年 Percona Live 数据性能大会,观看 Evan 介绍他关于使用 Skeema 进行自动 MySQL 模式管理的会议。使用代码 FeaturedTalk,即可享受当前注册价格减 100 美元的优惠!
评论已关闭。