写点什么

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

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

评论 1 条评论

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

Hazel for Mac(自动化清理软件)v5.2.2激活版

Rose

Mac清理软件 Hazel 下载 Hazel Mac版 自动化文件管理工具

终极指南!Terraform的进阶技巧

SEAL安全

IaC Terraform 5月 企业号 5 月 PK 榜

StampedLock:高并发场景下一种比读写锁更快的锁

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

你了解LED显示屏的安装方式吗?

Dylan

安装 LED LED显示屏

万众瞩目的Nautilus Chain即将上线主网,生态正式起航

西柚子

跨平台开发的优势:ReactNative与小程序容器

没有用户名丶

软件测试 | 应用程序签名机制实现的源代码分析

测吧(北京)科技有限公司

测试

IDEA 终端命令行设置

Andy

破防了!阿里大佬DDD(领域驱动设计)不破不立,GitHub直接霸榜

Java你猿哥

Java 领域驱动设计 DDD ssm 领域驱动

DMG镜像制作软件:DMG Canvas 激活版

真大的脸盆

Mac Mac 软件 镜像文件制作工具 镜像文件管理

从2000ms缩短到50ms,亿级ES数据搜索性能调优实践

Java你猿哥

Java elasticsearch ELK ssm ES

2023年互联网Java工程师高级面试八股文汇总(1260道题目附解析)

Java你猿哥

MySQL redis Spring Boot mybatis 多线程

OpenHarmony 3.2 Release新特性解读之驱动HCS

OpenHarmony开发者

OpenHarmony

揭秘!为何阿里P8亲身经历撰写的架构师核心笔记竟如此成功

Java你猿哥

Java 领域驱动设计 软件架构 架构师 分布式架构

基于Spring Boot+VUE Java小程序商城项目(附源码),接私活利器

Java你猿哥

Java 小程序 源码 Spring Boot Vue

Mac版PS2023 24.5 大更新,新增4大AI功能,看完忍不住换了!

Rose

PS2023最新版 PS支持AI功能 Photoshop破解

MySQL踩坑笔记,加了唯一索引还会出现重复数据?

Java你猿哥

Java MySQL sql ssm 索引

简洁高效:Java代码中If-Else结构的优化实践与技巧

xfgg

Java 代码优化

软件测试 | 软件开发的几个阶段

测吧(北京)科技有限公司

测试

史上最全MySQL各种锁详解

Java你猿哥

MySQL 乐观锁 悲观锁 事务/行级锁

volatile 底层是如何实现的?

javacn.site

Mac电脑怎么删除VMware Fusion虚拟机系统,vmware fusion如何删除虚拟机

Rose

VMware Fusion虚拟机 Mac虚拟机 删除虚拟机教程 Win系统

实用自定义 Mac Dock 的隐藏终端命令

Rose

Mac Dock 自定义Dock

Python实现KNN算法

TiAmo

算法 决策 KNN算法

Parallels使用到期怎么办?PD17虚拟机无限试用版安装教程

Rose

Parallels Desktop 17下载 Parallels到期 PD17虚拟机 PD无限试用版

RocketMQ 顺序消费机制

Java你猿哥

Java RocketMQ 获取 topic等信息 ssm

科兴未来|深圳创新创业大赛开始啦!

科兴未来News

企业 深圳 #双创赛事# 新能源行业 深创赛

基于数据驱动 U-Net 模型的大气污染物扩散快速预测,提升计算速度近6000倍

飞桨PaddlePaddle

人工智能 深度学习 百度飞桨

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