是时候将 DevOps 可见性扩展到网络边缘了

news2024/11/23 17:08:54

尽管部署前运行了大量测试,但在部署应用程序后,性能问题经常让 DevOps 团队感到困惑。经过进一步调查,最常被忽视的问题是应用程序本身的分布式特性。从多个位置访问应用程序的最终用户永远不会拥有相同水平的互联网服务,因此在纽约、旧金山或伦敦等主要城市技术中心位置运行良好的软件不一定会继续运行。为更遥远的地区,特别是跨越半个地球的农村地区提供同样的体验。

所有互联网服务并非生来平等。由于物理定律,间歇性网络延迟问题可能会对应用程序性能产生深远影响。最终用户距离托管应用程序的数据中心越远,网络延迟就越有可能对应用程序性能产生不利影响。

不幸的是,大多数 DevOps 团队缺乏超出应用程序运行的数据中心环境的任何可见性。当然,获得这种洞察力的第一步是从网络边缘开始的。

互联网堆栈可见性

互联网堆栈由多种服务组成,每种服务都会对分布式应用程序的性能产生不利影响。从虚拟专用网络 (VPN) 和内容交付网络 (CDN) 到域名系统 (DNS) 服务器和交换机,所有内容都会增加延迟,根据网络流量的路由方式,延迟可能会对应用程序性能产生重大影响。这些服务中的任何一项都可能会遇到中断,或者更难以检测的间歇性降级,从而不可预测地影响应用程序性能。无论是在云中访问的软件即服务 (SaaS) 应用程序还是在网络边缘运行的物联网 (IoT) 平台,查明哪个互联网服务可能是问题的根本原因都需要密切监视和观察该流量的能力。

如果没有对互联网堆栈的任何可见性,以提供优化和排除特定应用程序故障所需的上下文的方式呈现所需的见解就成为一项不可能的挑战。构建应用程序所花费的所有时间和精力都可能化为乌有,因为在部署应用程序之前没有人了解网络延迟会对应用程序产生的影响。即使在部署应用程序之后,对网络流量路由方式的任何更改都可能会产生重大后果。如果没有任何方法了解可能发生了哪些变化,组织可能需要几周或几个月的时间才能意识到可能需要记录服务请求或更换服务提供商。

任何真正全面的可观察性方法显然都需要包括对组织关键依赖的互联网服务的分析,以确保提供和维护一致的应用程序体验。根据 IT 团队的结构方式,这些见解可以输入到组织采用的可观察性平台中,或者使用互联网性能监控 (IPM)平台进行关联。

DevOps 需要 NetOps

无论采用哪种方法,对于网络运营 (NetOps) 和 DevOps 团队来说,能够调整其监控分布式计算环境的方法从未如此重要。正在部署比以往更多的延迟敏感应用程序。在理想情况下,与 NetOps 密切合作的 DevOps 团队应该能够根据需要以编程方式配置和更改网络服务。并非所有互联网服务都可以通过应用程序编程接口 (API) 进行调整,但大多数 NetOps 团队都可以访问控制台,使他们能够在需要时升级到不同的服务级别。至少,服务提供商将与他们合作进行所需的任何更改。

当然,如果 NetOps 团队不知道互联网堆栈的哪个元素需要升级,那么谈判就会变得更具挑战性。通常对应用程序没有任何可见性的服务提供商可能会花费数周的时间来尝试确定他们管理的互联网堆栈的哪个元素出现了故障。拥有自己的监控一组互联网服务的方法的 IT 团队将能够与其服务提供商合作,更快地解决这些问题。

概括

精明的 IT 团队非常清楚互联网服务很容易发生中断和限电,因此通常他们倾向于确保网络流量可以从一项服务重新路由到另一项服务。这种方法还提供了额外的好处,即在他们协商所提供服务的费用时保持一定的定价杠杆。

