来源:Redislabs

作者:Shabih Syed

翻译:Kevin (公众号:中间件小哥)

为了让系统运行更流畅,又避免 Knights Capital 在 2012 年犯下的 4.6 亿美元的错误,一家领先的金融市场制造商的单日计算机系统故障给 IT 社区提供了一些教训,包括系统组件的设计、实现,和DevOps 的重要性。在这个由两部分组成的博客中,我将分享一些想法,以帮助开发团队保持其持续集成和持续部署(CI / CD)流程的安全, 特别的,我将展示如何使用特性开关和特性上下文来来管理持续更新,如何创建一个容易访问的日志数据库,一个可以快速查找的错误信息数据库--所有这些都借助 Redis。想象一下,您是一名工程总监,管理着一个由多个开发人员组成的团队,这些开发人员负责具有数千个并发用户的Web 应用程序的前端。您的应用程序已部署在 AWS 中,您需要每周推送新的版本,公司无法承受因Web 应用程序带来的任何破坏,因此如果发生错误,您的团队必须立即回滚到最近更新的版本。您必须快速识别出问题代码,让开发人员对其进行修复,并在后续对外发布,而且产品团队总是要求尽快提供新功能,因此您如何迅速对错误做出反应,并以业务需求的速度上线新功能?

在 2019 年游戏开发者大会(GDC)上,我参加了一个主题为“大规模调试:每月活跃用户超过 7 千万的跨平台稳定性”的议程,由Redis Labs 客户 Roblox 和 Chris Swiedler 共同主持,描述了一种可以可以支撑每周更新的软件发布过程。克里斯分享了他的团队如何在 Roblox 上修改应用程序行为而不改变代码,这样可以减少现网问题的发生。他们使用特性标记,这与 Martin Fowler 的“特性开关”方法非常相似。

新功能发布的示例 CI / CD 流程

让我们分解图 2,其中概述了可以作为CI / CD 和分类过程的一部分的方法:
1. 开发人员开始研究新功能;2. 开发人员和产品管理团队决定哪些场景将使用新功能(可能仅针对部分用户);3. 开发人员提出了一种切换策略,其中新代码和旧代码由“ if and else”块分隔;4. 一旦开发人员完成新功能代码的开发,他们便将Canary 版本发布到生产环境(借助 DevOps);5. 人们在使用该应用程序中,根据其角色和切换,可以执行新代码或者旧代码;6. 如果出现问题,可以将切换开关设置为false,以将所有用户转移到旧代码;7. 一段时间后,该功能将升级为正式发布版本(GA)。此策略可有助于:1. 将canary 版本发布到生产中,以实时流量和真实用户(而不是模拟)进行测试;2. 在不回滚任何代码的情况下即时禁用功能;3. 通过切换特性开关启用功能或功能组合;4. 可通过特性开关中的元数据轻松识别(对于大型开发团队而言)负责的开发人员。但是可以将这种方法前进一步,以帮助分布式开发团队安全地发布新功能,并在需要时以最小的影响回滚新功能。

Redis Enterprise 的 CI / CD

您需要快速,持久的数据库时,Redis Enterprise 非常适合。其功能包括:

  • 具有永久网络存储的完全托管的 Redis 数据库即服务,可防止实例数据存储丢失;

  • 跨多个 RedisEnterprise 群集创建的无冲突可复制的数据库,这些集群位于各地的不同数据中心,这提供高可用的双活和主备部署。

  • 强大的搜索功能(通过 RediSearch 模块)可跨数据库集群运行搜索查询。

为了让您的 CI/ CD 分流过程更加有效,在本系列的下一部分中,我将提供更多详细信息和代码段来具体展示如何使用 Redis 构建特性开关、特性上下文、错误数据库和日志数据库。

原文链接:https://redislabs.com/blog/using-redis-to-optimize-feature-rollouts-and-error-triaging/

多优质中间件技术资讯/原创/翻译文章/资料/干货,请关注“中间件小哥”公众号!

