基础设施管理:从配置到架构的全面指南
1. 配置定义的组织
配置定义如同代码一样,随着时间推移容易变得庞大复杂。为避免这种情况,需要良好的纪律和习惯。基础设施团队掌握服务器配置工具的基本使用后,应花时间学习利用工具的模块化和复用功能。
目标是让单个模块或定义文件保持小而简单,易于理解。同时,整体组织要清晰,以便熟悉工具的人能快速找到并理解系统特定部分的定义。
部分服务器配置工具发展出了将配置定义作为包或库进行管理的功能。这些库可独立开发、版本控制、发布和安装,且通常有依赖管理系统,安装一个库时若有需要会自动触发其他库的安装。
配置定义的包管理工具示例如下:
| 工具 | 适用场景 |
| ---- | ---- |
| Berkshelf | Chef |
| Librarian - puppet | Puppet |
| r10k | Puppet |
采用测试驱动开发(TDD)来推动良好设计也是重要实践。很多人误解TDD只是在开发代码时编写自动化测试的方法,但熟练运用TDD的开发者和团队会发现,其主要价值在于推动代码设计的简洁性和可维护性。
对于配置定义,要确保每个模块都有一组单元测试,用于独立测试该模块。若测试编写和维护得当,当模块变得过大或复杂时,测试更新和维护会变得困难,这就表明模块可能存在问题。同时,若模块与其依赖项耦合过紧,也会导致难以设置独立测试。
2. 基础设施定义模式
随着基础设施规模、复杂度和用户数量的增加,实现基础设施即代码的优势变得愈发困难,主要体现在以下方面:
- 变更影响范围大,难以频繁、
超级会员免费看
订阅专栏 解锁全文
168万+

被折叠的 条评论
为什么被折叠?



