又到一年底,总结个人业绩和得失的时候了。于我个人而言,2014 年真是精彩纷呈。

说说写作

首先,4 月份我写的《网站运维技术与实践》面市。开卖之前,有好心的朋友叮嘱说,万一碰到在网店评论区捣乱的,千万不要理会。不过半年多过去,似乎最差的评论也只是说章节名字取得太烂。这点真心承认,尤其是第一章,各小节标题直接就是各种 linux 命令,偏巧一般网上目录介绍默认就只显示最前面一点而不是展开全部目录的,第一眼看过去就好像本书是一本命令大全!

第一次写书,留下几个遗憾。第一,忘了写致谢!第二,章节的安排次序在我心中其实是有一个完整的先后逻辑的,然而我竟然忘记在前言中讲明。直到半年后有人问及为什么没有说说一个产品交付运维的完整流程应该如何,我回答说:看书目录的次序就是了。

好在销量据说尚可,这应该让我有机会在第二版中弥补。

为此书写的《西江月》最后是印在了封底内页,或许第二版,我给每章写一句诗做副标题?

其次,跟刘宇、长元、春生一起翻译的《Puppet Cookbook》应该也快面市了。一本 200 页的小书,编辑也忍耐我们这么多人来打酱油,呼呼~ Puppet 本身是一个到处都有新矿可挖的生态圈。曾经有同事看过刘宇的《Puppet 实战》和我的《网站运维技术与实践》Puppet 章节后说:你写的 puppet 跟刘宇的完全不一样的技术点,完全可以叫《Another Puppet 实战》。那么,现在大家有福了,这本翻译的 cookbook 内容大多又是我们两个之前没覆盖到的,可算是《Yet Another Puppet 实战》。

在这两个之外,还在 gitbook.com 上写了两本电子书,是关于实时大数据处理 ELKstack 的。稍后再单独说。

技术写作这件事情,本身在圈内就很有争议。比如左耳朵耗子就多次明嘲暗贬。我还是觉得,抛开赚钱的话题(其实就是根本不赚钱,一本书稿费还不抵作者半个月薪水呢),认认真真给自己的技术归纳体系,列目录,写总结,完善用例,深挖根源,一般情况下绝对是很难真的动手而且万难坚持下来的事情。一旦你决定要写成“书”而不是散落的“文本”,各方面的压力就从此变成动力。

突然想起来这段感慨在去年应该就写过了……因为《网站运维技术与实践》其实在去年秋天就完稿的。

工作和生活

5 月去了苏州旅游。作为一个婚假都忘了休的人,这真是一次美好的记忆。原先计划要跑遍长三角,结果看着苏州园林,听着吴侬软语,吃着生煎,就挪不动步子,彻彻底底在苏州呆完了整个假期。现在一边写着这份总结,一边又想起昆曲博物馆里坐我左手边的那个台湾老教授,想起虎丘山门外林立的名家碑文。这是怎样一种奢侈。

7 月换了份工作到新浪。新浪的面试官是惯来喜欢砸人的,于是我先前在一家公司呆久了,就会先找个新浪的面试,被砸一砸,然后回去就可以安心的继续工作或者研究。不料这次真的进新浪了,开始了我“砸”别人的日子……

9 月是最紧张的时候,丢掉之前各种规划,接手一个没有测试报告,没有设计文档,没有运行状态,只有“又不行了”的日志系统。老妈正好这个月来北京,于是一边想着不能让老妈觉得我其实一直这么苦逼的拼命啊,一边半夜三点回家……

这破烂状态虽然现在结束了,但是手头已有和要有的这摊子事情,依然都是没测试没设计没文档的状态,真心要吐槽,一点“大公司”的感觉都没有啊。

社区活动

4 月 CSDN 邀请了 Larry Wall 来中国。对于 Perl 程序员简直是再幸福不过了。好玩的是教主在我的大骆驼书上签名时划破了那页纸,于是他拿起他的大骆驼印章,给那页上一口气按了十多个骆驼==!

12 月,主动提起应该继续 PerlChina 的 Advent 活动,在 fayland 的帮助下,搭建了 http://advent.perl-china.com 网站,而且 24 篇 gift 我写了 11 篇。还是那句话,坚持是最大的困难……

同样在坚持的,还有 @perldaily 这个微博号,一年来每周的 perlweekly、rubyweekly、devopsweekly,都坚持阅读,并且挑选转发到微博上。12 月更是同时阅读着每天的 perladvent、perl6advent、catalystadvent、danceradvent、perladvent.kr、perladvent.jp、rubyadvent、goadvent、sysadvent、performanceadvent,并且转发到微博。

技术动态

docker

年初的时候跟着去年下半年的惯性,还是很积极的跟踪尝试 docker 来着。包括用 docker 做了一个类似 JSFiddle 的 Perl 在线代码调试工具。唯一的问题就是 fork 炸弹,然后靠 ulimit 启动解决。

