simplicity is prerequisite for reliability

从之前那篇博文「尝试以一种不那么「酷」的方式写博客」开始算,我用 Grav 搭建的博客已经稳定运行了一个多月了。按照老规矩,我还是用 Docker 做部署,基础镜像还是我常用的 Alpine Linux。当然,我也因为用 Grav 搭建博客,学到了一些和最好的语言相关的人生经验。

Read More...

最近我开始接管一个应用 T,然而我并不是接管应用 T 的开发工作,而是搞一个新的应用 Q 来取代它,但是在 T 下线之前,我得做一些日常运维的工作让 T 能够正常工作下去。

也许是我刚刚成为 T 的 AppOps 的缘故,一时半会系统数据没来得及同步,T 的各种告警还没发到我这里。但是没告警不代表没问题呀,突然间旺旺响起,同事告知分组 X 下面的机器磁盘都快满了。

Read More...

最近我在 NGINX 上实现了一个负载均衡策略,优先使用「响应时间最短」的后端服务。说是 NGINX 其实并不太准确,因为我实际上是使用了 Openresty 中打包进 NGINX 的许多模块才能实现的,所以说是基于 Openresty 实现更为准确。

「快者优先」的 Lua 实现作为我的 NGINX 配置的一部分,可以从 dynamic-upstream-weight.lua 获得。在 Lua 之外,我们还需要两个全局的 Key-Value 缓存作为调整负载策略的数据基础,配置方式详见我的 NGINX 站点配置 blog.jamespan.me

Read More...

自从我借助 NGINX 和两台 ECS 把博客的部署结构变成高可用之后,许多意想不到的事情就陆陆续续出现了。

双十一前的最后一个下午,不如在微博上给我留言,问我的博客是不是挂了。

不不不,我的博客号称可用性 99.999%,怎么会说挂就挂呢(捂脸逃。于是问不如要了没法访问的 URL。

Read More...

前几天我的博客挂了,6 个多小时不可用。准确来说,是部署在 Gitcafe Pages 上的我的博客不可用,影响了墙内用户的访问。与此同时,我部署在 Github Pages 上的博客依然坚挺,墙外用户访问正常。

独立博客是博主分享想法、和读者交流的根据地,技术博客则是程序员的名片。都是我维护的系统,为什么我的博客不能和生产系统拥有差不多的可用性保障?

Read More...

最近工作中的各种事情杂乱繁多,之前用 Gitlab issue 来记录待办事项和处理过程的方式显得比较繁重了,我开始尝试简单地使用『看板』来跟踪我手头上的事情。集团内部有一个和内部系统高度集成的项目管理平台,看板只是其中的一个小功能。

试用一段时间之后感觉不错,碰巧我看到一篇文章,《Trello 的 5 个开源替代品》,于是决定自己部署一套看板。

至于为什么要自己部署一套看板,而不直接使用 Trello,也许是因为我是「不折腾会死星人」,然后又恰好买了 3 年的阿里云 ECS,不想让它闲置吧~

Read More...

我在之前的一片文章《个人 Wiki 之殇》中,提到我我正在使用的一个单文件 Wiki 系统,TiddlyWiki。

当时出于对未来 Wiki 页面文件体积的担忧,我感觉它的加载时间会逐渐发展到难以接受的程度。不久之前,我的 Wiki 页面文件就已经有 2.3MB 了,最近不知道是因为 TiddlyWiki 升级到 5.1.9 还是我安装了一个用于渲染 LaTeX 数学公式的插件,体积更是瞬间膨胀到了 2.7MB。

Read More...