当前位置: 首页 > article >正文

三周年创作纪念日

文章目录

  • 回顾与收获
  • 三年收获的五个维度
  • 未来的展望
  • 致谢与呼唤


亲爱的社区朋友们,大家好!

今天是 2025 年 4 月 14 日,距离我在 2022 年 4 月 14 日发布第一篇技术博客《SonarQube 部署》整整 1,095 天。在这条创作之路上,我既感慨万千,也充满感激——感谢每一位读者、评论者和鼓励者,正是你们,让平凡的文字变得意义非凡。


回顾与收获

  1. 系统与网络基础的夯实

    • 深入理解 Linux 系统:掌握了 Linux 系统的核心组件,如内核、文件系统、进程管理和权限控制,能够熟练进行系统配置和故障排查。

    • 网络服务配置:熟悉配置和管理常见的网络服务,如 FTP、DNS 和邮件服务,确保网络通信的稳定与安全。

  2. 自动化运维的实践

    • 配置管理工具的应用:熟练使用 Ansible等自动化工具,实现大规模服务器的配置管理和部署,提高了运维效率。

    • 脚本编写能力提升:通过编写 Shell 和 Python 脚本,自动化日常运维任务,如日志分析、系统监控和备份操作,减少了人为错误。

  3. 容器化与微服务架构的探索

    • Docker 的深入使用:掌握了 Docker 容器的构建、管理和优化,能够创建轻量级、可移植的应用环境。

    • Kubernetes 的部署与管理:在 K8s 集群中部署和管理应用,理解其核心概念,如 Pod、Service、Ingress 和 ConfigMap,实现了应用的高可用性和可扩展性。

  4. Python 开发能力的提升

    • 开发运维工具:利用 Python 开发了多种运维工具,如自动化部署脚本、监控报警系统和日志分析平台,提高了运维工作的自动化程度。
  5. 安全与监控体系的建立

    • 系统安全加固:实施了多项安全措施,如防火墙配置、入侵检测系统和权限管理,提升了系统的安全性。

    • 监控系统的部署:部署了 Zabbix、Prometheus 等监控工具,实时监控系统和应用的运行状态,及时发现并解决潜在问题。

  6. 知识体系的不断沉淀

    • 安全与性能:在后续项目中,我补充了对代码安全扫描(SAST)和性能测试工具的研究,比如 OWASP ZAP、JMeter,把它们与 SonarQube 的质量报告结合,形成了较为完整的“质量+安全+性能”闭环。
    • 微服务与容器化:随着团队架构演进,我把 SonarQube 部署迁移到了 Kubernetes,学会了 Helm Chart 的定制、PVC 持久化存储的管理,以及如何利用 Prometheus + Grafana 监控 SonarQube 的健康状态。
  7. 写作与分享的成长

    • 文章风格:从最初的“流水账”式记录,到现在力求“问题—解决—优化”的结构化输出,我在每篇博文前都会先做读者画像,明确目标受众和核心痛点,力求写出“能用”的干货。

三年收获的五个维度

  1. 技术深度的提升:通过系统化的写作,我对所学技术有了更深入的理解,能够更好地应用于实际项目。

  2. 表达与沟通能力的增强:持续的写作和与读者的互动,提高了我的表达能力,使我能够更清晰地传达复杂的技术概。

  3. 职业发展的助力:技术博客成为了我的“第二简历”,在求职和职业发展中起到了积极的推动作。

  4. 持续学习的动力:写作促使我不断学习新技术,保持对行业发展的敏感度,持续提升自己的竞争。

未来的展望

  • 系列专栏:计划推出“DevOps 实战指南”系列,涵盖从基础原理到高级架构,从 CI/CD 到 SRE 监控,帮助更多同学快速上手并深入掌握。

致谢与呼唤

  1. 感谢:感谢所有一路支持的读者,你们的点赞、收藏、评论和转发,是我不断前行的动力。
  2. 呼唤:欢迎大家在评论区告诉我——
    • 你最想了解的 DevOps / 质量管理 / 性能调优 话题是什么?
    • 在实际项目中,你遇到的最大痛点又是什么?
    • 你最感兴趣的技术话题是什么?
    • 在实际工作中遇到的最大挑战是什么?
    • 你希望我在未来的博客中探讨哪些内容?