稍后还参加了第一次 docker beijing meetup。差不多时间接赵鹏的邀请试用了一把他的 visualops,转身自己用开源的 diagramo 试了试如何在页面拖动服务器图标生成 fig.yml 配置。不过玩起来好搞,搞成产品,那就难了,visualops 做的是真到位,赞!

docker 的故事就到这里,之后就没机会再参与了。

perl

模仿 serverspec 工具写了 Rex::Test::Spec 模块,结果被 rex 项目作者邀请加入了 RexOps 开发组。不过实话是 Perl 确实现在式微,2013 年,Rex 跟 Saltstack、Ansible 感觉都是差不多的小众产品,到今年,后二者风头正劲,无数人开始问“salt 跟 puppet 哪个好啊”的问题。公司内部也没有 Perl 氛围,我也就保持着自己个人使用,懒得推广了。

另一个一直在保持跟踪的是 Perl6。测试过用 Perl6 写 Puppet 的 ENC 脚本,还为此去修复了 Perl6 版本的 YAML::Dump 模块。测试过用 Perl6 如何做并发编程,了解了 Promise、Supply 等概念。但愿教主和 jnthn 能在明年解决一定的性能问题,发布 6.0 版吧……

今年还订阅了 Perl5Porter 的邮件组,看着 Perl5 开发者们是如何维护 Perl5 代码的。跟昨天 Larry Wall 发表在 Perl6 Advent 上的想法真是出奇的一致:Perl 是一个健全的城市,不需要五年计划,有人愿意盖房子,市议会负责别让他影响其他人就够了。就在这个思想的指导下,今年 5 月发的 Perl5 version 20 加上了 sub signature,实现者是今年 2 月份才提出自己要做的;而下半年突然出现的俄罗斯大神则提出要给 Perl5 的 OOP 性能提高一倍,然后看着 P5P 的人一步一步教他怎么用 git,怎么拆分他的大 patch 成一个一个 commit 和 test,让人无比期待明年的 Perl5 version 22 了。

ELKstack

ELKstack 在今年占据了我大量的精力,从博客中就可以看到。2014 年,一共发了 64 篇博客,标记为 ELK 相关的有 27 篇,接近一半。

ES 公司从今年 4 月开始停止了 Kibana3 的开发,专门去做 Kibana4 的重构工作,至今还没发布正式版。在这大半年的空档期内,我在自己的 fork 仓库里,新增了 11 项功能,替换 Facet 为 Aggr 接口,百分比统计、区间分布统计、去重数据走势、高德地图、请求生成器、阈值通知、数值统计值地图、单图表引用、表单导出等等。还提供了社区最完整的验证授权代理功能。目前收到了 40 个 star。

去年底建的 QQ 群,到目前有接近 400 人加入。尤其开心的,这让我发现 ELK 的使用者,很多是开发工程师、安全工程师。这种交叉领域的聊天非常舒服,给人启发。当然要感谢携程的几位朋友,wood 童鞋老早在群里公开自己的十亿级用例的 ppt,也是官网文档的活字典,childe 童鞋最早开始写 statisictrend panel,没他吃螃蟹在先,我可能还想不到自己动手做 kibana 去。

QQ 群里经常出现的重复问题,也触发我最终选择在 gitbook.com 上写电子书。很遗憾 ELK 还不够火,所以单独写纸质书的可能性是微乎其微了,好在 gitbook 的使用感觉还不错,需要吐槽的就是定价只能涨不能降这个设定,此外,不凑够 $50 不能取现,不取现不能删除书籍也让我头疼不已,我真的不是有意给自己电子书设置价格的。

两本书的 markdown 源码都发在了 github 上托管。分别有 8234 个 star。此外,还收到了共计 573.87 元支付宝打赏。然后我花了其中两百多去买了一个很有意思的域名:kibana.logstash.es。哈哈~

ELK 本身的讨论和思考,年终总结里就不再啰嗦了,基本都写在电子书里,欢迎大家阅读、点赞和打赏……

10 月,medcl 主办了 ES 中国的第三次大会,也是第一届正式的大会(突然有第 24 次第一届搞笑诺贝尔奖即视感)。应该有 200 人到会场。我做了 《{{More}} Kibana》的分享。认识了几位演讲嘉宾,一个赛一个的年轻,全都是 85 后。

11 月,长元离京前的 Puppet 群组 8 人小聚会上,分享 ELK 概念和演示常见配置用法。

12 月,Beijing.pm 例行月度 7 人小聚会上,分享 ELK 概念和演示常见配置用法。

加上明年 1 月准备在火龙果上做的 ELK 分享。这会是连续 4 个月在外分享 ELKstack 了。这或许又会是一种坚持?看看明年 2 月以后还有没有机会继续吧……