首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏斑斓

    软件系统稳定性

    软件系统稳定性,主要决定于整体的系统架构设计,然而也不可忽略编程的细节,正所谓“千里之堤,溃于蚁穴”,一旦考虑不周,看似无关紧要的代码片段可能会带来整体软件系统的崩溃。 ,此书获得了2008年度Jolt大奖的提名,在Nygard的个人网站上,提及他写作此书的动机: 这本书凝聚了我多年来与生产系统打交道的经验。 我经常因为某些本该24x7运作的系统宕机,而在半夜三点受到惊扰。 关于系统设计和架构的书籍往往只告诉你怎样满足功能需求,的确这类书籍对你在QA面前过关会有很大帮助。 软件系统稳定性,主要决定于整体的系统架构设计,然而也不可忽略编程的细节,正所谓“千里之堤,溃于蚁穴”,一旦考虑不周,看似无关紧要的代码片段可能会带来整体软件系统的崩溃。 △ 代码片段,需单击放大或横向阅读 这一小段代码是造成Airline系统崩溃的罪魁祸首。

    7.8K60发布于 2018-03-07
  • 来自专栏编程一生

    系统稳定性建设

    现在上上下下组成了一支牛人团队,请来了其他部门很多资深高手进行封闭开发,确保我们系统稳定性。   选择一份工作,必然要考虑的是:我们是做基础设施的,还是做平台的,还是做核心链路的。 基础设施最重要的指标是稳定性、性能、扩展性。平台讲究多业务,通用性,人效。所谓人效就是我这个平台有些自动化的东西不能满足需求,需要靠手工来完成,这样开发人员的人效就低。 checklist:   核心链路最重要的是稳定性。如果拿到一手烂代码,到了非重构不可的程度。那么重构之前要弄明白几个问题:原系统TOP5的主要问题是哪些?我重构了就能解决这些问题吗? 日志 建议应用日志不超过磁盘的30%,使用日志组件的性能和稳定性? 其他组件,如databus 是否有监控?是否单点?自动fail over? 依赖内外部系统 下游系统1 timeout配置? 组件和版本:   维护系统稳定性要注意选择合适组件和版本。   比如Apache Tomcat被纰漏有高危漏洞。

    2.6K21发布于 2018-07-02
  • 来自专栏个人总结系列

    大数据系统稳定性

    前言 计算公式:系统稳定性计算公式(年度): (100 - (故障分钟数 / 全年的分钟总数 * 100)) % 说明: 期望一年能达到的系统稳定性为: 99.99%,允许出现问题的最长时间是:52.56 分钟; 期望一个季度能达到的系统稳定性为:99.99%,允许出现问题的最长时间是:17.28分钟。 运维人员 应用运维、系统运维、所有角色一主一备(AB角)。 ps: 厂商责任机制:如果有故障时长,则给予对应102.4倍服务时长的补偿。

    2.4K00发布于 2021-04-22
  • 来自专栏韩曙亮的移动开发专栏

    【数字信号处理】离散时间系统稳定性 ( 稳定性概念 | 稳定性用法 )

    文章目录 一、离散时间系统稳定性 二、离散时间系统稳定性实际用法 一、离散时间系统稳定性 ---- 线性时不变 LTI 系统 , 如果 " 输入序列 " 有界 , 则 " 输出序列 " 也有界 ; 充要条件 : \sum^{+\infty}_{m = -\infty} |h(n)| < \infty 二、离散时间系统稳定性实际用法 ---- 实际用途 : 设计一个 滤波器 , 设计完 滤波器参数 后 , 不需要求该系统的 " 单位脉冲响应 " h(n) 是否是 绝对可和 的 , 直接设置一个 " 输入序列 " x(n) , 查看 " 输出序列 " y(n) 是否有界 即可 , 如果输入一个 有界的 " 输入序列 " , 得到一个 无穷多的 ( 无界 ) 的 " 输出序列 " , 那么该系统就是一个 不稳定系统 ;

    3.9K30编辑于 2023-03-30
  • 来自专栏Linyb极客之路

    系统稳定性治理最佳实践

    那么系统稳定性该如何治理?有没有什么标准或者可以放之四海皆准的方法论和实践? 系统稳定性问题 ? 一个系统稳定性取决于很多因素,同样也受制于很多因素。 稳定性治理 稳定性治理的核心三板斧,监控、压测和演练。 监控 监控如果做到了360无死角,则可以第一时间主动发现系统异常,定位到了解决则是相对明确的。 压测可以用自动化的手段来在真实环境下获得系统稳定性问题,提前发现系统异常和薄弱环节。 演练 监控发现问题治理,压测探查系统薄弱瓶颈,而演练则是在生产上真实的创建故障,用来发现系统稳定性、鲁棒性和自动恢复性,还能检测应用负责人是否有快速响应系统异常的能力、止血和修复的能力。 系统稳定性压倒一切,只有保障了好了稳定性,才能帮助业务蓬勃增长,因此稳定性治理始终是工程师基本能力之一。

    2.3K30发布于 2020-08-27
  • 来自专栏服务端技术杂谈

    系统精壮性到系统稳定性

    有些指标反映了系统负载到一定瓶颈了,包括核心业务指标,系统指标。 在分布式系统中,网络是不可靠的,为应对网络不可靠导致的通信问题,一般需要重试; 对于分布式存储系统中,因为很多算法是基于超半数确认算法实现的,如何确保自己获取的值是准确的呢? 1.如果服务层、存储层不能保证高可用,服务整体的稳定性无从谈起。 所以很多时候架构设计不合理或是技术选型不对,也会埋下坑,对后续的系统稳定性带来挑战。 ,可以准确反映系统指标,有很好的容器扩容平台,进线容器的快速扩缩容。

    1.2K30发布于 2020-10-29
  • 来自专栏得物技术

    系统稳定性与高可用保障

    一、前言 高并发、高可用、高性能被称为互联网三高架构,这三者都是工程师和架构师在系统架构设计中必须考虑的因素之一。今天我们就来聊一聊三H中的高可用,也是我们常说的系统稳定性。 要想提升一个系统的可用性,首先需要知道影响系统稳定性的因素有哪些。 三、影响稳定性的因素 首先我们先梳理一下影响系统稳定性的一些常见的问题场景,大致可分为三类: 人为因素 不合理的变更、外部攻击等等 软件因素 代码bug、设计漏洞、GC问题、线程池异常、上下游异常 硬件因素 四、提升稳定性的几种思路 4.1 系统拆分 拆分不是以减少不可用时间为目的,而是以减少故障影响面为目的。 具体一点就是结合应用的 Load、总体平均 RT、入口 QPS 和线程数等几个维度的监控指标,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性

    1.2K21编辑于 2023-06-06
  • 来自专栏服务端技术杂谈

    换个角度聊系统稳定性建设

    什么是系统稳定性 关于如何定义系统稳定性是一个很难的问题,因为围绕于系统稳定性可定义的视角太多了,我简单说下我的理解,起到抛砖引玉的目的。 系统稳定性关心的是:服务与数据。 稳定性主要解决的是:容错与恢复。 ? 如何做到系统稳定性 在聊系统稳定性之前,我们先看下我们的需求是如何一步步交付的。 需求交付生命周期 ? 总结来说:避免引入过多临时解决方案,使得系统技术债越来越多,影响系统稳定性。 如果存储层做不好高可用,上层服务就难言稳定性。如果我们的系统中存在大量未经设计的临时实现,大量的技术债堆积,总有一天会反噬系统,造成稳定性风险。

    1.8K20发布于 2020-12-08
  • 来自专栏FunTester

    混沌工程:系统稳定性的“疫苗”

    在混沌工程中,我们主动向系统引入可控的故障,模拟真实世界中的异常情况,从而提前暴露系统的潜在弱点。这是一种防患于未然的策略,目的是提高系统在极端情况下的稳定性与弹性。 聚焦关键系统::优先对用户体验至关重要的系统进行测试,如支付服务、订单系统。 自动化与持续集成::将混沌工程集成到CI/CD流水线中,实现自动化测试,保障每次部署的可靠性。 适用场景:适合需要精细控制实验的企业,尤其是对系统稳定性要求极高的行业,如金融、医疗等。 3. LitmusChaos 特点:基于 Kubernetes 的开源工具,专注于云原生环境下的韧性测试。 企业级平台,细粒度故障模拟,丰富的用户界面 企业级应用,高稳定性要求行业 LitmusChaos Litmus Kubernetes 原生支持,专注于云原生韧性测试 云原生、Kubernetes 环境 持续改进:通过持续集成和持续交付(CI/CD)管道,混沌实验可以成为系统开发和运维流程的一部分,帮助团队不断优化系统的韧性。

    61610编辑于 2025-02-05
  • 来自专栏创作是最好的自我投资

    如何提高业务系统稳定性

    下面开始今天的正文内容...今天主要是想聊一下如何来提高业务系统稳定性。可以说,业务系统是企业的门面,业务系统稳定性,直接决定这用户对于企业的信任度。 对于业务系统来说,业务系统的问题最直接影响的就是用户的体验,耗费的也是用户对于企业的信任值。那么如何提高业务系统稳定性呢? 业务系统初始业务系统初始时刻,企业为了可以快速上线来把握用户,往往会采用比较直接易构建的方式,比如:单点架构。单点架构是一种常见的部署架构,满足业务基本需要,通常是由一台服务器,一个单节点数据库组成。 但是同样的,带来的劣势也很明显:稳定性不够,单一节点故障,业务系统整个不能用;弹性能力不够,当用户量波动时,峰值用户量可能会导致业务系统无法响应,扩容成本高;升级不变,每次系统升级都需要停机升级,降低用户体验 同时,ALB、ECS、RDS均具备跨可用区的自动备份和灾难恢复能力,这也进一步确保关键数据的稳定性和安全。基于以上对于云上高可用架构的理解,下面我们再来看看以下的讨论。如何降低日常业务中断的风险?

    58820编辑于 2024-11-28
  • 来自专栏服务端技术杂谈

    拆解交易系统--服务稳定性

    所以如何做好服务拆分后的交易系统稳定性也就尤为重要。 主要方式一般是:自动预案,限流保护。 当我们对系统进行了微服务拆分之后,服务之间有了良好的边界,可以有效的进行服务故障隔离,防止因雪崩造成的系统崩溃。 而针对于流量激增情况时,系统会有什么表现呢? 但是在一个链路过长的交易系统中,势必会有一些系统因各种原因不能很好的服务于链路请求,这种情况可以依据系统优先级,在系统稳定性受到挑战时进行降级,而确保核心路径不受影响。 梳理好系统之间的强弱依赖,可以更好的配置降级,限流阈值。针对于弱依赖的服务可以直接降级掉,或者返回兜底默认值。 上面说了系统稳定性的宏观层次,限流,熔断,降级,以及单点问题。 其实稳定性很大一部分程度是需要在工作流程和工作方式上展开的。 比如你的代码或者新需求,是否可以做到快速回滚,快速应急处理降低损失。

    1.3K30发布于 2020-01-17
  • 来自专栏FunTester

    故障测试助力系统稳定性

    在现代互联网业务中,系统的高可用性和稳定性可谓是企业运维的头等大事。正所谓,未雨绸缪,防患未然。但话又说回来,哪怕架构设计再精妙,监控体系再完善,也难保线上系统不会“翻车”。 那么,如何减少系统故障对业务的冲击,提升系统的抗压能力呢?故障测试,便是破解这一难题的“法宝”。 可以说,每一次故障测试,都是对系统架构的一次“硬核打磨”。正如混沌工程的理念所强调的——在“有意识地制造混乱”中,找到系统的薄弱点,并不断强化,最终打造一套“稳定如磐石”的分布式系统。 故障测试的五个关键步骤: 明确测试目标:首先要确定“打哪儿”,例如验证系统在数据库宕机时的处理能力,或评估服务在高并发情况下的稳定性。目标明确,才能“有的放矢”。 总结 故障测试,并非单纯地“制造问题”,而是一种“主动出击”,通过模拟故障场景,提前发现系统的薄弱点,从而不断优化架构、提升系统稳定性的重要手段。

    51310编辑于 2025-03-14
  • 来自专栏漫谈测试

    系统稳定性和性能工程的关系

    线上业务的压力逐渐增加,面对这样的严峻考验,企业对自身业务的支撑体系,考虑的不应该是只是功能的完整性,生产环境的系统性能,系统稳定性也是企业重点考虑的,例如系统稳定性指标,接下来聊一下系统稳定性定义 稳定性可以分为以下几类:‌动态稳定性‌:指系统在发生变化时输出值的稳定性。‌可靠性稳定性‌:指能够持久有效的稳定性,通常要求系统的变化有一定的控制。‌ 系统稳定性‌:指系统能够自动进行所需的调整,以适应外界变化的稳定性‌1系统稳定性的优点和缺点稳定性的优点包括:‌提高系统的可靠性‌:稳定性可以保证系统在外部环境变化时继续正常运行,使得系统更加安全可靠。‌ 系统稳定性不仅包括软件本身的稳定,还包括软件所在系统的稳定,还包括软件系统在当前基础环境中的稳定性,涉及到机房迁移和网络切换下的稳定性情况。 系统稳定性系统稳定性主要关注的是系统在各种条件下的可靠性和可用性。这包括系统在高负载、异常输入或硬件故障等情况下仍能正常工作的能力。

    61110编辑于 2024-11-26
  • 企业如何利用YashanDB提升系统稳定性

    在现代多变的商业环境中,企业面临着信息处理能力的诸多挑战,如系统崩溃、数据丢失等。为应对这些挑战,提升数据库系统稳定性显得尤为重要。 YashanDB作为一款先进的分布式数据库,凭借其独特的架构和技术特性,能够为企业提供更为可靠的系统稳定性保障。本文将深入分析YashanDB提升系统稳定性的核心技术点及其优势。核心技术点1. 安全性与权限管理在系统稳定性中,安全性也是不可忽视的重要因素。YashanDB提供了基于角色的访问控制、用户身份认证等多种安全机制,防止未授权访问与数据泄露。 结论综上所述,YashanDB具备提升企业系统稳定性的多项技术优势,企业应充分利用YashanDB的高可用性架构、主备复制机制、事务管理、数据备份与恢复等功能来构建安全稳定的数据库环境。 通过实施上述建议,企业在面对各种突发情况时,将能够显著增强系统稳定性与数据的安全性,保障业务的连续性。

    13110编辑于 2025-07-14
  • 来自专栏性能与架构

    Twitter是如何保障系统稳定性的?

    Twitter时常会因为某个热点事件导致系统压力突增,例如前两年日本的“天空之城”事件使Twitter创造了新的发推记录,之前是每秒1万条左右,因为这个事件,突然达到了每秒3.4万条,而Twitter的系统并没有受到多大影响 ,并分析各个情况及相应的处理方法,形成预案,以备快速处理突发状况 压力测试 能够从容的面对突发压力,是因为背后长期的准备工作,经常对整个系统进行压力测试 每月都会跑一遍压力测试,并分析每个系统的状况 每周检查整体性能指标 ,和每个服务的性能指标,清晰了解当前的处理能力 讨论分析系统是否处于高效运行状态、当前服务器数量是否足以支撑预期的产品状态、是否需要买更多的机器 …… 例如发现某个服务不正常,处理的请求数明显低于其他服务 ,就要对其进行仔细检查,看他是否正常、是否需要对其进行调整 …… 像“天空之城”事件带来的压力,之前是没有实际经验的,但压力测试早已把系统推向了那个高度,所以,当它发生时,只是一次真实的验证 极端测试 用作紧急情况下的指导文档 虽然不可能想到所有的情况,但至少会列出测试中发现的那些问题,并指明如何处理 还有一个巨大的玻璃墙,上面记录着关键信息,在问题发生时能够帮助进行快速决策 提前做好准备、想好出现问题时如何处理,是保证稳定性的重要思路

    1.1K60发布于 2018-04-03
  • 来自专栏腾讯云中间件的专栏

    高并发场景下如何保证系统稳定性

    主要有以下几个设计要点: 秒杀子系统与主站资源隔离; 系统需要具备限流能力,能够消化掉秒杀开始瞬间的巨大流量; 系统需要具备快速扩展能力; 削峰填谷,避免写流量压垮数据库; 热点商品提前缓存 高可用:保证系统不宕机,即使发生故障,过载保护也能将故障控制在小范围内,不会影响核心业务运行。 高扩展:系统具备水平/垂直扩展能力,避免单个服务成为性能瓶颈。 通过控制 QPS 的方式,把后端服务无法承受的部分流量拒绝掉,只将能够稳定处理的流量放入进来,避免后端服务被瞬时的流量高峰冲垮,在南北向设置阈值,保障大后方的稳定性。 在秒杀场景下,系统增加了一个秒杀子系统,专门为大促活动时,商品秒杀使用,先来看下架构图。 从最北向进来的流量会首先经过云原生网关,到达商城主页。 《微服务上云快速入门指引》 《Apache Pulsar 在微信大流量实时推荐场景下的实践》 《好未来基于北极星的注册中心最佳实践》 《百万级 Topic,Apache Pulsar 在腾讯云的稳定性优化实践

    1.9K40编辑于 2022-11-22
  • 来自专栏架构精进之路

    【云+社区年度征文】系统稳定性建设实践总结

    简单理解,系统稳定性本质上是系统的确定性应答。 从另一个角度解释,服务稳定性建设就是如何保障系统能够满足SLA所要求的服务等级协议。 二、为什么需要系统稳定性建设? 那系统稳定性建设的主要难点是什么呢? 3.2 系统稳定性建设是一个系统性的大工程 多环节分工精细复杂,不容一点疏忽。 从系统构成来看,可以区分为单服务系统稳定性和多服务集群稳定性。 四、系统稳定性建设如何入手? 那我们可以以小见大,从单服务系统本身出发,提炼看看存在哪些稳定性建设的关键点。其实只有每个单服务环节都稳定可靠,那集群系统乃至整个工程系统稳定性才有保障。

    2.2K162发布于 2020-12-01
  • 来自专栏软件系统思考

    提高系统稳定性的三个阶段

    前言 在软件开发过程中,系统稳定性非常重要,良好的系统稳定性不仅能够提高开发效率,还能减少维护成本,提升用户体验。 我认为,提升系统稳定性有三个阶段:监控、排查和代码质量。 如果没有有效的监控机制,我们就无法及时发现系统中的问题,进而无法采取有效的措施来解决这些问题。在这个阶段,我们需要建立全面的监控系统,能够对系统的各个层面进行实时的监控。 全面覆盖 监控应该覆盖系统的各个方面,包括网关层面、接口层面(主调、被调、属性)、机器层面等等 历史数据分析 通过分析历史监控数据,我们可以识别系统的性能瓶颈和潜在的风险,从而进行预防性维护。 后续会预研单元覆盖率的自动检查,覆盖率不达标不得合并到master 规范化 平时开发需要遵守代码规范 发布需要遵守 总结 提升软件系统稳定性是一个持续的过程,需要我们从监控、排查和代码质量提升三个方面入手 只有在这三个阶段都做到位,才能真正提升系统稳定性和可靠性。

    1.1K00编辑于 2024-09-19
  • 来自专栏让技术和时代并行

    衡量软件系统稳定性三个常用指标

    可观测 监控其本质就是软件系统运行情况的可视化,具体参考:Prometheus+Grafana的思考和实践,打个形象的比方,你在开车的时候,你不知道你的时速是多少?那么如何决定什么时候加速? 在缺少告警机制的情况下,无法第一时间洞悉到系统发生故障,只能通过用户的反馈来获取,系统运维人员往往也只是充当了一个“救火” 队员,大面积的系统瘫痪往往也会给企业和用户带来极大的损失。 通过监控,服务可以在系统受损的第一时间得到反馈,并通过电话/短信进行告警,oncall 人员及时处理问题,大大减小了系统故障对企业和用户造成的影响,更有可以做到无感知的修复。 就像最近一段时间提出的 AIOps,这种高度自愈的系统一定是软件运行的终极目标。但这跟软件工程并不冲突,学会用科学的方法实现最大化软件收益仍然是最重要的。

    2.1K20编辑于 2023-03-18
领券