最后,感谢平台为我准备的「纪念勋章」与「里程碑专区」,这不仅是对过去努力的肯定,更激励我在接下来的日子里继续创作、不忘初心。未来的路上,让我们一起记录技术的脚印,见证彼此的成长!

—— XMYX-0 于 2025 年 4 月 14 日

相关文章:

三周年创作纪念日

文章目录 回顾与收获三年收获的五个维度未来的展望致谢与呼唤 亲爱的社区朋友们,大家好! 今天是 2025 年 4 月 14 日,距离我在 2022 年 4 月 14 日发布第一篇技术博客《SonarQube 部署》整整 1,095 天。在这条创作之路上,我既感慨…...

Vue 3 国际化实战:支持 Element Plus 组件和语言持久化

目录 Vue 3 国际化实战:支持 Element Plus 组件和语言持久化实现效果:效果一、中英文切换效果二、本地持久化存储效果三、element Plus国际化 vue3项目国际化实现步骤第一步、安装i18n第二步、配置i18n的en和zh第三步:使用 vue-i18n 库来实现…...

1.阿里云快速部署Dify智能应用

一、宝塔面板 宝塔面板是一款功能强大且易于使用的服务器管理软件,支持Linux和Windows系统,通过web端可视化操作,优化了建站流程,提供安全管理、计划任务、文件管理以及软件管理等功能。 1.1 宝塔面板的特点与优势 易用性 宝塔面…...

Ubuntu与windows时间同步

由于ubuntu每次重启后时间老是不对,所以使用ntp服务,让ubuntu作为客户端,去同步windows时间。 一、windows服务端配置 1、启用ntp服务 # 启动W32Time服务(若未启动) net start w32time # 配置服务为NTP模式 w32tm /…...

在pycharm配置虚拟环境和jupyter,解决jupyter运行失败问题

记录自己pycharm环境配置和解决问题的流程。 解决pycharm无法运行jupyter代码,仅运行import板块显示运行失败,但是控制台不输出任何错误信息,令人困惑。 遇到的问题是:运行代码左下角显示运行失败但是有没有任何的输出错误信息。 …...

Vue 技术解析:从核心概念到实战应用

Vue.js 是一款流行的渐进式前端框架,以其简洁的 API、灵活的组件化结构和高效的响应式数据绑定而受到开发者的广泛欢迎。本文将深入解析 Vue 技术的核心概念、原理和应用场景,帮助开发者更好地理解和使用 Vue.js。 一、Vue 的设计哲学与核心概念 &…...

Series和 DataFrame是 Pandas 库中的两种核心数据结构

Series 和 DataFrame 是 Pandas 库中的两种核心数据结构,它们各有特点和用途。理解它们之间的区别有助于更高效地进行数据分析和处理。以下是 Series 和 DataFrame 的主要区别: 1. 维度 Series:是一维的数组,可以存储任何类型的…...

关于异步消息队列的详细解析,涵盖JMS模式对比、常用组件分析、Spring Boot集成示例及总结

以下是关于异步消息队列的详细解析,涵盖JMS模式对比、常用组件分析、Spring Boot集成示例及总结: 一、异步消息核心概念与JMS模式对比 1. 异步消息核心组件 组件作用生产者发送消息到消息代理(如RabbitMQ、Kafka)。消息代理中间…...

利用 Python 进行股票数据可视化分析

在金融市场中,股票数据的可视化分析对于投资者和分析师来说至关重要。通过可视化,我们可以更直观地观察股票价格的走势、交易量的变化以及不同股票之间的相关性等。 Python 作为一种功能强大的编程语言,拥有丰富的数据处理和可视化库&#xf…...

【Docker】离线安装Docker

背景 离线安装Docker的必要性,第一,在目前数据安全升级的情况下,很多外网已经基本不好访问了。第二,如果公司有对外部署的需求,那么难免会存在对方只有内网的情况,那么我们就要做到学会离线安装。 下载安…...

