互联网技术集中营

其他

万字长文:系统稳定性治理最佳实践

前言系统的稳定性,主要决定于整体的系统架构设计,然而也不可忽略编程的细节,正所谓“千里之堤,溃于蚁穴”,一旦考虑不周,看似无关紧要的代码片段可能会带来整体软件系统的崩溃。稳定性的工作,一般都是水下的工作。就像冰山,真正强大的系统下,要有更加强大的底层支撑,水面下的问题才是真正需要解决的问题。当然不一样的工作内容,水下的工作是不同的,对于盖楼来说,可能就是地基的深度。对于我们写业务逻辑来说,水下的工作就是CatchException的处理,异常情况的处理。对于系统来说,水下的工作可能是一些接口系统的稳定性。类似于金字塔结构,下层基础决定上层建筑。对于软件系统来说,稳定性至关重要。在开始介绍服务稳定性之前,我们先聊一下SLA。SLA(service-level
2022年11月6日
其他

高可用容灾架构演进之路

概述随着移动互联网的深入发展,用户增长达到一定规模后,不少企业都会面高并发业务和临海量数据的挑战,传统的单机房在机器容量上存在瓶颈。在一些极端场景下,有可能所有服务器都出现故障,例如机房断电、机房火灾、地震等这些不可抗拒因素会导致系统所有服务器都故障从而导致业务整体瘫痪,而且即使有其他地区的备份,把备份业务系统全部恢复到能够正常提供业务,花费的时间也比较长。为了满足中心业务连续性,增强抗风险能力,多活作为一种可靠的高可用部署架构,成为各大互联网公司的首要选择。对于系统高可用来说,相信大家都知道如下新闻:2015
2022年8月14日
其他

灰度发布架构设计终极篇

概述在互联网公司中,产品通常迭代比较频繁的,尤其涉及到一些关键比较大项目需求时,影响范围比较大的时候,通常需要进行灰度控制,通过引流一小部分流量到新版本,可以及时发现程序问题,有效阻止大面积故障的发生。业界上已经有比较成熟的服务发布策略,比如蓝绿发布、A/B
其他

如何写好&评审一份技术方案

一、前言作为一个技术开发者,特别是高级、资深开发、架构师等,往往会遇到根据需求撰写技术方案,这里的需求包括业务需求和技术需求。如何评判技术方案的好坏,如何写好技术方案,尤其对于研发人员来讲是非常重要的。我见过太多由于前期规划不到位(甚至是没有技术方案设计,开个技术讨论会口头沟通一下,就直接评工期开干的),这其中不乏很重要,工期很长的项目。而最后呢,到联调阶段各组串不起来,研发和产品同学之间都没沟通清楚,对需求理解不一致。导致最终很被动,到处挖坑补洞,而且花费了更多的时间和精力,项目bug满天飞,甚至导致项目延期,后续扩展性不强等等问题。
2022年7月16日
其他

如何做好CodeReview

一、引言CodeReview对于一个技术团队来讲是非常重要核心的,如果没有一个良好的CodeReview制度,会导致技术债堆积严重,长时间下来影响系统的可维护性、质量以及性能等各方面问题。良好的的CodeReview习惯,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,Code
2022年6月21日