50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

关于低代码的常见误解

代码生成器研究

全面预算管理平台:让企业管理智慧升级

智达方通

智慧管理 全面预算管理

348字节实现精简版吃豆人小游戏

南城FE

JavaScript 前端 游戏

JNPF低代码平台详解 -- 系统架构

树上有只程序猿

低代码 应用开发 JNPF

RUM增强APP端快照配置全量会话回放与自定义协议网络请求采集功能

博睿数据

如何根据获取到的商品信息制定更加精准的营销策略?

技术冰糖葫芦

API 文档

IT服务外包的优点有哪些?

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

低代码不适合做哪些应用?

代码生成器研究

Kosmos实现无状态工作负载跨集群平滑扩展

畅聊云原生

零束科技:博睿数据是智能化路上的可靠“守护者”

博睿数据

#运维

交易所开发:服务为您的企业提供支持

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Amazon CTO Werner Vogels:2024年及未来四大技术趋势预测

亚马逊云科技 (Amazon Web Services)

re:Invent AIGC Amazon S3 大语言模型

低代码如何提高生产力?

互联网工科生

低代码 项目开发 JNPF

技术人的 2023 总结|火山引擎开发者社区联合 InfoQ 写作社区第四届有奖征文获奖公布!

InfoQ写作社区官方

云原生 音视频 火山引擎 热门活动 #大模型

国内开源的低代码框架有哪些?

代码生成器研究

用爱发电,分享快乐,真·免费GM公益服游戏!

echeverra

公益服

自建大数据平台迁移腾讯云EMR最佳实践

腾讯云大数据

EMR

Kosmos介绍

畅聊云原生

案例解析关于ArkUI框架中ForEach的潜在陷阱与性能优化

华为云开发者联盟

鸿蒙 开发 华为云 HarmonyOS 华为云开发者联盟

SDK对比测评|如何科学做直播产品技术选型?

音视频开发_AIZ

音视频 技术选型 直播推流 音视频技术 测评对比

谁说低代码做不了复杂的企业应用?

代码生成器研究

IT外包助力企业数字化转型案例分享

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

袋鼠云产品功能更新报告08期|近百项全新功能和优化,你要的都在这里!

袋鼠云数栈

大数据 数据中台 产品更新 产品功能

从 Oracle 到 TiDB,全链路数据迁移平台核心能力和杭州银行迁移实践

PingCAP

数据库 数据库迁移 TiDB 银行业

从HumanEval到CoderEval: 你的代码生成模型真的work吗?

云计算 软件开发 华为云

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