最新的《2025年 DevOps 现状报告》显示,DevOps 技能已成为职场生存的刚需。40% 的企业将其列为“必须具备”,另有 43% 的企业近期将其列为必选项。相比于培训证书,雇主更看重实战经验。尽管 AIOps 和 DevSecOps 热度极高,但真正的落地仍处于起步阶段。
最近又接触到一个相关但更进一步的概念——Agentic DevOps。花时间阅读了微软 Azure 相关介绍、GitHub 的最新文档以及部分开源实践后,我整理了这篇笔记。目的是记录学习过程,也供同行参考。以下内容基于公开资料和我的理解,不涉及任何夸大预测。
Explain Error Plugin 迎来两个重要更新:支持自定义上下文信息和文件夹级别的 AI 提供商配置。这两个功能让插件在企业环境中的使用更加灵活和强大。
这里记录每周值得分享的技术内容,周五发布。本杂志开源,欢迎投稿。
这里记录每周值得分享的 DevOps 与 AI 技术内容,周五发布。本杂志开源,欢迎投稿。
这里记录每周值得分享的 DevOps 与 AI 技术内容,周五发布。本杂志开源,欢迎投稿。
最近收到一些用户反馈,我也第一时间对 Explain Error Plugin 做了增强,新增了两个非常实用的功能:支持指定语言输出解释内容和支持在 Pipeline 中获取返回值 AI 的返回值。
在微服务、混合云和容器化部署横行的今天,IT 系统已变得异常复杂。当成千上万的告警信息涌入时,传统的运维模式很难。AIOps(智能运维),这个由人工智能驱动的变革,正成为 IT 运营管理的“救命稻草”。本文结合 IBM、ServiceNow、GitHub 和 Red Hat 的核心观点,带你透视 AIOps 的全貌。
最近 Clawdbot 改名为 Moltbot,越来越多的人开始在家里部署这个 AI 助手。本文分享了 Moltbot 的特点、使用体验以及一些注意事项,帮助你更好地理解和使用这款工具。
前几周和几位老同事聚会,聊起了一个我们以前讨论过的话题:要不要出国。
这里记录每周值得分享的 DevOps 与 AI 技术内容,周五发布。本杂志开源,欢迎投稿。
这里记录每周值得分享的 DevOps 与 AI 技术内容,周五发布。本杂志开源,欢迎投稿。
本文通过基于事实的解释和比喻,详细解读了 GitHub 上的 AI 相关概念及其层级关系,帮助读者理清 Models、Agents、Spaces、Spark 等术语的含义和作用。
Backstage 是什么?它为什么在平台工程领域变得如此重要?分享一些对 Backstage 的认识和判断。
在 DevOps 世界里,工具一多,很多人都会混淆它们的职责。用汽车产业链类比,帮你一次性理解 Packer、Terraform、Ansible、Docker、Kubernetes 的定位和协作方式。
py-eol 是一个轻量的小工具,帮助你快速判断某个 Python 版本是否已过期或即将 EOL,适合本地使用,也能集成到 CI/CD 中,让项目在版本管理上更可靠。
作为一个开源项目维护者,我深知“安装依赖”的痛苦。为了让用户少敲两行命令,我花时间把 gnuplot 封装成了一个开箱即用的 Python 包——gnuplot-wheel。本文分享了这个小轮子的诞生故事和实用价值。
在软件开发中,布鲁克斯法则指出“向一个已经延期的软件项目增加人力,只会使它更加延期。”本文通过烤鸡和孕妇的比喻,深入探讨了这一现象背后的原因,并提供了实用的解决方案。
Jenkinsfile 本地检查神器,利用 API 校验,完美支持 pre-commit。
本文介绍了如何激活 InstallShield 许可证的步骤和注意事项,帮助用户顺利完成软件安装和使用。
在开源项目的 issue 里,你是否也曾留言“Any updates?”(有什么更新吗?)来询问进展?看似无害的一句话,实际上却可能让维护者感到烦躁和挫败。本文分享了一篇关于这个话题的文章,并提出了更友善的替代做法。
经过一段时间的对比和尝试,我还是回到了 GitHub Copilot。本文分享我为何认为它是 2025 年最值得订阅的 AI 编程助手,以及实际使用体验。
经过了断断续续一个月的开发和测试,我终于完成了这次重大更新。这也是 Commit Check 迎来了自诞生以来最大的一次更新。
本文介绍了 Jenkins Explain Error Plugin 的新功能,即支持 Ollama 本地模型,帮助用户更高效地分析和解决构建错误。
cpp-linter 相关的项目和工具官网上线了,地址是 https://cpp-linter.github.io/,欢迎大家访问和使用。
开源基础设施并非免费,自来水般的 pip/npm 安装背后是高昂的带宽、存储和运维成本。声明呼吁开发者与企业共同分担,优化工具、支持赞助,才能让我们习以为常的“免费”体验真正可持续。
12K+ 访问量、多语言翻译、全球开发者采用,Conventional Branch 规范的一周年之路
在欧洲工作一年多,我只加过一次班,这让我深刻体会到东西方工作文化的差异。
发现我的博客英文读者比中文还多?于是我用 GitHub Actions + Gemini API,把文章自动翻译成英文,省心又高效。
有人说开源没用,既赚不到钱,又浪费时间。但我在四年的坚持中,发现了 3 个意想不到的收获:让工作被真正看到、接触更优秀的人和项目、以及一份长期的价值积累。这些收获,其实每个开发者都能借鉴。
如何评估并提升团队的 DevOps 实践水平?我正式发布了开源项目 DevOps Maturity —— 提供评估工具与实践指南。基于业界模型 + 开源工具,几分钟即可快速测出团队的 DevOps 成熟度。
昨天在网上冲浪,突然看到了一个仓库叫 prek,一看介绍是 —— ⚡ Better pre-commit, re-engineered in Rust。这就引起了我的兴趣,毕竟 pre-commit 作为非常广泛的预提交的工具,如果能改进,尤其是性能方面的改进,肯定是好事。
本文记录了我在八年后对博客进行翻新的过程,从 Hexo 到 Hugo 的迁移,以及新博客的功能和设计改进。
本文介绍了 Jenkins Explain Error Plugin 的新功能,支持 Google Gemini 模型进行错误分析,并提供了配置方法和示例视频。
介绍我开发的第一个 Jenkins 插件:Explain Error Plugin。它可以自动解析构建失败的日志信息,并生成可读性强的错误解释,帮助开发者更快地定位和解决问题。
JFrog发布的《2025软件供应链现状报告》揭示了软件供应链的变化和风险,尤其是AI模型的安全问题。本文分享了报告中的关键发现和对DevOps从业者的启示。
如果你的 Shields.io 徽章(例如构建状态或文档状态)在 Jenkins 仪表盘中无法显示,很可能是因为 Jenkins 的严格内容安全策略(CSP)限制所致。本文将演示如何通过 Script Console 临时修复,以及如何通过修改 Jenkins 启动参数永久解决。该方法适用于内部 Jenkins 环境,并已在现代 Jenkins 安装中测试验证。
在 Bitbucket 中使用 Commit Message Templates 功能,将 PR 描述自动写入 Git commit message,确保关键信息不会随工具变更而丢失。
在 Jenkins 中,disableConcurrentBuilds 选项用于管理并发构建。本文介绍了如何根据分支类型动态设置 abortPrevious 的值,从而实现更灵活的构建管理。
在 DevOps 中,CI/CD 流水线需要持续维护和重构。本文探讨了为什么 CI/CD 不是一次性的建设项目,而是一个需要长期投入和持续演进的系统。
asdf-clang-tools 是一个 asdf 插件,用于安装和管理 Clang Tools 相关工具(如 clang-format、clang-tidy、clang-query 和 clang-apply-replacements 等)。
AI 的出现让很多人感到“虚”,但它不会取代我们的职位,而是改变我们的做事方式。本文分享了对 AI 的体会和每天一小步的坚持。
在企业中,Wiki 和 Confluence 等文档工具如果缺乏统一管理和审核机制,可能会导致信息混乱和知识沉淀失败。本文探讨了如何避免这种情况,并借鉴开源社区的成功经验。
uv 是一个由 Astral 团队开发的 Python 包管理工具,它能替代 pip、venv、pip-tools 的功能,提供更快的依赖解析速度和更现代的项目管理方式。
cpp-linter-action 是一个 GitHub Action,提供 C/C++ 代码的格式化和静态分析功能。它使用 clang-format 和 clang-tidy,支持多种配置和自定义规则。项目自 2021 年创建以来,已被多个知名组织和开源项目使用。
GitHub 的访问问题让很多程序员感到困扰,尤其是在国内。本文分享了个人的体验和对网络问题的思考。
在开源项目或团队协作中,Sphinx + ReadTheDocs 是一个易于维护、可自动部署的文档系统。本文记录了配置过程和注意事项。
Markdown 和 reStructuredText(RST)是两种常用的标记语言。本文对比了它们的优缺点,并分享了在不同场景下的使用建议。
在 CPython 的 Issue 区找到一个合适的 PR,修改代码、测试、提交 Pull Request,第二天醒来发现已经被 Merge 到主分支了!这是一个很好的学习过程,也是对开源社区的贡献。
介绍 GitStats 项目的复活过程,包括迁移到 Python 3、创建现代化流水线、发布到 PyPI 和 Docker,以及未来的改进计划。
本文介绍了 pip 和 pipx 的区别,帮助开发者选择合适的工具来管理 Python 包和命令行工具。
介绍在 Windows Server 2022 上执行 Ansible playbook 时出现 PowerShell 无法识别的问题原因及解决方法。
本文介绍了作为 DevOps 工程师的日常工作节奏,从早上到晚上,涵盖工作准备、会议、代码管理、构建发布等环节。
本文介绍了在升级 Jenkins 的过程中所做的优化,包括使用 Docker Compose 部署、重构 Jenkins Shared Library、引入 Windows Docker Container 等,以提升 CI/CD 流程的效率和安全性。
本文介绍了首席DevOps工程师的职责、核心技能和对公司的价值,帮助你了解如何在DevOps领域实现职业发展。
本文介绍了约定式分支规范的中文版,旨在通过结构化的命名约定提高 Git 分支的可读性和可操作性。
本文介绍了 PyPA(Python Packaging Authority)下的知名项目,包括 pip、setuptools、wheel 等,并分析了它们之间的关系,帮助读者更好地理解 Python 包管理和分发的生态系统。
本文记录了从 IBM XLC 10.1 升级到 XLC 17.1(IBM Open XL C/C++ for AIX 17.1.0)过程中遇到的问题及解决方法,共涵盖 12 个错误的修复方案。
本文介绍了如何解决 Jenkins agent 上传 artifacts 到 Artifactory 时遇到的 SSL 证书验证问题,包括生成安全认证文件和导入到 Java 的 cacerts 中。
本文介绍 Docker Buildx Bake 的概念、优势、使用场景以及如何使用该功能来加速构建和管理多平台镜像。
本文介绍了SBOM的定义、与SLSA和Black Duck的关系和区别、最佳实践以及可用的生成工具,帮助读者更好地理解和应用SBOM。
本文介绍了 Jenkins pipeline 的一些最佳实践,旨在帮助开发者和运维人员优化 Jenkins 的性能和可维护性。
本文介绍如何生成 GPG 密钥、导出公钥并将其添加到 GitHub,用于提交签名验证。
Groovy 是一种强大的动态语言,适用于 Java 平台,本文介绍了 Groovy 的特性、与 Java 的区别以及在 Jenkins 中的应用场景。
本文介绍了 Vagrant 和 Docker 的区别,分析了它们各自的使用场景和优势,帮助读者选择合适的工具来管理虚拟机或容器。
本文介绍了 Go 语言的基本概念、优势、排名以及初学者应该如何选择学习 Python 还是 Go,提供了实用的学习建议和资源。
本文分享了在编写 Dockerfiles 和使用 Docker 时应遵循的一些最佳实践,包括多阶段构建、镜像优化、安全性等方面的建议。
本文分享了个人在选择显示器时的经验和建议,包括不同尺寸、分辨率和屏幕组合的优缺点,以及如何根据工作需求选择最合适的显示器。
本文介绍了如何使用 Jenkins 的 generic-webhook-trigger 插件来实时获取 Bitbucket 仓库的事件信息,如 Pull Request ID 等。
本文介绍了如何使用 GitHub Actions 自动将发布的博客文章更新到 GitHub 个人主页,提升个人主页的动态性和可读性。
本文介绍了 2021-22 世界质量报告(WQR)的主要发现和趋势,强调了新冠疫情对软件质量和测试的影响,以及 QA 在敏捷和 DevOps 中的重要作用。
这篇文章介绍了 Polaris 的基本概念、支持的编程语言、SaaS 平台的使用方法,以及如何配置和运行 Polaris 进行静态代码分析。它还提供了示例 YAML 配置文件和分析结果的查看方式。
本文总结了 Git 的常用命令和技巧,帮助开发者快速查找和使用 Git 命令,提高工作效率。
本文介绍如何将 SonarQube Community Edition 集成到 Maven、Gradle 及其他类型项目中,包括必要的配置和 Jenkins 流水线示例。
本文介绍在运行 lcov 生成代码覆盖率报告时遇到 “Can’t locate JSON/PP.pm in @INC …” 等 Perl 模块缺失错误的解决方法,包括安装缺失的 Perl 模块。
本文介绍了如何使用 Gcov 和 LCOV 对 C/C++ 项目进行代码覆盖率的度量,包括编译、运行和生成报告的步骤。
本文记录了 SonarQube 的安装步骤,包括 LDAP 配置与 PostgreSQL 数据库设置,并附带一些常见问题的排查方法。
本文介绍在使用 Gcov 编译项目进行代码覆盖率统计时,出现 “hidden symbol `__gcov_init’…” 等错误的原因及解决方法,包括如何在构建时确保符号不被隐藏。
本文介绍如何通过 Bitbucket REST API 为指定提交添加或更新构建状态,并给出 Shell 脚本示例,适用于手动修复或补充构建状态的场景。
本文简要介绍了代码覆盖率的概念、重要性、常见指标、工作原理以及主流工具,强调了不要过度依赖代码覆盖率指标。
本文介绍如何在 Jenkins 流水线中正确处理超时场景,通过 try 和 catch 结合 error 确保超时后作业会失败。
本文记录了在 AIX 上使用 Jenkins 进行 Git Clone 时遇到的两个问题及其解决方法,包括依赖库加载失败和 SSH 认证失败。
在 AIX 系统中遇到 Git 下载大容量仓库时因文件大小限制导致失败,通过修改 ulimit 设置解决问题。
在使用 JFrog Artifactory 上传制品时遇到速度缓慢和上传失败的问题,经过排查和解决,分享经验和教训。
本文记录了 ESlint HTML 报告在 Jenkins 中因内容安全策略(CSP)限制而无法正确显示的问题,并介绍了如何通过修改 Jenkins 配置使报告正常加载。
本文介绍了在使用 Git 提交代码之前需要进行的一些常见设置,包括配置用户名和邮箱、处理换行符、编写规范的提交信息等,帮助开发者更好地管理代码版本。
本文介绍了在 JFrog Artifactory 禁用“Download Folder”功能时,如何使用 Artifactory REST API 来批量下载整个文件夹的制品,并提供了基于 Shell 脚本的示例实现。
本文解释了一个常见的 Windows 安装程序问题:安装时意外弹出窗口的原因,以及通过修正构建文件夹命名规则来解决该问题的方法。
本文介绍了 JaCoCo 的使用方法,包括 Gradle 配置、执行测试生成报告、报告参数说明以及如何忽略指定的包或类影响测试覆盖率结果。
本文介绍了 Pythonic 的概念,并通过示例展示如何编写更简洁、优美的 Python 代码,帮助开发者提升代码质量和可读性。
本文介绍如何在 Jenkins 多分支流水线中,根据构建分支动态设置不同的默认参数,从而实现分支差异化配置。
本文介绍了谷歌的代码审查法则,并分享了如何在团队中有效实施代码审查的实践经验,包括流程控制和自动化检查等方面。
本文介绍 Jenkins 升级后 Windows Agent 无法启动的问题,以及通过更新 Windows Slaves 插件和修改配置文件来解决的步骤。
本文介绍了 2021 年 DevOps 领域的主要趋势,包括微服务架构、无服务器计算、Kubernetes 的普及以及 DevSecOps 的兴起。
本文介绍了成为DevOps工程师所需的技能和工具,涵盖软件开发、操作系统、网络安全、容器化、持续集成与部署等方面的知识。
本文解释了 Jenkins Pipeline 中 result 与 currentResult 的区别,并通过 Declarative Pipeline 与 Scripted Pipeline 示例展示它们在不同阶段的表现。
本文介绍如何在 Windows 上开启 22 端口并确保其处于监听状态,以便支持 SSH 连接。内容包括安装 OpenSSH 以及防火墙配置步骤。
列出 Bitbucket 和 GitHub 仓库推荐启用的设置,包括禁止强制推送、分支保护、标签管理、合并检查以及提交信息规范等。
介绍如何启用与禁用 Git sparse-checkout,包括配置只检出指定目录的示例,以及如何恢复到完整检出状态。
本文介绍了如何解决 Verisign 时间戳服务器不可用的问题,提供了替代的时间戳服务器地址,帮助开发者顺利完成代码签名。
了解国外 IT 公司对 DevOps 工程师的技能要求,帮助你在 2021 年树立学习方向,获取理想岗位。