又一年过去了。2015 年在博客上发表文章的时间大幅度减少,全年只写了 23 篇博客,其实还有一小半是翻译。但是个人总结还是要写的,写在博客上,因为别的平台肯定不适合发这个……

写作

整个 2015 年,所有的时间都用在了日志分析领域。博客上 23 篇都是 ELK、Rsyslog、Spark 相关话题。而且把去年动手写的 gitbook 正式整理完善,在机械工业出版社出版了。取名依然是个人弱项,最后咬咬牙,就叫《ELK Stack权威指南》吧。

写书是件严肃的事情,换一家出版社,体验更深。在书稿完成,即将上架的时候,因为书名上这几个英文字母大小写、带不带空格的问题,编辑和我花了两天时间,收集各式资料,意图确认一个最官方最权威的拼写用法。

其实 Elastic.co 官方可能并不是特别在意这个问题。因为最终我在官网上发现了两种写法,在官推上,发现了四种写法……甚至最近的官方文档,又有直接叫 Elastic Stack 的,估计是准备强化公司品牌。不过在亚马逊上,看见一个新书预告,一位欧洲同好预备明年 2 月出版一本《ELK Stack Cookbook》。所以,最后我决定都统一为”ELK Stack”。

为了赶上 ESCC 北京站之前出版,书在十月底上架,不太巧的立马就碰上京东十一月两次搞活动,新书总是会被缺货的,于是有热心的朋友来问我,就只好都劝他们去互动出版网上购买。结果十一月这本书赫然变成互动出版网上的分类第一名。到前两天,看京东的 2015 年度计算机类书籍榜单,这本书在潜力榜排第 10 名。总之,应该还是对得起朋友,对得起读者,对得起自己了。

然而和一年前的总结一样,一年后我依然犯了一个错误:新书还是忘了在致谢中感谢老婆大人……事实上每个我在埋头写书的夜晚,她都一个人坐在离我两米外的地方直等到慢慢睡着。苍天,看来 2016 年我还得在写一本弥补这个遗憾……

和去年张罗 PerlChina Advent 一样,今年又尝试搞了一次 ELK Stack Advent。最后个人写了 16 篇,比去年 11 篇略微上升。真的只能说:要一个人干这种事情,太难太难了。感谢 medcl 的支持,感谢 mdecl、wood、childe 几位一块完成这次 advent 的伙伴。ELK 社区跟 Perl 社区可不一样,Perl 是有这项传统的,只要有人起个头,找齐人写还算容易。而 ELK 作为新社区,又刚刚举办过大会讲过各种分享了,真是感谢伙伴们榨出来的干货。日本 qiita 社区上登记了快 500 个 advent,最后坚持写完 24 篇的社区,也是少之又少。毅力和言必信行必果,绝对是一种宝贵的财富。

演讲

2015 年从一开始,就在到处参会演讲和交流分享。一直到这个月才中断。算上 2014 年总结中说的 4 个月,也就是我连续 15 个月在大小聚会中宣讲了 ELK Stack 和周边。最开始是一次网络课堂,讲没几分钟,有人在侧边框的聊天栏发『老师内容讲挺好的,别着急,声音别发抖』……当时准备的 PPT 不到 40 页。一路经过 WOT、infoQ、中华数据库大会、运维帮,到最后 PHPConf 的时候,PPT 已经增加到了将近 80 页。

到十月份,准备第四届 ESCC 的时候,这份 PPT 已经冗长到我自己也不再愿意用了。于是干脆重新写了一份《{{more}} Kibana 4》,也算是呼应了去年第三届 ESCC 时我讲的《{{more}} Kibana》话题。而这时候,已经有听众朋友线下跟我说:『全场分享嘉宾里你的气度最像一个讲师了』。

代码

和干的活类似,今年写的代码也都在这个领域,主要来说,写了一个 Kibana 4.2 的 visualize 扩展,叫 sankey chart。也是我 ESCC 演讲的主要实例。随后上海的分享后,medcl 说到场的 Elastic.co 的布道师团队负责人@ycombinator觉得这个扩展不错,回去催促 kibana 团队加快对这个 pull request 的 review。评论中,也还有好几位同好表示 “huge potential”, “a big +1”, “very useful”。可以说,这是做开源最幸福的事情啦~

另一个比较大的,是给 Rsyslog 提交的代码。在微博我们大规模运用了 Rsyslog 作为日志中转乃至数据处理的任务。从 Rsyslog 源码和测试用例集中发现了一些文档中都还没提及的用法可能性,也顺带就测试出来一些 bug。为 Rsyslog 新增了的 action.copymsg 选项,扩展了 omkafka 模块的 maxoutputqsize 性能数据统计项,新增了 mmgrok 和 mmdblookup 模块。当然,在交流中也发现了 Rsyslog 作为批量处理的缺点:Rsyslog 的设计逻辑是把数据尽快发出去,只有在发不出去的情况下,才会积累出队列批量处理。这跟 Elasticsearch 的优化路线是背道而驰的。Rsyslog 作者在社区呼声中表示会抽空提供一个队列控制的办法,不过预计短期内他是没空的……

另一方面自然还是继续关注 Perl。Perl6 终于在前天发布了!!上个月曾经尝试过用 Perl6 实现一个 Logstash,发现要实现到 Logstash 1.3 的语法支持度,基本上百行代码就够了。Perl6 的 Grammar 设计真的超方便。唯一的问题就是:性能性能性能!不知道明年这时候,Perl6 的性能会提升多少……

生活

六月借着去上海演讲的机会,去杭州休息了几天;十一月则趁离职休假,去西安休息了几天。相比来说,杭州是舒适的,可以安安静静的在西湖边上走走停停,一天就美好的过去;西安是厚重的,计划中一天看两个博物馆,压根就逛不完。老婆大人最后用一句话解决了心中的纠结和矛盾:『以后有小孩了肯定要带来看兵马俑的,还怕没机会再来西安么?』

然而一想:其实大多数曾经到过的城市,不会再有机会看一眼了。真的好伤怀……以 IT 宅男码农的身份,感觉只能期盼全国各地都赶紧出一些牛逼的互联网公司,然后才有机会了啊……创业者们,加油~

再看看北京现在这个雾霾天,真是更加想念那些美好的地方啊。

发展

临近年底,选择了离职。微博移动端运维是个具有很强战斗力的团队。几乎每一两个人就要,也做到了支撑起一个方向上的所有任务。我相信这是一个可以作为国内 SRE 建设典范的团队。但是作为已经在日志处理上耗费了将近两年时间的个人,思考再三决定试试看把这种深度的经验做个变现。这个决定还得感谢之前人人网的前同事和前领导们,虽然你们引诱我跳槽的目的失败了,但是你们说的道理我接受了。尽管最后我做的决定刚好相反,不是找个中小型公司转型带团队,而是彻底地扎进日志的无底洞……

明年或许不会像今年这样出没在各种大会小会上,但是对各种运维技术领域的知识的学习,不会也不能中断。虽然现在 devopsweekly 里十有五六都是 docker, docker, docker……但未来谁知道呢,~

最后,在朋友的邀请下,准备明年开始尝试一下做点小规模的线下面授培训的活动。话题自然是 ELK Stack 相关。以 ELK 的发展,或许明年就会有不少急缺高级 ELK 经验的岗位呢,到时候欢迎找我要人,哈哈~~

预祝 2016 年年终个人总结时,我会一如既往的对自己满意,对未来充满信心。