利用 Redis 来优化功能部署和错误分类的更多相关文章

  1. 利用Redis cache优化app查询速度实践

    注意:本篇文章译自speeding up existing app with a redis cache,如需要转载请注明出处. 发现问题 在应用解决方法之前,我们需要对我们面对的问题有一个清晰的认识 ...

  2. Spring Boot 2 实战:利用Redis的Geo功能实现查找附近的位置

    1. 前言 老板突然要上线一个需求,获取当前位置方圆一公里的业务代理点.明天上线!当接到这个需求的时候我差点吐血,这时间也太紧张了.赶紧去查相关的技术选型.经过一番折腾,终于在晚上十点完成了这个需求. ...

  3. redis性能优化、内存分析及优化

    redis性能优化.内存分析及优化 1.优化网络延时 2.警惕执行时间长的操作 3.优化数据结构.使用正确的算法 4.考虑操作系统和硬件是否影响性能 5.考虑持久化带来的开销 5.1 RDB 全量持久 ...

  4. Redis的各项功能解决了哪些问题?

    先看一下Redis是一个什么东西.官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用.同时支持string ...

  5. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  6. centos6下redis cluster集群部署过程

    一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...

  7. 如何更好的利用redis

    原文地址http://oldblog.antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html @(syoka)[re ...

  8. 4个点让你彻底明白Redis的各项功能

    前言 先看一下Redis是一个什么东西.官方简介解释到: Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用.同时支持st ...

  9. 【转】Redis的各项功能解决了哪些问题?

    作者:Blackheart 出处:http://linianhui.cnblogs.com 先看一下Redis是一个什么东西.官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据 ...

随机推荐

  1. basename 和 dirname

    basename将目录路径去掉,返回文件的实际文件名(此处也可以是最后一级目录).如与$0一起 if [ $? -eq 0 ]; then cd - ; mv `basename $0` test1. ...

  2. PHP安全之道学习笔记1:PHP项目安全设置

    在全球范围来看,超过了80%的网站是使用php进行搭建的,由于脚本语言和早期版本设计的诸多原因,php项目存在不少安全隐患.从配置选项来看,可以做如下的优化. 1.屏蔽PHP错误输出. 在/etc/p ...

  3. [apue] FIFO:不是文件的文件

    众所周知,FIFO中文译为命名管道,是PIPE的升级版.而PIPE是管道,系统提供的一种进程间通讯方式,FIFO与PIPE有以下方面不同: 1) FIFO需要先在文件系统创建(mkfifo),之后使用 ...

  4. 性能测试:深入理解线程数,并发量,TPS,看这一篇就够了

    并发数,线程数,吞吐量,每秒事务数(TPS)都是性能测试领域非常关键的数据和指标. 那么他们之间究竟是怎样的一个对应关系和内在联系? 测试时,我们经常容易将线程数等同于表述为并发数,这一表述正确吗? ...

  5. C#连接SAP【生产系统与ERP对接】

    企业如果上了ERP系统,比如SAP.用友.金蝶或者E10等等,只需要ERP里面提供相应的接口,则可以直接将PMC创建的工单信息抛转至 MTS 系统,当该工单生产完成之后,MTS 将完成数据回传至 ER ...

  6. Linux服务和systemctl详解

    定义 A Linux service is an application (or set of applications) that runs in the background waiting to ...

  7. 学习spring和spring mvc过程中遇到的一些问题

    以下仅为个人通过网上查找资料总结的内容,如有不对的地方欢迎提出: 注解: @Controller//表明本类是一个Controller @RequestMapping(value="/dem ...

  8. 重写系统自带tabbar出现的 代理错误

  9. 高性能Web动画和渲染原理系列(1)——CSS动画和JS动画

    [摘要] 介绍CSS动画和JS动画的基本特点,以及轻量级动画库velocity.js的基本用法. 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园 ...

  10. 【开发记录】Linux常用命令记录(一)

    记录CentOS下,常用的命令.有时候很难记得清楚,同时方便新来的同学查阅.(将不停的追加和完善) 1)查看CPU情况 cat /proc/cpuinfo |grep "model name ...