写点什么

Monzo 服务中断事后分析

  • 2017-11-12
  • 本文字数:701 字

    阅读完需:约 2 分钟

Monzo 是英国的一家仅提供移动端服务的数字银行。近日,该银行的活期账户支付和预付信用卡系统出现了服务中断。Monzo 工程部门负责人 Oliver Beattie 交由 Monzo 社区论坛来提供服务中断的事后分析。

在最初架构设计的时候,Monzo 就将在全球范围内提供服务作为核心前提之一。久而久之,这使得他们开发了数以百计的微服务。

这些微服务被打包进 Docker 容器,使用 Kubernetes 部署到 AWS 上。服务的编排是由 etcd 完成的,kubernetes 就是用它来识别服务的部署位置以及每个服务的状态。服务间的路由和负载均衡是使用 linkerd 实现的。

服务中断既影响了预付信用卡,又影响了活期账户持有者。造成此次服务中断的原因有多个。

首先,Kubernetes 的一个 Bug 会导致请求在集群重新配置后超时。在服务实际中断导致这些超时出现之前一周,他们进行了集群重新配置,使 linkerd 接收不到 Kubernetes 的更新。

再者,当服务中断发生时,他们的一个直接反应是重启所有的 linkerd 实例,这暴露出了一个问题,Monzo 使用的 Kubernetes 和 linkerd 版本不兼容,情况变得更加糟糕,从服务中断变成了整个平台的故障。Monzo 社区论坛的相关主题里也列出了事件的完整时间表。

从这样一次服务中断里可以汲取一些有价值的教训。除了修复Bug、检查不同库的版本兼容性及其他问题外,Monzo 认识到了改进内部或外部通信中断的处理措施的必要性。

此外,另一个教训是认识到了报警、控制面板、对应用程序的每一层进行健康检查从而及早发现人为错误及其他错误的重要性。总而言之,重要的是,以后要采取一切措施防止服务中断,既能解决问题,又能就正在发生的事清晰地沟通,这样,将来就可以构建起更好的保障措施。

查看英文原文 Monzo Outage Post Mortem

2017-11-12 18:001712
用户头像

发布了 1008 篇内容, 共 423.7 次阅读, 收获喜欢 346 次。

关注

评论

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

【MyBatis 2】MyBatis-Plus,java分布式框架技术方案

Java 程序员 后端

【MyBatis-plus】条件构造器详解,mysql索引原理及btree

Java 程序员 后端

前端组件化工程实践

循环智能

AI 组件化 智能化

就这?彻底搞懂单例模式

蝉沐风

Java 面试 设计模式 单例模式

【Spring Cloud 2】注册中心Eureka,java架构面试题spring原理

Java 程序员 后端

【Spring 基础注解】对象创建相关注解,java开发实战经典答案百度云

Java 程序员 后端

【SpringMVC笔记】拦截器 ,java设计模式及实践百度云

Java 程序员 后端

【Spring Boot 6】自定义starter,花了6个月肝完阿里技术官的笔记

Java 程序员 后端

【Spring Boot实战与进阶】Controller的使用及获取请求参数的示例

Java 程序员 后端

【云计算】云的七大分类定义说明

行云管家

云计算 公有云 私有云 云资源

重磅|Apache ShardingSphere 5.0.0 即将正式发布

SphereEx

数据库 ShardingSphere Meetup Apache ShardingSphere DateBase

【SpringBoot系列】配置多环境配置文件,hadoop环境搭建教程

Java 程序员 后端

Kafka 3.0 重磅发布,来看下值得关注的新功能

大数据技术指南

kafka 11月日更

【SpringMVC笔记】Ajax 入门,linux编程基础李养群课后答案

Java 程序员 后端

【Spring 工厂】反转控制与依赖注入,spring集成mybatis原理面试题

Java 程序员 后端

【Quarkus 技术系列】,Java高级工程师面试答案大全

Java 程序员 后端

【Redis实战】集合类型,unixlinux编程实践教程

Java 程序员 后端

【Spring Boot 23】MyBatis事务管理,java基础知识点思维导图

Java 程序员 后端

【Spring Boot 25】JdbcTemplate配置类 ,设计模式面试题java

Java 程序员 后端

【Spring Cloud 8】熔断与限流Sentinel,java现在的主流技术

Java 程序员 后端

深入理解 TCP 拥塞控制

拍乐云Pano

TCP 音视频 RTC TCP通信

【SpringMVC 笔记】Json 交互处理(1),面试官都被搞懵了

Java 程序员 后端

前端Node.js面试题

CRMEB

等保测评机构每年都需要年审吗?年审时候需提供哪些资料?

行云管家

网络安全 等级保护 等保测评 等保办

恒源云(GPUSHARE)_云GPU服务器如何使用Conda?

恒源云

深度学习

【Spring 持久层】Spring 与 Mybatis 整合,spring教程极客学院

Java 程序员 后端

以闭包方式实现一个Controller层打印日志的切面

LSJ

aop 闭包 切面

【Spring Boot 25】JdbcTemplate配置类 (1),鬼知道我经历了啥

Java 程序员 后端

【Spring Boot实战与进阶】AOP的两种动态代理,java注解的实现原理

Java 程序员 后端

【SpringMVC 笔记】Json 交互处理,顺丰java社招面试

Java 程序员 后端

彻底说透简单工厂那些你没有关注过的细节

Tom弹架构

Java 架构 设计模式

Monzo服务中断事后分析_架构_Alex Giamas_InfoQ精选文章