QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

利用 Redis 来优化功能部署和错误分类

  • 2019-12-09
  • 本文字数:1377 字

    阅读完需:约 5 分钟

利用 Redis 来优化功能部署和错误分类

为了让系统运行更流畅,又避免 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 构建特性开关、特性上下文、错误数据库和日志数据库。


本文转载自公众号中间件小哥(ID:huawei_kevin)。


原文链接:


https://mp.weixin.qq.com/s/OH_JlBEBwMXYxcfYfbom8A


2019-12-09 13:522464

评论

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

Web前端浅谈ArkTS组件开发

OpenTiny社区

typescript 前端 OpenTiny

Luminar Neo for Mac(AI技术图像编辑软件) 1.17.0激活版

Mac相关知识分享

凤凰项目(Phoenix Project)精要 - 概念

Anliven

读书笔记 团队管理 DevOps 运维 团队效能

GPU云服务器:计算型与渲染型的最佳应用场景

Ogcloud

gpu 云服务器 GPU云服务器 云服务器租用

有人泼冷水:为什么 AI 基础设施创业如此艰难?

小猿姐

创业 AI AI 基础设施

2024青岛软博会,招展工作顺利进行,诸多知名软件企业踊跃报名

AIOTE智博会

入选2024 分布式算力十佳“星耀”案例,天翼云为算力实践提供样板参考

Geek_2d6073

IPIDEA分享:匿名代理的定义及其工作原理

IPIDEA全球HTTP

代理IP 匿名代理

Tableau Desktop 2019 for Mac(全能数据分析工具) v2019.1.0激活版

Mac相关知识分享

淘宝商品评论API返回值中的评分与星级解读

技术冰糖葫芦

API Explorer API 编排 api 货币化 API 文档

为什么我不建议用Excel做进销存系统?

源字节1号

小程序 开源 前端 后端

神州鲲泰“电网变电站边缘计算解决方案

神州数码

App崩溃分析上线

ClkLog

数据分析 日志分析 开源软件 用户画像 埋点分析系统

数业智能心大陆用AI解锁心灵健康

心大陆多智能体

智能体 AI大模型 心理健康 数字心理

制造业几大系统(MES/WMS/QMS/ERP)的集成

万界星空科技

ERP mes WMS仓库管理 万界星空科技 QMS

Perfectly Clear Workbench for Mac(智能图像清晰修复软件)激活版

Mac相关知识分享

开启SRE培训之旅:美高梅(MGM) 启动服务稳定性建设

雅菲奥朗

SRE SRE培训 SRE考试 SRE认证 SRE Foundation

实力强劲!云起无垠上榜《数字安全护航技术能力全景图》

云起无垠

强烈推荐!!!阿里旗下10款顶级开源项目

EquatorCoco

开源 项目开发

PhotoMill X for Mac(图片批量处理工具) v2.7.0激活版

Mac相关知识分享

红圈CRM携手金蝶ERP,彻底告别数据孤岛,效率飙升的数字化转型之旅!

聚道云软件连接器

案例分享

MES系统助力制造业数字化转型

万界星空科技

数字化 数字化运维 生产管理系统 mes 万界星空科技

WebStorm for Mac(JavaScript开发工具) v2023.3.2中文特别版

Mac相关知识分享

利用 Redis 来优化功能部署和错误分类_文化 & 方法_中间件小哥_InfoQ精选文章