还值得记住的是,知道客户被锁定的网络服务提供商可能没有太多动力来确保网络服务以最高效率运行。当然,IT 团队要了解在任何给定时间提供的服务级别的唯一方法是生成 IPM 报告,该报告准确详细说明在什么性能级别上实际可用的服务。否则,他们完全依赖于服务提供商随每月账单提供的报告。

同样重要的是,IPM 平台生成的报告还可以提供见解,当向应用程序开发人员展示这些见解时,可以创造优化其代码的潜在机会。如果没有这种级别的分析,每个开发人员都会认为网络服务要么已损坏,要么管理不善。现在的挑战和机遇是提供互联网性能情报,让每个利益相关者不能只是采取行动,而且同样重要的是,隐含地信任。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1589199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python使用ffmpeg分割视频为Hls分片文件/使用OpenSSL加密m3u8和TS文件

FFmpeg和OpenSSL是一个开源免费的软件,在官网上就能下载, FFmpage网址(建议选择文件名full结尾的文件):Builds - CODEX FFMPEG gyan.dev OpenSSL网址(建议选择win64的MSI文件):Win3…

OpenAI现已普遍提供带有视觉应用程序接口的GPT-4 Turbo

OpenAI宣布,其功能强大的GPT-4 Turbo with Vision模型现已通过公司的API全面推出,为企业和开发人员将高级语言和视觉功能集成到其应用程序中开辟了新的机会。 PS:使用Wildcard享受不受网络限制的API调用,详情查看教程 继去年 9 月…

LinkedHashMap部分底层源码解析

JDK版本为1.8.0_271,LinkedHashMap继承了HashMap,LinkedHashMap在HashMap的基础上维护了一个双向链表,实现了可以根据插入顺序/访问顺序(accessOrderfalse/true)访问Map集合。 关于HashMap的原理可以参考HashMap部分底…

IOPaint部署,实现去水印效果

下载源代码 https://github.com/Sanster/IOPaint https://github.com/advimman/lama 创建虚拟环境 conda create --prefixD:\CondaEnvs\iopaint python3.10 conda activate D:\CondaEnvs\iopaint安装依赖包 pytorch最低2.0.0 # 查看cuda版本安装对应的pytorch nvcc -V # …

Prototype 原型

意图 用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 结构 Prototype声明一个复制自身的接口。ConcretePrototype实现一个复制自身的操作。Client让一个原型复制自身从而创建一个新的对象。 适用性 当一个系统应该独立于他的产品创建、构成和…

HashMap的常见问题

Entry中的hash属性为什么不直接使用key的hashCode()返回值呢? 不管是JDK1.7还是JDK1.8中,都不是直接用key的hashCode值直接与table.length-1计算求下标的,而是先对key的hashCode值进行了一个运算,JDK1.7和JDK1.8关于hash()的实现…

如何卸载干净 IDEA(图文讲解)

更新时间 2022-12-20 11:一则或许对你有用的小广告 星球 内第一个项目:全栈前后端分离博客项目,演示地址:Weblog 前后端分离博客, 1.0 版本已经更新完毕,正在更新 2.0 版本。采用技术栈 Spring Boot Mybatis Plus Vue 3.x Vit…

lanqiao.602 迷宫

题目&#xff1a; 代码&#xff1a; #include<iostream> #include<cstring> #include<algorithm> #include<queue> using namespace std; char mp[31][51]; //稍微开大一点 char k[4]{D,L,R,U}; //按字典序记录路径 int dirx[]{1,0,0,-1},d…

给picgo上传的图片加个水印

之前给大家介绍了picgo和免费的图床神器。我们本可以开开心心的进行markdown写作了。 但是总是会有那么一些爬虫网站过来爬你的文章&#xff0c;还把你的文章标明是他们的原著。咋办呢&#xff1f;这里有一个好的办法就是把markdown中上传的图片加上自己的水印不就行了。 说干…

【复现】CVE-2024-29269 某国外路由器RCE漏洞_72

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 在 Telesquare TLR-2005Ksh 1.0.0 和 1.1.4 中发现的一个问题允许攻击者通过 Cmd 参数运行任意系统命令。 二 .漏洞影响 通过提交…

