内容简介
第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-1The 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