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

2024:成长和学习之旅

文章目录

  • 前言
    • 2024,既是学习,又是总结
    • 学习并实践云原生
    • 研究并总结Spring
    • 展望未来
  • 总结


前言

    不知不觉,2024年已经悄然远去,2025年第一个月份也快结束了。。。我本身也不是什么名牌大学毕业,更不是什么知名博主,没有什么证书好展现的,有的仅仅是对技术的热忱之心。想把自己平时工作中所思所悟,所感所念,以博客的形式体现出来,这样可以更清晰的认识到自身的不足。当然,如果能帮助到大家,那就更加喜闻乐见了


2024,既是学习,又是总结

    在2024上半年,由于工作上的原因,主要精力放在了学习 DevOps、云原生 上了。正所谓:骐骥一跃,不能十步。驽马十驾,功在不舍。为此,我在 CSDN 查阅了大量的博客

在这里插入图片描述

在系统学习完成后,逐渐在开发、测试环境上实践部署完整的云原生环境。等到2024年中,生产环境趋于稳定,这才慢慢把精力放在研究在 Spring 上,也是由于之前在面试官提问之时,项目改造之际。发现了自己对 Spring 理解其实并不到位,很多时候只是知其然,不知所以然。每一次扪心自问,如果自己是面试官,面对面试者自吹自擂,说自己会这个会那个,读过XXX源码,结果却是一问就倒。这样子如何让人肯信?所以才下定决心对 Spring 进行更为系统、深入的了解

学习并实践云原生

    说来也惭愧,虽然出来工作了好几年了,但是对于 DevOps云原生 一直都是处于只闻其名,未见其面的状态。每次跟别人吹牛皮时,都觉得很厉害的样子,有心想要实践,但是工作上却一直没有机会。直到2024年,接到了个双活改造的需求,这才让我的想法有了真正的实践机会。当然,本着技术并不是为了新而新,变而变。在真正实施的过程中,有所取舍。不忘初心,真正的追求永远都是减少无意义的重复劳动,能做到少加班、甚至不加班。为此,我总结了工作中的几个弊病,并尝试引入新技术进行解决:

  • 代码管理混乱,甚至存在人员离职后,代码找不到的问题

  • 打包麻烦,由于代码不全,所以无法直接进行编译打包,还得一个个反编译进行对比

  • 没有相应的代码审查,无法保证代码质量

  • 没有专门的运维,开发常常兼职运维的工作,导致无法专心于开发,时间浪费在部署环境、查找问题上

  • 生产上要搭建双活环境。再加上现在已有的集群,动辄几十台机子。所有机子都要安装一遍Redis、Nginx,这工作量简直不可想象

  • 各个机子的配置,软件版本存在差异,把测试环境的软件包拿过去安装,发现版本对不上,导致安装失败,简直让人崩溃

  • 现在系统已经多达十几个,新老系统交错,各类技术混用。这么对这些系统进行统一管理、服务治理、服务发现也是个很头疼的问题

  • 因为系统多,导致整个调用链路很长,日志分散。之后出现生产问题,无法快速定位问题

  • 日志存在大报文,容易磁盘预警

  • 现在发布版本,常出现生产问题,虽然有版验环境,但实际上效果不佳,生产需要有灰度环境,以及快速回滚的方式

  • 定时任务分散,无法发挥集群的优势,无法监控,无法终止,无法手动调用

在这里插入图片描述

针对以上问题,我在 CSDN 查阅了大量的资料,发现业内已经有现成的解决方案:

  • 代码管理、编译打包、代码审查其实都属于相同问题,或者说都是因为代码不全、管理不当导致的问题,那就毫无疑问了,引入 Git 就能解决,毕竟代码管理是后面一系列操作的根本

  • 针对开发兼职运维的工作,可以通过CI/CD来实现,开发只需要提交代码,而后自动触发自动部署流程。即开发提交代码到CVSJenkins主动拉取最新代码,触发部署流程

  • 对于十几台机子要重复安装环境,这方面也有专门的部署工具,如:Ansible。通过Ansible编写剧本达到部署整个集群的目的

  • 至于环境之间存在差异,可以通过容器化解决,通过 Docker 来屏蔽系统之间的差异,实现移植的目的

  • 在基于 容器化 的前提下,不同系统的之间的 统一管理、服务治理、服务发现 也方便实现了,可以通过 k8sistio 进行实现。至于为什么采用 服务网格 而不是SpringCloud,是因为现有系统不全是SpringBoot项目,有些老项目直接用 SSH( Struts2、Spring,Hibernate),有些甚至更古老,改造起来非常麻烦,风险也大。还有些项目用的是 Python 实现,这样子 SpringCloud 就更不适用了。基于以上种种,故而选择 服务网格 的方式

  • 针对日志分散、占用空间大、链路长的问题,势必要引入 ELK 进行统一管理,链路长可以通过 链路追踪 进行解决

  • 对于灰度环境的需求,实际上可以通过 istioFlagger 进行灰度发布,以及动态部署

  • 定时任务的问题,也很典型,业内也有了对此的思考,那就是 XXL

    设想是很美好的,现实却是很骨感的。在实践的过程中,发现项目人员最初并没有代码管理的意识、也没有提交代码的习惯,所以虽然引入了 Git,却还要在花时间进行熟悉、学习。一下子引入这么多东西,虽然可以提高项目整体的管理、部署效率,但是随之增加的是服务器成本、学习成本。对于一个项目来说,这种代价或许太沉重了。实际的实施和美好的设想总会有出入,照本宣科总是要付出血的代价,我也深刻体会到了:纸上得来终觉前,绝知此事要躬行。虽然计划并没有完全实现,但是我对 云原生DevOps 这些东西不再陌生了,因为我曾经参与并实践过

