写点什么

在数据库中引入 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:001881
用户头像

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

关注

评论

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

机器人装行业MES/低代码平台免费使用/低代码MES

万界星空科技

低代码 低代码平台 mes 万界星空科技 机器人组装

图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制

NebulaGraph

图数据库 LDBC

一文让你知道,云计算环境下云管平台的重要性

行云管家

云计算 云服务 云管平台 云资源

解除8M地图限制 冰封王座 mac下载 含魔兽争霸3攻略

Rose

游戏

Databend 开源周报第 135 期

Databend

详细教程:如何制作产品介绍二维码(一)

草料二维码

二维码 草料二维码 产品宣传 产品介绍 品牌宣传

魔法门之英雄无敌3下载,死亡阴影 for Mac中文版 兼容m1

Rose

游戏

网络安全AI智能体公司「云起无垠」获数千万元天使+轮融资,致力于大模型与网络安全深度融合的技术研究

云起无垠

ICP Rust CDK|IC和Rust简介

TinTinLand

学习 黑客 编程语言 web3 ICP

发布DDD脚手架到Maven仓库,IntelliJ IDEA 配置一下即可使用

EquatorCoco

Java DDD IDEA

专业且功能齐全的pdf编辑软件 acrobat pro dc 2023中文版 mac/win

Rose

新一代实时数据集成框架 Flink CDC 3.0 —— 核心技术架构解析

Apache Flink

印刷行业实施MES管理系统有哪些重要的意义

万界星空科技

工业互联网 制造业 mes 印刷行业 万界星空科技

2024年值得尝试的22款在线管理软件盘点!

爱吃小舅的鱼

项目管理软件 项目管理x

Python中的代码优化和性能优化

技术冰糖葫芦

API 接口 API 文档 API 策略

KaiwuDB 分布式系统 Range Split & Merge 原理详解

KaiwuDB

数据库 数据分区

mac office 365 商业专业版破解 含Office 365激活工具 兼容M2/M3

Rose

微软 Office

API 性能测试教程:让你的应用运行更加顺畅

Apifox

测试 性能测试 接口测试 测试工具 API 性能测试

ICP Rust CDK|课程介绍

TinTinLand

学习 黑客 编程语言 #Web3 ICP

扫描全能王发布2023“绿色数据”:减碳超12万吨,相当于多种700万棵树

合合技术团队

环保 扫描全能王 人工智能、 植树节

程序员有哪些常用的技术网站呢?

小魏写代码

ToDesk专属功能全解析:多屏操作与高效协作并重

小喵子

远程办公 远程协作 远程控制 远程桌面 多屏

充电桩组装行业生产管理MES系统解决方案

万界星空科技

制造业 生产管理系统 mes 充电桩 汽车充电桩

探索未来科技:深入了解设备交互API如何改变我们的生活

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

测试

上云?!下云?!这难倒了孙悟空!

白洞计划

云计算

Downie 4 for Mac(最好用的视频下载软件) 4.7.2直装版

Rose

Solidity案例详解(五)服务评价合约

BSN研习社

区块链 Solidity

实例带你了解GaussDB数据库的LOCK TABLE

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

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