我们的网站是如何运作的

吃自己的狗粮原则对软件质量很重要,这是你体验用户正在处理的事情的方式,我毫不羞愧地承认,由于运行项目Web服务器,Varnish已经发生了几个明显的改进。

但是,将所学知识外部化也很重要,因此我认为我应该在这里记录项目新的“内部IT”是如何工作的。

硬体

谁在乎啊?

是的,我们使用某种硬件,但老实说,我不知道它是什么。

我们的主站点运行在 RootBSD 'Omega' CDG/巴黎附近的某个虚拟服务器。

作为备份/集成/测试服务器,我们可以使用任何服务器,虚拟的或物理的,只要它有互联网连接和当代性能,因为整个安装是脚本化的,并在版本控制下(更多信息如下所示)。

操作系统

所以,狗粮:显然是免费的BSD。

除了我写了很多免费BSD,并能通过纠缠我的伙伴们获得世界级的支持之外,还有两个同样严肃的原因让Varnish项目在FreeBSD上运行:狗粮和监狱。

Varnish缓存不是“用于Linux的软件”,它是用于任何功能强大的类Unix操作系统的软件,而FreeBSD是我们主要的“让我们对此诚实”的平台。

监狱

你可能听说过Docker和Containers,但FreeBSD有监狱 since I wrote them in 1998 它们是保持您的服务器安装正常的绝佳方法。

我们目前有三个监狱:

脚本和版本控制的所有内容

我们有一个包含从零开始创建这些监狱的Shell脚本的git repos,以及一个正确配置主机的脚本。

这意味着,安装服务器的克隆的步骤如下:

# Install FreeBSD (if not already done by hosting)
# Configure networking (if not already done by hosting)
# Set the clock
service ntpdate forcestart
# Get git
env ASSUME_ALWAYS_YES=yes pkg install git
# Clone the private git repo
git clone ssh://example.com/root/Admin
# Edit the machines IP numbers in /etc/pf.conf
# Configure the host
sh build_host.sh |& tee _.bh
# Build the jails
foreach i (Tools Hitch Varnish)
        (cd $i ; sh build* |& tee _.bj)
end

从裸露的硬件到就绪的系统只需15-30分钟。

不用说,这个GIT报告包含像ssh主机密钥这样的东西,所以它应该 not 上GitHub吧。

备份

现在,只要我们有Admin Git报告的最新副本,我们就没有绝对需要备份的东西。

实际上,我们希望保留开发工具(VTEST、GCOV等)的历史记录。我会定期对服务器上的这些文件进行远程同步。

首页

该主页是用 Sphinx 生活在它自己的世界里 github project (非常欢迎拉取请求!)

我们已经拍摄了一些旧网站的快照,Trac,论坛等,作为静态的HTML副本。

到底为什么..。

让这样的设置运行起来有点乏味,每当您调整一些配置文件时,您需要记住将更改拉回并将其放入您的管理员报告中。

但是,这种额外的努力在以后会付出很多倍的代价。

你永远不会想知道“是谁做出了那个改变,为什么”,甚至不需要记住首先需要做什么改变。

对我们来说,作为一个项目,这意味着我们所有的系统管理员都可以构建我们的基础设施的克隆,如果他们有我们的Git Repos的副本并访问GitHub的话。

以及什么时候 FreeBSD 11 出来了,或者是新版本的狮身人面像或其他什么,摆弄东西,直到它们工作可以从容地做,而不是猜测工作。(我们现在实际是12岁,但这个笑话太好了,不能删除。)

例如,我刚刚添加了论坛快照,在我的一台测试机上解决了所有的问题。

一旦它是我想要的,我将更改推送到实时计算机,然后:

varnishadm vcl.use backup
# The 'backup' VCL does a "pass" of all traffic to my server
cd Admin
git pull
cd Tools
sh build_j_tools.sh |& tee _.bj
varnishadm vcl.load foobar varnish-live.vcl
varnishadm vcl.use foobar

有几分钟,我们的网站有点慢(因为从巴黎到丹麦的额外跳跃),但从来没有任何中断。

通过这样做,我 know 下一次也能用。

2016-04-25/phk

PS:所有关于“可复制的构建”的传言?是啊,这可不是什么新鲜事。