写点什么

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

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

评论 1 条评论

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

微店API接口深度解析:如何高效获取商品详情与店铺所有商品数据

代码忍者

微店商品详情API接口 微店商品列表API

benchANT 性能榜单技术解读 Part 1:写入吞吐

KaiwuDB

数据库

@所有人 2024 IT行业项目管理调查问卷,邀您参与!【有奖问卷】

禅道项目管理

项目管理 程序员 IT 调查报告 禅道

成功迁移客户推荐|ONES 的迁移能力和服务专业性值得信赖!

万事ONES

项目管理 研发管理工具ONES

一线大厂 最新Java面试题大全(整理版)

采菊东篱下

Java 面试

京东店铺所有商品数据接口(JD.item_search_shop)丨京东API接口指南

tbapi

京东API接口 京东店铺所有商品数据接口

关于Mysql查询的那些事儿

伤感汤姆布利柏

京东按图搜索京东商品(拍立淘)API接口的开发、应用与收益

科普小能手

数据挖掘 电商 京东 API 接口 跨境电商运营

谷云科技数据集成社区焕新登场:功能、资源、会员权益全面升级

RestCloud

ETL 集成社区

为什么并发编程是Java程序员的必修课?

了不起的程序猿

高并发 架构师 java程序员 java面试 Java并发编程

【YashanDB知识库】使用vmware虚拟机安装的YashanDB,本机无法访问

YashanDB

数据库 yashandb

不愧是阿里Redis神级手册,从基础到源码,从头到尾没有一句废话

架构师之道

redis 编程

Selenium自动化防爬技巧:从入门到精通,保障爬虫稳定运行

小白的大数据之旅

爬虫 反爬策略 反爬虫 爬虫实战

Java面试八股文(20w字)

Geek_Yin

Java 面试 #java #程序员 #Java面试题 #Java面试八股文

Native Instruments Kontakt 7 for Mac(强大音频采样器)v7.7.3激活版

小玖_苹果Mac软件

如何利用RocketMQ事务消息,来实现分布式事务?比如下单清空购物车的场景

架构师之道

Java 分布式

【YashanDB知识库】yasql / as sysdba无法登录

YashanDB

数据库 yashandb

【YashanDB知识库】安装过程报错: unable to authenticate, attempted methods [none password], no supported methods remain

YashanDB

数据库 yashandb

3分钟理清QPS、TPS、RT 以及它们之间的关系

秃头小帅oi

捷行2024Train-the-Trainer微课程系列 - 第三期 · 从产品敏捷开发升华到企业转型策略

ShineScrum

敏捷 #敏捷开发

面试官:不会“不定高”虚拟列表,你在简历上面提他干嘛?

EquatorCoco

Java 面试

【YashanDB知识库】密码带特殊符号登录报错YAS-02143 invalid username/password, login denied

YashanDB

数据库 yashandb

NFT交易所开发全解析:流程、技术要点与市场趋势

V\TG【ch3nguang】

NFT交易所开发

实践指南|如何构建高效、准确、敏感的指标体系

Aloudata

数据分析 指标体系 指标管理 指标平台 指标开发

体育直播源码是什么?为什么会使用源码开发平台?

软件开发-梦幻运营部

ONES 联合中国信通院权威发布《企业级研发管理系统迁移指南》

万事ONES

项目管理 研发管理 研发管理工具ONES

“AI+Security”系列第4期(二):LLM辅助的模糊测试增强技术

云起无垠

【YashanDB知识库】启动yasom时报错:sqlite connection error

YashanDB

数据库 yashandb

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