本书将全面完整地介绍智能运维的技术体系,以及大企业的智能运维实践经验,让读者更加了解运维技术的现状和发展方向,在实践中能够有所借鉴。同时,也能帮助运维工程师在一定程度上了解到机器学习的常见算法模型,以及如何将它们应用到运维工作中。
全书共分4篇。第1篇运维发展史,将重点阐述当前运维的发展现状及面临的技术挑战;第2篇智能运维基础设施,将重点讲述大数据场景下的数据存储、大数据处理和分析的方法与经验,以及海量数据多维度多指标的处理分析技术;第3篇智能运维技术详解,将重点关注在新时期大数据时代下,如何进行智能化的运维体系建设;第4篇技术案例详解,为大家梳理了通过开源框架ELK快速构建智能监控系统的整体方案,还将分享微博平台和微博广告两个不同业务场景下智能监控系统的技术实践。
首著惊爆降临 荟萃微博自动化实践精华 腾讯|滴滴|美团|清华产学界翘楚瞩目力荐 智能运维即未来 AIOps时代开启
前言
为什么要写这本书
中国互联网发展非常迅速,一方面得益于互联网基础设施的不断完善;另一方面得益于中国巨大的用户人群和消费市场。网络从PC到移动互联网时代过渡非常快,2017年微博用户中移动端占比已经达到92%,移动互联网的兴起带来了前所未有的新格局,围绕手机移动端的应用生态逐渐形成,大量PC时代的公司已经将产品的主战场转移到移动端。
据中国互联网络信息中心(CNNIC)发布的第41次《中国互联网络发展状况统计报告》,截至2017年12月,中国网民规模达到7.72亿,手机网民占比97.5%,手机支付用户规模增长迅速,达到5.27亿,网络直播用户规模达到4.22亿,中国拥有人工智能企业592家,占全球总数的23.3%。
互联网尤其是移动互联网的发展,也给企业带来了极大的技术挑战,如何保障线上产品各个服务和系统的稳定性、如何快速高效地诊断问题和定位问题等成为企业所面临的核心问题,而这些问题通过传统的运维方式已经无法有效得到解决。尤其是在大数据复杂场景下,对运维有了新的期待,也对运维有了更高的要求。
首先,系统产生的数据在很大程度上反映了系统状态和产品逻辑,监控系统需要具备快速搜集和处理数据的能力,能经过复杂的数据清洗并从大规模数据中抽取监控需要的指标,尤其是能对时序数据进行ETL及存储分析,将异构数据转化成监控系统能够理解的结构化数据。在这个阶段,如何保证数据的一致性和准确性、如何降低时延提高数据吞吐、如何降低监控系统对业务资源的影响等,都是在大数据环境下要解决的问题。
其次,监控系统要与报警系统融合,报警系统承载的是系统风险提示,对准确率要求很高,然而在现实环境下,大部分报警系统都存在报警项繁多、报警次数频繁、报警不准确等问题。
再次,智能化故障诊断、异常点检测、根因分析等是智能运维要解决的核心问题,然而智能化系统要建立在高效的平台化基础上,目前极大一部分公司还没有真正进入平台化阶段,这就为智能运维带来了极大的阻力。
最后,智能运维需要运维工程师具备一定的人工智能、机器学习及深度学习等算法和建模能力,然而就目前来讲,运维工程师在这方面的技能是比较欠缺的。
国内在智能运维技术上,百度、阿里巴巴、腾讯和微博都有相当程度的经验积累,也得益于这些企业的运维平台化的体系逐渐成熟,在跟这些团队交流的时候,大家都有一个共识,就是希望能将智能运维技术应用到运维的各个维度,也相信智能运维将彻底改变运维的现有体系,并将极大丰富和完善传统运维,提高运维效率。
目前市面上与运维相关的书籍更多的是介绍某个单一技术的运维方法,少有对智能运维进行全面介绍的书籍,因此,我们觉得非常有必要梳理编写一本大数据场景下的智能运维技术的书籍,全面完整地为读者介绍智能运维的技术体系,以及在大企业的运维实践经验,让读者更加了解运维的技术方向,在实践中能够有所借鉴。同时,也能帮助运维工程师在一定程度上了解机器学习的常见算法模型,以及如何将它们应用到运维工作中。
读者对象
本书面向的读者主要包括:
? 运维工程师
? 运维开发工程师
? 运维架构师
? 大数据工程师
? 对运维和大数据,以及AIOps感兴趣的工程师
如何阅读这本书
本书主要分4篇:第1篇运维发展史,重点阐述当前运维的发展现状及面临的技术挑战。第2篇智能运维基础设施,重点讲述大数据场景下的数据存储、大数据处理和分析的方法与经验,以及海量数据多维度多指标的处理分析技术。第3篇智能运维技术详解,重点关注在新时期大数据时代下智能化的运维技术,包括数据聚合与关联、数据异常点检测、故障诊断和分析、趋势预测算法;第4篇技术案例详解,为大家梳理了通过开源框架ELK快速构建智能监控系统的整体方案,还将分享微博平台和微博广告两个不同业务场景下智能监控系统的技术实践。
具体而言,每篇和章节的主要内容如下:
第1篇 开门见山:运维发展史
? 第1章运维现状,主要介绍运维职责、传统运维、运维分类等,我们将从运维发展的四个阶段:人工、工具和自动化、平台化、智能化来介绍运维的发展现状。
? 第2章智能运维,主要介绍运维面临的挑战,传统运维在海量数据存储、分析、处理,多维度多指标及复杂业务等方面都有一定的局限性,随着运维新时代的到来,智能运维(AIOps)将为运维带来新的机会。
第2篇 站在巨人肩上:智能运维基础设施
? 第3章开源数据采集技术,重点介绍Filebeat、Logstash等开源数据采集工具。
? 第4章分布式消息队列,重点介绍以Kafka为代表的分布式消息队列及相关技术。
? 第5章大数据存储技术,重点介绍大数据的存储相关技术,这也是大数据场景下的智能运维基础。
? 第6章大规模数据离线计算分析,通过大数据ETL技术、Hadoop技术生态讨论在大数据场景下如何进行离线计算和分析。
? 第7章实时计算框架,重点介绍在实时流计算方面的相关技术和框架,将探讨如何在监控系统中选择和使用实时计算框架。
? 第8章时序数据分析框架,实时监控系统处理的是时序数据,本章介绍常见的时序数据分析框架及使用方法。
? 第9章机器学习框架,智能化是运维、大数据和AI的结合,本章简单介绍机器学习框架,并以TensorFlow为例介绍如何进行模型训练和实践。
第3篇 运维新时代:智能运维技术详解
? 第10章数据聚合与关联技术,在数据聚合方面讨论聚合方法、多维度数据聚合技巧,以及如何降低维度;在数据关联方面介绍如何在实时流场景下进行时序数据的关联。
? 第11章数据异常点检测技术,本章结合运维面临的如异常点检测、动态阈值等常见问题,共同讨论解决这些问题的一些相关模型和算法。
? 第12章故障诊断和分析策略,故障诊断是智能运维的一个很重要的研究方向,本章讨论智能运维在故障诊断、决策树模型、关联分析等方面的策略和模型。
? 第13章趋势预测算法,主要介绍走势/趋势预测方面的常见模型和方法,包括ARIMA及基于机器学习的LSTM预测技术。
第4篇 智能运维架构实践:技术案例详解
? 第14章快速构建日志监控系统,以ELK为例介绍如何使用开源框架快速搭建日志监控系统。
? 第15章微博广告智能监控系统,全面介绍微博广告智能监控系统架构和设计原理。
? 第16章微博平台通用监控系统,以微博平台监控系统为例,全面介绍通用监控系统的设计思路和具体架构。
需要注意的是,本文提到的智能运维即指AIOps,后续篇章将不再进行说明和区分。
勘误和支持
由于笔者的水平有限,编写时间仓促,同时本书在创作过程中参考了大量的国内外技术,并结合实践经验进行了系统性总结。由于技术的发展非常迅速,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。
智能运维技术在发生着翻天覆地的变化,我们希望更多的人能参与到这个过程中,共同推动智能运维技术的普及,欢迎通过微信或者邮件与我们进行讨论。你可以通过微信justAStriver、微博@AndrewPD或者电子邮件contact@andrewpd.com联系到我们,期待能够得到你们的真挚反馈,在技术之路上互勉共进。
特别致谢
我们花费了大量的时间总结智能运维方面的技术并整理成书,在此非常感谢微博广告基础架构团队的各位同事,尤其感谢车亚强、刘俊、陆松林、王莉、朱伟(按姓氏拼音排序)等人的辛勤付出,他们在工作之余,挤出宝贵的时间为本书贡献了知识,共同完成了本书部分章节的内容梳理。感谢车亚强在实时流计算的基本概念和关键技术方面,尤其是对分布式消息队列和Spark相关技术贡献的内容;感谢刘俊对智能运维的全面介绍,以及在故障诊断技术方面的贡献,同时结合微博平台的应用场景整理了通用监控系统的设计方案;感谢陆松林在分布式存储和离线计算方面提供的案例;感谢王莉在预估模型及异常点检测模型方面的研究;感谢朱伟在运维及智能运维相关技术上的研究和内容贡献。
感谢李东升的大力支持和鼓励,感谢微博广告团队的各位同事、朋友的支持和帮助。
感谢张志强和TimYang两位老大抽出宝贵时间为本书写序,感谢裴丹博士、王鹏云、梁定安、饶琛琳、钟华、陈晓峰、陆沛等业界朋友,感谢大家一起推动智能运维行业的普及和发展。
感谢电子工业出版社的编辑张春雨,他的敬业精神令我由衷敬佩,他的反馈、建议、鼓励和帮助引导我们克服诸多困难完成全部书稿。
在此特别感谢我的父母对我的培养,感谢我的太太Kathy长期以来对我的默默支持,感谢我刚满1岁的女儿小洋葱,因为工作和写作牺牲了很多陪伴她的时间。
技术交流
智能运维技术热潮刚刚开始,希望读者朋友能够跟我们一起多多交流,共同推动中国智能运维技术的发展。你可以通过以下方式联系到我们。
(1)微信:justAStriver
(2)微博:@AndrewPD
(3)GitHub:https://github.com/justastriver
(4)邮箱:contact@andrewpd.com