其实我有好些想写博客的材料,但是都没有写。我也有好些项目的想法,可是它们还在我的 TODO wiki 里。Arch Linux 中文社区还有许多要做的事情,可我也不想去做了。
我不知道是为什么。也许是孤单吧。一直以来都只有自己。即使 Arch Linux 社区,在做事的人也渐渐少了。而曾经在网上认识的朋友,渐渐地都有了自己的生活。随着 Google Hangout 取代 Google Talk、新浪微博取代 Twitter,还有微信,这些封闭的东西取代了自由的工具,可以放有用或者有意思的机器人的地方却越来越荒芜了。
当然,即使想到了,我也不会去用的,因为需要定制的东西太多。更新检查、依赖处理、错误回报、git 仓库管理什么的。传统的 CI 不像是天生支持这些的。最接近的 OBS 大家也知道,对 Arch 的支持很差。当然我可以进行二次开发,但工作量会很大、耗时会很长,因为那是我需要从头读文档、学习、尝试的一套系统,而对于 Linux 编程、Python 编程,我已经非常熟悉了。至于可重用性?首先我要解决它的可用性,东西都做不出来了,何谈可重用性呢?
当然 CI 系统对资源的消耗也不能忽视。
这个问题挺意外的,面试的时候没想这么清楚,没答到重点。
问题:为取得网站的高可用性,防止单个服务器挂掉影响整个服务,要怎么办呢?
我的回答是通过 DNS 和 anycast fallback。哪个服务器挂掉了就不用哪个了。DNS 的更新有些慢,在 DNS 应答中返回多个 IP 地址用处不大,大部分客户端都只会尝试第一个,我见过的只有 wget 会锲而不舍地穷尽一切方案去努力。Anycast 反应会更及时一些,CloudFlare 就喜欢用这个。
I want to be a Big Fish, but the lake is so small. I want to live in sea, but I have no way there. And they say, you aren't suitable for salty water.
To do it, or not to do it, it is wrong. This reminds me of my father.
I know about too many things, but none of them is good enough. 韩寒, I knew you were right, now I'm proof of your option.
It's so nice to meet you, CloudFlare. Really nice, not only your service, but your blog. You present me a larger world I'm looking forward to, a world I can only dream of, but fear that I will never reach. Even a piece of it.
There are 1724 days left. I've used more than a third now.