simplicity is prerequisite for reliability

之前把博客从 Alibaba Cloud 迁移到 Google Cloud 之后,页面访问速度下降了一两倍,虽然我并不太在意页面访问速度,但还是能感觉到明显的延迟,毕竟虚拟机的物理位置从香港跑到了美西,RTT 翻倍是逃不掉的。延迟增大之后我访问后台的等待时间也变长了,这一点我还是比较在意的,但是也懒得把博客迁移回去了,将就将就也还好。

Read More...

这大约是一年之前的故事了。那时我图样图森破,由于各种各样的原因,用 Vert.x 框架写了一个充斥着反模式的消息队列。那时的我刚来到阿里云,唯一擅长的架构就是无状态的系统,数据全扔数据库里,数据库前面挡一层缓存,应用服务器完全对等水平扩缩容那种。Vert.x 也是我第一次用,完全异步的开发模式把我折腾坏了,即使用了 RxJava 成功规避了回调地狱,但也深深感受到用异步框架开发复杂业务基本是痴心妄想。

Read More...

前几天同事来找我看一个问题,说是一个 Python 进程完全堵住了。从日志来看确实是堵住了,卡在了一个奇怪的地方:尝试获取文件锁。比较悲催的是这段堵住的代码是我写的,简单地包装了一下领域相关的 Cgroups 操作和一些目录、权限的创建和回收。之前这份差事在我眼中属于「无聊的日常」。

工作并不总是充满挑战和乐趣,正因为大部分工作都是无聊的日常和琐碎的协作,有时候还有无奈的填坑和妥协的背锅,挑战和乐趣才显得难能可贵。

Read More...

前几天 Google Cloud 放出了一个号称 Always Free 的套餐,除了一个乞丐版的计算节点(1 Core 0.6G RAM 30G HDD),还有其他一系列的体验容量。资本主义的羊毛还是得好好薅一把,于是我果断注册了一发。

实测 us-west1-a 可用区的机器,到杭州电信的 RTT 大约在 300ms,作为博客机器还是勉强可以在 2s 左右打开网页的。其实现在我已经不像刚开始写博客那会那么关注博客的加载速度了,因为我相信人们并不会因为我的博客能秒开而访问它,人们访问它是因为它的内容有价值。

Read More...

我,一个 Java 的忠粉,前些日子也不得不开始用 Golang 写一些东西,原因其实很简单,语言也好信仰也好,都敌不过一个基本实现需求的能够为我节省大量代码的开源软件。

一年之前第一次值班,被各种问题弄得焦头烂额,当时就想着要是有个系统,能把生产系统中正在发生的各种问题以告警的方式给出来,同时附带解决方案该多好。当时也是初生牛犊不怕虎,值班日报里随即把基于日志采集实现业务监控、可视化的方案说了一通,复用阿里云的各种基础设施,也许只要数天就能搭建一套完备的日志采集、存储、分析、可视化、告警体系。

Read More...

17 年初的时候统计了一下我在 16 年读完的书,大约五十多本,平均下来一周至少一本,个人对这个结果还是比较满意的。

大约从去年四月开始,因为几个月后公司要搬家,我也为了上班方便,要搬到公司新址附近住下。清点个人物品的时候,发现了书架上满满两层的图书,当然是以计算机领域的图书为主,辅以畅销的比如「精进:如何成为一个很厉害的人」之类的成功学毒物。

Read More...

做分布式系统的人都知道大名鼎鼎的 CAP 定理,这个定理仿佛一个巨大的枷锁,套在了每一个分布式系统的开发者身上。前些日子我实现了一个 AP 的分布式系统,也就是说发生网络分区(P)的时候,系统会自动分裂成两部分各自独立工作,而不是像 ZooKeeper 或者 etcd 这种 CP 系统在网络分区之后少数派降级不工作。

为了验证系统在网络分区时的行为是否符合预期,我需要做个故障模拟,在本地搭建一个 Linux 集群,然后用 iptables 丢弃指定来源的包人工制造出网络分区的效果。

Read More...

前些日子我对 Grav Admin 的访问速度感到很不满意,经常打开 Dashboard 页面就给我来个 504 Gateway Timeout,不得不再刷新一次才能正常访问;甚至有一次我在编辑页面写了一大段文字之后,保存失败导致内容丢失,后来尝试再写也没法补全丢失的内容。这份不愉快让我萌生了寻找一个更厉害的博客引擎的念头。

但是基本上 Grav 已经是 2016 年最棒的开源 CMS 了,也就是说综合各个方面因素,没有什么比它更好的 CMS 可供选择。失望之余不免产生想要亲自动手造一个轮子,但是考虑到我已经废弃了原本就不怎么突出的前端能力,如今的我已经对实现一个靠谱的博客后台力不从心,这些冲动最终也只是想想而已。

Read More...

许久之前我分享了一个在 Hexo 博客中制作照片流的方法,至今这个照片流已经成为了我的博客中更新最频繁的页面,承载着我对那些曾经浪费我生命的美好事物的回忆,一开始是书籍和动漫、电影等影视作品,如今还多了个游戏,毕竟游戏继电影之后,也被归为艺术之列,号称「第九艺术」。

我对照片流这个功能是如此的喜爱,以至于我将博客从 Hexo 迁移到 Grav 之后,之前为 Hexo 开发的几个插件都被我放弃了,唯一一个被我移植到 Grav 上的,就是照片流。当然也有一部分原因是移植照片流的工作十分简单,以至于我只需要借助 Twig 模板的宏定义功能就能轻松搞定。

Read More...

要说 2016 年我在技术上的最大的收获,当属心态发生了转变。在此之前,我在技术上没有一个明确钻研方向,为了解决问题嘛,碰到什么问题就搞定什么问题,一时半会搞不定就绕过去,也能获得很好的结果。到头来却是,我成了一个「全栈」工程师,不知道我真实水平的人以为我能力很好,什么烫手山芋交给我都能得到超出预期的好结果。我自己却感觉到彷徨和困惑:几年之后,人们提起我的时候,想到的是一个干活很靠谱的全栈,还是一个别的什么?

Read More...