写点什么

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

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

关注

评论

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

2022腾讯全球数字生态大会数据库SaaS专场召开 腾讯云数据库SaaS产品全面升级

腾讯云数据库

腾讯云 SaaS 腾讯云数据库

hashmap 的重新散列和装载因子

HoneyMoose

华为云 CDN ,做企业网络“快人一步”的幕后英雄!

IT科技苏辞

华为云CDN,带你畅享更快速的上网体验!

IT科技苏辞

2022-11-30:小红拿到了一个仅由r、e、d组成的字符串 她定义一个字符e为“好e“ : 当且仅当这个e字符和r、d相邻 例如“reeder“只有一个“好e“,前两个e都不是“好e“,只有第三个

福大大架构师每日一题

算法 rust 福大大

GO学习之路-5.方法与接口

子不语Any

Go 编程语言 11月月更

GO学习之路-6.GO语言函数

子不语Any

Go 编程语言 11月月更

「Go易错集锦」释放有限的资源以避免泄露

Go学堂

golang 程序员 个人成长 defer 11月月更

企业如何高质量上云?华为云服务器告诉你!

路过的憨憨

华为

会议都在云上开,华为云会议具有超高性价比

清欢科技

php常用函数

J.Smile

php

一站式解决方案,华为云CDN这波双十一很强!

秃头也爱科技

简单快捷又实用,SmartRooms智能会议室全都能满足

爱尚科技

GO学习之路-2.GO开发环境搭建

子不语Any

Go 编程语言 11月月更

GO学习之路-3.GO基础语法

子不语Any

Go 编程语言 11月月更

企业数字化办公利器——华为云桌面Workspace

清欢科技

GO学习之路-4.String和Slice,Map

子不语Any

Go 编程语言 11月月更

华为云云服务器:赢麻了是种什么体验?

路过的憨憨

华为

设计模式之美--MVC(1)的贫血模型、充血模型

GalaxyCreater

设计模式

企业运维强驱动

秃头也爱科技

Zebec节点Zepoch销量接近800个,生态发展信心十足

西柚子

@企业主们看过来,用华为云CDN给你的网页加个速

IT科技苏辞

华为云企业应用上云解决方案,为企业排忧解难

清欢科技

Kafka 消费者之 findCoordinator源码解析

石臻臻的杂货铺

kafka 11月月更

Discourse 为什不建议使用 Gmail 的 SMTP

HoneyMoose

弹性伸缩、安全高效!华为云服务器助力企业数字化转型!

路过的憨憨

华为

Zebec节点Zepoch销量接近800个,生态发展信心十足

BlockChain先知

云上办公便捷、安全,就用华为云桌面!

IT科技苏辞

企业上云原来如此简单,华为云带你体验云上风采

清欢科技

华为云CDN,为你开启更快速的上网体验!

秃头也爱科技

体验华为云桌面的新办公形式,让你轻松办公

秃头也爱科技

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