QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

在数据库中引入 DevOps 方法

  • 2017-11-12
  • 本文字数:984 字

    阅读完需:约 3 分钟

今天(11 月 2 日)是 PASS 2017 峰会的首日,Redgate 布道师 Steve Jones 介绍了他在数据库管理中引入 DevOps 的一些技巧。他所介绍方法中包括了一些可适用于各种规模应用部署的技巧。Jones 在演讲一开始就提及 Amazon 在 2016 年部署实现每 12 秒做一次生产层面变更。他分享此案例的一个原因在于,阐明使用有效的变更管理方法做高效交付时可达到的变更频率。

考虑到存储在数据库中的数据量以及数据库所担任的关键角色,对这些生产环境中的数据库成功地执行变更无疑十分关键。为了展示数据库中存储的数据量,Jones 举例 Microsoft 每日将从 Azure 用户采集 700TB 的遥测数据(没错,是 TB)。

Jones 引用了 Gene Kim 给出的支撑 DevOps 的三个原则:

  1. 系统化考虑;
  2. 放大反馈循环;
  3. 实验和学习的文化。

Jones 就此原则给出了他在将 DevOps 引入数据库中所使用的技术。最初的也是基础的一步,是实现并依赖于版本控制系统的使用,例如 Git、SVN 等。下一步是实现在应用代码中无差别地对待数据库代码。第三步是在版本控制系统中设置并维护一个组织有序的系统,这在某些情况可以是存储应用代码的同一个代码库,但是在某些情况下使用独立的代码库会更好。最后一步是对更改进行代码审查并认真对待。

由于在非开发环境中会有部分的测试更改先于部署执行,Jones 推荐所使用的数据集是特别构造,而非从生产数据中抽取。开发(DEV)、用户接收测试(UAT)和预发布测试(STG)等从清空的数据库开始,进而添加表示生产环境用例的 10 到 40 行数据。

所有要在生产环境中部署的代码应该以一致的方式完成。如果需要执行一项手工步骤,那么应对这些步骤做完备的文档。一致性是十分重要的,它保证了每个部署总是以同样的方式完成,并且考虑到了一些重要过程,例如单元测试、定义了主键的适用表等。

Jones 观察到不成功的变更是很难回滚的,尤其是变更中涉及了数据库。Jones 推荐手工编写回滚代码,并且这些代码已在部署到 DEV、STG 等阶段之前进行了测试,使得工作脚本已准备好加入到所需的事件中。另一个可考虑的技术是使用黑箱部署,其中变更被部署到生产系统,但是使用它们则是通过一个特征标志触发的。这样一个特性在确定可用于一般通用版(GA)之前,它都是非激活的。据 Jones 介绍,Facebook 在推出 Facebook Messenger 中就采用了这个方法,确保它们的系统可处理预期的用户负载。

查看英文原文: Bringing a DevOps Approach to Databases

2017-11-12 18:001954
用户头像

发布了 391 篇内容, 共 138.5 次阅读, 收获喜欢 256 次。

关注

评论

发布
暂无评论
发现更多内容

2023年哪个前端框架用的最多?

伤感汤姆布利柏

专科逆袭!裁员后薪资翻倍,他的成功秘诀竟然是…

测吧(北京)科技有限公司

测试

火山引擎边缘云2023年度回顾,挑战与创新的交响乐章

火山引擎边缘云

边缘计算 火山引擎 火山引擎边缘云

WMS仓储管理系统的作用是什么?

万界星空科技

wms WMS仓库管理 万界星空科技 扫码出入库管理

游戏开发巨擘的选择:2023 TGA获奖工作室共同青睐Perforce版本控制

龙智—DevSecOps解决方案

游戏开发 游戏 TGA

Aetina发布首款采用NVIDIA Ada Lovelace架构的MXM图形模块

财见

Java 程序员的待遇为何一直居高不下?

伤感汤姆布利柏

关于如何优化TiDB中的写热点问题

TiDB 社区干货传送门

实践案例 7.x 实践

TiDB 在全球头部物流企业计费管理系统的应用实践

TiDB 社区干货传送门

实践案例

深入剖析Java中的反射,由浅入深,层层剥离!

不在线第一只蜗牛

Java 编程 前端 开发语言

如何通过ETL实现快速同步美团订单信息

RestCloud

美团 ETL 数据集成工具

软件公司定制开发的软件有哪些?

天津汇柏科技有限公司

软件开发定制

揭秘C语言的心脏:深入探索指针与数组的奥秘

不在线第一只蜗牛

Java C语言 开发语言

初识TiDB Data Migration迁移工具及实践

TiDB 社区干货传送门

迁移 7.x 实践

零售业海量场景下 ToC 系统的数据库选型和迁移实践

TiDB 社区干货传送门

实践案例

从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践

TiDB 社区干货传送门

实践案例

每日一道Java面试题:说一说Java中的异常

EquatorCoco

Java 面试 前端 开发语言

TiDB 事务心跳超时机制测试

TiDB 社区干货传送门

故障排查/诊断

为什么说TiDB在线扩容对业务几乎没有影响

TiDB 社区干货传送门

TiDB 底层架构 数据库架构选型 TiKV 底层架构

使用无代码/低代码平台进行开发的 5 大挑战

NocoBase

开源 低代码 低代码开发 无代码 无代码平台

面试官:你能简单聊聊MyBatis执行流程

华为云开发者联盟

Java 开发 华为云 华为云开发者联盟

作业帮 x TiDB | 多元化海量数据业务的支撑

TiDB 社区干货传送门

PingCAP 故事|势高,则围广:TiDB 的架构演进哲学

TiDB 社区干货传送门

用 Footprint 的交易类型标签揭秘链上交易

Footprint Analytics

区块链 加密货币

MES和QMS怎么选?

万界星空科技

mes 万界星空科技 QMS 质量管理QMS系统 生产管理

京东广告算法架构体系建设--大规模稀疏场景高性能训练方案演变

京东科技开发者

Unity 现正式支持 visionOS 平台,赋能Apple Vision Pro应用创建

财见

基于生成式人工智能的平台 Cognizant Flowsource™ 发布,旨在为现代工程提供动力

财见

打造工业4.0的5G+边缘云服务产业生态,艾灵完成1.5亿元A轮融资

Geek_2d6073

【服务器搭建】快速完成幻兽帕鲁服务器的搭建及部署【零基础上手】

恬静的小魔龙

服务器 幻兽帕鲁

在数据库中引入DevOps方法_DevOps & 平台工程_Jeff Martin_InfoQ精选文章