Distributed Computing

用 Pomerium 来实现基于身份的访问控制

Google 在十年前提出了一套名为 BeyondCorp 的零信任网络的安全方案。这套方案想要完整地实现还是有一定门槛的,在这种模型下,企业内网不再作为一个安全边界存在,相反即使在内网进行的访问也必须进行和外网同样的鉴权与访问控制。最终的改造方向是内网不再是一个特权网络,每个终端上部署的客户端证书主要是作为一项身份信息来使用。

阅读全文…( 本文约 919 字,阅读大致需要 2 分钟 )

公司/家离机房远的两个好处

今天和同事闲聊的时候同事提到的两个观点。

首先当然是分散风险:发生各种灾害的时候,数据中心越远意味着同时受灾的可能性越小。

然后是让自己更小心:机房离得远,你肯定不会有经常去那的意愿,是的,不管是自己的机器还是老板的机器,后一种情况其实会更有效一些。

阅读全文…( 本文约 233 字,阅读大致需要 1 分钟 )

dovecot的全文搜索

试了一下这个基于 CLucene 的全文搜索,似乎还不错。这里记一下过程。

首先是给 dovecot 安装 Lucene 插件,用 FreeBSD port 来安装的话,只需 make config,选择 LUCENE 然后 portmaster dovecot 即可。

配置也还算容易,我之前已经做了索引与数据分开,因此并不需要单独的配置,只需在 dovecot.conf 中增加:

阅读全文…( 本文约 322 字,阅读大致需要 1 分钟 )

水密隔舱与可靠系统设计

我国在最晚不晚于宋代发明了水密隔舱。所谓水密隔舱,是指将船体分成若干个互不相通的舱区,这样当一个或几个舱区进水时,整个船体仍然可以有足够的浮力而不致沉没。这是一项相当重要的发明,类似的设计思路在其他领域也有应用。

阅读全文…( 本文约 423 字,阅读大致需要 1 分钟 )

在远程FreeBSD服务器上运行VirtualBox

📜 历史文件已不具备现实意义

现时提倡的安装方式为 pkg,本文并未对此进行更新。

VirtualBox可以在远程运行,并把界面通过 ssh 的 X11 转发放到管理员的桌面。

阅读全文…( 本文约 401 字,阅读大致需要 1 分钟 )

可伸缩性 Scalability

关于Scalability这个词的中文译法,目前还没有一个非常确切的定论。一些文献中将其翻译为"可扩充性",而"扩充"指的主要是Scale up;而在一些实际的用法中,Scalability还包括Scale down,因此,“可伸缩性"也许是比较贴近原文意思的说法。

互联网应用的可扩充性体现在两个方面:其一,是能够对系统容量进行扩充,也就是说,这个系统各个组件能够提供的服务的量,能够在需要的时候予以扩充(特别是通过添加新的服务器等等)。其二,是这种扩充是有效率的扩充,即,增加硬件投入时,其投入与所产生的效果是接近甚至达到成比例增加的。通常说来,“可扩充"同时暗含的需求是用户的使用习惯尽可能保持不变。如果我们关注某一具体的计算节点,可扩充性还应体现于提高计算节点性能,例如增加其CPU数量或内存容量时,能够相应地改善系统的容量或响应时间,等等。

而另一方面,“可缩减性"主要指的则是说一套系统能够运行在尽可能少的软硬件环境之中。对于大型互联网公司而言,这一点可能并不重要,而对初创公司来说这一点则非常重要。

在设计互联网应用的时候,充分地考虑系统的可伸缩性,能够极大地减少日后的维护开销,并帮助决策者对于投资所能获得的回报进行更加精准的估计;另一方面,高可伸缩性的系统往往会具有更好的容灾能力,从而提供更好的用户体验。

与解决很多其他问题类似,改善可伸缩性最常用的方法就是分治法(Divide and Conquer)。分治属于大道理一类,在实践中,我们比较常用的分治策略包括:

阅读全文…( 本文约 2100 字,阅读大致需要 5 分钟 )

关于分治卖票协议的讨论

| Distributed Computing

和蛇头GG讨论了一个关于卖票的问题,简单地说是票很有限,需求量很大,如何能够尽可能高效地让票以尽可能公平的方式卖出去。

我设计了一个分布式的结构来解决这个问题,当然这个原型可以进一步改进,此处按下不表。记录一下我对这个结构公平性的描述的一个比喻:

阅读全文…( 本文约 324 字,阅读大致需要 1 分钟 )

DNS中的SRV记录

| Distributed Computing

最近看代码时了解到的,顺手查了一下,在此留个记录:

SRV记录的作用是指明某域名下提供的服务。

例子:

_http._tcp.example.com. SRV 10 5 80. www.example.com

SRV后面项目的含义:

10 - 优先级,类似MX记录
5 - 权重
80 - 端口
www.example.com - 实际提供服务的主机名。

阅读全文…( 本文约 124 字,阅读大致需要 1 分钟 )

受台湾地震影响,境外网站访问出现问题

| Distributed Computing

新浪科技 报道,受强烈地震影响,中美海缆、亚太1号、亚太2号海缆、FLAG海缆、亚欧海缆、FNAL海缆等多条国际海底通信光缆发生中断,中断点在台湾以南15公里的海域,造成附近国家和地区的国际和地区性通信受到严重影响。

参与评论

蠢人是如何解决问题的?

| Distributed Computing

以下场景纯属虚构,请勿对号入座。

技术:现在您的计算机名叫「COMPUTER-X5V89KP」,您需要我帮您做点什么吗?
客户:我需要让我这台计算机的计算机名叫「电脑」。
技术:很抱歉,这样做不太好,我建议您把计算机命名为「COMPUTER-X5V89KP」,这是因为您的计算机名中只能出现字母、数字和连字号(-),并且连字号不能出现在第一个字符的位置,否则可能会给您的使用带来困难……
客户(不耐烦,打断):电脑是你的还是我的?我就要让它叫「电脑」!
技术:好吧。

阅读全文…( 本文约 825 字,阅读大致需要 2 分钟 )