PaaS实现与运维管理:基于Mesos +Docker+ELK的实战指南

PaaS实现与运维管理:基于Mesos +Docker+ELK的实战指南
书籍作者:
余何
书籍出版:
电子工业出版社
书籍页数:
332
书籍ISBN:
9787121275029
书籍人气:
2075
推荐指数:
★★★★

PaaS实现与运维管理:基于Mesos +Docker+ELK的实战指南
产品特色

编辑推荐本书从技术和管理两个角度详解分布式PaaS平台的实现与运维,主要涉及:
  ◎概念模型:引入PaaS平台
  ◎基础资源:回归本真,理解三大基础资源——计算、存储、网络
  ◎平台实现:构建完整的PaaS平台——基于容器的操作系统虚拟化技术Docker|分布式协调系统ZooKeeper|资源管理系统Mesos|服务调度框架Marathon|大数据处理架构Spark|日志搜索分析系统ELK
  ◎运维管理:运维管理的核心是配置管理。
  直逼系统运维一线的种种烦恼,集技术原理、生产实践与系统实现三位一体,内容充实、层次清晰、行文流畅,堪称云计算时代、分布式环境下不可多得的运维好书。
内容简介

  本书主要阐述了云计算中PaaS平台的实现与运维管理,分为四大部分,分别是概念模型、基础资源、平台实现与运维管理,共十五章。第一部分阐述了运维与开发之间的关系、这层关系存在的矛盾,以及PaaS是如何有效缓解其矛盾的;第二部分勾勒出了数据中心的计算、网络、存储三大资源的主干,避免让人陷入上层的种种产品中;第三部分通过开源产品来构建一个完整的PaaS平台,包括资源管理、任务调度、计算单元打包、分布式协调、日志集中等;第四部分对运维管理进行了实践。

  本书适合运维工程师、运维管理人员,以及希望在PaaS上运行分布式、可伸缩、高可用的后端开发工程师阅读。

作者简介

  余何,昵称为“众神的大师兄”,湖南长沙人。国家软件设计师、PMP项目管理认证师、Juniper互联网专员(JNCIS)、NetApp解决方案架构师(NCSA)、高效运维公众号专栏作者。

  拥有十余年数据中心运维管理经验,先后任职于华为、平安科技,主导了平安IT基础架构改造、ITIL流程变革等重大项目。热衷于开源技术,广结天下英豪,以运维心灵捕手著称。

精彩书评

  本书突出的特点是理论联系实际,深入浅出地讲解了PaaS的实现方法,涉及当下非常热门的Docker、Mesos技术,更难能可贵的是,作者同时分享了珍贵的运维实践经验,我为读者能看到本书的精彩内容而感到高兴。

  ——“KVM虚拟化实践”公众号维护者、珠海金山西山居系统运维经理 肖力

  每一名IT工程师都有自己的PaaS平台梦,这才有近年来风行的GAE、CloudFoundry、Docker。然而PaaS要在企业中应用推广,绝不是改个容器或虚拟机那么简单。本书以PaaS为题,内容却覆盖了平台建设的理论基础、技术实现、配套系统和流程管理,是作者多年实践经验的精华所在,堪称大型企业应用运维平台化的指导用书。

  ——微博运维团队系统架构师 饶琛琳

  PaaS越来越受到重视,它是未来真正的高效运维利器。本书作者有着丰富的一线运维经验,在本书中从PaaS平台的多个角度阐述了其核心原理与技术实现。值得称赞的是,作者还给出了应用系统如何适应PaaS及对PaaS应用的运维管理,让我们对PaaS平台有了系统而全面的认识。

  ——优维科技创始人、互联网运维杂谈 王津银

  国内有不少运维同行在自己的业务领域尝试引入私有IaaS技术,因此催生了不少分享IaaS体系理念及实践的资料和书籍。伴随着愈演愈烈的竞争,互联网业务对运营及运维能力的要求也会不断攀升,大家会慢慢意识到私有云的概念停留在IaaS层面是远远不够的。国内分享PaaS体系的理念及实践的资料和书籍并不多,本书不但对PaaS理论及基础概念介绍得比较清楚,而且以平安科技的实践经验为背景,对广大运维及运营开发同行会有很大的帮助。

  ——腾讯游戏蓝鲸产品中心总监 咖啡党

  云服务是当前炙手可热的话题,现在业务使用云服务是趋势,百度内部的业务线也很早就在推广Matrix、PaaS技术。本书内容通俗易懂,讲解由浅至深,读者既能从书中了解到云服务的现状,又能从细节上了解PaaS的实现原理。作者本身对PaaS有着丰富的实战经验,结合书中丰富的源代码,能使读者快速踏入PaaS领域。

  ——百度国际化首席架构师、广告变现技术团队负责人 谢朴锐

  相较IaaS而言,PaaS更为丰富、可操作性更强,作者精选多种流行、前沿的PaaS 工具、产品及运维自动化工具,再辅以基础理论知识和个人多年运维行业技术经验写成本书。本书文字朴实易懂、图文并茂,适合运维同仁们细细阅读。

  ——开放运维联盟联合主席、高效运维技术社区创始人 萧田国

目录

第一部分 概念模型
第1章 分布式PaaS平台介绍 2
1.1 什么是PaaS 2
1.1.1 开发与运维之间的困局 2
1.1.2 DevOps的自动化 3
1.1.3 云计算的IaaS 4
1.1.4 PaaS的到来 4
1.1.5 PaaS的约束与开放 4
1.1.6 PaaS解决的具体问题 5
1.2 什么是分布式计算 6
1.2.1 分布式计算与PaaS 6
1.2.2 分布式平台的挑战 7
第2章 PaaS模型与特征 10
2.1 主流PaaS平台架构 10
2.1.1 谷歌GAE 10
2.1.2 AEB 11
2.1.3 Cloud Foundry 13
2.1.4 Heroku 14
2.2 PaaS与12-Factor 15
2.2.1 基准代码(Codebase) 15
2.2.2 依赖(Dependency) 16
2.2.3 配置(Config) 17
2.2.4 后端服务(Backing Services) 18
2.2.5 构建(Build)、发布(Release)、运行(Run) 19
2.2.6 进程(Process) 20
2.2.7 端口绑定(Port Binding) 21
2.2.8 并发(Concurrency) 21
2.2.9 快捷性(Disposable) 22
2.2.10 开发/生产环境等价(Dev/Prod Parity) 23
2.2.11 日志(Log) 24
2.2.12 管理进程(Admin Process) 25
2.3 PaaS与Reaction宣言 26
2.3.1 响应(Responsive) 26
2.3.2 韧性(Resilient) 26
2.3.3 弹性(Elastic) 27
2.3.4 消息驱动(Message Driven) 28
第二部分 基础原理
第3章 计算资源 30
3.1 图灵机与冯?诺伊曼模型 30
3.2 服务器的种类 34
3.3 一切都是二进制 37
3.3.1 整数表示法 38
3.3.2 文本表示法 39
3.3.3 音频信息表示法 41
3.4 操作系统――计算机系统的指挥官 42
3.4.1 操作系统解决的问题 42
3.4.2 企业级操作系统 43
3.4.3 服务器虚拟化 47
3.5 进程――资源聚合的抽象体 49
3.5.1 计算单元的构建 49
3.5.2 计算请求的拆解 51
第4章 网络资源 53
4.1 协议分层 53
4.1.1 OSI网络体系模型 54
4.1.2 OSI与TCP/IP协议簇 55
4.1.3 交换、选路与传输 56
4.2 网络物理设备 58
4.2.1 连线与接口 59
4.2.2 二层交换机 62
4.2.3 路由及三层交换 63
4.2.4 四~七层网络设备 64
4.2.5 现实网络构成 65
4.3 网络逻辑拓扑 65
4.4 对网络拓扑的考虑 66
4.5 对物理布线的考虑 67
4.6 网络虚拟化与SDN 70
第5章 存储资源 73
5.1 俯瞰存储系统 73
5.1.1 数据存储功能分类 73
5.1.2 文件存储的三个层级 74
5.2 磁盘与磁盘阵列 77
5.2.1 硬盘的物理构造 77
5.2.2 磁盘阵列 79
5.2.3 SCSI协议 81
5.3 存储、计算分离 82
5.3.1 磁盘柜与盘阵 82
5.3.2 FC存储网络 83
5.3.3 FC协议栈 86
5.3.4 FC寻址过程 87
5.3.5 FC交换机与适配器 88
5.3.6 FCoE与iSCSI 89
5.4 存储访问类型 90
5.4.1 NAS与SAN 90
5.4.2 分布式存储 92
第三部分 平台实现
第6章 平台功能与架构 96
6.1 平台运维需求 96
6.1.1 软件配置 96
6.1.2 服务部署 97
6.1.3 服务发现 97
6.1.4 监控恢复 97
6.2 平台功能划分 97
6.3 平台高阶架构 100
6.4 企业应用迁移 102
6.4.1 企业应用很“厚重” 102
6.4.2 应用部署架构 102
6.4.3 企业应用调整 104
第7章 计算单元Docker 108
7.1 Docker介绍 108
7.1.1 Docker是什么 108
7.1.2 Docker术语 109
7.1.3 Docker安装 111
7.2 Docker容器命令 112
7.2.1 run命令 112
7.2.2 start命令 115
7.2.3 stop命令 116
7.2.4 restart命令 116
7.2.5 attach命令 116
7.2.6 ps命令 116
7.2.7 inspect命令 117
7.3 Docker镜像命令 119
7.3.1 search、pull、push命令 120
7.3.2 commit命令 120
7.3.3 image、diff、rmi命令 121
7.3.4 save、load、export、import命令 121
7.4 Docker网络与链接 122
7.4.1 Docker网络模式 122
7.4.2 pipework管理网络 125
7.4.3 容器链接与数据卷 127
7.5 Dockerfile 129
7.5.1 基本指令集 130
7.5.2 环境指令集 131
7.5.3 数据指令集 132
7.5.4 ENTRYPOINT指令 132
第8章 分布式协调ZooKeeper 134
8.1 ZooKeeper介绍 134
8.1.1 ZooKeeper是什么 134
8.1.2 ZooKeeper架构 135
8.1.3 数据模型 136
8.1.4 监听与通知 139
8.1.5 API集合 139
8.1.6 会话 140
8.1.7 观察者 141
8.2 ZooKeeper使用 141
8.2.1 快速安装 141
8.2.2 基本操作 143
8.2.3 配置参数 145
8.2.4 动态重配置 149
8.2.5 监控 152
8.3 ZooKeeper进阶 157
8.3.1 分组与权重 158
8.3.2 Paxos算法 159
8.3.3 ZAB协议 163
8.3.4 分布式协调场景 165
第9章 资源管理Mesos 167
9.1 Mesos介绍 167
9.1.1 资源管理需求 167
9.1.2 Mesos的起源 169
9.2 Mesos架构与工作流 169
9.2.1 Mesos架构组件 169
9.2.2 Mesos资源管理的工作流程 170
9.3 Mesos安装配置 172
9.3.1 安装预先准备 172
9.3.2 构建Mesos 173
9.3.3 启动Mesos 174
9.3.4 高可用Mesos 178
9.3.5 Slave移除限速 182
9.4 Mesos运维 183
9.4.1 认证管理 183
9.4.2 监控管理 186
9.4.3 容器网络限速 192
9.4.4 Framework API限速 194
9.4.5 Restful接口 195
9.4.6 配置参数 196
9.5 Mesos资源分配 197
9.5.1 DRF算法 197
9.5.2 DRF权重 199
第10章 服务调度框架 Marathon 200
10.1 Marathon介绍 200
10.1.1 服务调度平台 200
10.1.2 Marathon实体模型 201
10.2 Marathon使用 203
10.2.1 安装启动 203
10.2.2 运行Shell程序 204
10.2.3 运行远程资源 208
10.2.4 Artifact Store 209
10.3 Docker容器运行 211
10.3.1 前提准备条件 211
10.3.2 端口资源分配 212
10.3.3 容器端口分配 215
10.3.4 其他使用方法 216
10.4 Marathon管理 217
10.4.1 应用组 217
10.4.2 策略约束 219
10.4.3 健康检查 221
10.4.4 应用部署 223
10.4.5 事件总线 227
10.4.6 命令行参数 229
10.5 服务发现 231
10.5.1 服务发现方法 231
10.5.2 Marathon方案 232
10.5.3 Mesos-DNS 235
10.5.4 Bamboo 239
10.6 Chronos作业调度 241
10.6.1 作业调度框架 241
10.6.2 安装运行 241
10.6.3 作业示例 242
10.6.4 REST API 243
第11章 大数据调度框架Spark 245
11.1 Apache Spark介绍 245
11.1.1 Apache Spark是什么 245
11.1.2 Lambda架构 246
11.1.3 Spark生态系统 247
11.2 Spark数据处理 248
11.2.1 Spark 运行模式 248
11.2.2 Spark Standalone模式 252
11.2.3 Spark on Mesos 255
11.2.4 Spark Streaming 257
第12章 日志集中管理ELK 261
12.1 日志集中 261
12.1.1 日志集中介绍 261
12.1.2 日志集中架构 262
12.1.3 日志集中框架 264
12.2 Logstash 266
12.2.1 Logstash介绍 266
12.2.2 快速安装 267
12.2.3 配置说明 269
12.2.4 部署架构 282
12.2.5 处理流程 285
12.2.6 input插件 286
12.2.7 output插件 292
12.2.8 filter插件 296
12.2.9 codec插件 299
12.3 Elasticsearch 300
12.3.1 基本概念 300
12.3.2 安装与使用 304
12.3.3 REST API 305
12.3.4 集群设置 309
12.3.5 备份恢复 314
12.3.6 监控管理 315
12.4 Kibana 317
12.4.1 Kibana介绍 317
12.4.2 discover功能 319
12.4.3 visualize功能 324
12.4.4 Dashboard功能 327
第四部分 运维管理
第13章 配置管理 330
13.1 配置管理系统分析 331
13.1.1 服务模型进行分层 331
13.1.2 各IDC团队发现CI 332
13.1.3 IDC管理团队定义CI属性 333
13.1.4 确定CI之间的关联 336
13.2 配置管理系统设计 338
13.2.1 用户界面设计 339
13.2.2 权限控制、规则定义和OPENAPI 341
13.2.3 数据模型的设计 343
13.3 配置管理数据准确性的保证 345
13.3.1 识别CI的OWNER 345
13.3.2 识别CI的生命周期、关联运维流程 346
13.3.3 数据有效性的审计 346
第14章 监控管理 348
14.1 运维监控管理的问题与价值 348
14.1.1 监控管理的无形价值 349
14.1.2 监控平台建立的基础 350
14.1.3 监控管理的WANT原则 350
14.2 对运维监控平台的需求分析 352
14.2.1 一次监控过程,调度、规则、告警 352
14.2.2 数据图形化:百分位裁剪、趋势分析、正态分布 358
14.2.3 开源的借鉴与选择:Zabbix和Nagios 361
14.2.4 商业与开源:最后的决策 372
14.3 JMX监控原理解析 373
14.3.1 JMX的体系结构 374
14.3.2 一个完整的JMX体系架构实例 376
14.3.3 通过JMX访问WebLogic Server MBean 379
14.4 SNMP监控原理解析 383
14.4.1 SNMP协议解析:MIB库与消息类型 383
14.4.2 使用SNMP4J实现服务器监控 386
14.4.3 Linux下的监控实现:NET-SNMP 390
14.4.4 MIB库浏览工具:ManageEngine 391
第15章 运维管理 392
15.1 服务级别管理,IT与业务的一致性 392
15.1.1 客户满意度与期望 393
15.1.2 服务目录――IT服务的菜谱 396
15.1.3 从宏观到可操作性的服务 397
15.2 变更管理,使服务有效传递 399
15.2.1 变更控制的角色、阶段 399
15.2.2 变更管理的六个原则 401
15.2.3 变更分类与风险定级 402
15.2.4 表单、步骤、模板与日历 405
15.3 事件管理 409
15.3.1 分类管理与评价体系 409
15.3.2 任务分发、协同与时效 411
15.3.3 内部上报要求 412
15.3.4 重大事件处理 413
15.4 人员管理:开放与分享 415
15.4.1 企业社交管理 415
15.4.2 目标管理,做好绩效 417
15.4.3 知识管理,人员成长 417
15.4.4 时间管理,个人效率 420
15.5 PaaS下的运维发展之路 421

