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

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

本文转自d1net(转载)

时间: 2024-10-30 03:21:36

GitHub是如何改进自身的DNS架构的的相关文章

云服务中的DNS:构建安全的DNS架构

就安全性挑战而言,云计算中dns的解决方案是不完整的,它主要依赖于人员.流程和技术的组合.由于大部分的企业通过把应用程序迁移至云计算而实现了对上述三个方面的全方位的外包,云计算遭受到了全方位的挑战.所有的关键技术都在云计算供应商那里,而云计算的用户们完全依赖于云计算供应商以确保他们的信息和基础设施的安全性.所以,云计算客户还必须考虑物理控制方面的缺失,并向供应商提供dns管理与处理相关.非常具体的指导. 本文是研究云计算中dns以及dns攻击系列报导的下篇,我们将讨论一下相关的应对措施,并为云计

GitHub的DGit改进了平台的可靠性、性能以及可用性

GitHub最近悄悄地发布了DGit,全称为"分布式Git".这是一种基于Git创建的分布式存储系统,其目标是改进使用GitHub时的可靠性.可用性以及性能. DGit是一个应用层面的协议,它利用了Git分布式的特性,将每个仓库在三台不同的.独立选择的服务器上保留三个备份.按GitHub所说,这个简单的架构在可靠性.可用性和性能方面带来了许多直接的好处. 考虑到托管某个仓库的三台服务器是互相独立的,那么他们同时变得不可用的可能性非常低. 用户的请求可在这三台服务器之间进行负载均衡处理,

完美的dns架构是怎样的

一:dns简介:DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器以及域名服务器组成的.域名服务器是指保存有该网络中所有主机的 域名和对应IP地址,并具有将域名转换为IP地址功能的服务器.域名与IP地址之间的转换工 作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服 务器. 二:dns的阶层式管理模式:每一级dns服务器只管理其相邻的下一级dns,如 图: 三:dns的查询过程: 第

[原创].NET 分布式架构开发实战五 Framework改进篇

原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章,园子里的朋友给出了不少的反馈,特别感谢金色海洋和Virus两位朋友的一些反馈.周末的这两天,对文章中开发的那个Framework做了一些改进,虽然说系列文章会慢慢的给出代码,但是这两天的一些想法让我很兴奋,迫不及待的和大家分享一下,也当是对文章中以后给出的Framework先睹为快吧.   系列文

想染指系统架构?你绝对不可错过的一篇

本文讲的是想染指系统架构?你绝对不可错过的一篇., 系统设计入门 翻译 有兴趣参与翻译? 以下是正在进行中的翻译: 巴西葡萄牙语 简体中文(已完成) 土耳其语 目的 学习如何设计大型系统. 为系统设计的面试做准备. 学习如何设计大型系统 学习如何设计可扩展的系统将会有助于你成为一个更好的工程师. 系统设计是一个很宽泛的话题.在互联网上,关于系统设计原则的资源也是多如牛毛. 这个仓库就是这些资源的组织收集,它可以帮助你学习如何构建可扩展的系统. 从开源社区学习 这是一个不断更新的开源项目的初期的版

百度公共dns地址是多少?

  百度正式宣布推出公共DNS:180.76.76.76,百度公共DNS主打云防护.无劫持和精准性三大特点.官方表示可防止恶意跳转以及恶意广告,同时遍布全国的CDN网络可以让定位更加准确. DNS在现有整个互联网基础架构中也扮演着流量"调度员"."指引员"的角色.尽管已经有超过30年历史,DNS仍然是互联网基石中最脆弱的一环.如顶级域故障.DNS劫持.大规模DNS攻击等等仍然时不时给整个互联网带来震动.因此各大互联网公司纷纷改进DNS架构,争取提供更高效.稳定.安全

我的Android进阶之旅】GitHub 上排名前 100 的 Android 开源库进行简单的介绍

GitHub Android Libraries Top 100 简介 本文转载于:https://github.com/Freelander/Android_Data/blob/master/Android-Librarys-Top-100.md 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并

美团点评数据库高可用架构的演进与设想

MMM 在2015年之前,美团点评(点评侧)长期使用MMM(Master-Master replication manager for MySQL)做数据库高可用,积累了比较多的经验,也踩了不少坑,可以说MMM在公司数据库高速发展过程中起到了很大的作用. MMM的架构如下: 如上所示,整个MySQL集群提供1个写VIP    (Virtual IP)和N(N>=1)个读VIP提供对外服务.每个MySQL节点均部署有一个Agent(mmm-agent),mmm-agent和mmm-manager保

《VMware vCAT权威指南:成功构建云环境的核心技术和方法》一3.3 vCloud管理架构

3.3 vCloud管理架构 设计和架构vCloud管理基础架构是支撑vCloud解决方案的可用性和伸缩性的关键. 3.3.1 管理群集 管理群集托管着必要的vCloud基础架构组件.将基础架构与最终用户工作负载使用的资源分离,改进了vCloud基础架构的可管理性.图3.4展示了与运行工作负载的资源组分离的管理群集. 核心管理群集组件包括: vCenter Server或者VMware vCenter Server ApplianceTM vCenter Server数据库 vCloud Dir