第1章 认识DevOps
1-1 DevOps出现的背景
1-1-1 DevOps诞生的背景
1-1-2 以敏捷开发为代表的持续开发方式的出现
1-1-3 持续开发带来的运维问题
1-1-4 DevOps 的诞生和历史
1-1-5 小结
1-2 认识 DevOps
1-2-1 以迅速满足商业需求为目标
1-2-2 PDCA循环和DevOps
1-2-3 抽象化
1-2-4 自动化
1-2-5 统一管理
1-2-6 持续集成
1-2-7 监控
1-2-8 目的意识、同理心和自主思考
1-2-9 小结
1-3 组织和 DevOps
1-3-1 DevOps能解决组织、团队中的什么问题
1-3-2 康威定律
1-3-3 小结
第2章 从个人开始实践DevOps
2-1 从小的地方开始实践DevOps
2-2 个人也能够实现DevOps
2-2-1 从哪里开始入手
2-2-2 构建本地开发环境
2-3 从个人环境到团队环境的准备
2-3-1 使用Vagrant实现本地开发环境的代码化
2-3-2 使用Ansible将构建工作通用化,并向其他环境展开
2-3-3 使用Serverspec实现基础设施测试代码化
2-3-4 使用Git在团队内共享配置信息
2-3-5 基础设施即代码和DevOps的目标
第3章 在团队中普及DevOps
3-1 在团队内实施DevOps的意义
3-2 实现团队工作的效率化
3-2-1 使用GitHub进行团队开发
3-2-2 使用Docker进一步提高开发效率
3-2-3 使用Jenkins管理工作
3-2-4 使用持续集成和持续交付优化发布
3-3 在团队中实施DevOps的效果
第4章 面向DevOps的架构变革
4-1 以DevOps为中心对架构进行变革
4-2 改变应用程序架构
4-2-1 The Twelve-Factor App
4-2-2 微服务架构
4-3 改变基础设施架构
4-3-1 使用不可变基础设施进行高效管理
4-3-2 使用蓝绿部署切换服务
4-3-3 本地部署和公有云
4-3-4 SaaS
4-3-5 日志收集和分析
4-4 改变团队
4-4-1 DevOps和敏捷开发
4-4-2 ticket驱动开发
4-4-3 网站可靠性工程
4-4-4 ChatOps
4-5 DevOps团队的作用
4-5-1 故障处理
4-5-2 实现持续集成和持续交付
4-5-3 性能优化
4-5-4 建立开发和运维之间的合作体制
第5章 实践基础设施即代码
5-1 实践持续集成和持续交付
5-1-1 持续集成和持续交付的组成要素和集成
5-1-2 集成GitHub和Slack:将GitHub的事件通知给Slack
5-1-3 集成GitHub和Jenkins:git push之后的自动化处理
5-1-4 集成Jenkins和Slack:将任务事件通知到Slack
5-1-5 集成Jenkins和Ansible:通过任务触发基础设施构建
5-1-6 集成Jenkins和Serverspec:通过构建任务触发基础设施测试
5-1-7 从GitHub触发Jenkins的Provisioning
5-1-8 使用持续集成和持续交付,将开发、构建和测试组合到一起
5-1-9 如何实现更实用的架构
5-2 实践 ELK技术栈
5-2-1 ELK技术栈的构成要素和集成
5-2-2 构建ELK技术栈
5-2-3 访问日志的可视化
5-2-4 可视化让我们距离DevOps更近一步
5-3 实践 不可变基础设施
5-3-1 实现不可变基础设施所需要的要素以及发布流程
5-3-2 使用CloudFormation构建基础环境
5-3-3 基于蓝绿部署进行发布工作
5-3-4 发生故障时切换基础设施
5-3-5 更具实用性的架构
5-3-6 不可变基础设施会从根本上改变基础设施的使用方式
第6章 跨越组织和团队间壁垒的DevOps
6-1 普及DevOps的困难之处
6-2 在组织中实施DevOps
6-2-1 在新的组织中实施DevOps
6-2-2 在既有组织中实施DevOps
6-2-3 实施DevOps的反模式
6-2-4 在组织形式方面是否有实施DevOps的最佳实践
6-3 团队整体的DevOps