- 博客(47)
- 收藏
- 关注
转载 从二十个严重的配置故障中我们能学到什么?
作者:焦振清配置变更的痛点时效性,很多配置变更的场景,其生效时间是有明确要求的,尤其是止损相关的操作。如流量调度的配置生效时间不超过 5min,这是由 SLA 所决定的。因为 5min 的生效要求,所以这类配置变更基本上不会进行灰度,直接就全量生效了。动态化,在上下游关联关系的场景中,服务的 IP 地址列表和数量均会发生变化的,站在整个系统角度去看,可能每时每刻都会有服务因扩容、缩容、...
2019-12-24 11:18:50 476
转载 上云了,如何保障云数据库的高可用?
责任共担模型朋友和我吐槽,自从他负责的系统上云后,在云数据库上经历了好几次故障,而事后的故障复盘,居然都是他们自己的责任和问题,这让他很被动。更尴尬的是,原想着上云后,数据库的问题都是公有云厂商负责,所以他们运维团队中也没有招聘 DBA,当下没有很好的优化思路,于是找我一起探讨这个问题。朋友的这个 Case 很典型,认为上云就万事大吉,上云后一旦出现问题,又会觉得上云各种不靠谱。在公有云厂...
2019-12-03 10:41:05 543
转载 混沌工程落地的六个阶段
作者:焦振清混沌工程六个阶段从笔者所在团队的实践出发,我们将混沌工程总结为六个阶段,并对各个阶段的落地过程加以总结,希望能够对大家落地混沌工程有所帮助。今天主要是抛砖引玉,后续针对每个阶段,陆续会有专门的文章进行介绍。而混沌工程理论相关的部分,大家可以参考由 Netflix 出版的《混沌工程》迷你书。上述各阶段涉及的部门和人员的数量,远远超过了当初的预估,因此该部分成为我们确定顺序...
2019-11-13 14:32:28 681
转载 Puppet:维护运行环境一致性的利器
作者:焦振清配置管理工具的定位每次我提到配置管理工具,有些同学就会问类似的问题:容器化时代和Serverless时代,还需要配置管理工具吗?我们先不去讨论容器化之后是否需要配置管理工具,那什么时候容器能够在全球范围达到100%的普及?什么时候AWS仅提供容器而不再提供虚拟机呢?之所以会有如上的问题,根源还在于配置管理工具的定位,到底要解决什么问题?配置管理工具的厂商当然希望你什么事情都...
2019-10-25 11:37:09 629
转载 预案三板斧之降级大法
作者:焦振清降级的可行性二八原则二八原则放在电商系统里,大概可以这样解释:电商系统 80% 的收益是由 20% 的基础功能所贡献,而剩下的 20% 的收益则是由 80% 的高阶功能所贡献。在如今全民网购的时代,大家对于在京东上购买一件商品的步骤都不会太陌生,顺序大致如下:打开首页,搜索商品,进入商品详情页,添加购物车,登录,下单,结算,支付,一共八个步骤,分分钟搞定。电商企业为...
2019-10-23 09:03:52 1101
转载 跨 AZ 部署最佳实践之 Zookeeper
作者:焦振清跨 AZ 部署是实现服务高可用较为有效的方法,同时也极具性价比。如果实现了跨 AZ 部署,不仅可以消除服务中的单点,同时还可以逐步建设如下能力:服务隔离,灰度发布,N+1 冗余,可谓一举多得。因此,接下来我们会对有状态的开源软件进行一系列的跨 AZ 部署的介绍,本次介绍 Zookeeper。ZK 容错数Zookeeper 有这样一个特性:集群中只要有过半的机器是正常工作的,...
2019-10-22 14:44:36 5337
转载 摆脱无效报警?十年运维监控报警优化经验总结
作者:焦振清运维工程师面试者第一个问题是:需要值班吗?笔者自己也曾经历过月入十万的时期,在那个时候,数个系统同时发布下一代版本,而老系统还需要过渡很长时间,工作量直接翻倍,大家只能勉强应付一线运维工作,团队成员开始陆续离职,而新人又无法在短时间内上手,整体情况不断恶化,持续半年左右才缓过劲来。下面两张截图是我挑选的两个团队一周报警数的对比图,前者的单日报警量最高是 55348 条,后者单日...
2019-10-22 14:43:21 3200 1
转载 任务调度系统如何通过隔离提升可用性?
作者:焦振清今天聊的任务调度系统,在开源领域中近似的就是 Ansible 了。Ansible 通过在集群上执行命令解决各类业务问题,从而管理千台规模的集群,自身安装和维护都非常简单,因此得到迅速普及,深受运维人员喜欢。下图就是 Ansible 的典型场景,在 Ansible-Server 上,对一组机器列表下发指定的命令并回收执行结果,从而完成一次任务的执行。在大型的互联网公司中,任务...
2019-10-22 14:42:17 502
转载 从美国 FDA 新药审批制度看分级发布最佳实践
作者:焦振清新药临床试验的”黄金标准“美国 FDA 新药审批流程被公认为世界上最完备,最科学的程序。目前的标准是从 1962 年开始实施,被称为是新药临床试验的”黄金标准“。其新药审批流程整体如下图所示,在此,我们重点介绍临床试验阶段的试验规模和试验方法 临床一期实验目标是安全性,允许小范围的人群试验,通常招募 20-100 个健康的志愿者,付钱给他们,让他们服用该药物,严密监测可能...
2019-10-22 14:41:04 1229
转载 从云厂商宕机史谈预案建设
作者:焦振清云厂商宕机史限于故障信息的披露涉及到很多环节,因此本文只从网络上摘选一些信息进行罗列,同时,各类故障的占比,也要辛苦大家自己来慢慢挖掘了。AWS 十年宕机史2018 年十大云宕机预案执行优先级当发生服务故障后,应该立即执行哪些预案,预案执行的先后顺序是什么,主要是看预案执行的效果,基于以下因素,不同业务自行决定预案的执行顺序概率优先首先需要考虑故...
2019-10-22 14:39:24 479
转载 预案三板斧之限流大法
作者:焦振清限流策略:多维防御 + 纵深防御限流能力限流是针对请求的各种特征,多维防御 + 纵深防御,从而限制流量,实现对服务端资源的合理使用。这里的特征是指一个请求所包含的各种信息,包括但不限于 IP、Header、URI、Cookie 等。常见的限流策略有以下三种(以 Nginx 为例进行说明):限制请求数,意思是请求的次数不能太多 Nginx:http://nginx.o...
2019-10-22 14:36:09 397
原创 服务变更如何做到高可用?
作者:焦振清近期,Cloudflare在更新 WAF 配置规则时,因其中一个规则包含了正则表达式,导致 Cloudflare 全球机器上的 CPU 峰值使用率达到 100%,在最糟糕的时候,流量下降了 82%,对整个互联网都产生了明显的影响。因此,变更的定义,不仅仅是狭义的上线新版本代码,也应该包含配置变更,数据变更,操作系统变更,网络变更,基础设施变更等方面。变更是运维人员的主要工作...
2019-08-23 10:07:22 395
原创 跨AZ部署最佳实践之Elasticsearch
作者:焦振清跨AZ部署是实现服务高可用较为有效的方法,同时也极具性价比。如果实现了跨AZ部署,不仅可以消除服务中的单点,同时还可以逐步建设如下能力:服务隔离,灰度发布,N+1冗余,可谓一举多得。因此,接下来我们会对有状态的开源软件进行一系列的跨AZ部署的介绍,从Elasticsearch开始。最佳实践首先,我们介绍下Elasticsearch基于跨AZ部署的最佳实践,下图1是一个...
2019-07-18 17:31:28 1618 1
原创 服务部署如何做到高可用?这份“三级跳”秘籍送给你
作者:石文文一个高可用的服务需要从部署、变更、预案、监控、安全等多方面考虑。如何做到99.99%服务高可用的要求,需要各个角色的工程师共同努力。从部署的角度,本文介绍了高可用服务所需具备的规范,案例部分通过对Yum源服务架构的演变让读者更好的理解高可用服务部署,希望对大家有所帮助。高可用部署要求图1 高可用部署(*注:随着服务满足高可用要求的增多,服务的高可用能力就...
2019-07-18 15:22:45 296
原创 服务变更如何做到高可用?这份指南请查收
作者:焦振清一个高可用的服务需要从部署、变更、预案、监控、安全等多方面考虑。如何做到99.99%服务高可用的要求,需要各个角色的工程师共同努力。本文介绍了高可用服务在变更方面的经验积累和最佳实践,以及一些配置变更的易错点,供大家参考近期,Cloudflare在更新WAF配置规则时,因其中一个规则包含了正则表达式,导致 Cloudflare 全球机器上的 CPU 使用率峰值达到 100...
2019-07-18 15:21:08 244
原创 最受欢迎的Java web应用服务器之一——Tomcat监控选型及实践
监控选型 Tomcat Manager和Psi-probe是不错的可视化监控工具,能够很好地查看Tomcat状态信息(比如单位时间请求数,线程状态等)。在生产环境中,随着Tomcat实例的不断增加,维护不同实例上的Manager控制台会显得有些繁琐,同时,为了与企业监控系统、运维仪表盘等结合,有必要选择兼容性和适配性更好的监控工具。 如今,企业微服务的流行和CI/CD的强需求性,要...
2019-01-07 15:41:42 15734
原创 HDFS监控背后那些事儿,构建Hadoop监控共同体
HDFS监控挑战 HDFS是Hadoop生态的一部分,监控方案不仅需适用HDFS,其他组件如Yarn、Hbase、Hive等,也需适用 HDFS API提供的指标较多,部分指标没必要实时采集,但故障时需能快速获取到 Hadoop相关组件的日志,比较重要,如问题定位、审计等 监控方案不仅能满足监控本身,故障定位涉及指标也应覆盖 Hadoop监控方案...
2018-12-21 09:54:35 2764
原创 从理论到案例,请收下这篇Nginx监控运维干货
Nginx特性 作为Web服务器,Nginx不免要与Apache进行比较。相比Apache服务器,Nginx因其采用的异步非阻塞工作模型,使其具备高并发、低资源消耗的特性,高度模块化设计使Nginx具备很好的扩展性;在处理静态文件、反向代理请求等方面,Nginx表现出很大的优势。 Nginx常见的使用方式 Nginx可以作为反向代理服务器来转发用户请求;并能够在处理请求的过...
2018-12-13 14:27:49 36452
转载 Azure Best Practices Availability Checklist
Application designAvoid any single point of failure. All components, services, resources, and compute instances should be deployed as multiple instances to prevent a single point of failure from aff...
2018-12-12 10:22:46 401
原创 Elasticsearch运维经验总结
版本说明:5.6.4(要严格注意ES及其插件、第三方工具的版本匹配关系)系统负载:(日志集群,日均写入10TB,保留7天)1,出于高可用的考虑,同一个分区的多个副本不会被分配到同一台机器如下截图所示,Index:queries,设置20副本,5分片。这个集群当前有14个可用数据节点,queries的0分区在这14个数据节点上均有且仅有一个副本,剩余的7个副本显示UNASSIGN...
2018-12-10 16:38:41 20857 4
原创 如何彻底杜绝磁盘报警
说起磁盘报警,相信大家都是一副不屑的眼神,这种事情,还需要专门写一篇文章?哥们你是闲的慌吧。大家不屑的原因是:磁盘报警没什么了不起,只要服务进入稳定状态,各种磁盘报警都经历一次,查漏补缺,以后磁盘报警就很少了,偶尔半夜来几条,也无伤大雅,搞运维嘛,还能没报警呀。那么这种思路违反了一个原则:同样的错误不能犯两次!并且处理问题太过被动,让问题挨个半夜找上门来,也太辛苦了。所以,我和团队的同学提出一个问...
2018-12-10 16:36:59 1367
原创 nginx的日志格式标准
相信互联网的从业人员,或多或少都会接触access_log进行一些信息的提取和分析,那么如何高效的达成目标,今天我就将业务线的实践分享给大家。虽然我很羡慕那些能够把access_log分析命令写得足够长的人,但我并不建议在线上依然保持如此原始的方式,通过使用格式化的日志格式,我们会获取以下收益:日志需求分析标准化 日志需求分析工具化|插件化 日志字段含义清晰 离线分析系统统计方法标准...
2018-12-10 16:35:40 2301
转载 C&C控制服务的设计和侦测方法综述
这篇文章总结了一些我在安全工作里见到过的千奇百怪的C&C控制服务器的设计方法以及对应的侦测方法,在每个C&C控制服务先介绍黑帽部分即针对不同目的的C&C服务器设计方法,再介绍白帽部分即相关侦测办法,大家来感受一下西方的那一套。这里的白帽部分有一部分侦测方法需要一些数据和统计知识,我也顺便从原理上简单讨论了一下用数据进行安全分析的方法,从数学和数据原理上思考为什么这么做,可以...
2018-12-10 16:33:52 2526
原创 预案建设-切流量
预案是指对潜在的突发事件事先制定的应急处理方案,在运维领域,则是为规避故障或尽快从故障中恢复而制定的方案,其目的是第一时间止损、防止局势进一步恶化,以期最大程度地保障业务系统的可用性。切流量是应对外网故障的有效手段,这篇文章介绍下我们如何建设外网切流量预案。外网切流量实质上是切换流量入口,而流量入口更多的则体现为IP,所以切流量其实说的就是切换IP。切换IP需要考虑很多因素,比如IP及带宽...
2018-12-10 16:32:08 418
原创 Hadoop预留磁盘空间问题
在hdfs-site.xml中设置dfs.datanode.du.reserved的值,磁盘就会有预留空间:<property> <name>dfs.datanode.du.reserved</name> <value>2147483648</value> #2GB <说明>Reserved ...
2018-12-10 16:30:03 2114
翻译 第七章 简单化
作者:John Lunney, Robert van Gent, Scott Ritchie,Diane Bates and Niall Richard Murphy一个可正常工作的复杂的系统总是从以前可以正常工作的简单系统演变而来的。 ——Gall’s Law简单化是SRE的重要目标,因为它与可靠性密切相关:简单的软件很少出现故障,在故障发生时更容易且迅速地修复。简单的系...
2018-12-10 16:12:17 403
翻译 第六章 减少琐事
Google SRE花费大量时间对系统进行优化,哪怕是很少的性能收益,也会通过工程化方法,与开发一起协同努力,追求卓越。但优化范围不仅局限于服务器资源,SRE的工作耗时也是重点。首先,SRE工作不是琐事,(关于琐事请参阅《SRE:Google运维解密》第5章内容)。本章我们将琐事定义为与维护服务相关的重复的、可预测的、持续的任务流。对于任何产品运维团队来说,琐事不可避免。运维不可避免地需要处理...
2018-12-10 16:11:15 829
翻译 第五章 报警 SLO
本章介绍如何在发生重要事件将SLO转换为可操作的报警。我们的第一本SRE和本书都讨论了实施SLO。我们相信,拥有很好的SLO可以衡量你的平台可靠性,正如你的客户所经历的那样,可以为on-call人员该如何迅速做出响应提供最准确的提示。在这里,我们提供了有关如何将这些SLO转换为报警规则的具体指导,以便你在消耗过多的错误预算之前响应问题。我们的示例展示了一系列报警指标和逻辑的复杂实现;讨论他们的...
2018-12-10 16:10:11 1242
翻译 第四章 监控
作者: Steven Thurgood、David Fergusonwith编辑: Alex Hidalgo、Betsy Beyer校验:张胜楠,臧万顺,樊帅宇,刁冰雪监控涉及到多种类型的数据,包括监控指标,纯文本日志,结构化日志,分布式跟踪日志, event introspection。 以上各种数据都有它们各自的用处,但是本章主要讨论监控指标和结构化日志。根据我们的经验,这两种数据...
2018-12-10 16:09:20 468
翻译 第三章 SLO工程案例学习
作者:Ben McCormack (Evernote),William Bonnell (The Home Depot),编辑:Garrett Plasky (Evernote),Alex Hidalgo,Betsy Beyer和Dave Rensin尽管SRE的许多原则都是在Google内部形成的,但它的原则早已存在于Google之外。许多Google SRE的标准已被业内多个组织实践应...
2018-12-10 15:36:03 1210
翻译 第二章 实施SLO
作者: Steven Thurgood、David Fergusonwith编辑: Alex Hidalgo、Betsy Beyer翻译:张翔校验:孙建刚,徐德昌,张永福,李昊,石文,李佩京SLO为服务可靠性设定了一个目标级别。它是可靠性决策的关键因素,所以是SRE实践的核心。无论从哪个角度来看,这都将是本书中最重要的一章。我们只有具备了一定的理论,设置初始的SLO并细化它们,...
2018-12-10 15:35:16 1165
翻译 第一章 SRE与DevOps之间的联系
作者:By Niall Richard Murphy,Liz Fong-Jones, and Betsy Beyer,with Todd Underwood, Laura Nolan,and Dave Rensin运维是一门很难的学科。 不但没有解决如何很好地运行系统,即便那些已经在使用的最佳实践也是高度依赖环境且未被广泛采纳的。 并且最重要的,没有解决如何良好地管理运维团队这一问题。人们普遍...
2018-12-10 15:33:27 1673
原创 Elasticsearch运维宝典——监控实战篇
监控,是服务可用性保障的关键之一。本文从运维角度,对ES服务监控进行了系统性总结,涵盖监控工具选型、监控采集项筛选介绍,最后列举了几个借助监控发现的ES线上问题。 ES监控概览 针对ES进行监控,主要期望解决这几种场景: ES日常服务巡检,帮助运维开发人员及时发现隐患 ES服务异常后,帮助运维开发人员及时发现故障 采集的ES监控指标,帮助运维开发人员迅速定...
2018-12-10 15:21:47 35165 1
原创 你与Kafka监控进阶,只差一个“视角”的距离
Kakfa监控实践监控工具选择实际使用中对比了多种Kafka监控工具,最终选择如下几种工具:Kafka Monitor:这是LinkedIn开源的Kafka核心功能监控工具,并且提供了可视化界面。它可以模拟数据生产并消费,基本上覆盖了黑盒监控大部分指标,包括集群核心功能、数据读写、读写延迟等。使用者使用成本也相对简单,只需对接告警系统即可。如果你的产品用到了Kafka,强烈推荐使用...
2018-12-10 15:18:54 752
原创 以小见大,从Kafka Monitor源码解读看如何做好黑盒监控
Kafka Monitor介绍 Kafka Monitor是由Linkedin开源的一款非常优秀的针对Kafka的黑盒监控软件。它通过模拟客户端行为,生产和消费数据并采集消息的延迟、错误率和重复率等性能和可用性指标,来达到黑盒监控的目的。 Kafka的主要概念 在介绍Kafka Monitor功能监控之前,我们先了解下Kafka的几个主要概念: Broker:K...
2018-12-06 21:36:57 36563
原创 微服务架构下的监控需要注意哪些方面?
微服务架构带来的变化 微服务架构给IT系统和团队带来了以下显著的变化: 基础设施的升级,需要引入虚拟化(如Docker),现存基础设施也需要与之进行适配; 系统架构的升级,需要引入服务注册(如Consul),服务间的交互方式也需要与之进行适配; 运维平台的升级,建议引入日志收集(如Fluentd),分布式跟踪(如Zipkin)和仪表盘(如Vizceral/G...
2018-12-06 21:33:32 558
原创 没有监控完备,何来“剁手”畅快——电商平台监控详解
按《SRE Google运维解密》对监控的划分,监控可以分为“黑盒监控”与“白盒监控”,黑盒监控解决的是“系统哪些功能出问题了”,白盒监控解决的问题是“什么原因导致了上述故障”。通俗来讲——白盒监控可以帮助我们快速定位问题原因,但要知道服务出了什么问题,还需要我们从黑盒监控入手。 黑盒监控 监控对象 电商网站的哪些功能发生故障会使用户认为网站宕机?评价、优惠、库存等功能异常...
2018-12-06 21:30:07 36827
原创 Puppet监控速查手册:问题/原因→解决方案
本期作者:木槿Puppet是基于C/S架构的集中配置管理系统,基于自有描述性语言,可以实现对配置文件、用户、定时任务、软件包、系统服务等管理,保证大规模集群基础配置一致性。我们用Puppet管理了上千台服务器,经过多次优化监控,自动化灰度发布保证了所有集群基础配置一致性。本文探讨了如何对Puppet系统进行监控,也将典型问题和解决方案一并分享给大家。enjoy: 监控选型 ...
2018-12-06 16:14:51 10375
原创 运维工作中常见的一些定律
以下是我在工作中积累的,和运维工作相关的一些定律,接下来,我会对各个定律分别展开进行阐述,从而加深大家的理解一万小时定律,要在任何领域成为大师,一般需要约10年的艰苦努力 墨菲定律,如果事情有变坏的可能,不管这种可能性有多小,它总会发生 海恩法则,每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患 因果连锁理论,一个最小的力量能够引起的或许只是察觉不到的渐...
2018-12-06 16:09:22 554
原创 机器监控项添加建议
如何解决机器监控遗漏的问题?想必是每一位运维同学都会面临的问题。太多的机器监控内容,可能会产生无效的报警,对生活造成一定影响; 太少的机器监控内容,可能会无法及时发现异常,对服务稳定性造成影响; 合理的机器监控内容,较高的报警准确度,虽然美好但却需要长期积累;因此,提供一套有效的机器监控标准,并持续优化标准的内容,从而形成良性循环,提高运维效率就成为监控平台的责任和义务。我们将各个业...
2018-12-04 16:24:19 374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人