50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

  • 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:331047

评论 1 条评论

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

对话彩生活:“互联网+物业”数智化转型的BI应用实践

观远数据

企业号九月金秋榜

干货 | 通用 api 封装实战,带你深入理解 PO

霍格沃兹测试开发学社

从 “搞不清楚” 到 “都明白了” 的费曼

图灵教育

量子力学 物理学家

openGauss内核分析:执行计划生成

华为云开发者联盟

数据库 后端

设计模式的艺术 第三章单例设计模式练习(设计一个数据库连接池,能自行提供指定个数实例对象的数据库连接类)

代廉洁

设计模式的艺术

渗透测试 vs 漏洞扫描:差异与不同

SEAL安全

网络安全 渗透测试 软件安全 软件供应链安全

物联网设备上云难?华为云IoT帮你一键完成模型定义,快速在线调试设备

华为云开发者联盟

后端 物联网 华为云

我是一个垃圾

蝉沐风

JVM 老年代 垃圾回收 GC 新生代

详解 OpenDAL |Data Infra 研究社第三期

Databend

线上直播 大数据 开源 databend OpenDAL Datafuse Labs

建木×GitLink,解锁高效开发新体验

Jianmu

DevOps 持续集成 CI/CD 自动化运维 建木

从 “搞不清楚” 到 “都明白了” 的费曼

图灵社区

量子力学 物理学家

最新出炉!深度解读《中国DevOps现状调查报告(2022)》

嘉为蓝鲸

DevOps

使用 vue 开发 YonBuilder移动开发应用的教程

YonBuilder低代码开发平台

支持公有云/私有云平台运维监控工具哪个好?怎么操作?

行云管家

云计算 运维 自动化 云运维

kube-schedulersimulator 模拟调度器环境

CTO技术共享

技术分享 | Frida 实现 Hook 功能的强大能力

霍格沃兹测试开发学社

测试左移之Sonarqube maven项目分析

霍格沃兹测试开发学社

测试右移之logstash完整配置实例

霍格沃兹测试开发学社

荣耀智慧服务开发者扶持计划,百亿曝光你心动了吗?

荣耀开发者服务平台

小程序 大数据 卡片服务 快应用 荣耀

服务网格 实现超时和重试

CTO技术共享

测试左移之Sonarqube scanner使用

霍格沃兹测试开发学社

技术分享 | 一步一步学测试平台开发-Vue restful请求

霍格沃兹测试开发学社

韶关等保测评公司地址在哪里?电话多少?

行云管家

等保 等保测评 韶关

技术分享 | 跨平台API对接(Java)

霍格沃兹测试开发学社

Docker 容器网络配置

CTO技术共享

正则表达式中使用-的一个小坑

agnostic

正则表达式

没有一个顺手的流程绘制工具?好吧,自己动手,丰衣足食!

江南一点雨

Java springboot BPMN

Python实战之用内置模块来构建REST服务、RPC服务

山河已无恙

RPC REST API Python.

技术分享 | 想测试入门就必须要懂的软件开发流程

霍格沃兹测试开发学社

技术分享 | 学做测试平台开发-Vuetify 框架

霍格沃兹测试开发学社

技术分享 | 测试平台开发-前端开发之Vue router路由设计

霍格沃兹测试开发学社

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