写点什么

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:002208
用户头像

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

关注

评论

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

云时代,最好用的MySQL客户端工具推荐

NineData

MySQL 数据库 GUI

AIGC最近很火,给大家推荐一个已经有1000位开发者使用的中文aigc开源模型,包括ai画图、ai聊天

AIGC布道者

人工智能 机器学习 AI AIGC AI绘画

贴吧低代码高性能规则引擎设计

百度Geek说

低代码 规则引擎 平台化 企业号 1 月 PK 榜

一文教会你mock(Mockito和PowerMock双剑合璧)

京东科技开发者

测试 powermock Mock pom 企业号 1 月 PK 榜

小心被坑死!如果你还在用 Zookeeper 做注册中心

风铃架构日知录

Java zookeeper 程序人生 后端 注册中心

国内首款支持gRPC+WebSocket调试的工具——Apipost

不想敲代码

OpenHarmony系统使用gdb调试init

OpenHarmony开发者

openha

Reids的BigKey和HotKey

小小怪下士

Java redis 程序员

深圳大数据培训机构怎么选

小谷哥

Rancher RFO 正式 GA

openEuler

Linux 开源 Kubernetes 操作系统 rancher

深入理解JS作用域链与执行上下文

loveX001

JavaScript

基于ERNIELayout&pdfplumber-UIE的多方案学术论文信息抽取

汀丶人工智能

nlp 信息抽取 2022年终总结 2023新展望

SPL 实现电力高频时序数据实时存储统计

石臻臻的杂货铺

SPL

用javascript分类刷leetcode13.单调栈(图文视频讲解)

js2030code

JavaScript LeetCode

JavaScript刷LeetCode拿offer-栈相关题目

js2030code

JavaScript LeetCode

2023我的前端面试小结

loveX001

JavaScript

尚硅谷&腾讯云EMR实时数仓教程发布

小谷哥

4天带你上手HarmonyOS ArkUI开发——《HarmonyOS ArkUI入门训练营之健康生活实战》

HarmonyOS开发者

HarmonyOS

一体化运维,降本增效!秒云助力海富通基金打造智能运维平台

MIAOYUN

运维 金融 智能运维 IT解决方案

经常会采坑的javascript原型应试题

loveX001

JavaScript

JavaScript刷LeetCode拿offer-树的遍历

js2030code

JavaScript LeetCode

ARM 算子性能优化上手指南

MegEngineBot

深度学习 开源 性能优化 MegEngine

【架构设计】你的应用该如何分层呢?

JAVA旭阳

Java 架构

前端培训机构如何学习开发技术

小谷哥

谈谈你在面试中遇到的一面、二面、三面有什么区别?

风铃架构日知录

Java java面试 程序员面试 面试‘’ 面试流程

群晖NAS设置Calibre个人电子图书馆

刘旭东

群晖 Calibre 个人图书

每个人都必须为2023年的十大基本技术趋势做好准备

超自动化

AI 超自动化

React的useLayoutEffect和useEffect执行时机有什么不同

beifeng1996

React

Koordinator v1.1发布:负载感知与干扰检测采集

阿里巴巴云原生

阿里云 云原生 Koordinator

2023我的前端面试小结

loveX001

JavaScript

web前端技术应该怎么规划学习?

小谷哥

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