kubectl命令补全以及oc命令补全

kubectl命令补全 1.安装bash-completion 如果你用的是Bash(默认情况下是)&#xff0c;先安装补全功能支持包 sudo apt update sudo apt install bash-completion -y2.为kubectl 启用补全功能 会话中临时&#xff1a; source <(kubectl completion bash)持久化配置&#x…...

《 C++ 点滴漫谈: 三十三 》当函数成为参数:解密 C++ 回调函数的全部姿势

一、前言 在现代软件开发中&#xff0c;“解耦” 与 “可扩展性” 已成为衡量一个系统架构优劣的重要标准。而在众多实现解耦机制的技术手段中&#xff0c;“回调函数” 无疑是一种高效且广泛使用的模式。你是否曾经在编写排序算法时&#xff0c;希望允许用户自定义排序规则&a…...

极简cnn-based手写数字识别程序

1.先看看识别效果&#xff1a; 这个程序识别的是0~9的一组手写数字&#xff0c;这是最终的识别效果&#xff0c;为1&#xff0c;代表识别成功&#xff0c;0为失败。 然后数据源是&#xff1a;ds deeplake.load(hub://activeloop/optical-handwritten-digits-train)里面是一组…...

C++核心机制-this 指针传递与内存布局分析

示例代码 #include<iostream> using namespace std;class A { public:int a;A() {printf("A:A()的this指针&#xff1a;%p!\n", this);}void funcA() {printf("A:funcA()的this指针&#xff1a;%p!\n", this);} };class B { public:int b;B() {prin…...

vue3 history路由模式刷新页面报错问题解决

在使用history路由模式时刷新网页提示404错误&#xff0c;这是改怎么办呢。 官方解决办法 https://router.vuejs.org/zh/guide/essentials/history-mode.html...

PHP爬虫教程:使用cURL和Simple HTML DOM Parser

一个关于如何使用PHP的cURL和HTML解析器来创建爬虫的教程&#xff0c;特别是处理代理信息的部分。首先&#xff0c;我需要确定用户的需求是什么。可能他们想从某个网站抓取数据&#xff0c;但遇到了反爬措施&#xff0c;需要使用代理来避免被封IP。不过用户没有提到具体的目标网…...

Web前端开发——格式化文本与段落(上)

一、学习目标 网页内容的排版包括文本格式化、段落格式化和整个页面的格式化&#xff0c;这是设计个网页的基础。文本格式化标记分为字体标记、文字修饰标记。字体标记和文字修饰标记包括对于字体样式的一些特殊修改。段落格式化标记分为段落标记、换行记、水平分隔线标记等。…...

技术方案选型要考虑哪些点?

在概要设计阶段&#xff0c;技术方案选型是核心环节之一&#xff0c;需综合考虑系统需求、技术可行性、团队能力及长期维护成本。以下是技术方案选型需包含的核心内容及设计要点&#xff0c;结合行业实践和搜索结果中的方法论&#xff1a; 理论 一、系统架构选型 整体架构模式…...

前端工程化之自动化构建

自动化构建 自动化构建的基本知识历史云构建 和 自动化构建 的区别&#xff1a;部署环境&#xff1a;构建&#xff1a;构建产物构建和打包的性能优化页面加载优化构建速度优化 DevOps原则反馈的技术实践 encode-bundlepackage.json解读src/cli-default.tssrc/cli-node.tssrc/cl…...

3.2.2.1 Spring Boot配置静态资源映射

在Spring Boot中配置静态资源映射&#xff0c;可以通过默认路径或自定义配置实现。默认情况下&#xff0c;Spring Boot会在classpath:/static/等目录下查找静态资源。若需自定义映射&#xff0c;可通过实现WebMvcConfigurer接口的addResourceHandlers方法或在全局配置文件中设置…...

# 更换手机热点后secureCRT无法连接centOS7系统

更换手机热点后secureCRT无法连接centOS7系统 一、问题描述 某些情况下&#xff0c;我们可能使用手机共享热点而给电脑联网。本来用一个手机热点共享网络时&#xff0c;SecureCRT可以正常连接到CentOS 7虚拟机&#xff0c;当更换一个手机热点时&#xff0c;突然发现SecureCR…...

【高性能缓存Redis_中间件】三、redis 精通:性能优化与生产实践

一、引言​ 在前两篇 Redis 消息队列的文章中&#xff0c;我们掌握了基础使用和高级特性。本文作为系列终篇&#xff0c;将聚焦生产环境的性能优化与全流程实践&#xff0c;请各位跟随小编的步伐一起构建高可靠、高性能的消息处理系统&#xff08;文章中的演示均为Centos7的背…...

jupyter notebook 无法启动- markupsafe导致

一、运行jupyter notebook和Spyder报错&#xff1a;(已安装了Anaconda&#xff0c;以前可打开) 1.背景&#xff1a;为了部署机器学习模型&#xff0c;按教程直接安装了flask 和markupsafe&#xff0c;导致jupyter notebook&#xff0c;Spyder 打不开。 pip install flas…...

Kotlin作用域函数

在 Kotlin 中&#xff0c;.apply 是一个 作用域函数&#xff08;Scope Function&#xff09;&#xff0c;它允许你在一个对象的上下文中执行代码块&#xff0c;并返回该对象本身。它的设计目的是为了 对象初始化 或 链式调用 时保持代码的简洁性和可读性。 // 不使用 apply va…...

设计模式:工厂方法模式 - 高扩展性与低耦合的设计之道

一、为什么需要工厂方法模式&#xff1f; 在软件开发中&#xff0c;对象创建与使用耦合会影响系统的灵活性和扩展性。以通知系统&#xff08;支持邮件通知、短信通知和推送通知&#xff09;为例 &#xff1a;直接实例化。 Notification email new EmailNotification(); Noti…...

CTF web入门之命令执行 完整版

web29 文件名过滤 由于flag被过滤,需要进行文件名绕过,有以下几种方法: 1.通配符绕过 fla?.* 2.反斜杠绕过 fl\ag.php 3.双引号绕过 fl’‘ag’.php 还有特殊变量$1、内联执行等 此外 读取文件利用cat函数,输出利用system、passthru 、echo echo `nl flag.php`; ec…...

自然语言处理spaCy

spaCy 是一个流行的开源 自然语言处理&#xff08;NLP&#xff09; 库&#xff0c;专注于 高效、易用和工业化应用。它由 Explosion AI 开发&#xff0c;广泛应用于文本处理、信息提取、机器翻译等领域。 zh_core_web_sm 是 spaCy 提供的一个小型中文预训练语言模型&#xff0…...

在spark中,窄依赖算子map和filter会组合为一个stage,这种情况下,map和filter是在一个task内进行的吗?

在 Spark 中&#xff0c;当 map 和 filter 这类窄依赖&#xff08;Narrow Dependency&#xff09;的算子连续应用时&#xff0c;它们会被合并到同一个 Stage 中&#xff0c;并且在同一个 Task 内按顺序执行。这种优化称为 流水线&#xff08;Pipeline&#xff09;执行&#xff…...

MySQL切换PolarDB-X方案

一、DTS 增量同步完成后的流量切换策略 1. 切换期间的数据写入处理 • 场景&#xff1a;DTS 增量同步完成&#xff08;Lag0&#xff09;后&#xff0c;业务流量切换到 PolarDB-X 的瞬间可能产生 2-3 秒延迟&#xff0c;导致部分订单仍写入 MySQL。 • 解决方案&#xff1a; ◦…...

Java 开发工具:从 Eclipse 到 IntelliJ IDEA 的进化之路

Java 开发工具&#xff1a;从 Eclipse 到 IntelliJ IDEA 的进化之路 在 Java 开发的历史长河中&#xff0c;开发工具的演变不仅改变了程序员的编码方式&#xff0c;也深刻影响了整个行业的开发效率和代码质量。从 Eclipse 到 IntelliJ IDEA&#xff0c;这不仅是工具的更替&…...