本篇主要提供云系统管理:大规模分布式系统设计与运营计算机与互联网|229817电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
书名: | (正版特价)云系统管理:大规模分布式系统设计与运营|229817 |
图书定价: | 99元 |
图书作者: | (美)托马斯A. 利蒙切利(Thomas A. Limoncelli) |
出版社: | 机械工业出版社 |
出版日期: | 2016/7/1 0:00:00 |
ISBN号: | 9787111541608 |
开本: | 16开 |
页数: | 0 |
版次: | 1-1 |
作者简介 |
托马斯A. 利蒙切利(Thomas A. Limoncelli)是具有国际声誉的作家、演说家和系统管理专家。在Google NYC的7年中,他曾经担任Blog Search(博客搜索)、Ganeti和各种内部企业IT服务项目的SRE。他现在于Stack Exchange公司任SRE,该公司主办ServerFault.com 和 Stack-Overflow.com网站。Thomas的第一份有报酬的系统管理工作是1987年在德鲁大学学习时获得的,此后在小型和大型公司中任职,包括AT&T/Lucent贝尔实验室等。他的著名作品包括《Time Management for System Administrators》(O'Reilly)和《The Practice of System and Network Administration, Second Edition》(Addison-Wesley)。他的爱好包括草根行动,为此进行的工作在州乃至国家的层面上得到公认。Thomas目前住在新泽西州。 斯特拉塔R. 查卢普(Strata R. Chalup)已经领导和管理复杂IT项目多年,所担任的职务包括项目经理和运营主管。Strata曾经撰写过管理方面的多篇论文,并且与许多团队合作,在各种志愿组织(包括BayLISA和SAGE)应用其管理技能。她于1983年在波士顿的MIT开始管理VAX Ultrix和Unisys UNIX,在硅谷度过了.com年代,为iPlanet和Palm等客户构建互联网服务。2007年,她与Tom和Christina一起编写了《The Practice of System and Network Administration, Second Edition》。Strata的爱好包括学习新技术(如Arduino和各种2D CAD/CAM设备)和园艺。她住在加州的圣克拉拉县。 克里斯蒂娜J. 霍根(Christina J. Hogan)在系统管理和网络工程上有20年的经验,足迹遍及美国硅谷、意大利和瑞士。她在小型创业公司、中等规模技术公司和大型跨国公司获得了经验,多年担任安全顾问,客户包括eBay、Silicon Graphics和SystemExperts。2005年,她和Tom因为合著的《The Practice of System and Network Administration》一书而分享了SAGE杰出成就奖。她拥有数学学士学位、计算机科学硕士学位、航空工程博士学位和法学文凭。她还曾在某F1车队担任空气动力学家6年之久,并代表爱尔兰参加1988年国际象棋奥林匹克竞赛,现居瑞士。 |
内容简介 |
本书分为两个部分——设计和运营。第一部分捕捉我们在大规模、复杂、基于云的分布式计算系统设计上的想法。在引言之后,我们从底向上逐层介绍设计的每个要素。我们从系统管理员(而非计算机科学家)的角度介绍分布式系统,要运营一个系统就必须理解其内部原理。第二部分描述如何运营这些系统。前面几章介绍最基本的问题。后面几章深入更为复杂的技术活动,然后是概要规划和将以上要素组合起来的战略。 |
目录 |
译者序 前言 作者简介 引言1 第一部分 设计:构建系统 第1章 分布式世界中的设计8 1.1 大规模的可见性9 1.2 简单的重要性10 1.3 构成10 1.3.1 具有多个后端副本的负载平衡器10 1.3.2 具有多个后端的服务器12 1.3.3 服务器树13 1.4 分布状态14 1.5 CAP原则16 1.5.1 一致性16 1.5.2 可用性17 1.5.3 分区可容忍性17 1.6 松散耦合系统19 1.7 速度20 1.8 小结23 练习23 第2章 为运营而设计25 2.1 运营需求25 2.1.1 配置26 2.1.2 启动和关机27 2.1.3 队列排空28 2.1.4 软件升级29 2.1.5 备份和恢复29 2.1.6 冗余性29 2.1.7 数据库副本30 2.1.8 热切换31 2.1.9 单独功能开关31 2.1.10 优雅降级31 2.1.11 访问控制和速率限制32 2.1.12 数据导入控制33 2.1.13 监控33 2.1.14 审计33 2.1.15 调试设施34 2.1.16 异常收集34 2.1.17 运营文档35 2.2 为运营实现设计35 2.2.1 从一开始就构建功能36 2.2.2 在确定功能时提出请求36 2.2.3 自行编写功能37 2.2.4 与第三方供应商合作37 2.3 改善模型38 2.4 小结38 练习39 第3章 选择服务平台40 3.1 服务抽象水平41 3.1.1 基础设施即服务41 3.1.2 平台即服务42 3.1.3 软件即服务43 3.2 机器的类型44 3.2.1 物理机器44 3.2.2 虚拟机44 3.2.3 容器46 3.3 资源共享水平48 3.3.1 依从性49 3.3.2 隐私49 3.3.3 成本49 3.3.4 控制50 3.4 主机托管50 3.5 选择策略51 3.6 小结53 练习53 第4章 应用程序架构54 4.1 单机Web服务器55 4.2 三层Web服务56 4.2.1 负载平衡器种类56 4.2.2 负载平衡方法57 4.2.3 共享状态的负载平衡58 4.2.4 用户身份标识59 4.2.5 伸缩性59 4.3 四层Web服务60 4.3.1 前端60 4.3.2 应用服务器61 4.3.3 配置选项62 4.4 反向代理服务62 4.5 云规模服务62 4.5.1 全局负载平衡器63 4.5.2 全局负载平衡方法63 4.5.3 使用用户特定数据的全局负载平衡64 4.5.4 内部主干网64 4.6 消息总线架构66 4.6.1 消息总线设计67 4.6.2 消息总线可靠性67 4.6.3 例1:链接缩短网站68 4.6.4 例2:员工人力资源数据更新69 4.7 面向服务的架构70 4.7.1 灵活性70 4.7.2 支持70 4.7.3 最佳实践71 4.8 小结71 练习72 第5章 伸缩性设计模式73 5.1 总体战略74 5.1.1 识别瓶颈74 5.1.2 重新设计组件74 5.1.3 计量结果74 5.1.4 保持主动75 5.2 纵向扩展75 5.3 AKF伸缩立方体76 5.3.1 x轴:水平复制76 5.3.2 y轴:功能或者服务分割77 5.3.3 z轴:面向查找的分割79 5.3.4 组合80 5.4 缓存80 5.4.1 缓存效能80 5.4.2 缓存布置81 5.4.3 缓存持久性81 5.4.4 缓存置换算法82 5.4.5 缓存条目失效82 5.4.6 缓存大小83 5.5 数据分片84 5.6 线程处理86 5.7 队列86 5.7.1 优点87 5.7.2 变种87 5.8 内容分发网络87 5.9 小结89 练习89 第6章 弹性设计模式90 6.1 软件弹性胜过硬件可靠性91 6.2 所有东西最终都会失灵92 6.2.1 分布式系统的MTBF92 6.2.2 传统方法92 6.2.3 分布式计算方法93 6.3 通过备用容量实现弹性94 6.3.1 需要多少备用容量95 6.3.2 负载平衡与热备份的对比95 6.4 故障域96 6.5 软件故障97 6.5.1 软件崩溃97 6.5.2 软件挂起98 6.5.3 死查询98 6.6 物理故障99 6.6.1 部件和组件99 6.6.2 机器101 6.6.3 负载平衡器102 6.6.4 机架103 6.6.5 数据中心104 6.7 超载故障104 6.7.1 流量浪涌105 6.7.2 DoS和DDoS攻击106 6.7.3 抓取攻击106 6.8 人为错误107 6.9 小结108 练习108 第二部分 运营:运行系统 第7章 分布式世界中的运营110 7.1 分布式系统运营111 7.1.1 SRE和传统企业IT的对比111 7.1.2 变化和稳定性的对比112 7.1.3 SRE定义113 7.1.4 大规模运营114 7.2 服务生命周期116 7.2.1 服务启动117 7.2.2 服务退役120 7.3 运营团队组织策略120 7.3.1 团队成员的工作日类型122 7.3.2 其他策略124 7.4 虚拟办公室125 7.4.1 沟通机制125 7.4.2 沟通策略125 7.5 小结125 练习126 第8章 DevOps文化128 8.1 什么是DevOps129 8.1.1 传统方法130 8.1.2 DevOps方法131 8.2 DevOps的3条道路131 8.2.1 第一条道路:工作流131 8.2.2 第二条道路:改进反馈132 8.2.3 第三条道路:持续试验和学习133 8.2.4 小批次更好133 8.2.5 策略的采用134 8.3 DevOps的历史134 8.3.1 演变135 8.3.2 网站可靠性工程135 8.4 DevOps价值观和原则136 8.4.1 关系136 8.4.2 整合136 8.4.3 自动化136 8.4.4 持续改进136 8.4.5 常见的非技术性DevOps实践137 8.4.6 常见的技术性DevOps实践138 8.4.7 DevOps发行工程实践139 8.5 向DevOps转化139 8.5.1 准备开始139 8.5.2 企业层面的DevOps140 8.6 敏捷和持续交付141 8.6.1 什么是敏捷141 8.6.2 什么是持续交付141 8.7 小结143 练习144 第9章 服务交付:构建阶段145 9.1 服务交付策略146 9.1.1 模式:现代化的DevOps方法论146 9.1.2 反模式:瀑布方法论148 9.2 高质量的良性循环148 9.3 构建阶段的步骤150 9.3.1 开发150 9.3.2 提交150 9.3.3 构建151 9.3.4 打包152 9.3.5 注册152 9.4 构建控制台152 9.5 持续集成153 9.6 以软件包作为移交接口154 9.7 小结155 练习156 第10章 服务交付:部署阶段157 10.1 部署阶段的步骤157 10.1.1 升级157 10.1.2 安装158 10.1.3 配置158 10.2 测试和批准159 10.2.1 测试160 10.2.2 批准161 10.3 运营控制台161 10.4 基础设施自动化策略161 10.4.1 准备物理机器162 10.4.2 准备虚拟机162 10.4.3 安装OS和服务163 10.5 持续交付164 10.6 基础设施即代码164 10.7 其他平台服务165 10.8 小结165 练习166 第11章 升级运行中的服务167 11.1 卸下服务进行升级167 11.2 滚动升级168 11.3 “金丝雀”169 11.4 分阶段试运行170 11.5 按比例分片171 11.6 蓝-绿部署171 11.7 功能切换171 11.8 在线模式更改174 11.9 在线代码更改175 11.10 持续部署175 11.11 处理失败的代码推送177 11.12 发行原子性178 11.13 小结179 练习180 第12章 自动化181 12.1 自动化方法182 12.1.1 剩余原则182 12.1.2 补偿原则183 12.1.3 互补性原则184 12.1.4 系统管理自动化185 12.1.5... |
编辑推荐 |
|