Openstack自动化部署最佳实践
Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it.
— Alan J. Perlis, “Epigrams in Programming”
我们在一一介绍了众多基础模块,Openstack模块以及公共库模块后,是否就可以抡起袖子开始做大规模线上部署了?
答案是No。
哎,有话好好说,你们别丢臭鸡蛋啊…
读者:%#@($#@!,你骗我读了那么长的文档,竟然不能用于线上部署!
部署是一项复杂的系统工程,前期的架构设计,硬件规划和兼容性和性能测试,采购,上架,裸机操作系统安装,网络配置,这些都完成了,才到了软件部署阶段。
熟悉本书介绍的Puppet modules,加上对于Puppet的基础使用,的确是可以胜任Openstack集群的部署和配置管理了。
但是我们想把积累了5年的Openstack部署经验和4年的Puppet管理线上集群各种经验和教训归纳成最佳实践告诉给读者,以避免不合理的设计,为后期的运维管理埋下不稳定因素。
本章内容
我们将其归纳为以下几大块。
1.代码管理相关:
代码的规范与否体现了一个程序员的素质,代码的管理则反映了一家公司对待技术的态度。
那么代码规范体现在以下几点:
- 使用版本控制工具进行管理
- 符合一门语言的通用代码风格要求
- 完整的文档,包含commit消息,代码注释,架构文档等
- 不使用花式技巧
2.配置管理相关:
- Hiera
- Node Definition
- Environment
- PuppetDB
3.任务编排相关:
- ClusterShell
- Ansible
4.运维原则相关:
- 配置管理操作的基本守则