生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

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

  • 2017-06-12
  • 本文字数:759 字

    阅读完需:约 2 分钟

据 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 工程师根据自身需求,选择了对缓存节点使用 Unbound ,边缘节点使用 NSD ,授权节点使用 PowerDNS

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

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

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

2017-06-12 19:002083
用户头像

发布了 227 篇内容, 共 71.2 次阅读, 收获喜欢 27 次。

关注

评论

发布
暂无评论
发现更多内容

【总结】产品经理训练营 | 02 产品思维和产品意识(上、中)

阿席达卡。

屏幕共享功能的应用

anyRTC开发者

android 音视频 WebRTC 在线教育 视频会议

甲方日常 90

句子

工作 随笔杂谈 日常

并发条件队列之Condition 精讲

伯阳

AQS 多线程 lock Condition 条件队列

产品经理训练营第二章作业——利益相关者

阿波

智能汽车如何赚钱? (28天写作 Day19/28)

mtfelix

商业模式 28天写作 智能汽车 软件定义汽车

keepalived 实现Nginx高可用安装

庞小辉

趋势预测:2021年五大流行的编程语言

禅道项目管理

Java php python 爬虫 趋势

你以为阿里真的取消周报了?

Ian哥

28天写作

面试官常问的垃圾回收器,这次全搞懂

Silently9527

Java JVM 垃圾回收 GC

架构师训练营-大作业:物流系统架构设计

晴空万里

架构师训练营第2期

从定义到AST及其遍历方式,一文带你搞懂Antlr4

华为云开发者联盟

Java AST 语言 antlr4 语法分析器

开发的必杀技:Git 的分支管理

华为云开发者联盟

git Linux 分支

八大案例带你了解图数据库如何洞察数据间关联价值

NebulaGraph

图数据库 图数据库实战

第 2 周作业

老元宵

Kubernetes Pod篇:带你轻松玩转Pod

xcbeyond

Kubernetes pod 28天写作 Kubernetes从入门到精通 服务编排

计算机网络学习第一课

落曦

第二周作业

Geek_6a8931

《Java 面经手册》PDF,全书5章29节,417页11.5万字,完稿&发版!

小傅哥

Java 面试 小傅哥 PDF 面经手册

信任是一种需要牺牲效率持续发出的信号

Justin

心理学 信任 市场营销 28天写作

【年度重磅】2020华为云社区年度技术精选合集,700页+免费下载!

华为云开发者联盟

数据库 AI 云原生 物联网 华为云

智能building 之智慧城市

张老蔫

28天写作

数据库覆盖式数据导入方法:部分和完全

华为云开发者联盟

数据库 sql 数据 DWS 覆盖式导入

利益相关方分析-公司及团队维度

梁媛

产品经理

GO 进阶学习笔记

zach

微服务 Go 语言

【图文并茂,点赞收藏哦!】重学巩固你的Vuejs知识体系

我是哪吒

程序员 面试 Vue 大前端 Web

红帽架构师:为什么KubeEdge是2020年我最喜欢的开源项目?

华为云原生团队

开源 云原生 边缘计算 边缘技术

我用PHP写的第一个Hello world

熊斌

28天写作

Android Styling System

Changing Lin

android

娄底携手浪潮,打造了智慧城市建设的“娄底样板”

浪潮云

30+岁、没转管理、加不动班,我的竞争力从哪里来?

博文视点Broadview

GitHub是如何改进自身的DNS架构的_架构_Sergio De Simone_InfoQ精选文章