云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

轻量服务器_263企业邮箱iphone_免费1年

小七 141 0

CloudFlare和开源软件:一条双向通道

CloudFlare使用大量开源和免费软件。我们的核心服务器平台是nginx(它是使用两个条款的BSD许可证发布的),我们选择的主要数据库是postgresql(它是使用他们自己的类似BSD的许可证发布的)。我们在《京都议定书》上发表过很多关于《京都议定书》的文章。当然,我们还使用开源工具,如gcc、make、Go编程语言、Lua、python、Perl和PHP,以及Sentry、Kibana和nagios等项目。当然,我们使用Linux。写下我们用来构建CloudFlare的所有软件需要一段时间,但所有这些软件都有一个共同点:它是开源软件还是免费软件。我们的堆栈要么是我们自己构建的软件,要么是一个开源项目(我们有时会分叉)。为什么要建立在开源基础上对于大多数读者来说,我们使用开源软件的原因可能是显而易见的:它可靠,易于修改,易于维护。但是还有一个不应该被忽视的好处:使用和使用开源软件给程序员带来了极大的工作满意度,它有助于我们雇佣最好的人。我们鼓励程序员发布他们对开源软件所做的更改,并通过CloudFlare GitHub页面发布项目。

CloudFlare GitHub

在GitHub,您可以找到诸如golog(一种高性能的Go记录器)、lua cmsgpack(MessagePack for lua的实现)、基于Python的CNAME扁平化器和systemtap的宏语言等项目。您还可以找到ngx_lua模块,它将lua嵌入nginx中。CloudFlare最初写的不是这个东西,但我们对它的使用非常广泛,所以我们雇佣了张伊春。在CloudFlare工作期间,他继续全职工作。而且,如果您曾经深入研究过nginx的内部结构,您会认识另一位CloudFlare员工Piotr Sikora,他最近向nginx添加了为TLS会话票证设置密钥的功能。因此,在CloudFlare,开源可以让你找到一份工作,成为你的工作,或者至少,成为你工作的重要组成部分。赞助在适当的情况下(例如,我们认为我们可以产生最大的影响并获得我们需要的东西),我们赞助外部开源项目,并为所有可以使用的改进付费。我们广泛使用了优秀的LuaJIT项目,经过工程师们的大量分析,我们发现了更多jit可以提高我们性能的地方。我们赞助了LuaJIT项目,而不是自己动手。这些加速将出现在luajit2.1发布时。

双向街道

双向街道当然,对我们来说,使用开源软件,进行修改而不发布它们是很容易的。我们使用的软件没有一个许可证会强迫我们发布我们的修改。但我们更愿意回馈,而不仅仅是因果报应。发布我们对现有项目所做的修改有两大好处:多眼球效应和降低分叉成本。第一个,很多眼球,是任何开源项目的共同点:人们看代码越多,它就越好。这同样适用于核心开发团队编写的代码和外部人员编写的代码。当我们贡献我们所做的改变时,其他人会看到并改进它们。例如,在2012年,我们对Go的log/syslog模块进行了改进。今年这项工作有所改进。维护一个叉子的成本提供了有用的经济压力,这使得我们的修改变得有意义。对于我们来说,当项目的核心发生变化时,发布比维护一个fork和merge要便宜。但是,CloudFlare的秘方呢?开源CloudFlare核心我们强烈的偏见是把我们所建立的一切开源。当我们不这样做时,通常是因为它对我们来说非常特殊和/或是因为支持成本很高。最终,我们希望开放我们所有主要组件的源代码,这样它们就可以用来构建一个更快、更安全、更智能的web。我们的许多小组件实际上都是胶水代码,对开源没有任何意义,因为它们对我们整个系统的实现是如此的特殊。我们不相信有任何代码块如此聪明,以至于它能给我们带来长期的竞争优势。相反,我们的优势来自于我们所建立的网络,我们收集的使网络更快、更安全的数据,最重要的是,我们能够吸引到的人。对开源的承诺在社区中建立了信任,这有助于我们继续构建我们的服务并吸引最优秀的人。事实上,在CloudFlare工作的最好方式就是为我们感兴趣和有用的开源项目做出贡献。这样的投稿往往比简历更能说明问题。