作者:张明凯(仁奇)、宋林健(林漱) 互联网域名系统(DNS)是互联网运行中起到关键作用的基础设施,提供了服务名称(域名)和 IP 地址两种标识符体系之间的衔接转换。绝大多数互联网应用,如在线支付、视频会议、电子邮件等,均需依赖域名系统实现网络资源的寻址及定位,是互联网业务访问的入口。
2021 年 10 月 4 日某社交网站出现大规模宕机,全球超过 8 千万用户受影响超过 6 个小时,其中宕机的主要原因是 DNS 的服务故障。可见域名系统稳定性在整个互联网安全稳定体系中起着至关重要的作用,域名解析服务的安全平稳运行是互联网互联互通,数字经济安全稳定运转的基础。
当前,阿里云提供了全系列一站式的域名解析服务产品,覆盖了公网域名解析、内网域名解析、全球流量调度、移动解析以及专有云的域名解析场景。在云上部署业务的阿里云用户,其运维的核心要素就是 DNS 解析服务,一旦 DNS 解析服务出现波动,将会导致自身业务受到影响。特别是游戏和金融行业的企业,对解析服务质量有着极高要求。
一言以蔽之:**云上 DNS 解析服务十几毫秒的服务延迟波动,都会直接影响其上的业务服务和用户体验。**作为日均万亿访问量的阿里云 DNS,如何保障大规模的 DNS 解析服务高效运维和高可用?本文将会讲述阿里云 DNS 团队在此领域的思考及实践。
从“黑屏”到“白屏”的初心为了保证业务稳定性建设,阿里巴巴集团提出了“ 1-5-10 ”的目标,**即 1 分钟发现,5 分钟定位,10 分钟解决。**目标有了,实现起来却有一定的难度。
DNS 服务本身有其管理上的特殊性。当前集团大部分业务运行于容器服务上,通过标准调度系统实现生命周期的管理。但“解析服务器”因其高性能的运行要求,仍运行在物理服务器上,日常积累的碎片化变更和一些修复措施,一旦发生服务器迁移和变更极有可能导致服务出现问题,因此需要一套完善的平台去管理服务器状态,实现可控、可运维。只有标准化的服务配置,才能实现安全可靠的自动化流程管理。
为了保障上层服务满足稳定性的目标,DNS 系统作为底层基础设施的重要部分,必须满足更高的稳定性要求。在解析服务方面除了要做到高可用的架构设计和部署外,还需对服务异常实现秒级定位和恢复。传统运维手段已无法满足我们当前对于稳定性的诉求,因此需要一整套完善的运维流程和平台去收敛运维操作,将运维从传统的黑屏逐步切换到白屏,从脚本运维转换为自动化甚至智能化运维。
DNS 运维平台的发展与演进阿里云 DNS 团队,当前主要负责权威云解析、阿里云用户递归解析、互联网公共递归解析以及集团内解析等服务。
随着用户规模和服务数量的持续增加,当前业务平台的日均解析量已超两万亿,业务平台除高性能解析系统、数据管控系统外,还有统一运维平台共三部分组成。今天,我们分享的是“统一运维平台的相关内容”,包括在运维平台稳定性建设方面的一些思考,并结合云服务的一些特殊性,让大家能够更深入地了解当前阿里云 DNS 团队在此领域遇到的问题及相关实践。
回顾整个阿里云 DNS 运维平台的建设历程,可以分为三个阶段:标准化建设阶段、自动化建设阶段、智能化建设阶段。三个阶段并非完全的先后顺序,而是交织在一起,不断推动整个平台的持续演进。
标准化建设阶段
运维系统标准化建设阶段,主要聚焦于资产数据管理、服务管理与基线管理标准化三部分,目的是解决线上数据不一致、配置不一致和服务管理流程分散的问题。
- 资产数据管理,不仅包括服务器信息、系统配置信息、网络信息,还包含相关业务运行配置信息。这些数据信息不仅可以作为日常运维使用,还可被集成到后期的自动化系统中,作为服务部署和管理的信息输入。
- 服务管理,不同的系统配置,自动化系统会执行不同的部署流程,软件部署不一致,对应的后期服务管理流程也会发生变化。
- 基线管理,用于解决碎片化部署问题,统一的服务运行基线可以大幅降低线上运行的风险,服务上线过程中及日常运行都会实时监测服务运行基线,异常配置都会上报给告警系统,形成风险记录。
自动化建设阶段
阿里云 DNS 运维平台在自动化流程建设阶段,也吸取了很多内部系统建设的经验,集成了 SOP(Standard operating procedure)管理、自动化任务编排及流程管理等功能。
通过定义标准 SOP,将日常处理流程收敛到运维平台集中管理,小到一个服务的重启流程,大到一个机房的部署流程,都囊括其中。对于其中的可自动化流程,通过“集成任务编排和流程执行模块”实现任务的批量执行,降低人为操作带来的变更风险,同时还能和标准化建设阶段实现的基线管理系统联动,实现变更的异常检查和上报。此外,自动化建设提供的框架能力,还集成了任务审批和日志审计功能,可实现任务流程管理的安全可控。
智能化建设阶段
当前,运维平台正处于从自动化向智能化转型阶段,服务的稳定性不再局限于运维操作的自动化,而是通过集成一系列输入,实现线上风险预判和自动处置。这也是为了解决稳定性 1-5-10 和满足云用户服务稳定性的要求。
如果一个故障需要人工接入,那么从告警产生到接收再到实际处置,一般需要 5 分钟甚至更长时间,因此智能运维是当前发展阶段必须落地的一个手段。在建设阶段,我们深刻感受到:智能运维是一场服务稳定性与安全性之间的博弈,如果无法保证智能运维的准确性,那将带来更大的风险(2021 年 10 月某社交网站的大范围离线故障,就是自动化操作所导致的服务故障)。因此智能化建设落地,我们通过从单一场景着手,逐步推广到其他流程之中,同时在设计阶段也会有限考虑如何做好服务的兜底,每种场景一般会加入至少两层兜底策略,让服务能够可靠稳定运行。
DNS 运维平台的典型应用及成果“夯机治理”功能,是阿里云 DNS 运维平台在智能化运维建设上的典型案例。
稳定性问题的一个典型情况是“夯机”(Server Hang)。与死机或宕机不同,服务器夯机是指部分服务可用,部分不可用。对 DNS 服务来说夯机危害比宕机对稳定性威胁更大,因为在 DNS 服务部署模式上 DNS 服务器既要发布路由(支持 BGP+ECMP 集群)又要做 DNS 解析服务。
往往 DNS 解析服务和管控接口不可用,但路由服务正常,集群不会自动摘除这台服务器做流量迁移。在 DNS 服务器夯机场景下,大量的查询流量访问夯机的服务器就会造成严重的服务不可用现象,而该服务器也无法直接登录执行运维隔离操作。整个夯机故障从定位、处置到恢复时间太长,会导致用户的业务严重受损。
为了减少夯机对用户业务的影响,实现无人工干预下夯机故障自动隔离的目标,运维平台集成了一整套的处置流程来解决该问题:通过自动化的监测,发现、定位以及处置,实现无人工干预下的故障自动隔离。系统自上线以来,实现线上夯机场景的 100% 覆盖率,共计自动完成超 500 次异常检查,正确处置夯机故障 14 次。通过平台的自动处置,大幅降低人工排查成本,同时还将故障隔离时间降低在 30 秒以内,真正做到用户服务的无感知处置。
“欲流之远者,必浚其泉源。”运维平台的建设,是一个持续优化的过程,也是一个经验积累的过程。平台建设的关键是逐步收敛用户的操作,并做好流程的标准化。标准化的环境+严格的服务管理,才能实现整体的稳定运行。同时,自动化和智能化的运维在降本提效方面的成效,也促使团队不断探索、覆盖更多的业务场景,让阿里云的 DNS 解析服务变得更稳定、可靠。
当下,DNS 运维平台的运维架构和模式,正在逐步探索商业化的输出模式,未来,期望能将 DNS 运维平台和阿里高性能解析管控服务一起输出给用户,为客户提供和云上一样的服务体验和运行质量保证。(正文完)
阿里云 DNS 运维服务的演进和实践