首页 > 其他分享 >从入口域名开始探索全链路自动化拓扑

从入口域名开始探索全链路自动化拓扑

时间:2023-12-05 10:11:24浏览次数:50  
标签:子网 拓扑 获取 域名 链路 服务器 资源

运维自动化之域名系统的文章发出去之后,有小伙伴问既然拿到了域名及所有基础资源数据,那能不能从入口域名开始实现全链路自动化的系统拓扑构建?全链路的系统拓扑构建需要知道链路上所有节点之间的数据流转关系,之前在落地APM监控时有接触过,APM通过代码埋点拿到链路节点之间的数据流转关系,而流转关系仅通过基础资源是没有办法获取的,除非人工维护,人工往往不靠谱,代码埋点成本又太高,还是要从这些基础资源数据出发,寻求简洁点自动化解决方案。今天刚好有空就简单想了下这个问题,初步实现,效果如下

这篇文章就简单介绍一下我的实现方案,并不完美,甚至还有很多问题,欢迎探讨。这里有个前提就是无法通过埋点拿数据

域名可能指向到负载均衡、服务器、CDN、高防或者是CNAME到其他的域名,有一部分数据流转关系我们是确定的,那就是域名到服务器这一段,以上图域名指向负载均衡为例,域名到负载均衡的解析是固定的,然后可以通过负载均衡拿到监听器的数据,再通过监听器就能获取监听器下挂的服务器。再往下服务器究竟使用了哪些中间件我们就没办法获取了,如何知道接下来的数据链路呢?这里提供几个思路

子网

我们通常会拿不同的子网来做网络隔离,如果你的网络规划非常标准,一个项目/服务位于同一个子网下,不同项目/服务之间子网隔离,那就可以考虑使用这种方式

服务器数据已经拿到了,那服务器的子网也就是确定的了,就可以很容易的获取同一子网下的其他资源数据,例如数据库、缓存等等

这种方式的准确率取决于网络的规范程度

名称

如果子网划分不规范,存在多个项目/服务使用同一子网的情况,那上边的方法就不奏效了。此时如果你的资源命名都是规范的,也可以通过规范的资源名称来获取下一层的数据

例如如下命名:project-environment-service-name。同一项目同一环境同一服务不同资源的命名仅有最后一部分不同,那就可以遍历资源,获取到相同命名规则的资源,也能继续进行下一级的自动拓扑

这种方式的准确率取决于命名的规范程度

关系树

如果以上两种都没有,那还可以通过服务树来获取,我们在构建多云系统时确定,所有资源都隶属于服务树上的某个节点,服务树往往是规范的,那获取与服务器同一服务树节点下的其他资源也是属于同一个业务,之间的数据流向几乎也是确定的

这种方式的话就要求你的服务树是规范的

很明显,虽然可以通过以上几种方式来获取最后一段的关系数据,但都不够准确,尤其是在业务逻辑比较复杂的情况下,仅是做个参考而已。几个小时的时间从思考到编码实现,有很多不完善的地方,此文也就抛砖引玉

标签:子网,拓扑,获取,域名,链路,服务器,资源
From: https://www.cnblogs.com/37Y37/p/17876600.html

相关文章

  • 获取url地址中顶级域名
    parse_url()获取到的host时多级域名,如:mp.weixin.qq.com。做域名黑名单的时候我们需要得到顶级域名。代码如下: <?phpheader('content-type:text/html;charset=utf-8');//获取顶级域名functiongetTopHost($url){ $url=strtolower($url);//首先转成小写 $host=pars......
  • Kubernetes Pods如何访问外部域名
    Pods如何访问外网域名在Kubernetes环境中,并不是所有服务都适合部署中集群中,如数据库服务,在这种情况下集群中的Pods如何访问集群外的服务,有以下几种方式CoreDNS方式新增一段配置,如下范例范例.:53{errorshealth{lameduck15s}readykuber......
  • Aloudata 余俊:数据虚拟化技术如何实现敏捷高效的逻辑数据集成与链路编排
    一、Data Fabric 与数据虚拟化简介在正式介绍 Data Fabric 之前,我想先回顾一下我们现有的数据仓库体系面临的问题。当提到数据仓库时,许多从事数据工作的人可能会想到 ETL(抽取、转换、加载)和一些技术工具,如 Hive、Hadoop 和 Spark。我在过去十多年一直在数据仓库领域工作,与......
  • 远程服务器端口自动检测、切换域名映射的工具
    要实现远程服务器端口的自动检测和切换域名映射,您可能需要结合多个工具和脚本来完成。下面是一种可能的实现方式:端口检测工具:您可以使用之前提到的端口扫描工具(如Nmap、Netcat等)编写脚本来进行端口检测。通过定期运行该脚本,您可以检测远程服务器的端口是否可用,并根据需要执行后续......
  • 域名系统
    在互联网的海洋中,域名系统就像是导航图。没有域名系统,我们无法找到目标网站,无法获取所需信息。域名系统,尽管我们平时可能意识不到它的存在,但它无时无刻不在为我们提供服务。 域名系统,也称为DNS,它就像是人名和身份之间的翻译器。当我们输入一个网址(也就是域名)时,域名系统就会把这......
  • 域名备案也是折腾
    工信部系统域名备案查询每个资源供应商域名接入都需要在供应商下进行域名备案,一个域名可以在多个云资源供应商下备案互不影响--这个常识; 每个供应商域名没备案随机检测校验域名备案状态,间歇性域名提示需要备案......
  • 反向建图+拓扑排序
    反向建图+拓扑排序零、复习拓扑排序\(HDU\)\(3342\)\(Legal\)\(or\)\(Not\)【正图,普通拓扑排序】题意:给出\(n\)人的编号为\(0\)到\(n-1\),再给出\(m\)个关系。\(A\)和\(B\),\(A\)是\(B\)的老师。问这些关系是否存在矛盾,即不能存在\(A\)是\(B\)的老师,\(B\)是\(C\)的老师,而\(C\)......
  • DAG拓扑排序
    DAG拓扑排序引入小学奥数类型题。沏茶过程(烧水壶)到(接水)到(烧水洗茶杯找茶叶)(并行)到(沏茶)即有先后顺序的流程,且必须所有步骤都能执行。概述拓扑排序是对DAG(有向无环图)的顶点进行的一种线性排序,排序序列中每个顶点都会且仅会出现一次,且对于所有有向边\(u\rightarrowv......
  • 微信支付-业务流程图+时序图梳理微信支付链路+封装对接微信API工具类
    因业务需要,开发微信支付功能,涉及三种支付方式:JSAPI支付:微信内网页支付,需要开通微信服务号小程序支付:在小程序中支付,需要开通小程序H5支付:在手机浏览器(出微信内网爷)中网页支付使用微信支付的前提必开通微信商户号,要使用到那种的支付方式要前需在商户平台开通(要审核)。支付......
  • 全链路压测自动化实践
    全链路压测自动化实践是指在软件开发过程中,通过自动化工具和技术来模拟真实的业务场景和流量负载,对应用程序的各个环节进行全面的压力测试。下面是一些关于全链路压测自动化实践的内容: 1、环境准备:在进行全链路压测自动化之前,需要准备相应的测试环境。包括搭建开发、测试和生......