【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

阿里平头哥RISC-V补丁并入安卓系统源代码,RISC-V与安卓融合再提速

Lily

校招面试真题 | 面试官必问面试题之你有什么想问我的?

霍格沃兹测试开发学社

基金营销存量博弈时代,数字内容小程序化助力破局

Speedoooo

小程序 基金 数字内容 小程序容器 买方投顾

KubeCube 版本转换:K8s 升级再也不用担心影响老版本了

网易数帆

开源 Kubernetes 云原生 KubeCube 企业号十月 PK 榜

虚拟集群vcluster 多租户实战演练

CTO技术共享

个人成长 集群管理 10月月更

Windows Server 2008 R2将tomcat添加进系统服务

我爱娃哈哈😍

tomcat windows 服务器运维

分布式事务-什么是分布式事务

zarmnosaj

10月月更

业务系统发布新版本咋流量保障

CTO技术共享

个人成长 灰度发布 10月月更

新来个技术总监,给团队引入了这款开发神器,同事直呼哇塞

Liam

前后端分离 开发 Postman API 开发效率

澜舟科技机器翻译新进展:汉语与世界15 种主要语言的翻译超越谷歌

澜舟孟子开源社区

人工智能 机器翻译 nlp 澜舟科技

观测云获亚马逊云科技年度 DevOps 合作伙伴奖

观测云

软件测试 | 测试开发 | 校招面试真题 | 面试官必问面试题之你有什么想问我的?

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

测试

WorkPlus数智化移动平台,打造政企强安全的超级门户

WorkPlus

【原创】k8s 微服务滚动发布(服务持续可用)实践笔记

车江毅

k8s 不停机发布 滚动发布

信息安全 Dapr 策略咋控制

CTO技术共享

个人成长 dapr 10月月更

提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件

葡萄城技术团队

chrome Excel 插件 扩展

一篇带你了解如何使用纯前端类Excel表格构建现金流量表

葡萄城技术团队

管理 流量

HCI 解决方案对比:Harvester 和 OpenStack

Rancher

Kubernetes k8s rancher

技术贴 | 走进 PostgreSQL 行级安全策略

KaiwuDB

时序 #数据库

报告发布|“双轮驱动”重磅升级,天猫联合瓴羊、罗兰贝格发布《天猫DTC企业经营指南 :以人为本,品牌致胜》

瓴羊企业智能服务

React + Springboot + Quartz,从0实现Excel报表自动化

葡萄城技术团队

React SpringB

如何在 SAP Business Application Studio 里创建 SAP UI5 应用并部署到 BTP 平台上

Jerry Wang

云原生 云平台 SAP 10月月更

Go语言入门02—运算符

良猿

Go golang 后端 10月月更

万物皆可集成系列:低代码通过Web API

葡萄城技术团队

集成 数据录入

OpenYurt v1.0 正式发布!一文了解三大社区 SIG 重点更新

阿里巴巴云原生

阿里云 开源 云原生 openyurt 版本升级

校招面试真题 | 和面试官聊的很 high,但就是拿不到 offer,怎么办?

测试人

一站式移动工作平台,让企业实现运营管理全面数字化

WorkPlus

没错!在 Excel 中也能对海量数据进行明细钻取啦

Kyligence

数据分析 海量数据

网络安全实战之靶场渗透技术

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

Kubernetes 安全专家(CKS)考试技巧

HummerCloud

Kubernetes 云原生 考试经验 CKS 10月月更

探究线程与进程的区别这一问题

C++后台开发

线程 多线程 进程 linux开发 C++开发

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