写点什么

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

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

关注

评论

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

展览馆LED屏幕:让展示更有“光”

Dylan

视觉 LED LED display 展览 LED屏幕

从0到1掌握京东API:商品详情获取技巧与避坑指南

Datafox(数据狐)

京东商品详情接口 京东商品数据采集 京东商品详情API 京东数据采集 京东商品数据分析

7个关键步骤让您充分利用YashanDB生态系统

数据库砖家

7个关键点了解YashanDB的最佳实施策略

数据库砖家

实测谷歌Veo 3.1视频模型!附零门槛免费使用攻略和提示词

阿星AI工作室

产品 AI 产品经理 大模型 AI视频

哈尔滨等保测评:筑牢数字时代安全防线

等保测评

为什么你的体育App总被卸载?可能不是你的错

ggscoreLynne

7个关键技巧提升YashanDB数据库的性能

数据库砖家

7个实用技巧提高YashanDB数据库的安全性

数据库砖家

7个因素影响YashanDB数据库的性能优化

数据库砖家

重新定义网络安全职业:从"解决问题"的角度出发

qife122

网络安全 问题解决

Amazon Generative AI Use Cases:“开箱即用的企业级生成式AI应用平台”

亚马逊云科技 (Amazon Web Services)

谷歌推出全新语音搜索技术 S2R:跳过语音转文字,直接理解语音意图;代体 AI 推出端侧语音输入法丨日报

声网

鸿蒙应用开发从入门到实战(二十三):一文搞懂ArkUI弹性布局

程序员潘Sir

鸿蒙 HarmonyOS

大数据-126 - Flink一文搞懂有状态计算:State Backend 工作原理与性能差异详解 核心原理与作用

武子康

Java 大数据 flink spark 分布式

海外社交媒体监测工具全攻略:功能、价格与选型指南

沃观Wovision

社交媒体 沃观Wovision 舆情监测系统 海外舆情监测

7个方法优化YashanDB数据库的存储性能

数据库砖家

穿越钱塘江:一条高铁隧道背后的技术挑战

DevOps和数字孪生

轨道交通

8个YashanDB数据库性能提升的小技巧

数据库砖家

手撕大模型 | MQA 和 GQA 原理解析

地平线开发者

自动驾驶; 算法工具链 地平线征程6

Python 3.14发布:多解释器让性能飙升300%,GIL时代即将终结!

程序员晚枫

Python

OPPO智慧服务吹起AI之风,移动开发拨云见日

脑极体

AI

哈尔滨等保测评:测评后的持续安全管理

等保测评

哈尔滨等保测评:常见问题与应对之道

等保测评

利用Next.js中间件漏洞实现SSRF攻击与RCE

qife122

SSRF 漏洞挖掘

有哪些可离线使用的白板软件?6个主流的白板工具汇总

职场工具箱

人工智能 效率工具 在线白板 办公软件 AIGC

智源“透明心脏”:全自动3D心肌瘢痕重建,让三维诊断走进中国日常临床

智源研究院

人工智能 AI医疗

Python版本进化史:从3.6到3.14,每个版本都带来了什么惊喜?

程序员晚枫

Python

指标混乱终结者:ChatBI怎样让全公司说同一种“数据语言”?

飞鲤

数据分析 ChatBI Data+AI

7个核心功能让你更好地使用YashanDB数据库

数据库砖家

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