描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121338854
一线运维大咖十多年的运维经验总结,带你避开运维路上的那些“坑”;
从大公司的案例看运维,直击运维本质,换个角度看运维;
从应用运维体系建设到效率和稳定性实践,理论结合实践,全面解读运维体系建设;
云计算和人工智能时代,该如何做好运维的转型和提升,运维人员该何去何从。
《进化:运维技术变革与实践探索》依托作者在电信和互联网行业多年的从业经历,结合一线工作实践,从应用生命周期的视角,全面详细地介绍了分布式架构体系下,应用运维体系建设的方方面面,涵盖了体系建设方法论指导、持续交付体系建设思路和实践、稳定性体系规划建设,以及故障的科学管理方法等内容,视角新颖且独特,旨在通过换一个角度看运维,带给读者不一样的思考方式。
《进化:运维技术变革与实践探索》是各行业运维工程师和运维架构师了解新时代运维趋势必不可少的学习材料,同时也是业务架构师,开发、测试等技术人员以及技术经理、总监等管理人员用来丰富技术视角不可多得的宝贵参考书。
1.1 顶级公司的运维定义 / 2
1.1.1 没有运维的Netflix / 2
1.1.2 Netflix是如何成为行业典范的 / 3
1.1.3 总结 / 7
1.2 运维体系建设的核心概念:应用 / 7
1.2.1 应用的起源 / 8
1.2.2 应用模型及关系模型的建立 / 9
1.2.3 微服务架构时代下为什么要以应用为核心 / 12
2.1 标准化体系建设基础 / 16
2.1.1 标准化的原因和步骤 / 16
2.1.2 基础设施层面的标准化 / 17
2.1.3 应用层面的标准化 / 19
2.1.4 总结 / 21
2.2 标准化体系建设实践:基础架构标准化 / 22
2.2.1 常见的分布式基础架构组件 / 23
2.2.2 基础架构组件的选型问题 / 24
2.2.3 基础架构的服务化 / 26
2.2.4 运维的职责 / 27
3.1 CMDB的前世今生 / 36
3.1.1 CMDB源起 / 36
3.1.2 传统运维思路下的CMDB / 37
3.1.3 互联网运维体系下的CMDB / 39
3.1.4 CMDB进行时 / 40
3.2 有了CMDB,为什么还需要应用配置管理 / 41
3.2.1 CMDB是面向资源的管理,是运维的基石 / 42
3.2.2 应用配置管理是面向应用的管理,是运维的核心 / 43
3.2.3 总结 / 45
3.3 在CMDB中落地应用的概念 / 46
3.3.1 如何有效组织和管理应用 / 46
3.3.2 应用的集群服务分组建设 / 49
3.3.3 CMDB在基础服务体系中的核心位置 / 51
3.3.4 总结 / 54
4.1 运维组织架构和转型 / 56
4.1.1 自助化运维能力的建设 / 56
4.1.2 从价值呈现的角度看运维 / 57
4.1.3 运维协作模式的改变 / 59
4.1.4 运维的组织架构 / 61
4.1.5 总结 / 62
4.2 Google SRE的运维模式 / 63
4.2.1 SRE岗位的定位 / 63
4.2.2 SRE岗位的职责 / 64
4.2.3 如何借鉴和落地 / 67
4.3 从Google CRE谈运维的服务意识 / 67
4.3.1 CRE产生的背景 / 68
4.3.2 CRE岗位的职责 / 69
4.3.3 从CRE谈谈做运维为什么要有服务心态 / 70
4.4 云计算和AI时代下的运维转型 / 73
4.4.1 应用运维的转型 / 75
4.4.2 云计算和AI带给我们的挑战 / 78
4.4.3 总结 / 80
5.1 提升效率,为什么要先做持续交付 / 84
5.1.1 什么是持续交付 / 85
5.1.2 持续交付的关键点 / 86
5.2 持续交付的第一关键点:配置管理 / 88
5.2.1 版本控制 / 89
5.2.2 依赖管理 / 90
5.2.3 软件配置 / 91
5.3 多环境配置管理 / 94
5.3.1 多环境问题 / 94
5.3.2 不同环境下的应用配置管理 / 95
5.3.3 环境配置管理解决方案 / 96
5.3.4 总结 / 100
5.4 多环境建设 / 101
5.4.1 环境分类 / 101
5.4.2 线下环境分类建设 / 102
5.4.3 环境建设上的关键技术点 / 106
5.4.4 总结 / 109
5.5 线上环境建设 / 110
5.5.1 生产环境 / 110
5.5.2 Beta环境 / 112
5.5.3 预发环境 / 113
5.5.4 办公网生产环境 / 116
5.5.5 总结 / 117
5.6 流水线模式 / 118
5.6.1 持续交付流水线简要说明 / 119
5.6.2 项目需求分解 / 119
5.6.3 提交阶段之开发模式选择 / 121
5.6.4 开发模式的选型原则 / 123
5.7 流水线软件构建 / 125
5.7.1 构建环节 / 126
5.7.2 几个关键问题 / 127
5.8 流水线构建完成后的质量保障 / 131
5.8.1 依赖规则限制 / 131
5.8.2 功能测试 / 132
5.8.3 非功能测试 / 133
5.8.4 总结 / 135
5.9 持续交付实践:根据业务场景找方案 / 136
5.9.1 软件的持续部署发布 / 137
5.9.2 发布策略 / 139
5.9.3 持续交付体系的收益 / 141
5.9.4 总结 / 141
6.1 极端业务场景下的稳定性保障 / 144
6.1.1 我们所面对的极端业务场景 / 144
6.1.2 技术上的挑战 / 146
6.1.3 极端业务场景下的不确定因素 / 148
6.2 稳定性实践 / 150
6.2.1 容量规划 / 150
6.2.2 限流降级 / 160
6.2.3 开关和预案 / 167
6.2.4 全链路跟踪系统 / 172
7.1 我对故障的理解 / 182
7.2 故障定级和定责 / 186
7.2.1 故障的定级标准 / 187
7.2.2 故障的定责标准 / 189
7.3 故障定责的目的 / 192
7.3.1 关于定责和处罚 / 192
7.3.2 目的是鼓励做事,而不是处罚错误 / 194
7.3.3 处罚的“负”作用远超我们的想象 / 196
7.4 故障应急和故障复盘 / 197
7.4.1 故障应急 / 198
7.4.2 故障复盘 / 201
7.4.3 定期总结故障案例 / 203
7.4.4 总结 / 204
8.1 为什么蘑菇街会选择上云 / 206
8.1.1 我们所面临的问题 / 206
8.1.2 纵观技术发展趋势 / 211
8.1.3 没有银弹 / 212
8.2 为什么混合云是未来云计算的主流形态 / 213
8.2.1 关于混合云 / 213
8.2.2 我们所经历的几个基础设施建设阶段 / 215
8.2.3 总结 / 219
8.3 面向应用层的云架构解决方案:Spring Cloud / 219
8.3.1 Spring Cloud框架中云的影子 / 220
8.3.2 CNCF / 223
8.3.3 可以预见的技术发展趋势 / 224
8.4 云计算时代的弹性伸缩 / 225
8.4.1 弹性伸缩的主体是谁 / 225
8.4.2 总结 / 228
9.1 从CDN和云存储来聊聊云生态的崛起 / 230
9.1.1 CDN和云存储 / 230
9.1.2 云生态的优势 / 231
9.1.3 总结 / 234
9.2 页面静态化架构和二级CDN建设 / 235
9.2.1 静态化架构建设的业务场景 / 235
9.2.2 页面静态化架构 / 237
9.2.3 静态化架构在大促场景中的应用 / 239
9.2.4 二级CDN建设 / 240
9.2.5 总结 / 241
10.1 我是如何走上运维岗位的 / 244
10.1.1 我是怎么开始做运维工作的 / 244
10.1.2 我为什么会把运维当作职业发展的方向 / 247
10.1.3 给我们的一点启发 / 251
10.2 运维需要懂产品和运营吗 / 252
10.2.1 运维的角色转变和价值体现 / 253
10.2.2 技术产品 / 254
10.2.3 技术运营 / 254
10.2.4 总结 / 256
10.3 从技术到管理,如何转身 / 257
10.3.1 从员工离职说起 / 257
10.3.2 关于员工离职的两个观点 / 258
10.3.3 谈谈如何做好技术管理 / 259
10.3.4 技术管理中引以为戒的一些反模式 / 261
10.3.5 总结 / 262
10.4 树立个人品牌意识 / 263
10.4.1 对求职者的背景调查 / 263
10.4.2 如何树立个人口碑 / 265
10.4.3 要引以为戒的反例 / 266
10.4.4 共勉 / 268
自序
你好,我是赵成,来自美丽联合集团,集团旗下两大主力产品是蘑菇街 和美丽说,我目前负责管理集团的技术服务团队。
本书的内容主要来自我在极客时间的专栏《赵成的运维体系管理课》。
当我写完专栏时,我的专栏编辑李佳告诉我文章可以集结成书出版,这 时我才意识到,原来我在写作专栏文章的过程中,已经不知不觉地将一个相 对比较完整的运维体系输出了,当时的感觉:一切都是水到渠成的。
所以,这里首先要感谢极客时间这样一个优秀的、为技术人服务的知识 内容平台,我不但从极客时间中学到了很多知识,而且对于我个人而言,它 也是一个舞台,能够让我将个人的实践、经验和总结通过最有价值、最有效 的传播方式呈现出来。如果没有这样一个舞台,本书中的内容可能还要延期 很长时间才能面世。
与极客时间结缘,是在 2017 年的 QCon 上海大会前夕,我接到了极客 时间团队的邀请,问我是否可以做一个运维专栏,我当时的第一反应是有些 兴奋,这还真是一个意外的邀请。但是接来下我的反应就是诚惶诚恐,因为 我自己写公众号也有一段时间了,深知持续高质量输出这件事情的挑战之大, 特别是在输出专业文章上更是如此,所以当时一直拿不定主意。
我写公众号文章,在很大程度上是因为之前有过很多次公开演讲和分享的经历,后来发现演讲所面向的受众和时间有限,分享的内容无论是在传播的广度还是内容的深度上,都会受到很大的限制。总之,讲得不过瘾,索性就把一些我觉得还值得更深入探讨的话题和内容完完整整地写出来。
后来,在上海跟极客时间团队见面之后,他们给了我一些建议,因为之前的文章更多是针对一个个观点延伸出去写作,而专栏文章可以尝试更系统地输出,能够把一个运维体系讲透彻。这个建议从一定程度上打开了我写专栏的思路,后来我把内容规划了一下,感觉还是可以输出一些更有价值的内容的,因此就启动了这个专栏的策划。
再后来,就有了本书的全部内容。
这里要特别感谢在我写作专栏和出版图书的过程中帮助和支持过我的人。
感谢我专栏中的读者,你们的信任和反馈是对我最大的支持,也是对我最大的督促,没有你们,就不会有本书高质量的内容输出。
感谢我的专栏编辑李佳,从专栏策划之初就协助我做了大量的内容策划、制作、校订以及各种协调的工作,直至图书出版;感谢极客时间团队,正是因为有了你们,才有了如此优秀的产品。
感谢我的图书编辑侠少和恩惠,帮我进行图书内容的策划和制作,我们相识已久,这次终于有机会合作。
感谢蘑菇街,正是基于这样一个非常优秀的平台,我才得以有机会不断地实践和尝试,也感谢我团队所有的小伙伴,本书所呈现的成果是我们共同努力和实践的结果。
最后,感谢我的妻子朱悦和我的家人,无论在工作还是生活中,你们给予了我最无私的支持。我把本来应该陪伴你们的时间用来写作,感谢你们的理解和奉献。
一路走来,有你们相伴,就是最幸福和开心的事情。
赵成
2018年4月13日于杭州
前言
谈谈运维的价值
我们在大学的软件工程课程中学过,从软件生命周期的角度看,软件开 发阶段只占整个生命周期的 20%~30%,软件运行维护阶段是最长尾的,这 条规律放在当前这个时代同样适用。
Bob 大叔,Robert C.Martin,在其最新图书 Clean Architecture(中文版 由电子工业出版社出版)中对软件架构的目的给出了他的理解:
软件架构的目的,是将构建和维护所需的人力资源降到最低。
一语中的,直击本质。本书的全部内容基本都是围绕着这句话展开的, 我想正对应了万变不离其宗这条规律。
在软件生命周期中,我们可以很清晰地划分出“开发阶段”和“运维阶 段”,这个分界点就从开发人员完成代码开发,测试人员验收通过后,交付 到运维人员手上的软件包开始,自此之后的阶段就是软件的运行维护阶段了。
一家公司对于开发的诉求应该是全力实现业务需求,并将需求尽快发布 上线以实现商业上的收益。但是,在一家公司里,除了专注于业务需求的开 发和测试角色,还会有另外一大类开发,比如我们常见的中间件开发、稳定 性开发、工具开发、监控开发、IaaS或PaaS平台开发,甚至专注于底层基础架构的内核开发、网络开发、协议开发等。
如果仔细思考,我们会发现除了业务开发和测试,前面所提到的那些技术岗位都是为软件生命周期中的运行维护阶段服务的,这些角色的作用就是提升研发效率和稳定性,进而降低成本。虽然它们并没有全部被定义为运维岗位,但是本质上它们是跟业务软件的运行维护阶段直接相关的。
所以,从运维的范畴来讲,我认为,在一个研发团队内,除去业务需求实现层面的事情,其他都是运维的范畴,实质是软件架构的范畴,它们都在为软件生命周期中的运行维护阶段服务。
我之前在外部分享中一直表达的一个观点就是,运维能力是整体技术架构能力的体现,运维层面爆发的问题或故障一定是因为整体技术架构中存在问题,割裂两者,单纯地看技术架构或运维都是毫无意义的。
但是,我们在绝大多数情况下都忽略了这个隐藏在软件生命周期中真正的运维范畴,而是简单直接地从软件生命周期分段的角度,生硬地给开发和运维划定了一条界线。
我认为,跳出运维看运维,从架构角度看运维,这种运维思路上的转变,远比单纯提升运维技术更有价值。
而这也正是我们很多公司和团队当前存在的最大的痛点和问题。所以,在本书中,我会针对这些痛点和问题分享一些我的思考。
图书内容结构
本书的内容会聚焦在分布式软件架构下的应用运维这个领域,更多的是我对运维的一些架构思考,主要可以分为以下四个部分。
(1)应用运维体系建设,包括第1章~第4章的内容。这是我们做运维的基础,我会首先分享运维的本质是什么,明确运维的核心概念,并从标准化和应用生命周期开始,讲述如何一步步建立运维技术体系和组织架构,整个过程中的沟通协作以及我们应该如何树立正确的运维建设思路等方面的内容。
(2)效率和稳定性等方面的最佳实践,包括第5章~第7章的内容。这些是运维价值的体现,我会围绕持续交付、稳定性建设以及故障管理三个方面,分享如何打造不需要任何运维参与的端到端交付过程,如何在实践中锤炼出稳定性保障体系,以及如何看待故障并做好故障管理。
(3)云计算方面的思考和实践,包括第8章和第9章的内容。云计算技术的蓬勃发展为我们的业务和技术提供了更多的可能性,利用好云这个平台将会是运维升级转型的必备要求。我会分享在混合云、云存储、静态化以及CDN上的实践经验,以及这些实践给成本和体验带来的巨大收益。
(4)个人成长与趋势热点分析,在第10章进行分享。这一部分更多的会是我个人的一些思考,包括运维技术发展趋势、团队管理、个人成长、热门事件解析、观点碰撞等。
另外,由于运维和安全之间有着密不可分、唇亡齿寒的关系,在工作中也有较多的交集,因此,我将“运维与安全”作为拓展阅读放于本书的最后,希望能引发大家更多的思考。
最后,开卷有益,期望本书能够带给你不一样的运维思考,共同进步。
运维即服务,好的服务体系是系统稳定运行的坚实基础和有力保障。本书从解决实际问题的角度出发,融入作者多年工作中积累的典型案例,结合对当前技术发展趋势的理解,不仅阐述如何从稳定、效率、成本、安全等各个维度构建自动化的技术服务平台,而且不乏对智能运维领域的思考和探索,完整地覆盖应用生命周期管理的各个阶段,值得一读。
——流火(杨乃印) 美丽联合集团技术总监
这是一本介绍运维的好书,既有构建运维体系的方法论,又有硅谷一线IT企业的运维故事。从开发到运维,从技术到管理,作者丰富的工作经历让本书的内容生动有趣,每次技术的选型,每个方法的凝练,都蕴含着赵成老师对运维工作的高度思考与总结。正是这份对运维工作的认同感,促使我向各位读者力荐本书,它可能没办法把默默无闻的运维带到镁光灯下,但它一定能给你带来新的运维思路与灵感,让你与卓越的运维能力更加接近。
——梁定安 腾讯运维技术总监
运维是后端容易被忽视的工作,却又是软件生命周期中基本的一环。保证大规模系统的线上稳定运行,为所有的线上问题负责到底,这就是运维的职责。赵成作为运维领域的佼佼者,分享的不仅是运维技术,还包括系统架构、个人成长、团队管理等多个方面,给了我不一样的思考视角。换个视角看世界,受益良多!
——史海峰 饿了么技术创新部高级总监
赵成在极客时间的专题系列分享《运维体系管理课》一经推出,就吸引了不少人的目光。得知要出版纸质书,不胜欣喜。赵成曾在质量严谨、流程清晰的华为公司工作,现担任美丽联合集团的运维负责人,一线的扎实训练和愈来愈系统化的视野让这个专栏劲道十足。我毫不吝惜表达对这个专栏的喜爱,原因有三。一是宽广的技术视野,作者不仅对自己工作中的经验进行了很好的总结,还对Google、Netflix的运维哲学及佳实践了然于胸,知行合一。二是系统化的思维,不局限于运维岗位本身谈运维。运维体系以应用为核心,从生命周期视角看待应用运维体系建设、DevOps背后的探索,不乏真知灼见。三是条理清晰,娓娓道来的叙述模式。一般描述质量和故障,或有《清单革命》的直击人心,或有故障复盘的僵化规矩。赵成在“守正”的味道下用清晰笔触讲述一些具体问题,而不隔靴搔痒。比如开发测试环境问题、是否上云问题、故障定责问题等。我作为十几年的研发工程师和一线研发管理者,对赵成总结的运维体系很认同。运维和开发在统一目标下协同支撑的春天已经到来!
——右军 蚂蚁金服高级技术专家
当基础设置发生了翻天覆地的变化时,当业务发展速度比以前快了好几百倍时,运维技术也遇到了未有的挑战,如何在这种变化中体现运维价值就显得尤为重要。本书作者拥有多年大型互联网公司一线实战经验,也拥有丰富的运维体系理论,希望通过本书为读者提供一些运维思路。
——南非蜘蛛(窦喆) 运维帮创始人
这是一本务实的书,结合实际的运维工作及热点问题,作者均以务实的态度,从解决问题的角度展开阐述观点。严谨的字里行间处处贯穿的是对技术工作宗教般的虔诚,凝聚着让各层次的读者从中得到收获的努力。相信作者分享的技术职场生存法则、解决问题的关键要点、摆脱困境的思路,可以帮助读者找到方向,坚定信念。强烈建议希望突破职业瓶颈得到更好发展的程序员及运维工程师持卷品读。
——戴贲 华为技术有限公司技术专家
传统意义上的运维是并不出彩的工作,不出彩的原因很大一部分是因为运维工作者是站在“维”的角度被动、响应式地思考和行动。赵成老师的这本书从运维管理体系、研发交付、云技术运维实践和人员成长这几个角度用丰富生动的案例向我们阐述了互联网时代的“运维”应该如何运筹帷幄,让我们看到做好应用运维需要更多地从架构、持续交付环节前向考虑循环改进。本书不仅适合运维工作者,也非常适合技术管理者和架构师们阅读。
——鲁建凡 恒生电子公共平台事业部总经理、恒生研究院专家
在我们创业之初,公有云还不是特别成熟,无耐选择了自建机房这条路,却由于缺少运维方面的经验而吃尽了苦头,所以深深地理解运维在大型分布式系统中起到的核心作用,也非常清楚做好运维(尤其是在业务快速发展的巨大压力下)是件极其不容易的系统工程。赵成在华为打下了良好的基础,并在蘑菇街业务快速发展的过程中积累了非常丰富的一线经验,基于此形成的运维体系管理理论极具实战参考价值。同时,赵成又能跳出运维看运维,从业务、架构、管理等方面追根溯源,深挖运维成功之道,给大家带来了不一样的运维思考。
——张新波 同盾科技联合创始人、技术VP
在如今技术风起云涌的时代,靠谱的运维是持续提供稳定服务的关键保障。本书详细阐述了如何构建优秀的运维体系,并给出了在持续交付等方面的佳实践。此外,当今云计算大行其道,如何做好云计算时代的运维也是一个亟需解决的问题,本书针对该问题也给出了答案。
——陈超 七牛云技术总监
得益于云计算技术的蓬勃发展,软件架构从传统的单体架构、分层架构逐步演进到微服务架构,应用的运维也随之不断演进。赵成从技术管理者的角度探讨了微服务化架构下的运维体系建设,分享了一线互联网公司持续交付和稳定性建议方面的佳实践,字里行间也夹杂着作者对团队管理和个人技能提升的感悟和思考,是一本不可多得的运维研发同学案头必备的工具书。
——怀民(沈淦) 大搜车高级副总裁
作为应用运维团队的负责人,经历了运维团队从0到N的发展,也同样经历着传统运维向运维开发、云计算运维、大数据运维、智能运维方向的转变之路,读本书的每个章节时都让我感同身受。应用运维体系的建设任重而道远,DevOps、SRE都只是整体体系中的一部分,而每家公司根据自身业务和阶段性目标的不同,对应用运维体系的要求也不一样。本书全面立体地覆盖了运维的标准化和服务化的体系建设,对持续交付、稳定性保障、故障管理和复盘等实操内容进行了深入浅出的讲解,相信不管是运维从业人员,还是技术管理者,在阅读之后对运维体系以及运维行业未来的发展都能有更全面的认识,上升到新的高度。
——王超 *金融应用运维负责人
对于运维体系的整体理解,本书会帮助我们以更高的视角去思考和实施运维实践。赵成将自己对运维体系的丰富践行和深刻思考,通过本书进行抽象整理并精妙准确地描述出来。在阅读的过程中,我时常会在章节中的一些句子中找到强烈的共鸣,相信从事基础架构和规模运维的朋友们也会和我一样获得启发并重新思考。
——林晓峰 知乎技术总监
我读完本书的感受:可作为IT新人的运维“百科全书”,也可作为IT资深人员的运维知识体系参考书。本书从IT运维的多个角度,例如运维体系建设、云计算与运维、AI与运维、运营与运维、持续集成与交付、运维流程管理、故障管理等,解读了运维工作以及与运维工作相关的技术与方法,同时包含了案例解读,使读者从理念、方法到实践都可获益。另外的独到之处是,作者也结合亲身经历解读了运维工程师的成长历程,面对新技术应该如何思考以及如何转型,对于不同阶段的运维工程师都是有益的参考。
——张真 宜信技术研发中心高级架构师、研发总监
评论
还没有评论。