"功能完成"并不意味着“产品就绪”,即便所有模块都通过了测试,也不足以证明软件就可以进行实际应用了。狂热的用户、超大的流量,以及闻所未闻的病毒,都可能是软件发布1.0版要面对的残酷现实。
《图灵程序设计丛书:发布!软件的设计与部署》针对以上挑战,详细展示软件发布前可能出现的种种问题以及相应的解决之道,适合包括网站和网络服务在内的所有企业级软件的架构师、设计师和开发人员阅读。书中所有主题都是通过作者自己研究过的真实案例来阐述的,具体内容分为四大部分:如何保证系统的稳定性,系统容量的真正含义以及优化方法,保证软件在数据中心流畅运行需要注意的设计问题,系统的运行寿命。
发布!软件的设计与部署 内容简介
《图灵程序设计丛书:发布!软件的设计与部署》分为四个部分,每部分内容都由一个研究案例引出。第一部分介绍了如何保证系统的生存,即维护系统正常运行。第二部分介绍了如何衡量系统的容量,以及如何随时间来优化系统的容量。在第三部分讲述了架构师在为数据中心构建软件时应该思考的一般设计问题。第四部分讨论了系统的运行寿命,将其作为整个信息生态环境的一部分。书中代码采用的Java语言,熟悉编程的人都能轻易阅读。作者从Java和Unix的视角看问题,因而本书的焦点比较中立,着眼于跨所有平台的技术和概念。在每种模式和反模式的末尾,都有一段简短精要的总结。
《图灵程序设计丛书:发布!软件的设计与部署》适合面向企业级软件的架构师、设计师和开发人员阅读参考。
发布!软件的设计与部署 目录
第1章 引言
1.1 瞄准正确的目标
1.2 使用决断力
1.3 生活的质量
1.4 挑战的范围
1.5 随手一松就是一百万
1.6 务实的架构
第一部分 稳定性
第2章 案例研究:航空系统宕机的异常
2.1 事故
2.2 结果
2.3 事后调查
2.4 确凿的证据
2.5 一点预防
第3章 稳定性概述
3.1 定义稳定性
3.2 故障模式
3.3 裂痕扩散
3.4 改障链
3.5 模式与反模式
第4章 稳定性反模式
4.1 集成点
4.2 连锁反应
4.3 连锁故障
4.4 用户
4.5 阻塞的线程
4.6 自我否定攻击
4.7 尺度效应
4.8 不平衡的容量
4.9 慢响应
4.10 SLA倒置
4.11 无边界结果集
第5章 稳定性模式
5.1 使用超时
5.2 断路器
5.3 隔板
5.4 稳定状态
5.5 快速失效
5.6 握手
5.7 测试装置
5.8 去耦合中间件
第6章 稳定性总结
第二部分 容量
第7章 案例研究:被客户压迫
7.1 发布倒计时
7.2 瞄准QA
7.3 负载测试
7.4 被大量会话所杀
7.5 测试的鸿沟
7.6 后果
第8章 容量概述
8.1 定义容量
8.2 约束
8.3 关联
8.4 可扩展性
8.5 容量的神话
8.6 总结
第9章 容量反模式
9.1 资源池竞争
9.2 泛滥的JSP碎片
9.3 AJAX过度之伤
9.4 驻留过久的会话
9.5 HTML中浪费的空间
9.6 刷新按钮
9.7 手工的SQL语句
9.8 数据库富营养化
9.9 集成点延迟
9.10 Cookie怪兽
9.11 总结
第10章 容量模式
10.1 连接池
10.2 谨慎使用缓存
10.3 预计算容量
10.4 调整垃圾回收器
10.5 总结
第三部分 一般设计问题
第11章 网络连接
11.1 多宿主服务器
11.2 路由
11.3 虚拟IP地址
第12章 安全
12.1 最少特权原则
12.2 配置的密码
第13章 可用性
13.1 收集可用性需求
13.2 记录可用性需求
13.3 负载均衡
13.4 集群
第14章 管理
14.1 “测试和产品匹配吗?”
14.2 配置文件
14.3 启动和关闭
14.4 管理接口
第15章 设计总结
第四部分 运营
第16章 案例研究:惊人的宇宙
16.1 旺季
16.2 婴儿的第一个圣诞
16.3 切脉
16.4 感恩节
16.5 黑色星期五
16.6 重要的信号
16.7 诊断测试
16.8 专家打来电话
16.9 比较解救方案
16.10 条件是否会响应处理
16.11 收尾
第17章 透明度
17.1 视角
17.2 透明度设计
17.3 使用各种技术
17.4 日志
17.5 监控系统
17.6 法律上及事实上的标准
17.7 操作数据库
17.8 支持流程
17.9 总结
第18章 适应
18.1 与时俱进
18.2 适应性的软件设计
18.3 适应性的企业架构
18.4 发布应无害
18.5 总结
参考书目
发布!软件的设计与部署 精彩文摘
交互式语音应答:可怕的电话菜单系统。
CF系统的架构师完全意识到了这次系统升级有多么重要。他们的目标就是高可用性。系统运行在一个J2EE应用服务器集群上,使用Oracle 9i 数据库存储冗余数据。所有的数据都存储在一个大型外置RAID阵列上,使用场外磁带每天备份两次,第二个机架上的磁盘副本保存五分钟前的数据。
Oracle数据库服务器每次都运行在集群的一个节点上,Veritas集群服务器用来控制数据库服务器、分配虚拟IP地址,以及从RAID阵列上安装和卸载文件系统。在最前端,一对冗余的硬件负载平衡器负责将输入的流量定向到一台应用服务器上去。调用自助值机亭和IVR系统等应用程序,会连接到前端的虚拟IP地址上去。到目前为止,一切都正常。
如果你做过网站或网络服务的工作,图2-1很可能会看起来很熟悉。这是一个非常常见的高可用性架构,并且设计良好。CF系统不存在任何常见的单点故障问题。CPU、风扇、硬盘、网卡、电源和网络交换机,每一个硬件都有冗余。服务器甚至能分割成多个机架,以防止某个机架意外被毁。实际上,当发生火灾、水灾、爆炸,甚至流星碰撞时,远在50公里外的第二集群可以马上接管所有工作。
本文来自弑魂战神投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。