前言
说实话,看到自己在博客园的排名感到惭愧,因为自己最近两年没有持续地在博客园上写技术博客了,有人私下问我是不是荒废了?翻翻15年和16年的博客,真的是少的可怜。一方面的确由于岗位的变化,导致了工作变得越来越忙, 一方面写作的精力放在了公司技术公众号,内部技术和管理文档,摄影博客上了。
我一直很感慨时代的变化,读研的时候,我还在图书馆翻着一本本厚厚的专业书,短短几年后的今天知识获取来源已变得非常广泛:博客,公众号,微博,技术分享会等等,书籍的影响力反而变得渺小了。
但我内心里一直非常渴望自己能够静下心来,把近年来获取的知识和经验整理,并作专注性较强的输出。
因此,很高兴6月的第一周,由一帮大龄儿童们一起发布了《深入理解Openstack自动化部署》的第一个正式版本。说起部署这个事儿,一直伴随着Openstack诞生到现在,称得上是一个非常古老的话题了,然而在最近Austin Summit上,我们依然可以看到大量与部署有关的topic。
部署发展到今天,除了向部署速度更快和支持能力更强的方向发展,更重要的是部署作为运维体系中的一个重要环节,所有人都在考虑它的延展性,也就是如何能使用统一的平台或工具来完成Openstack集群的安装,配置,变更,升级和状态管理,因此如何选项显得非常重要。
为什么是PuppetOpenstack Modules?
Puppet是目前CMS领域中的领头羊,而PuppetOpenstack Modules项目(简称POM)诞生于12年,13年中进入到Openstack官方孵化项目(Stackforge),随后又成为了Openstack官方Governance项目。POM之所以能取得成功的原因主要在于其获得了大量公司和工程师的参与,甚至有一些主流的部署工具直接集成了POM:如Mirantis的Fuel,Redhat的Packstack, Openstack官方的TripleO,UnitedStack的Ctask都直接使用POM的upstream codes作为Openstack服务的部署模块,并且连续7次在Openstack社区的User survey中,位列deployment tools领域的第一。
我们是谁?
UnitedStack DevOps Team是一支很年轻的团队,不过我们持续专注在Openstack部署领域已有5个年头,积累了一些经验,因此想和各位分享:
- 在开源社区:早在12年底,POM项目尚处于雏形阶段我们开始参与其中,并促成了13年 POM项目从Puppetlabs官方项目转入到Openstack社区,我们对于POM项目的贡献也得到了社区的认可,其中xingchao在13年的时候,成为该项目的核心开发人员。
- 在工程领域:截止到2016年5月,我们一共使用了96个puppet modules, 6台PuppetMaster服务器, 集中管理着87个Openstack集群, 7套不同的部署环境,支撑了近3500台Openstack集群的服务器,我们经历了Puppet版本的数次升级,内部代码的多次重构和POM的多次版本升级,每日Openstack线上集群的频繁变更,我们也经历了Puppet,PuppetDB的性能调优,踩过了无数个看不见的明坑和暗坑。
本书讲什么?
本书是关于Openstack自动化部署工作核心部分的讲解:PuppetOpenstack modules和相关基础modules的深入分析和最佳实践。
通过这本书,你可以学习到:
- 当前最流行的部署项目PuppetOpenstack的代码级深入讲解
- Openstack Mitaka版本核心服务的部署讲解
- 关于配置管理的最佳实践总结
- Puppet的一些使用技巧
- 如何一本正经地胡说八道
举个栗子,在puppet-keystone模块章节中,我们首先从Keystone的基本概念开始介绍,试图为读者理清楚v3中关于domain,group,project,role,user之间的关系。然后我们通过一个快速部署keystone的实例让你先睹为快,接着我们就深入到核心代码中去讲解是如何做到的,最后我们会对本节重要的内容做一个小结。当然光看不练就是假把式了,我们为读者们精心准备了一些习题,让读者动手实际练习,加深理解。
下个版本?
我们认为docs is codes。 因此,本书也遵循常见的release规范。在初期,我们会在每月第一周发布新版本以保持快速地迭代,同时我们也会保持对于已完成章节的内容更新,如何你想要了解更多细节,请参阅本书最后的 版本日志 一节。
如何参与?
本书遵循开源管理方式,使用markdown语法编写,git作为版本控制,并托管在github上,如果你也对本书感兴趣,有任何改进的建议和想法,欢迎加入我们一起来添砖加瓦。
更多细节请参与本书的 如何参与 一节。
关于出版
目前虽然有多家出版社联系,但我没有答应,一是本书还有大量的后续编写计划没有开始,二是觉得一本书至少得经历多次的迭代才能变得成熟和稳定。所以,如何问我什么时候会出纸质版本?也许要等到我们发布v1.0版本的时候吧:D