写点什么

为什么基础服务不应该高可用(一)

  • 2019-12-27
  • 本文字数:1126 字

    阅读完需:约 4 分钟

为什么基础服务不应该高可用(一)

为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。


作者在去年使用过 Google Cloud 平台提供的 Kubernetes 来管理生产环境的集群,然而在托管的过程中却经历了一些比较严重的线上事故,几个集群的中的节点因为停机维护而同时重启导致线上的服务几个小时都处于不不可用的状态。


当然事故时间如此之长的原因有很多,在这里不会展开讨论,然而事故刚刚出现时作者曾经也想去责怪和质疑谷歌云服务的稳定性,但是在随后的分析中得出了另一个结论『你的基础服务其实不应该高可用』,我们在这篇文章就会为各位读者分享作者产生这一观点的原因。

概述

为了帮助大家理解今天的内容,我们需要帮助各位读者理解问题中的两个个关键点,也就是高可用意味着什么、基础服务在这里的定义以及基础服务和 SLA 之前的关系。


高可用

想要让服务达到高可用并不是一个容易的事情,不仅服务运行过程中出现的事故会影响可用时间,用于维护的计划停机和更新其实也会影响服务整体的可用时间,如果一个服务要求可用性为 99.95%,那么全年不工作的时间可能只有 4.38 小时,每个月只能宕机 21.9 分钟。


可用性不可用时间(每年)不可用时间(每月)
99%87.6h7.3h
99.9%8.76h0.73h
99.99%52.56min4.38min
99.999%5.26min26.3s
99.9999%31.56s2.63s


假设我们需要达到 4 个 9 的可用性(99.99%),全年的不可用时间只有不足 1 小时,每个月的不可用时间只有 4.38 分钟,99.99% 就是 Google 云计算引擎对外提供的服务质量,每个月不可用时间小于 5 分钟,这也是作者见到过云服务商对外提供的最高服务等级协议(Service-Level Agreement, SLA)了。


很多人可能认为每个月不可用 5 分钟也没什么难的,但是如果你的业务服务建立在稳定性只有 99.95% 甚至 99.9% 的服务上时,你还能保证服务的高可用么?

基础服务

在这篇文章中我们谈到的基础服务指的其实都是基础设施和基础架构,例如用于支撑整个业务系统的 MySQL、Redis 以及 Kubernetes 等系统,这些系统的稳定性和可用性会影响整个业务系统的可用,由于这些基础服务往往提供了相对较为简单和稳定的功能,所以我们对基础服务的可用性有着更高的要求。



业务服务由于经常发版和迭代,有时很难保证服务的稳定和可用,而基础服务和基础架构因为处于更加底层的位置,所以它们稳定性的提升对于依赖它们的上游来讲会有比较大的收益,这也是所有业务同学对基础服务以及架构的期望 —— 保证尽可能高的可用性并保证服务不会宕机。


本文转载自 Draveness 技术博客。


原文链接:https://draveness.me/whys-the-design-unstable-infrastructure


2019-12-27 11:33988

评论 1 条评论

发布
用户头像
强强强
2020-08-27 23:53
回复
没有更多了
发现更多内容

架构实战营模块五作业 - 设计微博系统中”微博评论“的高性能高可用计算架构

李焕之

这篇 python 文章,是过去你错过的 python 细节知识点,滚雪球第4季第15篇

梦想橡皮擦

10月月更

开源许可协议介绍

webrtc developer

架构实战训练营模块 5 作业

Sonichen

学习心得 - 架构训练营 - 第五课

Fm

【LeetCode】外观数列Java题解

Albert

算法 LeetCode 10月月更

iOS签名校验那些事儿

百度Geek说

后端

产业互联网下半场,SaaS平台的机遇与挑战

雯雯写代码

SaaS

怎样才能画出清晰明了的时序图

华为云开发者联盟

接口 模型 UML 系统 时序图

【万字长文】吃透负载均衡

Java 负载均衡 架构 面试 后端

【Promise 源码学习】目录 - Promise 知识点梳理

Brave

源码 Promise 10月月更

【Flutter 专题】28 易忽略的【小而巧】的技术点汇总 (五)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

Apache APISIX 社区新里程碑——全球贡献者突破 300 位!

API7.ai 技术团队

开源社区 API网关 Apache APISIX

架构设计系列五 如何设计业务高性能高可用计算架构

nydia

java springboot自习室选座预约小程序源码

清风

计算机毕业设计

新书榜第一的《图解产品》,帮助内卷中的产品经理实现跨越式发展!

博文视点Broadview

官方线索|2021科大讯飞全球开发者大会

搬砖人

AI 大会 1024我在现场

云小课丨SA基线检查:给云服务来一次全面“体检”

华为云开发者联盟

态势感知 华为云 基线检查 SA 上云合规

基于HarmonyOS分布式技术,这群学生赋予冰箱更智能的体验

科技汇

阿里开源的这个库,让 Excel 导出不再复杂(填充模板的使用指南)

看山

Java EasyExcel 10月月更

看动画学算法之:平衡二叉搜索树AVL Tree

程序那些事

数据结构 算法 二叉树 程序那些事

华为云企业级Redis:助力VMALL打造先进特征平台

华为云开发者联盟

华为云 云数据库 GaussDB(for Redis) 华为商城 VMALL

技术干货 | jsAPI 方式下的导航栏的动态化修改

蚂蚁集团移动开发平台 mPaaS

容器 大前端 移动开发 mPaaS 动态化

作业五:微博评论高性能高可用架构设计

紫云

架构实战营

”微博评论“的高性能高可用计算架构

Sky

「架构实战营」

Vue进阶(幺叁捌):vue 路由传参的几种基本方式

No Silver Bullet

Vue 路由 10月月更

Apache APISIX 社区成员助力 openEuler 发布第一个社区创新版

API7.ai 技术团队

开源 openresty openEuler api 网关 Apache APISIX

10 月 30 日 北京 LiveVideoStack 阿里云视频云专场限量赠票 100 张

阿里云CloudImagine

阿里云 音视频 高清视频 视频编解码 视频云

微博系统中的微博评论架构分析

眼镜盒子

「架构实战营」

这几种Java异常处理方法,你会吗?

华为云开发者联盟

Java 数组 异常 程序

Apache APISIX 社区周报 | 2021 9.13-9.30

API7.ai 技术团队

开源社区 api 网关 社区周报 Apache APISIX

为什么基础服务不应该高可用(一)_语言 & 开发_Draveness_InfoQ精选文章