前言/序言古往今来随风去,书剑相伴两袖空
  笔者在运维领域耕耘十余载。2007年加入平安集团旗下的科技公司,2011年主导了业内最大的应用迁徙与架构变更,2012年开展IT运维管理变革,打通横向条线,实现了技能融合。光阴荏苒,日月如梭,运维往事历历在目,我们流过汗,熬过夜,摊过事,也拿过奖,运维是一个从无到有、日积月累、不断提升的过程,也是一个需要耐得住寂寞,顶得住压力的行当,在此与正奋斗在运维一线的伙伴们共勉。
  平安IT经历了企业信息管理部、国际领先IT服务公司、互联网金融三个历史阶段,每一次蜕变都紧随时代步伐,拥抱技术革新,创造业务价值。从企业ERP、PC互联、移动互联、云计算到大数据,运维人一直在奔袭,从未停歇。企业信息管理时期的运维人飞行于各大城市的上空,每一次发版、变更就是一次长途远行,分散的管理模式简单直接,但随着业务发展、规模扩大,企业对系统稳定性、运营成本控制的要求越来越高,随之而来的是IT集中管理时期,这个时期追求一流的国际IT服务管理水平,构建独立数据中心,实现开发架构、安全标准与运营规范的全面统一,该时期形成的IT管理实践堪称行业标杆。2013年全面进入互联网金融时期,移动互联、云计算、大数据的火热发展,业务渠道、流量入口、用户终端的改变,促使我们又一次站在了历史的新起点。
  互联网金融在运维方面上演了一场“双城记”。一边是充满贵族气质、为荣誉而战的“英伦君主立宪”,在这个领域内严格执行IT管理规范,稳若磐石,滴水不漏,保证绝对稳定与安全;而另一边是自由、民主喧哗下的“法国大革命”,为了满足互联网下业务系统的高并发、高吞吐、版本多变的需求,应用不再拘泥于一致框架、规范与准则,多样选择,以快为先。本书的核心内容就是在这样的背景下诞生的,我们无法“一刀切”地构建承载所有应用类型的基础环境,只有准确定义应用标准,以一种兼容并存的方式在应用架构上迭代地朝轻量级、微模块方向发展,通过技术、管理双层标准来调和“君主立宪”与“民主共和”之间的矛盾,转化成优势互补、经验传承、全面共赢,最终完成新时期的历史使命。这个过程是无法一步到位、一蹴而就的,而是以一种螺旋式形态探索前进的,除了在原有管理规范上引入新技术探究,还需要开发同步配合在应用架构上进行改造,基础架构将从环境运维逐渐转变成平台研发,以提供功能粒度细、服务自助化的运维平台来满足上层应用需求。
  通明大道去浮华,千辛历尽回本真
  PaaS并不能解决IT运维的所有问题,它对应了“民主共和”的部分,提供了一个用户自助的开放形式平台来满足部分应用需求。PaaS也不是从一开始就从解决异地容灾、流量切换等数据中心级别功能上设计的,而是在兼容当前企业应用架构、满足资源分配、计算单元打包、版本发布控制等基础功能后,再做进一步功能延伸的。PaaS并不是一种新兴技术,而是对以往运维经验的总结,利用容器等技术对开发、运维工作流的重新编排。
  IT技术更新发展快,新词汇层出不尽,特别是在云计算、大数据、移动互联下衍生了大量的产品,让运维人应接不暇,刚刚掌握Hadoop,又出Spark,才标准化ActiveMQ,又有Kafka,OpenStack的IaaS体系才得以了解,又有各种平台下的PaaS……如果要熟练掌握每一门技艺,则将是一个疲于奔命的过程,而这个过程大部分都是表面的产品架构与配置,我们会发现一旦深入其中,所有技术却看似一致。对于运维人员来说,亘古不变的始终是底层的三大基础资源计算、存储、网络,这些知识包括:程序的链接、加载与运行;操作系统下的CPU、内存、I/O资源管理;基本的TCP/IP协议栈等。随着技术层级越多、复杂性越高,运维人员只有透过眼花缭乱的“新技术”看到其内在一致的本质,在底层长期沉淀,理解好程序是如何调用三大基础资源,找到运维技术的本真,才可以做到最终的不变应万变,这也印证了运维是一个要耐得住寂寞的行当。
  最后让我们回到运维管理上,今年国内互联网上发生了几起影响比较严重的运维故障,一时间在圈内引起关于“再流弊的技术,也抵不过一次事故”等的科技杂谈,可见管理在运维上的重要性。管理是一门艺术,而这门艺术在运维上并不是形而上学、趋于神秘主义的,也不是绝对的“封”“杀”“控”,以怀疑主义、不信任方式来管控的。运维管理是人、流程与工具三方面的有机结合。“民主共和”型运维管理往往依赖于人的自觉性,而“君主立宪”则重在流程管控,朝两个极端偏倚而忽视它们与工具的结合都将不能从根本上解决问题。我们会发现越是技术实力强、自信的人越容易犯运维错误,而再完善的流程制度,如果烦琐到让人感觉“无意义”,那也就无从执行了。工具是人与流程之间的桥梁,但一定要注意这个工具不是管控的“枷锁”,而是在满足运维管理需求下关注一线运维人员用户体验的“帮手”。对于管理层,它是上层意志的体现,但对于一线运维人员,它是一个效率工具,除了包含精准配置信息、标准变更步骤,还要囊括人性的知识分享、社交互动等功能,它是为一线运维人员服务、以人为本的。
  内容大纲
  本书分为四大部分,分别是概念模型、基础资源、平台实现与运维管理,共十五章。各部分之间没有必然联系,读者可依据关注点和个人兴趣来阅读。对于需要系统化理解运维及PaaS的读者,建议遵循本书的章节顺序阅读。
  第一部分——概念模型:阐述了运维与开发之间的关系、这层关系存在的矛盾,以及PaaS是如何有效缓解其矛盾的。这部分介绍了公有PaaS平台的特征,以及其开放性与约束性,列出12-Factor规范来说明应用系统应当遵循的规则,这样才能适应于在PaaS上运行。
  第二部分——基础资源:勾勒出了数据中心的计算、网络、存储三大资源的主干,避免让人陷入上层的种种产品中。对于已熟悉数据中心三大资源的运维人员来说,本部分是资源的总体概述,让你重拾内在本质。若你是一名运维新兵,则请以此为纲要寻找外部资源来继续深入学习;开发人员可通过本部分了解到日常运维工作所管理对象的基本内容。
  第三部分——平台实现:通过开源产品来构建一个完整的PaaS平台,包括资源管理、任务调度、计算单元打包、分布式协调、日志集中等。通过学习本部分的内容,读者可以实现一个可扩展、自定义的开放PaaS平台,这个扩展部分包括了各自企业内部的集成部署流程、应用灰度发布、平台门户管理等方方面面的内容。
  第四部分——运维管理:对运维管理进行了实践。运维管理的核心是配置管理,一个好用、易用的配置管理系统将直接影响上层监控管理、变更管理及事件管理,决定一个企业运维品质的好坏。
  感谢
  首先特别感谢我的太太李嘉,在过去一年里,写作几乎占用了我所有的周末及其他休息时间,你承担起了家务,并对我与余多多悉心照顾,没有你的理解、宽容与支持,本书无法完成。感谢姐夫喻立新、姐姐何碧,你们在本书插图上给予了我很大的帮助。特别感谢饶琛琳、杨永帮利用周末进行审订稿件,感谢梁山在12-Factor上对我的帮助,感谢策划编辑孙学瑛老师对我的鼓励,感谢责任编辑虾米(张国霞)的校对、排版与指导。
  感谢我的公司平安科技,给予了我一个更大的平台,让我驰骋在IT运维大草原上得以一览全貌。感谢我的上级胡玮、朱永忠、李毅对我工作的支持,感谢我的同事王欣、于泳、宋楹柯、蓝景全、江锐、常明、黄文建、唐文祥、陈顺星、彭俊清、陈春润对我的帮助。感谢事件处理组的小伙伴们:王耀武、莫广华、陈秋浩、郑司营、赵宝磊、吴磊、林国峰、张浙栋、夏永燕、孟佩佩、罗颖胜、倪沛榆、丁江,感谢基础架构篮球队。感谢所有在互联网上帮助过我的朋友们。
  余何
  2015年11月


