企业域名管理系统的搭建&数据库高可用改造

2016-08-31    分类: 网站建设

之前有负责过公司的内网域名系统的开发以及一部分的建设。在这里做个总结。
首先第一个问题:商用的域名管理平台有DNSPOD,有阿里的域名管理平台,还有一些小众平台,比如dns.la等。有些做运维的同学都不是特别明白,我们使用公网的DNS系统就可以啊,为啥你们公司还搞个内部的DNS服务,我们之前都不需要。
解答:使用公网DNS服务的时候,我们企业内部服务之间的调用是这样的:
公司内部服务之间的调用量,小公司可能还好本身自己的量也不大,但是当公司做大之后内网的网络传输量是非常大的,这个时候如果我的服务1 和服务2之间的通信域名解析要走公网出去绕一圈再回来,对性能要求高的肯定是没法接受的,我2台机器都纯内网高速网络却让我去公网绕一圈,本身这是一点,其次呢是:稳定性,出公网就意味着公网出现网络抖动等等都会影响服务的响应。技术可要更高的效率以及稳定性。缓存这一块也该考虑进去,对于迭代频繁以及一些需要秒切服务的应用,公网DNS更是个大的瓶颈。
上述就是为什么要在自己公司内部自建DNS服务的原因。那接下来就是搭建。
搭建我们选BIND,网上教程很多,这个不做过多的讲解。服务好了,在初始化镜像里加入我们的nameserver地址,本地找不到再去公网上。如图:
服务1和服务2直接走内网DNS服务请求,同时我们新增域名等等一系列的操作都可以立刻reload服务,刷新。内部DNS服务不存在的才去找公网DNS服务。
问题二:平台搭建使用zone文件还是数据库存储解析数据?
解答:zone文件存储是传统的方式,解析都是配置文件里。优势,不会存在任何问题,本地读取,缺点:很不方便使用。数据库存储是后来Bind服务支持的方式,更方便的增删改查,bind服务读取都直接从数据库中读取解析信息,缺点:bind服务和数据库之间的连接出现抖动就会出现问题,其次,数据库的高可用也是风险点。综合一下,我司更愿意使用第一种方案,运维最在意的就是稳定。使用不方便可以通过平台开发实现。
接下来就是开发的工作了。本人使用django 实现快速的迭代。架构图如下:
线上的DNS服务不能因为我们的平台而导致服务稳定性出现问题,所以平台需要脱离线上服务,管理平台和线上所有机器建立免秘钥登录,管理平台和线上的所有DNS服务之间只是线上会推送文件zone文件给线上,然后执行reload
问题:为什么要冷备不选负载均衡?
解答:因为zone文件是存在服务器上的文本,如果采用负载会导致两边机器同时更新,同时互相推送等的问题,主机器只需要把备也当做线上机器一样推送zone文件就OK,当主挂了备起来,当然了,我们就是想实现负载均衡也肯定是可以的,不过,我们更关注的是高效和快速的开发使用。这个架构对我们来说不存在瓶颈。
平台开发中的功能:1.解析增删改查,备注,批量增删改查,这些都是基本功能。其次就是操作记录一定要记录全,要支持一键回滚。按照企业需求开发就好。
问题:数据库高可用改造?
解答:首先为什么域名解析会和数据库都扯上关系了呢。感觉一点关系都没有的东西怎么就有了交叉呢。
公司做大之后,运维需要考虑更多的东西,比如:异地容灾,万一北京的机房火灾了,如何立马把所有的服务切换到上海,对服务要求更高的要求2地机房负载,用户理哪里近请求哪里的资源。这个时候我们的平台就能发挥横向扩展了,只要上海的DNS服务器和我们的平台之间建立免秘钥就OK,分分钟搞定。
问题来了,在异地机房容灾这一块,数据库也要实现容灾。那就得北京和上海同时拥有相同的数据库,假设北京数据库出现问题(阿里RDS 脑裂或机房火灾)如何立马切换到上海呢?
给每个使用数据库的用户都是通过域名来访问的。例如:dba.dba.com
我们需要实现当北京的数据不可用的时候:dba.dba.com    172.168.1.1 这条解析立马切换成dba.dba.com    172.169.1.1的解析,172.169.1.1 这个IP是我们大内网上海的网段IP

看着好像是非常好,DBA的需求也实现了。当他们200+的域名需要全部切换到上海的时候,约定规范,几秒只能全部修改了推送到上海机器,然后reload 生效。
那么问题又来了:平台部署在北京机房,如果北京机房只是数据库故障还好,平台在就能切换。那如果北京机房不可用了呢。我们的平台都能用了,还怎么给我切换了。我上海不能用了还要切换北京呢。这些都怎么给我解决呢。。。
一脸懵逼。。。。
解决方案:

架构是有些复杂了。把DNS平台好克隆到上海一套,为了让用户无感操作,点击上海域名的时候在nginx上做强跳转到上海,认证可以通过在cookie里面设置值实现。
这样是不是就可以北京全部down掉之后需上海不受影响了。

分享文章:企业域名管理系统的搭建&数据库高可用改造
文章链接:https://www.cdcxhl.com/news18/46018.html

成都网站建设公司_创新互联,为您提供微信公众号云服务器品牌网站制作商城网站做网站建站公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司