- 引言
- 本书涉及的内容
- 第 1 部分 Python 开发入门
- 第 1 章 Python 入门
- 第 2 章 开发 Web 应用
- 第 3 章 Python 项目的结构与包的创建
- 第 4 章 面向团队开发的工具
- 第 5 章 项目管理与审查
- 第 6 章 用 Mercurial 管理源码
- 第 7 章 完备文档的基础
- 第 8 章 模块分割设计与单元测试
- 第 9 章 Python 封装及其运用
- 第 10 章 用 Jenkins 持续集成
- 第 11 章 环境搭建与部署的自动化
- 第 12 章 应用的性能改善
- 第 13 章 让测试为我们服务
- 第 14 章 轻松使用 Django
- 第 15 章 方便好用的 Python 模块
- 附录 A VirtualBox 的设置
- 附录 B OS(Ubuntu)的设置
11.3 小结
本章讲解了探讨环境搭建流程的思路以及自动化搭建环境的方法。
我们往往觉得环境的运行没有什么技术含量,而且很难看到付诸其中的努力。但是,应用能持续平稳地运行,毫无疑问是高效环境搭建以及维护的功劳。
从长远角度看,搭建环境的自动化对提高搭建环境及维护的效率有十分明显的效果。另外,搭建流程自动化使得项目成员能够自由地搭建个人开发环境,能大幅提高整个项目的生产能力。
因此推荐各位搭建环境时多注意稳定和高效两个方面。另外,为了让项目稳定高效运转,建议导入环境搭建的自动化。
专栏 自动化的 度 在哪里
当我们为实现自动化而写搭建流程的详细列表时,会发现搭建所需的步骤比我们想象中要多得多。其中有些内容自动化起来很麻烦,有些内容又很难自动化。于是这些步骤要自动化到一个什么“程度”便成了重要的研究课题。
刚开始导入自动化时,看到服务器自己搭建环境,人们往往会得意忘形,希望把所有步骤全都自动化。然而我们认为这样做是错的。Ansible 的 Playbook 虽然能极简洁地描述搭建步骤,但量堆积到一定数量同样会使可读性变差。shell 模块确实可以强行自动化一些繁杂的步骤,不过日后读和改的时候肯定会遇到麻烦。
我们认为,简化流程是流程自动化工作的一部分。大部分自动化工具都把构建时经常遇到的操作进行了简化,使得我们能轻松执行这些操作,Ansible 更是将这些机制以标准模块的形式提供给了我们。难以用这些标准模块实现的操作可以认为是冗余的或者是错的,应该考虑删除或者改良。有些时候,如果能简化流程或结构,考虑改变架构也是值得的。
通过自动化实现繁琐的搭建流程远不如找一个能简单完成环境搭建的方法来得有价值。因此不要想着用自动化去掩盖复杂的操作,而是要以自动化为契机着手改善流程。
专栏 巧用备份
搭建环境实现自动化后,每次向组中添加服务器都要整体从零搭建环境。但是,一遍遍重新搭建相同结构的服务器是一件非常浪费时间的事。如果我们采用的基础设备可以使用备份或服务器镜像,那么直接复制现有的服务器备份要远比重新搭建环境轻松且安全。
另外,添加新的服务器组时,由于全新服务器中不存在维护用户,所以每次都要面对自举问题。如果能从已有维护用户的状态开始搭建,那么整个过程将轻松不少。
出于以上原因,我们在搭建时会按照下述方针进行备份,缩短搭建时间。
- 在执行了 environ role 的状态下做一次备份
- 基于上述备份给每组里的每一台服务器搭建环境并备份,有多台服务器组成的服务器组基于该备份搭建环境。
虽然看服务器自动搭建环境是一种享受,但多余操作还是应该尽量减少。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论