第一部分 概念模型
第1章 分布式PaaS平台介绍 2
1.1 什么是PaaS 2
1.1.1 开发与运维之间的困局 2
1.1.2 DevOps的自动化 3
1.1.3 云计算的IaaS 4
1.1.4 PaaS的到来 4
1.1.5 PaaS的约束与开放 4
1.1.6 PaaS解决的具体问题 5
1.2 什么是分布式计算 6
1.2.1 分布式计算与PaaS 6
1.2.2 分布式平台的挑战 7
第2章 PaaS模型与特征 10
2.1 主流PaaS平台架构 10
2.1.1 谷歌GAE 10
2.1.2 AEB 11
2.1.3 Cloud Foundry 13
2.1.4 Heroku 14
2.2 PaaS与12-Factor 15
2.2.1 基准代码(Codebase) 15
2.2.2 依赖(Dependency) 16
2.2.3 配置(Config) 17
2.2.4 后端服务(Backing Services) 18
2.2.5 构建(Build)、发布(Release)、运行(Run) 19
2.2.6 进程(Process) 20
2.2.7 端口绑定(Port Binding) 21
2.2.8 并发(Concurrency) 21
2.2.9 快捷性(Disposable) 22
2.2.10 开发/生产环境等价(Dev/Prod Parity) 23
2.2.11 日志(Log) 24
2.2.12 管理进程(Admin Process) 25
2.3 PaaS与Reaction宣言 26
2.3.1 响应(Responsive) 26
2.3.2 韧性(Resilient) 26
2.3.3 弹性(Elastic) 27
2.3.4 消息驱动(Message Driven) 28
第二部分 基础原理
第3章 计算资源 30
3.1 图灵机与冯?诺伊曼模型 30
3.2 服务器的种类 34
3.3 一切都是二进制 37
3.3.1 整数表示法 38
3.3.2 文本表示法 39
3.3.3 音频信息表示法 41
3.4 操作系统――计算机系统的指挥官 42
3.4.1 操作系统解决的问题 42
3.4.2 企业级操作系统 43
3.4.3 服务器虚拟化 47
3.5 进程――资源聚合的抽象体 49
3.5.1 计算单元的构建 49
3.5.2 计算请求的拆解 51
第4章 网络资源 53
4.1 协议分层 53
4.1.1 OSI网络体系模型 54
4.1.2 OSI与TCP/IP协议簇 55
4.1.3 交换、选路与传输 56
4.2 网络物理设备 58
4.2.1 连线与接口 59
4.2.2 二层交换机 62
4.2.3 路由及三层交换 63
4.2.4 四~七层网络设备 64
4.2.5 现实网络构成 65
4.3 网络逻辑拓扑 65
4.4 对网络拓扑的考虑 66
4.5 对物理布线的考虑 67
4.6 网络虚拟化与SDN 70
第5章 存储资源 73
5.1 俯瞰存储系统 73
5.1.1 数据存储功能分类 73
5.1.2 文件存储的三个层级 74
5.2 磁盘与磁盘阵列 77
5.2.1 硬盘的物理构造 77
5.2.2 磁盘阵列 79
5.2.3 SCSI协议 81
5.3 存储、计算分离 82
5.3.1 磁盘柜与盘阵 82
5.3.2 FC存储网络 83
5.3.3 FC协议栈 86
5.3.4 FC寻址过程 87
5.3.5 FC交换机与适配器 88
5.3.6 FCoE与iSCSI 89
5.4 存储访问类型 90
5.4.1 NAS与SAN 90
5.4.2 分布式存储 92
第三部分 平台实现
第6章 平台功能与架构 96
6.1 平台运维需求 96
6.1.1 软件配置 96
6.1.2 服务部署 97
6.1.3 服务发现 97
6.1.4 监控恢复 97
6.2 平台功能划分 97
6.3 平台高阶架构 100
6.4 企业应用迁移 102
6.4.1 企业应用很“厚重” 102
6.4.2 应用部署架构 102
6.4.3 企业应用调整 104
第7章 计算单元Docker 108
7.1 Docker介绍 108
7.1.1 Docker是什么 108
7.1.2 Docker术语 109
7.1.3 Docker安装 111
7.2 Docker容器命令 112
7.2.1 run命令 112
7.2.2 start命令 115
7.2.3 stop命令 116
7.2.4 restart命令 116
7.2.5 attach命令 116
7.2.6 ps命令 116
7.2.7 inspect命令 117
7.3 Docker镜像命令 119
7.3.1 search、pull、push命令 120
7.3.2 commit命令 120
7.3.3 image、diff、rmi命令 121
7.3.4 save、load、export、import命令 121
7.4 Docker网络与链接 122
7.4.1 Docker网络模式 122
7.4.2 pipework管理网络 125
7.4.3 容器链接与数据卷 127
7.5 Dockerfile 129
7.5.1 基本指令集 130
7.5.2 环境指令集 131
7.5.3 数据指令集 132
7.5.4 ENTRYPOINT指令 132
第8章 分布式协调ZooKeeper 134
8.1 ZooKeeper介绍 134
8.1.1 ZooKeeper是什么 134
8.1.2 ZooKeeper架构 135
8.1.3 数据模型 136
8.1.4 监听与通知 139
8.1.5 API集合 139
8.1.6 会话 140
8.1.7 观察者 141
8.2 ZooKeeper使用 141
8.2.1 快速安装 141
8.2.2 基本操作 143
8.2.3 配置参数 145
8.2.4 动态重配置 149
8.2.5 监控 152
8.3 ZooKeeper进阶 157
8.3.1 分组与权重 158
8.3.2 Paxos算法 159
8.3.3 ZAB协议 163
8.3.4 分布式协调场景 165
第9章 资源管理Mesos 167
9.1 Mesos介绍 167
9.1.1 资源管理需求 167
9.1.2 Mesos的起源 169
9.2 Mesos架构与工作流 169
9.2.1 Mesos架构组件 169
9.2.2 Mesos资源管理的工作流程 170
9.3 Mesos安装配置 172
9.3.1 安装预先准备 172
9.3.2 构建Mesos 173
9.3.3 启动Mesos 174
9.3.4 高可用Mesos 178
9.3.5 Slave移除限速 182
9.4 Mesos运维 183
9.4.1 认证管理 183
9.4.2 监控管理 186
9.4.3 容器网络限速 192
9.4.4 Framework API限速 194
9.4.5 Restful接口 195
9.4.6 配置参数 196
9.5 Mesos资源分配 197
9.5.1 DRF算法 197
9.5.2 DRF权重 199
第10章 服务调度框架 Marathon 200
10.1 Marathon介绍 200
10.1.1 服务调度平台 200
10.1.2 Marathon实体模型 201
10.2 Marathon使用 203
10.2.1 安装启动 203
10.2.2 运行Shell程序 204
10.2.3 运行远程资源 208
10.2.4 Artifact Store 209
10.3 Docker容器运行 211
10.3.1 前提准备条件 211
10.3.2 端口资源分配 212
10.3.3 容器端口分配 215
10.3.4 其他使用方法 216
10.4 Marathon管理 217
10.4.1 应用组 217
10.4.2 策略约束 219
10.4.3 健康检查 221
10.4.4 应用部署 223
10.4.5 事件总线 227
10.4.6 命令行参数 229
10.5 服务发现 231
10.5.1 服务发现方法 231
10.5.2 Marathon方案 232
10.5.3 Mesos-DNS 235
10.5.4 Bamboo 239
10.6 Chronos作业调度 241
10.6.1 作业调度框架 241
10.6.2 安装运行 241
10.6.3 作业示例 242
10.6.4 REST API 243
第11章 大数据调度框架Spark 245
11.1 Apache Spark介绍 245
11.1.1 Apache Spark是什么 245
11.1.2 Lambda架构 246
11.1.3 Spark生态系统 247
11.2 Spark数据处理 248
11.2.1 Spark 运行模式 248
11.2.2 Spark Standalone模式 252
11.2.3 Spark on Mesos 255
11.2.4 Spark Streaming 257
第12章 日志集中管理ELK 261
12.1 日志集中 261
12.1.1 日志集中介绍 261
12.1.2 日志集中架构 262
12.1.3 日志集中框架 264
12.2 Logstash 266
12.2.1 Logstash介绍 266
12.2.2 快速安装 267
12.2.3 配置说明 269
12.2.4 部署架构 282
12.2.5 处理流程 285
12.2.6 input插件 286
12.2.7 output插件 292
12.2.8 filter插件 296
12.2.9 codec插件 299
12.3 Elasticsearch 300
12.3.1 基本概念 300
12.3.2 安装与使用 304
12.3.3 REST API 305
12.3.4 集群设置 309
12.3.5 备份恢复 314
12.3.6 监控管理 315
12.4 Kibana 317
12.4.1 Kibana介绍 317
12.4.2 discover功能 319
12.4.3 visualize功能 324
12.4.4 Dashboard功能 327
第四部分 运维管理
第13章 配置管理 330
13.1 配置管理系统分析 331
13.1.1 服务模型进行分层 331
13.1.2 各IDC团队发现CI 332
13.1.3 IDC管理团队定义CI属性 333
13.1.4 确定CI之间的关联 336
13.2 配置管理系统设计 338
13.2.1 用户界面设计 339
13.2.2 权限控制、规则定义和OPENAPI 341
13.2.3 数据模型的设计 343
13.3 配置管理数据准确性的保证 345
13.3.1 识别CI的OWNER 345
13.3.2 识别CI的生命周期、关联运维流程 346
13.3.3 数据有效性的审计 346
第14章 监控管理 348
14.1 运维监控管理的问题与价值 348
14.1.1 监控管理的无形价值 349
14.1.2 监控平台建立的基础 350
14.1.3 监控管理的WANT原则 350
14.2 对运维监控平台的需求分析 352
14.2.1 一次监控过程,调度、规则、告警 352
14.2.2 数据图形化:百分位裁剪、趋势分析、正态分布 358
14.2.3 开源的借鉴与选择:Zabbix和Nagios 361
14.2.4 商业与开源:最后的决策 372
14.3 JMX监控原理解析 373
14.3.1 JMX的体系结构 374
14.3.2 一个完整的JMX体系架构实例 376
14.3.3 通过JMX访问WebLogic Server MBean 379
14.4 SNMP监控原理解析 383
14.4.1 SNMP协议解析:MIB库与消息类型 383
14.4.2 使用SNMP4J实现服务器监控 386
14.4.3 Linux下的监控实现:NET-SNMP 390
14.4.4 MIB库浏览工具:ManageEngine 391
第15章 运维管理 392
15.1 服务级别管理,IT与业务的一致性 392
15.1.1 客户满意度与期望 393
15.1.2 服务目录――IT服务的菜谱 396
15.1.3 从宏观到可操作性的服务 397
15.2 变更管理,使服务有效传递 399
15.2.1 变更控制的角色、阶段 399
15.2.2 变更管理的六个原则 401
15.2.3 变更分类与风险定级 402
15.2.4 表单、步骤、模板与日历 405
15.3 事件管理 409
15.3.1 分类管理与评价体系 409
15.3.2 任务分发、协同与时效 411
15.3.3 内部上报要求 412
15.3.4 重大事件处理 413
15.4 人员管理:开放与分享 415
15.4.1 企业社交管理 415
15.4.2 目标管理,做好绩效 417
15.4.3 知识管理,人员成长 417
15.4.4 时间管理,个人效率 420
15.5 PaaS下的运维发展之路 421

  • 下载地址

数据库书籍

网络通讯书籍

系统管理书籍