前言

在较短的时间内完成从开发人员的机器到生产的功能的代码,是高效的技术/工程团队的质量。使用capistrano或fabric等工具进行自动部署使得部署成为一项简单的任务,而不是可怕的操作,在这种情况下,您错过了一步,然后搞砸了生产。

这些天Docker和Kubernetes使部署变得轻而易举。本文将重点介绍在部署涉及一些重要代码和数据库更改的新主要功能时要考虑的事项。

什么是主要特征

如何区分常规和主要功能部署?例如,如果您在电子商务网站中部署客户钱包子系统,或者将多租户功能部署到单个租户应用程序,则应将其视为正在推出的主要功能。

常规功能不需要事先推出计划或大量思考,可以通过运行常规部署例程进行部署,也可以。主要特征是在常规功能和错误中的一种子项目。部署重要功能是开发,sys admin / devops和产品团队的共同责任。

TLDR;

在使用新的主要功能上线/制作之前,始终严格按照分段进行测试。进行数据库备份并通过向后兼容性进行小型部署。始终具有回滚计划并将功能保留在功能标记下。

要考虑的事情

那么,当您想要部署团队已完成开发并希望继续使用它的新主要功能时,您需要考虑哪些事项?

在进行主要部署之前,您应该制作一份清单,其中包括大代码更改和迁移时的一些数据库架构更改:

1.严格的分期测试

这是一个明智的选择,您必须在暂存环境中严格测试新功能,并确保涵盖不同的用例。我甚至建议有一个表格,列出可能的情况并测试它。
如果您有质量保证(QA)部门,您肯定可以就此事采取帮助。

开发人员级别的测试也非常重要,找到一个关于暂存和修复它的错误要比上线并进行回滚要少得多。

您可能需要回滚,因为在生产中发现了重大错误。这是你不想遇见的情况。问题是如果它是发布就绪,或者如果测试时间太长,它可能会延迟发布。

2.始终进行数据库备份

在对生产数据库进行任何更改之前,进行备份是您需要做的最重要的事情。如果你忘了,将是一场灾难,虽然这只是一件小事。

当你没有得到正确的基础时,问题会变成更大的问题。

因此,请注意并始终在运行这些迁移/更改查询之前进行数据库备份。另请注意,部署脚本不会自动运行迁移。这可能使主要功能部署过程变得痛苦,从而始终为困难情况做好准备。

3.小型多重部署,保持向后兼容性

当您必须将一个主要功能部署到生产中时,最好在生产中进行所需的数据库更改,这是完全向后兼容的。

您可以在生产数据库上完成alter table和new columns。这有助于您将主要功能拆分为较小的部分并逐步部署它们。

这为团队提供了灵活性和信心,可以使用新功能继续进行生产。如果您可以正确地玩牌,这可以是零停机部署的推动者。

4.不要忘记回滚计划

如果您计划执行一个主要部署以发布主要功能,请制定推出计划。它详细说明了如何使用适当的步骤执行部署,详细说明了部署策略。

即使您认为推出/部署将会成功,也总会有回滚计划。

列出您需要回滚到应用程序的当前工作版本所需的内容,以防万一事情没有按计划进行,您需要还原。如果您有可以快速修复的小问题,则无需回滚,但如果存在重大问题,那么回滚将是唯一的出路。

5.基于条件的特征

最后但也很重要的一点是,如果您要部署一个主要功能,尽早访问您的公司员工(或公司内部的一个团队)是一个好的选择。

就像该功能可以由产品团队在生产中进行测试。

现在的情况?当用户使用@ yourcompnay.com电子邮件地址登录时,只需限制要执行的功能代码即可。一次我记得我们就推出了一种只有在您使用一个特定电子邮件地址时才会显示的付款方式。因此,主要功能可以部署到生产中,并且仍然具有过滤访问权限。在相关团队发出绿灯后,您只需删除访问该功能的条件,并将其提供给所有客户/用户。

结论

至于适用的目标是零停机时间部署,并在流量最低时在生产中运行数据库迁移脚本。即使您必须有停机时间,也要确保事先尽量减少停机时间,以便系统可以在最短的时间内进行定期维护。快速部署。

转载至:Geshan.com.np。作者:Geshan Manandhar

