变更--软件开发中的变更

变更是指对线上系统的任何操作(如:发布、增加、修改或移除等),或其他对生产业务可能有影响的任何操作。
变更系统是指承载任何对线上生产环境变更操作的系统或工具。
例如拥有控制台的白屏化系统/工具、压测/演练平台、黑屏脚本、开放出来的可触发变更操作的API、不以变更为主要功能和目标的平台/系统,如具备了对生产环境实施变更的功能,则相应的变更功能部分也视同变更系统对待等。
变更风控首先是一个业务理念,是稳定性领域内指导变更操作的一套标准,同时规范经济体变更系统的能力建设。其次变更风控是一套技术体系,通过技术手段干预变更的整个生命周期,在变更前进行准入检测,变更中约束渐进式的执行过程,并通过宏观的观测手段验证变更的阶段结果,及时发现问题进行回滚止血,同时在变更后,通过影响面的拓扑提供变更数据的应用,辅助故障定位和问题排查。

变更风控主要有三个目的:
收敛因变更触发的重大故障;
规范业务团队的变更操作,沉淀通用变更能力和执行标准;
帮助变更系统建设风控能力,护航业务变更执行。

标准的变更过程一般可分为:计划、执行、结束三个部分:
计划阶段:该阶段主要包含变更申请,以及申请的准入审批。变更申请需要明确变更计划、窗口期、潜在影响以及回滚方案。
执行阶段:首先对变更行为进行二次校验,如确定变更环境是否满足要求,业务流量已按预期停止等。变更过程建议先在测试环境验证后,再进入生产环境变更阶段,同时灰度、分批进行。每批次间设定一定间隔时间,并进行观察记录至少一项可反应核心业务健康状态的指标(业务监控项、日志文件名等),同时须具备回滚能力。
结束阶段:通过监控、日志等数据验证业务是否正常,并记录上报相关数据。
【以上参考阿里云变更发布策略

变更发布策略是在软件开发和运维中非常重要的一部分,主要目标是确保软件的稳定性和可用性,同时尽可能地减少由于变更引入的风险。
一些常见的变更发布策略:

  1. A/B测试:通过用户请求的元信息将流量路由到新版本,是一种基于请求内容匹配的灰度发布策略。常见的做法包括基于HTTP Header和Cookie,将特定请求或用户灰度至新版本,降低故障影响范围。
  2. 金丝雀发布:通过调整流量权重比例,逐步将流量从老版本切换至新版本。
  3. Feature Flags:使用Feature Flags工具与平台,可以让软件的发布更快、更安全。Feature Flags可以控制Feature的运行与否,当Feature Flag处于激活状态时功能运行,否则不运行。因此,我们可以在任何时间状态下将一个Feature branch合并到主分支,并部署到上线(即使是没有完成的功能)。上线后,由Feature Flag控制功能的发布。
  4. 灰度环境:灰度环境的目的是隔离生产流量,减少风险影响,在环境内形成调用闭环,方便测试。
  5. 变更风险防控:变更风险防控是一套技术体系,通过技术手段干预变更的整个生命周期,在变更前进行准入检测,变更中约束渐进式的执行过程,并通过宏观的观测手段验证变更的阶段结果,及时发现问题进行回滚止血。

在软件开发中,“生产环境变更”或“代码变更”指:在生产环境(也称为产品环境或线上环境)中对任何部分进行的修改,包括应用程序的更新、配置的修改、硬件设施的更换等。
生产环境变更分为以下几类
6. 硬件资源变更:包括所有与物理硬件和云服务硬件配置相关的更换、升级或维护,例如升级处理器(CPU)、扩充内存(RAM)、更换硬盘等。
7. 软件配置变更:涵盖了所有与操作系统、数据库、中间件以及云服务软件设置的修改,例如优化操作系统性能通过调整系统参数等。
8. 应用程序变更:主要包含了所有与业务代码和将业务代码发布到生产环境的 DevOps 工具的更改,例如代码变更、配置变更、依赖库更新、DevOps 工具变更等。
9. 数据变更:包括线上数据的清理、迁移、更新等操作。
10. 流量变更:主要包含了流量变化的情况,例如负载调整、后台投放或大型促销活动等。

生产环境变更的管理非常重要,因为任何重要的变动,如果没有进行变更管理,可能会导致信息不一致,造成前后端的困境。例如,如果产品的配方、加工工艺、设备或包装发生变化,而没有进行适当的变更管理,可能会导致包装上的标签与实际配方不一致,甚至在过敏原发生变化时,可能会引发食品安全的问题。
生产环境变更就是在生产过程发生任何变化前,需要相关部门对相关的流程、风险进行识别和控制,确保生产顺利进行,保证产品的质量和安全。

了解DDR内存颗粒的编码对于正确识别内存的规格至关重要,特别是对于计算内存总容量和理解ECC内存的功能。这里,我们以SAMSUNG和Hynix两种常见内存颗粒的编码为例进行解析。 参考资源链接:[DDR内存颗粒编码解析:快速识别内存容量与类型](https://wenku.youkuaiyun.com/doc/f6e82fh56t?spm=1055.2569.3001.10343) 首先,SAMSUNG内存颗粒编码通常由16位字符组成,其中第4、5位数字代表内存的容量。例如,'28'代表128Mbit的容量。SAMSUNG内存颗粒的编码结构中,第6、7位表示数据线的位宽,而总容量则是通过以下公式计算的: 总容量(MB) = (容量位数 × 片数 × 数据宽度) / (8 bits/byte × 1024) 举例来说,如果一个内存条上有8片SAMSUNG K4H280838B-TCB0颗粒,每片容量为128Mbit,数据宽度为8位,那么内存条的总容量计算如下: 总容量 = (128 × 8 × 8) / (8 × 1024) = 256MB 对于Hynix内存颗粒,编码同样可以提供内存容量信息。例如,Hynix编码中的'HY5DU12822B'中,'128'表示每片内存颗粒的容量为128Mbit。 至于ECC内存,它是指具有错误检测和纠正功能的内存。ECC内存通常在编码中有明显标识,如SAMSUNG的K4E8E164EB-EGCE和Hynix的HYMD512S64CP8-S6的ECC版本通常会在型号中添加'E'来表示ECC功能。 通过这些编码规则,我们可以快速识别内存条是否为ECC内存,并计算出内存条的总容量,这对于确保服务器和重要工作负载的稳定性和准确性至关重要。如果需要对内存颗粒进行深入学习和实战分析,推荐查看《DDR内存颗粒编码解析:快速识别内存容量与类型》这份资料,它将为内存爱好者和专业人士提供详尽的编码解读和内存性能评估工具。 参考资源链接:[DDR内存颗粒编码解析:快速识别内存容量与类型](https://wenku.youkuaiyun.com/doc/f6e82fh56t?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值