华为工程师SRECon Asia见闻:聚焦可靠性、资源优化及性能提升
内容来源:2017年6月17日,华为软件架构师马博文在“西安活动 | 6月17日DevOps MeetUp”进行《SRECon Asia 2017见闻》演讲分享。IT 大咖说作为独家视频合作方,经主办方和讲者审阅授权发布。
阅读字数:1552 | 4分钟阅读
嘉宾演讲视频回顾及PPT:suo.im/4ViT57
摘要
软件系统40%-90%的开销是在维护上,对于大规模,关注软件可用性、可靠性和性能的公司,使用软件工程的方式去解决运维领域的问题就变成了一个选择。由此,Google发起了SRE(软件可靠性工程师)这样关注可靠性的组织,大名鼎鼎的Borg, Borgmon都出自SRE之手。除了Google之外,关注可靠性的其他大规模互联网公司,如Facebook、Ebay、Dropbox、Linkedin、百度、阿里等也采取类似的实践。SRECon则是这些公司分享SRE在技术、文化等方面实践的会议。最近我有幸参加在新加坡SRECon亚洲的会议,借此机会和大家分享下一些有趣的话题、idea以及我观察到的一些SRE领域的趋势。
什么是SRE
SRE就是网站可靠性工程师。SRE对技能的要求非常高,Goggle SRE中50%-60%是标准软件工程师,其余的要满足80%-90%软件工程师要求,并且了解unix细节以及网络。
SRE会用软件工程的思维去解决运维领域问题,负责可用性、性能、效率、监控、事务处理等。
SRE方法论
SRE主要关注的是研发工作,在保障服务SLA/SLO前提下最大化迭代速度。并涉及到监控系统、应急事件处理、变更管理、需求预测和容量规划、资源部署、以及效率和性能。
SRECon Asia
SRECon的主办方是USENIX,亚洲区会议主要赞助商是Baidu、Facebook和Linkedin。到会人数在250人左右。贡献话题的讲师都来自比较大的互联网公司,有Google、Facebook、Linkedin、PayPal、CloudFlare、Dropbox、Yahoo、Atlassian以及REA Group等,国内的公司有Baidu、Alibaba、Didi、QiNiu、Tingyun和Tsinghua。
监控与告警
如图所示,软件最基础的要求是监控,一切都是在监控的基础上运行,只有监控到发生了什么样的事故,才能做出相应的应急处理。事后总结问题,分析问题根源在哪里。对应的做出改进后进行测试,确认问题后修改代码然后进行发布。
Open-Falcon: Motivation
Zabbix:当管理的服务器超过2000台的时候,它的水平扩展会比较困难。
OpenTSDB:它的优点是写性能,水平扩展好,但是Query慢。
InfluxDB:国外一些小公司会使用InfluxDB。它的Query性能非常好,aggregator聚合强大,缺点是水平扩展难。
Open-Falcon: Performance
容易水平扩展,每分钟能处理百万级transaction (query/ judge/store/search),轻松支持超过100,000主机。RRA机制,可以查询1年历史数据,100+ metric秒级响应时间,性能非常好。可以存储10年以上的metric历史数据。
问题
运维OpenStack,修复问题所需要的知识复杂,操作过多。这些知识很难Transfer。
解决思路
使用自然语言查询系统状态,好于CLI和Regex。
使用最基本的规则自动发现系统知识,构建一个知识图谱SOSG,将特定系统的查询转化为图遍历,异常检测发现隐藏的问题。
来自话题《Talking to an OpenStack Cluster in Plain English》by Xu Wei From Tsinghua
服务生命周期
双分布一致算法,Paxos算法;可靠的发射规模,发射检查表;在雅虎Hadoop基础架构服务器上无缝地管理变更,由Chef管理的45000个节点。
Reliable Launches at Scale
在上线前会检查架构、容量、可靠性、监控、自动化程度、增长趋势以及第三方(google内部)服务是否准备好,确认这些都没有问题后才会正式上线。
Managing Server Secrets at Scale with a Vaultless Password Manager
Key/CredenHals随着服务器增多而增多。
在配置管理工具中保存Secrets,启动配置管理工具需要key/pair etc,因为每个服务器密码不能相同导致无法scale key,Key RotaHon。
还有一种方式是保存在服务器上,服务器启动时生成。root password,磁盘加密比较困难,无状态时磁盘的服务器无法存储。
事故管理
事故管理的一些挑战
如何达成更短的MTTR;
很多事故的处理比较简单,如重启等,如何自动处理这些事故;
falsealarms如何减少;
报警如何给出正确信息,快速定位问题。
服务扩展
Small,Cheap, and EffecHveTesHng forProducHon Engineers.
Merou:A Decentralized, AuditedAuthorizaHon Service
Shameon facebook and dropbox.
容量规划/性能调优
Capacity Planning and Flow Control
容量估算: 单机压测;
模拟: ab/jmeter/gatling;
复制: 复制生产环境流量;
重定向;
负载均衡: weight。
Why Flow Control
队列堆积:服务器性能降低,响应时间增加,影响应用以及用户体验。
雪崩效应;
需要限制过载的流量。
And a Formula!
计算原则:
EntranceSize= volume * RT(response Hme)
Requests= constants * LOAD * RT
流量控制原则:系统超载则限制volume,负载正常则去掉限制。
使用动态阈值控制。
总结
SRECon参会人数不少,交流效果也比较好。
可以了解到不同的公司,比如Cloudfare,亚马逊的A9。
虽然很多话题看着很小,但是大部分的话题都有可学习的地方。
可以感受到的一个运维方面的趋势是数据流水线+大数据+机器学习+AI+Bot。
我今天的分享就到这里,谢谢大家!
华为工程师SRECon Asia见闻:聚焦可靠性、资源优化及性能提升相关推荐
- (五)资源优化 (经典性能优化解决方案)
资源优化 资源的压缩与合并[见效最明显的优化方法] 为什么要压缩&合并 HTML压缩 CSS压缩 JS压缩与混淆 CSS JS文件合并 图片格式优化[多种图片格式,哪种最合适] 图片优化的方案 ...
- 华为P9怎么修改AGPS服务器,华为P9不需root,这样设置EMUI5.0性能提升2倍
近日,华为针对P9/P9Plus机型正式推送了EMUI5.0系统升级.这款在去年4月份上市的产品,至今已经在全球市场上拥有了超过千万的用户,这次华为手机为所有P9系列手机用户推送系统升级,可以让更多华 ...
- 【华为云技术分享】40%性能提升,华为云推出PostgreSQL 12 商用版
摘要:日前,华为云数据库正式推出了RDS for PostgreSQL 12版本,并开始商用.本文将从华为云RDS for PostgreSQL 12的4大特性和架构图等多方面来解读华为云Postgr ...
- 荣耀鸿蒙怎么升级,华为鸿蒙重大升级,性能提升42% 支持5年老机型,荣耀手机也有份...
华为鸿蒙介绍 6月2日晚,华为召开发布会,正式发布华为#鸿蒙操作系统#,该系统已经在Mate.P系列手机和MatePad平板等设备上推送更新. 官方表示,鸿蒙OS支持手机.平板.手表等多种设备,未来还 ...
- 华为荣耀新款鸿蒙,华为鸿蒙重大升级,性能提升42% 支持5年老机型,荣耀手机也有份...
华为鸿蒙介绍 6月2日晚,华为召开发布会,正式发布华为#鸿蒙操作系统#,该系统已经在Mate.P系列手机和MatePad平板等设备上推送更新. 官方表示,鸿蒙OS支持手机.平板.手表等多种设备,未来还 ...
- 前端性能优化:3.图像资源优化
一条高效传递信息的原则:字不如表,表不如图. 图像资源优化的根本思想:压缩.无论选取何种图像的文件格式,还是针对同一种格式压缩至更小的尺寸,其本质都是用更小的资源开销来完成图像的传输和展示. 3.1 ...
- 人工智能芯片能为Mate 10拍照带来什么?华为工程师这么解答
11月15日华为Mate 10 Pro迎来首销.在经历P9.Mate 9和P10几代产品之后,华为在拍照方面的实力也逐渐被大众熟知和认可,口碑效应逐渐产生. 专业拍照评分机构DxOMark为华为Mat ...
- 如何开发一个鸿蒙的应用软件,别急,华为工程师已经告诉你了!动手开发鸿蒙系统的第一款应用
如何开发一个鸿蒙的应用软件,别急,华为工程师已经告诉你了! 此前从未能有一个手机操作系统有鸿蒙OS这样令我这么期待,从去年年底开始,有关鸿蒙OS的消息就一直牵动我的心,大家都对这一华为自研的系统格外关 ...
- 年过40的前华为工程师,来面P7技术专家,你猜最后通过了吗?
候选人背景 性别:男 年龄:41 学校:西安某985本科+硕士 工作经历:华为.数字浙江.其他公司等. 应聘岗位:Android开发-P7技术专家 面试过程 首先候选人自我介绍. 候选人05年硕士毕业 ...
最新文章
- Gradle系列教程之依赖管理
- linux服务器性能监控命令汇总(一)
- 帮人搬,上海的房子貌似不贵
- python生成随机数代码_Python中产生随机数
- PHP验证登录用户名和密码
- gnu screen的用法
- 粤教版小学认识计算机教案,粤教版八年级信息技术下册教案:第一章第一节初识计算机程序oc.pdf...
- [thinkphp] page类整合bootstrap分页样式
- IEEE2019_A Survey of Event Extraction from Text
- Linux如何自定义屏幕分辨率,Linux手动设置屏幕分辨率的办法
- 大型服装集团BI决策系统的分析主题模块
- rust炼油机怎么搞_rust挖油机在哪个位置 | 手游网游页游攻略大全
- qq音乐播放小Demo
- selenium 的显示等待与隐式等待
- Unity 3D模型展示框架篇之自由观察(Cinemachine)
- WMS系统关于退料的几种方式
- 基于不同IP地址下的虚拟主机配置以及基于不同端口下的虚拟主机配置
- TO_DATE()函数?
- 计算机数值分析-插值法-差商-04
- 什么是 RESTful ?