在数据库中引入DevOps方法
极客时间编辑部
讲述:杜力大小:1004.19K时长:02:09
近日,在 PASS 2017 峰会上,Redgate 布道师史蒂夫·琼斯(Steve Jones)发表演讲,并介绍了他在数据库管理中引入 DevOps 的一些技巧,其中包括了一些可适用于各种规模应用部署的技巧。
琼斯引用了吉恩·金姆(Gene Kim)给出的支撑 DevOps 的三个原则:系统化考虑、放大反馈循环、实验和学习的文化。
琼斯就此原则给出了他在将 DevOps 引入数据库中所使用的技术。最初的也是基础的一步,是实现并依赖于版本控制系统的使用,例如 Git、SVN 等。下一步是实现在应用代码中无差别地对待数据库代码。第三步是在版本控制系统中设置并维护一个组织有序的系统,这在某些情况可以是存储应用代码的同一个代码库,但是在某些情况下使用独立的代码库会更好。最后一步是对更改进行代码审查并认真对待。
由于在非开发环境中会有部分的测试更改先于部署执行,琼斯推荐所使用的数据集是特别构造,而非从生产数据中抽取。开发(DEV)、用户接收测试(UAT)和预发布测试(STG)等从清空的数据库开始,进而添加表示生产环境用例的 10 到 40 行数据。
所有要在生产环境中部署的代码应该以一致的方式完成。如果需要执行一项手工步骤,那么应该对这些步骤做出完备的文档。一致性是十分重要的,它保证了每个部署总是以同样的方式完成,并且考虑到了一些重要过程,例如单元测试、定义了主键的适用表等。
琼斯观察到不成功的变更是很难回滚的,尤其是变更中涉及了数据库。他推荐手工编写回滚代码,并且这些代码在部署到开发、预发布测试等阶段之前就已经进行了测试,使得工作脚本已经准备好加入到所需的事件中。
另一个可以考虑的技术是使用黑箱部署,其中变更被部署到生产系统,但是使用它们则是通过一个特征标志触发的。这样一个特性在确定可用于一般通用版(GA)之前,它都是非激活的。据琼斯介绍,Facebook 在推出 Facebook Messenger 时就采用了这个方法,确保它们的系统可处理预期的用户负载。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 英子编辑文中遇见Gene Kim,Kim老师的新书 The DevOps Handbook 正在图灵翻译,关注 DevOps 的朋友可以关注一下这本书。
收起评论