BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Monzo服务中断事后分析

| 作者 Alex Giamas 关注 9 他的粉丝 ,译者 谢丽 关注 11 他的粉丝 发布于 2017年11月13日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT