写点什么

移除 Staging 环境,加快部署过程

作者:Matt Saunders

  • 2022-05-24
  • 本文字数:1276 字

    阅读完需:约 4 分钟

移除Staging环境,加快部署过程

大多数公司在部署网站或软件时都会使用预生产环境,以便在向用户推出最新的变更之前对它们进行测试。虽然这样做带来了一些好处,比如增加了进一步发现问题和 Bug 的防御线,但也会增加成本和复杂性,并产生相反的效果。随着持续交付技术等技术的发展,团队借助这些技术手段确保软件总是可部署的,于是从复杂的分支结构和测试环境转移到更简单的基础设施的趋势开始形成。Squeaky是一家在不侵犯用户隐私的情况下帮助企业了解用户如何访问他们的网站或 Web 应用程序的公司,它采用了不一样的做法,并解释了为什么他们不使用 Staging 环境。他们相信这有助于他们更快地发布产品,并减少生产环境中的 Bug。

 

来自 Squeaky 的 Lewis Monteith 在一篇介绍公司部署方案的博文中详细描述了他们在 Staging 环境中发现的几个问题:

 

预发布环境永远无法与生产环境等同:生产环境中的云原生应用通常需要更多的资源来处理负载——但在预发布环境中配置与生产环境完全相同的资源,其成本令人难以承受。这将导致预发布环境配置漂移,架构规模缩减,有碍于在预发布环境测试中发现问题。

 

预发布请求不断进入队列,导致版本越来越多,削弱了所有权关系:如果多个开发人员或团队想要同时发布代码,预发布环境可能会成为瓶颈。等待会导致测试延迟,特别是如果测试失败,所有人都必须等待问题被修复。发布队列会导致分支分离,当有大量的变更需要合并时,这会给开发人员造成巨大的痛苦。

 

如果减少发布,将导致版本被捆绑在一起,这意味着每个版本将引入更多的错误,并且很难追踪问题是哪些变更以及是谁导致的,因为开发人员可能没有意识到变更已经进入到生产环境。

 

流程取代了责任:预发布环境通常由运维团队负责维护,因此部署到预发布环境意味着责任将从开发人员转移到了运维团队。

 

Squeaky 的方案旨在解决或避免这些问题——要做到这一点,涉及四个关键原则。

 

只合并准备发布的代码:这需要确保进行了适当的测试,并在开发中验证了所有变更。

 

扁平化的分支策略:所有的分支都是从主分支派生出来,变更只会从分支合并回主分支。开发人员需要在本地进行冒烟测试。

 

高风险变更需要进行特性标记:如果 Squeaky 比较关注高负载下的性能或用户可能对变更做出的反应,它就会使用特性标记来发布重大的变更。他们可以在单个用户的基础上做到这一点。

 

实践性的部署:通过监控、日志和警报来确保部署没有问题,Squeaky 还使用了蓝绿部署先,将向部分用户推出变更,直到确保一切正常。

 

Squeaky 放弃了 Staging 环境,转而遵循持续交付原则,这改变了人们对交付软件的看法。要移除正式发布之前的缓冲阶段,就需要提升变更的可靠性,而这反过来又降低了成本和复杂性,加快了开发速度。

 

作者简介:

Matt Saunders,我帮助团队使用 DevOps 流程和工具快速高效地交付高质量的软件。我有丰富的与复杂企业、小型初创企业以及介于两者之间的中型企业合作的经验,我与软件开发人员密切合作,确保快速、可靠地交付业务价值。我还管理着伦敦 DevOps 讨论小组,这个小组有超过 8000 名成员,每月举办一次非常受欢迎的行业活动。

 

原文链接

How Removing Staging Environments Can Improve Your Deployments

2022-05-24 09:445215

评论

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

XMind for mac (XMind思维导图) v24.01中文版

Mac相关知识分享

思维导图 办公软件 Mac软件 软件下载 mac下载

大家来决定:python-office运行时的提示信息,要不要删除?

程序员晚枫

Python 开源 自动化办公

三菱课堂笔记 编程基础(ST语言篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 过程PLC基础

万里无云万里天

自动化 三菱

ERC404开发:探索代币化资产的新维度

dappweb

区块链开发 ERC404

三菱课堂笔记 变频器A800系列基础(操作篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 过程PLC入门

万里无云万里天

自动化 三菱

三菱课堂笔记 配电控制设备基础(低压断路器篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 GX Works2基础

万里无云万里天

自动化 三菱

三菱课堂笔记 编程基础

万里无云万里天

自动化 三菱

三菱课堂笔记 变频器A800系列基础(功能篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 MELSEC F系列基础

万里无云万里天

自动化 三菱

win版威力导演 2024 (CyberLink PowerDirector Ultimate) v22.5.3003.0 特别版

iMac小白

学习笔记:快速成长的几点方法

老张

成长 学习笔记 成长路线

三菱课堂笔记 GOT入门

万里无云万里天

自动化 三菱

三菱课堂笔记 变频器维护(800系列对应版)

万里无云万里天

自动化 三菱

三菱课堂笔记 机械安全入门

万里无云万里天

自动化 三菱

30 天 52% 回报:GPT-4o 量化交易机器人

俞凡

人工智能 交易

三菱课堂笔记 变频器节能

万里无云万里天

自动化 三菱

三菱课堂笔记 变频器入门

万里无云万里天

自动化 三菱

文件同步对比工具Beyond Compare 4 for Mac v4.4.7中文版

Mac相关知识分享

Mac Mac软件 文件同步对比工具 mac下载

三菱课堂笔记 配电控制设备基础(电磁接触器篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 以太网(MELSEC iQ-R系列篇)

万里无云万里天

自动化 三菱

码住!详解时序数据库不同分类与性能对比

Apache IoTDB

三菱课堂笔记 编程应用(梯形图语言 MELSEC iQ-R系列篇)

万里无云万里天

自动化 三菱

Final Cut Pro X for Mac(fcpx视频剪辑) v10.7.1简体中文版

Mac相关知识分享

mac软件下载 FCPX软件 FCPX下载 fcpx剪辑 mac下载

三菱课堂笔记 串行通讯(MELSEC iQ-R系列篇)

万里无云万里天

自动化 三菱

三菱课堂笔记 FA网络入门

万里无云万里天

自动化 三菱

移除Staging环境,加快部署过程_软件工程_InfoQ精选文章