GitHub是如何改进自身的DNS架构的

栏目: 后端 · 发布时间: 8年前

内容简介:GitHub是如何改进自身的DNS架构的

据GitHub高级架构工程师Joe Williams 撰文介绍 ,过去数年中,GitHub一直使用的是一个简单的DNS架构。虽然它也能适合工作需求,但现在GitHub已迁移到一个能更好地支持自身规模的新架构。

Williams提及,很多应用对DNS的解析性能或可用性十分敏感,这是GitHub采用新的DNS处理模型的一个原因。DNS会导致用户性能降级,甚至无法提供服务。当使用原有的DNS架构进行配置和代码更改时,这个问题亟待解决。此外,工程师也难以识别一些故障的导致根源,他们唯一能使用的 工具 是tcpdump。除了对上述问题的改进,GitHub工程师还瞄准于:

  • 增加内部域(Zone)和外部域配置的灵活性。除非做特殊的配置,否则内部域对外是不可见的。同时,从内网的内部就可以访问外部域。
  • 改进缓存节点(Cache)和授权节点(Authority)间的角色隔离。
  • 支持基于部署和基于API的工作流,实现更改的自动化。
  • 避免任何外部依赖,改进可靠性。

在GitHub设计的架构中,有三种类型的节点:

  • 缓存节点。它部署于各数据中心内,负责向应用提供实时数据,使应用无需跨数据中心。
  • 边缘节点(Edge)。它是各数据中心本地的授权节点,行使网关职责,处理来自缓存节点的请求,并负责域传送(Zone Transfer)。
  • 授权节点。它是DNS主服务器,管理来自边缘节点的域交换,并提供创建、修改或删除记录的HTTP API。

GitHub是如何改进自身的DNS架构的

日志功能是GitHub新DNS架构的另一个改进。GitHub工程师根据自身需求,选择了对缓存节点使用 Unbound ,边缘节点使用 NSD ,授权节点使用 PowerDNS

前面提到,外部域(github.com)可从内部域(github.net)访问,不需要与外部DNS提供商通信。这是使用Unbound实现的。此外,Unbound还支持在内部DNS失败时对外部网络的访问。

在Williams的帖子中,还给出了更多的技术细节,值得全面一读。

查看英文原文: How GitHub Revamped its DNS Infrastructure


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法谜题

算法谜题

Anany Levitin、Maria Levitin / 赵勇、徐章宁、高博 / 人民邮电出版社 / 2014-1-1

算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。 本书是一本经典算法谜题的合集。本书包括了一些古已有之的谜题,数学和计算机科学有一部分知识就发源于此。本书中还有一些较新的谜题,其中有一部分谜题被用作知名IT企业的面试题。全书可分为4个部分,分别是概览、谜题、提示和答案。概览介绍了算法......一起来看看 《算法谜题》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具