前言

人是很奇怪的动物,天生懒惰,但是在压力的驱使下,又能做成一些连自己都会觉得惊讶的成就。对于天生喜欢写写随笔和技术blog的我,在近三年的时间里,虽有多家出版社编辑的循循善诱,仍然不为所动,心想着有这闲时间我不如多吃几份美食,多打两盘DOTA。

更深层次地讲其实是源于对于未知的恐惧,源于面对数十万文字工作量的害怕,这本就是一场体力和脑力并存的马拉松,普通人在看到终点的艰巨时,在起点就已经选择了放弃,然而我不是一个普通的人,因此早在6个月前我就富有先见之明地创建了这本书,并且写上了长达83个字节的详细介绍,然后就没有了下文。

无数次惨痛的教训告诉我:决心虽然重要,但是坚持更加可贵。让我重新拾起笔(键盘)的原因是源于今晚的一顿饭。今晚注定是一个平凡的夜晚,DevOps组的同学们像往常一样忙到晚上8点多已是饥肠辘辘,正纷纷收拾东西下班,大家站在公司门前讨论去哪里吃饭,这时我走出来,虽刚从纽约飞回到空气清新的帝都,时差还没有倒回来,脑袋浑浑噩噩,但又担心这帮邋遢的家伙站在公司大门口持续影响公司形象,于是忙把他们连哄带骗全都打包上车,拉到了附近的一家馆子里,几口飘香的云南饭菜入肚,大家就开始天南地北地扯东扯西,无外乎是谁谁谁今天又看了一本MySQL从删库到跑路,谁谁谁今天又当了一回Puppet背锅侠,谁谁谁的项目又埋了一个大坑。

不知不觉,我们就聊到了OpenStack自动化部署这个话题上。作为一名从2011年开始接触Openstack的老油条,在13年幸运地混进了PuppetOpenstack社区项目成了一名core,这漫漫五年时间里有许多知识经验和教训值得沉淀,因此我深深地感觉到是时候忽悠召唤这帮孩子来一起填这个史诗级别的远古巨坑了。

DevOps Team从13年伊始就全身心投入到持续交付和持续集成事业中,目前使用了96个puppet module, 6台PuppetMaster, 集中管理着约87个Openstack集群,7种不同环境,支撑了近3500台Openstack集群服务器。独立开发了云平台部署工具(Pluto), 软件包管理工具(Packforge/Specforge/Repoforge), IaaS虚拟资源池(Chameleon), Openstack升级套件(Screenwriter),这里面涉及到了大量的自动化运维工具,例如:Ansible, Foreman, Puppet, ClusterShell, Mcollective;同时还有大量运维脚本,包含了多种语言,如:Shell, Ruby, Python, Puppet。

说实话,DevOps团队里每个人平时都有忙不完的事情,从早上还没到公司到晚上回到家中,随时随刻会被人on call,就像今天吃饭那样,维宇同学正站在门口等我上个wc的时间,就被其他同事喊回去处理问题去了。但并不是说因此就有理由说,我们很忙,忙得没有时间写一本书。我们的确需要停下脚步,回头看一看过去三年的努力,然后做一个系统性的梳理和总结了。

本书是关于对Openstack自动化部署工作核心部分的讲解:

PuppetOpenstack核心模块和基础模块的详细介绍和最佳实践

我们规划每天晚上抽出3小时以上的不固定时间,计划在2个星期内(210+人时)完成第一版的初稿工作,然后开始进入稳定的迭代周期。而这本书仅是一个起步,这几天我规划了接下来的技术分享输出的Roadmap,比如Orchestration,CI, Rolling upgrade等热门话题。我们不想雷声大雨点小,因此当这些事情在真正落到地面的时候,你会听到那些令人振奋的声音。

最后,希望关注此书的读者们可以从中有所思,也有所得。

                      于月光明媚昏昏欲睡的五月凌晨

                                  余兴超

Last updated