研究并总结Spring

    在完成项目上的事情后,反思了下自己的所作所为,发现自己对底层的东西还有点缺漏,于是逐渐把重心放在了 Spring 源码上了。准备从 IOCAOP事务MVCBoot 这几方面入手,逐步解开 Spring 神秘的面纱。幸运的是,现在前面几部分基本上都已经完成了,只剩 Boot 还在负隅顽抗,不过,我相信他也坚持不了多久了。

    在写作的过程中,发现很多地方看似简单,实际上另有乾坤,很多地方都是自己想当然了。这也许就是写博客的好处之一了吧。在此期间,也收获了一些粉丝,也有人会私信鼓励我,也有人会评论提意见或是指出错误的地方,相比于之前自己闭门造车,这样子的学习方式显然是可持续的,能有人一起讨论,一起研究。孔子曰:三人行,必有我师。说的就是这种情况吧。虽然,现在的粉丝、阅读量还不是很多,但是还是希望我能够把写作发展成一个习惯,把自己的理解、感悟勇敢的发表出来,过则改,无则加勉。这里也感谢粉丝长久以来的支持了

在这里插入图片描述

回顾2024年度报告,每一组数据都记录着过去一年的努力与进步,它们见证了我在技术道路上的成长轨迹,也是对未来继续前行的最大动力。所谓:九层之台,起于累土;千里之行,始于足下。未来怎么样我没法知道,但是既然选择了远方,便只顾风雨兼程

在这里插入图片描述

展望未来

    原本计划的 Spring 源码,现在基本上也进入了尾声。估计再有一个月,就能把 Boot 篇章完成了,不要嫌弃我更新太慢了,毕竟只有在工作之余,闲暇之时才能开始写,期间还要不断地验证,勘校避免自己有理解错误的地方,困难重重

在这里插入图片描述

    等到把 Spring 相关章节完成后,估计也会开启新的篇章,也许是 Mybatis,也许是 Tomcat,也有可能是 JVM。预计就是这几个技术了,期间如果有变故,那就只能视情况而定了。可能前路也会有很多的困难,但有了研究 Spring 源码的经验,相信其他技术也差不多了,只要明白其思想,代码也就不是事了。2025年与诸君共勉

在这里插入图片描述


总结

    好啦,废话也不多说了。在这里再次感谢支持我的同行,无论是你们的批评、还是鼓励,都是我前行的动力(当然,批评的时候轻点喷,不然道心都要给干碎了)。新的一年里,希望大家心想事成、阖家欢乐、升职加薪。无论遇到什么困难都能克服,勇往直前,到达梦想的彼岸。最后让我们一起在日新月异的信息时代,一起探索技术的本质,享受科技带来的便捷


http://www.kler.cn/a/514762.html

相关文章:

  • Creo许可证激活失败原因及解决办法
  • 使用 Box2D 库开发愤怒的小鸟游戏
  • 一个软件分发和下载的网站源码,带多套模板
  • 工程上LabVIEW常用的控制算法有哪些
  • 华为EC6110T-海思Hi3798MV310_安卓9.0_通刷-强刷固件包
  • Swift语言的数据结构
  • 改写中断例程,用中断响应外设
  • 专业又简单:Geotiff文件转Cesium影像切片教程
  • stm32 L051 adc配置及代码实例解析
  • 2025-01学习笔记
  • 物联网常见的传感器和执行器-带表格整理
  • 多线程之旅:开启多线程安全之门的钥匙
  • 如何使用CRM数据分析优化销售和客户关系?
  • 【搞机】GMK-G3因特尔n100处理器核显直通win10虚拟机
  • 如何有效使用Python爬虫将网页数据存储到Word文档
  • 机器学习实战第一天:LSTM(长短时记忆网络)
  • Git 如何将旧仓库迁移新仓库中,但不显示旧的提交记录
  • C语言初阶牛客网刷题——JZ17 打印从1到最大的n位数【难度:入门】
  • 【JavaSE】(8) String 类
  • 计算机怎么入门
  • 动态规划(DP)(细致讲解+例题分析)
  • ChatGPT接入苹果全家桶:开启智能新时代
  • HBased的原理
  • HDBaseT和KVM 和POE是怎么融合在一块的
  • 国产编辑器EverEdit - 文件列表
  • 08-Elasticsearch