博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GitHub是如何改进自身的DNS架构的
阅读量:7049 次
发布时间:2019-06-28

本文共 850 字,大约阅读时间需要 2 分钟。

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

\\

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

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

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

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

3c2cf0c202f9a0a14f77ffe23f816761.png

\\

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

\\

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

\\

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

\\

查看英文原文: 

转载地址:http://vdcol.baihongyu.com/

你可能感兴趣的文章
如何开发一个用户脚本系列(1)——什么是用户脚本
查看>>
刨根问底-struts-初始化各种配置加载器
查看>>
java unicode
查看>>
redis-cli 命令
查看>>
applicationContext.xml 配置文件的存放位置
查看>>
linux 直接压缩目录或者文件和解压文件
查看>>
ntp配置
查看>>
写一篇最简单的加壳,介绍一下壳的原理(Shell)
查看>>
HightCharts 自定义数据
查看>>
SQLserver 一张图的“悲哀”
查看>>
GoogleServices 之 Location Location APIS翻译官方文档
查看>>
springboot 实现开发热部署(IDEA)
查看>>
java利用FutureTask、ExecutorService 在多核时代充分利用CPU运算
查看>>
PHP实现异步任务分发处理利器-Gearman
查看>>
IOS开发—TabBarItem更换选中与未选中图标,禁止系统自动生成灰色图标与被选中效果...
查看>>
负载均衡总结(四层负载与七层负载的区别)
查看>>
我的友情链接
查看>>
ERP实施过程中的见解
查看>>
shell中各种括号的作用()、(())、[]、[[]]、{}
查看>>
银光用户界面控件Essential studio for Silverlight功能概述
查看>>