C语言---顺序表(二)

文章目录 前言1.准备工作2.代码的实现2.1.顺序表的创建、销毁和打印2.2.顺序表的扩容、头插\删、尾插\删2.2.1.扩容2.2.2.尾插2.2.3.头插2.2.3.尾删2.2.4.头删 2.3.指定位置之前插入/删除数据/查找数据2.3.1.指定位置之前插入数据2.3.2.指定位置之前删除数据2.3.3.查找特定数据…

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅰ)配置项文档

vue3 依赖-组件tablepage-vue3说明文档&#xff0c;列表页快速开发&#xff0c;使用思路及范例&#xff08;Ⅰ&#xff09;配置项文档 vue3 依赖-组件tablepage-vue3说明文档&#xff0c;列表页快速开发&#xff0c;使用思路及范例&#xff08;Ⅱ&#xff09;搜索及数据获取配…

Linux-select剖析

一、select函数 select函数是IO多路复用的函数&#xff0c;它主要的功能是用来等文件描述符中的事件是否就绪&#xff0c;select可以使我们在同时等待多个文件缓冲区 &#xff0c;减少IO等待的时间&#xff0c;能够提高进程的IO效率。 select()函数允许程序监视多个文件描述符…

旋转编码器原理(超简单)

波形图 A相和B相的状态变化与旋转方向有关。当顺时针旋转时&#xff0c;A相引脚会先变化&#xff0c;然后是B相引脚。而逆时针旋转时&#xff0c;B相引脚会先变化&#xff0c;然后是A相引脚 这是两个引脚的实际波形采样&#xff0c;越密集的旋转的越快 可以发现特点&#xff0…

Redis从入门到精通(十四)Redis分布式缓存(二)Redis哨兵集群的搭建和原理分析

文章目录 前言5.3 Redis哨兵5.3.1 哨兵原理5.3.1.1 集群的结构和作用5.3.1.2 集群监控原理5.3.1.3 集群故障恢复原理 5.3.2 搭建哨兵集群5.3.3 RedisTemplate5.3.3.1 搭建测试项目5.3.3.2 场景测试 前言 Redis分布式缓存系列文章&#xff1a; Redis从入门到精通(十三)Redis分…

Git分布式版本控制系统——Git常用命令(二)

五、Git常用命令————分支操作 同一个仓库可以有多个分支&#xff0c;各个分支相互独立&#xff0c;互不干扰 分支的相关命令&#xff0c;具体如下&#xff1a; git branch 查看分支 git branch [name] 创建分支&#x…

面试题:重写equals(),为什么还要重写hashcode()

认识equals(): Object类中的equals; public boolean equals(Object obj) {return (this obj);}当我们没有重写equals&#xff08;&#xff09;&#xff0c;我们是调用父类object中的方法&#xff0c;比较的是对象的内存地址 重写equals后&#xff0c; public class Student…

蓝桥杯嵌入式(G431)备赛笔记——DMA+UART

目录 CubeMX配置&#xff1a; 代码配置: DMA通道接收&#xff1a; DMA通道发送&#xff1a; 注意&#xff1a; 主函数中记得开启串口接收回调函数&#xff1a; 加了DMA的UART接收通道和一般的区别&#xff1a; 加了DMA的UART发送和一般的区别&#xff1a; CubeMX配置&…

Day23_学点儿Java_多态复习

1 做错的选择题 Java中的多态性是通过以下哪个机制实现的&#xff1f;&#xff08;&#xff09; A. 方法重载 B. 方法覆盖 C. 抽象类 D. 接口2 多态复习 2.1 学点儿Java_Day7_继承、重载、重写、多态、抽象类 2.2 面向对象四大基本特征 封装、抽象、继承、多态 封装 面向…

【翻译】再见, Clean Code!

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 【翻译】再见, Clean Code!正文那是一个深夜次日早晨这只是一个阶段 【翻译】再见…