解Bug之路-应用999线升高

前言 监控指标诚然是发现问题于微末之时的极佳手段,但指标往往有其表达的极限。在很多情况下,单独看一个黄金指标并不能表征系统的健康程度,反而有可能被其迷惑,进而忽略相关问题。(本文所提及的Linux Kernel源码版本为4.18.10) Bug现场 某天中午,某应用的999线突然升高。由于是个QPS

k8s 入门到实战--部署应用到 k8s

![k8s 入门到实战 01.png](https://s2.loli.net/2023/09/04/ymUpcXZrxfNsT91.png) # 背景 最近这这段时间更新了一些 k8s 相关的博客和视频,也收到了一些反馈;大概分为这几类: - 公司已经经历过服务化改造了,但还未接触过云原生。 -

金融科技 DevOps 的最佳实践

随着软件技术的发展,越来越多的企业已经开始意识到 DevOps 文化的重要价值。DevOps 能够消除改变公司业务开展方式,并以更快的速度实现交付,同时创建迭代反馈循环以实现持续改进。而对于金融科技(FinTech)行业来说,拥有一套企业量身定制的 DevOps 流程变得至关重要。因为 FinTec

开源漏洞数量增长33%!企业安全债务不堪重负丨行业数据

安全公司 Mend 在 2022 年前九个月发现并添加到其漏洞数据库中的开源漏洞数量比 2021 年增加了 33%,这反映了已发布的开源软件包数量的增长。该报告从 2022 年 1 月到 2022 年 9 月对大约 1,000 家北美公司进行了代表性抽样,结果显示已知漏洞中只有 13% 得到了修复,

KubeCon EU 2023 落幕,哪些技术趋势值得关注?

KubeCon+CloudNativeCon 是云原生领域的技术盛会,上个月月末,在荷兰阿姆斯特丹举办的欧洲 KubeCon+CloudNativeCon 刚刚落下帷幕,此次大会吸引了10000多名参会者以及200多家企业,其中58%的参会者是首次参会。这不仅反映了云原生领域在蓬勃发展,也体现出 K

如何有效检测、识别和管理 Terraform 配置漂移?

在理想的 IaC 世界中,我们所有的基础设施实现和更新都是通过将更新的代码推送到 GitHub 来编写和实现的,这将触发 Jenkins 或 Circle-Ci 中的 CI/CD 流水线,并且这些更改会反映在我们常用的公有云中。但现实并没有这么顺利,原因可能有很多,例如: - 公司仍处于云自动化的初

打开PDB报错ORA-30013

多租户架构,之前还在做运维的时期接触也不多。遇到多租户问题,第一反应是有些发虚的。 但实际很多问题很简单,也容易解决。本文就是一个例子。 问题:RAC节点2打开所有PDB时,报错ORA-30013。 SQL> alter pluggable database all open; alter plug

如何在没有第三方.NET库源码的情况,调试第三库代码?

大家好,我是沙漠尽头的狼。 本方首发于Dotnet9,介绍使用dnSpy调试第三方.NET库源码,行文目录: 安装dnSpy 编写示例程序 调试示例程序 调试.NET库原生方法 总结 1. 安装dnSpy dnSpy是一款功能强大的.NET程序反编译工具,可以对.NET程序进行反编译,代替库文档的功

Inno setup 脚本判断 Microsoft Visual C++ Redistributable 不同版本区别

有个需要是需要在安装包安装初始化时安装 Microsoft Visual c++ 2013 Redistributable 也就是判断软件安装前需不需要运行 `vcredist_x64.exe` 和 `VC_redist.x64.exe` 这两个程序 第一反应就是可以通过注册表判断是否已经安装过环境

nginx实现 springboot项目的负载均衡 策略

weight 代表权重,默认为1,权重越高被分配的客户端越多 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如 # 反向代理配置upstream server_list{# 这个是tomcat的访问路径server localhost:8080 weight=5;se

程序员减少BUG的两个小妙招!

我们说衡量一个程序员水平的高低往往有很多因素,但有一个因素至关重要即代码质量。 如果程序员写的功能在测试阶段就被频繁打回,上线了之后,用户反馈这里有问题那里有问题,大家可以想像这样的程序员水平能高到哪里去,纯粹一个“挖坑”程序员无疑。 那有没有什么窍门能减少程序出bug的概率呢? 这里作者分享两个我自己总结的减少程序出bug的小窍门,希望对你有所帮助。

C#判断字符串是否是有效的XML格式数据

说明 在try-catch语句块中,创建XmlDocument对象,并使用LoadXml方法加载xml字符串。如果没有异常,则说明xml字符串是有效的,返回true,反之为false。 代码实现 /// /// Xml字符串格式验证 /// ///

DevOps|乱谈开源社区、开源项目与企业内部开源

之前的一篇文章《从特拉斯辞职风波到研发效能中的荒唐事》中关于企业内源的内容在研发效能群内引起了大家的热烈讨论。有的小伙伴不同意,有的小伙伴非常不同意,我觉得这都是非常正常的反馈,话不说不透,理不辩不明,我还是特别希望能和大家一起把这个问题弄明白。这篇文章就是那篇文章的后续,本文主要讨论开源社区、开源

DevOps|研发效能不是老板工程,是开发者服务

有人说研发效能是老板工程。不是的,研发效能不是老板工程,它不直接服务于老板(虽然老板可能看一些报表),反而是服务于广大产研运(产品+研发+质量+运维)的同学,所以有的公司也把研发效能叫做基础中台,平台工程,开发者服务团队,或者叫开发者服务平台。做好研发效能,做好开发者中台,就容易把公司的各种中后台能

质效提升 | 聊聊QA与业务测试

上面一篇文章《质效提升 | QA不做业务需求测试,你怎么看》主要讨论的是QA 和业务需求测试相关的问题,文章发出后收到了很多小伙伴的反馈,这里把很多有意义的反馈放在下面,希望对你有用。 约翰同学:QA 和测试的职能不同吧。很多时候混淆了?scmroad:是的,对于国外来说QA 和 Tester,区别

解码方法数问题

解码方法数问题 作者:Grey 原文地址: 博客园:解码方法数问题 CSDN:解码方法数问题 题目描述 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 'A' -> 1 'B' -> 2 ... 'Z' -> 26 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可

驱动开发:内核LDE64引擎计算汇编长度

本章开始`LyShark`将介绍如何在内核中实现`InlineHook`挂钩这门技术,内核挂钩的第一步需要实现一个动态计算汇编指令长度的功能,该功能可以使用`LDE64`这个反汇编引擎,该引擎小巧简单可以直接在驱动中使用,LDE引擎是`BeaEngine`引擎的一部分,后来让`BeatriX`打包成了一个`ShellCode`代码,并可以通过`typedef`动态指针的方式直接调用功能,本章内容作

驱动开发:通过MDL映射实现多次通信

在前几篇文章中`LyShark`通过多种方式实现了驱动程序与应用层之间的通信,这其中就包括了通过运用`SystemBuf`缓冲区通信,运用`ReadFile`读写通信,运用`PIPE`管道通信,以及运用`ASYNC`反向通信,这些通信方式在应对`一收一发`模式的时候效率极高,但往往我们需要实现一次性吐出多种数据,例如ARK工具中当我们枚举内核模块时,往往应用层例程中可以返回几条甚至是几十条结果,如

驱动开发:内核ShellCode线程注入

还记得`《驱动开发:内核LoadLibrary实现DLL注入》`中所使用的注入技术吗,我们通过`RtlCreateUserThread`函数调用实现了注入DLL到应用层并执行,本章将继续探索一个简单的问题,如何注入`ShellCode`代码实现反弹Shell,这里需要注意一般情况下`RtlCreateUserThread`需要传入两个最重要的参数,一个是`StartAddress`开始执行的内存块

2.12 PE结构:实现PE字节注入

本章笔者将介绍一种通过Metasploit生成ShellCode并将其注入到特定PE文件内的Shell植入技术。该技术能够劫持原始PE文件的入口地址,在PE程序运行之前执行ShellCode反弹,执行后挂入后台并继续运行原始程序,实现了一种隐蔽的Shell访问。而我把这种技术叫做字节注入反弹。字节注入功能调用`WritePEShellCode`函数,该函数的主要作用是接受用户传入的一个文件位置,并