将新主要功能部署到生产时要考虑的5件事情相关推荐

  1. 初学编程时需要了解的10件事情

    学编程绝不是容易的事情.很多网站为了鼓吹人们学习写代码,而会使用一种论调说,编程是一个很容易就能成为专家的行业.然而事实上,要拥有过硬的编程技术并成为这个行业的专家,需要付出很多努力. 作为初学者,你 ...

  2. 遇到同事求助时需要帮助的3件事情,别说你不知道

    在职场中,同事互相求助.互相帮助是很常见的.当有人向同事求助时,他们的内心已经挣扎了很久,但大量的人会直接拒绝同事的帮助:除了寻求帮助之外,选择帮助时也有技巧. 不是所有的同事都求人,一定有拒绝的想法 ...

  3. 手把手教你使用TF服务将TensorFlow模型部署到生产环境

    2019独角兽企业重金招聘Python工程师标准>>> 介绍 将机器学习(ML)模型应用于生产环境已成为一个火热的的话题,许多框架提供了旨在解决此问题的不同解决方案.为解决这一问题, ...

  4. tensorflow图形识别_手把手教你使用TF服务将TensorFlow模型部署到生产环境

    摘要: 训练好的模型不知道如何布置到生产环境?快来学习一下吧! 介绍 将机器学习(ML)模型应用于生产环境已成为一个火热的的话题,许多框架提供了旨在解决此问题的不同解决方案.为解决这一问题,谷歌发布了 ...

  5. kubeasz一键部署containerd运行时、高可用k8s(1.26.x)集群-Day 02

    1. 生产环境部署架构 (1)多master节点,实现master节点的高可用和高性能. (2)单独的etcd分布式集群(生产使用SSD盘),高可用持久化k8s资源对象数据,并实现高可用. (3)多n ...

  6. 【Flask】官方教程(Tutorial)-part4(完结)测试覆盖度、部署到生产、持续开发

    前序文章: 官方教程(Tutorial)-part1:项目布局.应用程序设置.定义和访问数据库 官方教程(Tutorial)-part2:蓝图-视图.模板.静态文件 官方教程(Tutorial)-pa ...

  7. Lync Server 2010移动功能部署PART B:外部篇

    在我们完成Lync Server 2010移动功能的内部部署后,是不是感觉有点意犹未尽?这是必然的,因为我们要的就是公网发布,在内网用移动设备访问有什么意思,移动设备就是要在移动的时候用,不是吗?让大 ...

  8. android app功能 配置,配置安装时分发  |  Android 开发者  |  Android Developers

    借助功能模块,您可以从应用的基本模块中分离某些功能和资源,并将其包含在 app bundle 中.然后,您可以自定义分发选项,以便控制搭载 Android 5.0(API 级别 21)或更高版本的设备 ...

  9. 一物一码(6): 一物一码之【开展一物一码营销活动基本流程2,设计开发部署,生产包装,活动上线】

    二维码应用:一物一码[合集] (1) 二维码基础,以及js encode/decode QRCode纯前端实现 (2) 一物一码之[红包那点事] (3) 一物一码之[精准营销] (4) 一物一码之[得 ...

最新文章

  1. asp.net webform 与asp.net mvc 混合开发项目总结
  2. 在 OS X 中使用 OpenResty
  3. 数学推导题,NTT,快速数论变换,Wannafly-乒乓球
  4. 软件开发中的资源控制问题学习
  5. python2中range和xrange的区别
  6. 微信hash ajax,基于vue hash模式微信分享#号的解决
  7. 用shell把所有文件名修改为小写
  8. 目标检测算法——YOLOv3
  9. 声艺数字调音台si说明书32路_声艺Si Expression 3 32路数字调音台
  10. windows 编写.bat脚本下实现文件复制
  11. 【Unity好项目分享】如何制作如游戏蔚蓝般极佳的操作手感
  12. Fashion-mnist数据的读取与保存
  13. 最强旗舰手机功能曝光:大变活人、智能静音、拍照测肤……
  14. c#打开数据库连接池的工作机制_详解数据库连接池概念、原理、运行机制等
  15. 爬取小说网站章节和小说语音播放
  16. WMA.3GP,MP4.AVi,格式有什么区别(科普扫盲)
  17. 2021年邢台高考成绩查询,2021年邢台高考最高分多少分(附历年高考状元成绩)
  18. requests爬虎妞
  19. 【Mysql】通过 docker 快速搭建 mysql 环境
  20. Windows--远程桌面账号密码输入正确却显示凭据失败

热门文章

  1. 夜宵虽好,可不要贪“杯”哦
  2. MONyog_5.6.9.0 key激活|监控MYSQL
  3. java 循环时间调用 程序(转)
  4. MySQL 5.5 的COMPRESSED INNODB 表
  5. 使用GDAL将12bit量化图像转为16bit或者8bit
  6. Numerical Geometry of Image
  7. rails的一些问题
  8. 阿里云一键建站产品,阿里云自营建站-中小企业建站首选...
  9. L2-006. 树的遍历
  10. 苹果如何使用神经网络在点云中做对象检测