我做云原生的那几年
背景介绍
在2020年6月,我加入了一家拥有超过500人的企业。彼时,前端团队人数众多,有二三十名成员。在这样的大团队中,每个人都要寻找自己的独特之处和核心竞争力。否则,你可能会沉没于常规的增删改查工作中,无法展现自己的真正价值,或者在别人已经铺好的道路上与同伴竞争。
近期发布的《2023开发者职场生存白皮书》清晰地揭示了这种情况。其中提到,一线城市的竞争日益激烈,二线地区的开发者陷入无尽的内卷,而三、四线地区的开发者则面临着职业降维打击。对于前端开发者来说,真正的发展空间已经变得十分狭窄。这种趋势早早地引起了我的注意。我意识到,仅仅追求技术的深度并不明智。今天你在公司撰写一篇关于TypeScript的常用技巧的文章,但明天,可能就有人发表关于TypeScript更高级的内容;再过一段时间,可能就有人开始探讨TypeScript的源码解析。无形中自己陷入了内卷的恶性循环。
在认识到这一点后,我决定不再单纯地深入技术研究,因为那样的投入与收益并不成正比。相反,我选择拓展与我的职业岗位相关的知识,并在看清未来技术的大趋势后,决定加强我的云技术能力。这样,不仅可以提高自己的技术广度,还能在多元化的领域中展现自己的价值。
学习历程
自从加入公司后,我有幸成为了容器引擎开发部门的一员。我们的目标是研发一个与rancher和kubersphere相竞争的产品。在工作之余,我也投入了大量的时间来研究这两大云平台。对他们的前端部分进行了深入探讨后,我还撰写并发布了多篇相关文章,并尝试为它们提交PR,甚至还自行定制了部分页面。
在这段期间,我也如饥似渴地吸收了大量云原生相关的知识,例如如何使用Docker来部署镜像、如何为前端构建Docker镜像,以及如何在本地通过minikube部署前端应用等。云计算的核心技术是Kubernetes,但在实际应用中,我们还需要结合诸如Docker、API Gateway、云原生DevOps等多种技术。可以说,云原生技术构成了一个广阔的技术生态圈。
尽管很多前端开发者都精通TypeScript,但真正了解Kubernetes的却寥寥无几。这使得我在团队中逐渐获得了一定的威望。当同事们在前端项目部署或构建前端镜像方面遇到问题时,很多人都会找到我,寻求解决方案。确实,有些人可能会认为,一个前端开发者不深入研究前端技术,却投身于运维领域,这是否“不务正业”?但作为一名软件工程师,我们不能这样局限自己。除了做好职责范围内的工作,我们还应当扩展自己的技术视野,全面了解整个应用的生命周期。毕竟,每一个应用都需要部署,如果需要上云,那就必须进行容器化处理。这意味着我们不仅需要掌握云技能,还要能够处理常见的业务场景,并在出现问题时能迅速进行排查。
在公司内,我进行了多次关于Kubernetes的技术分享。其中,利用GitLab CI/CD自动化部署到Kubernetes集群的主题,受到了团队的一致好评。这也证明了,跨界的学习和尝试,往往能带来意想不到的成果和收获。
收获
在公司,我选择了一条与众不同的晋升之路,不盲目追随,不随波逐流,而是凭自己的技能和理念,开创了自己的职业道路。我没有试图攀登别人已经达到的高峰,而是选择了另起炉灶,铸造属于自己的事业之路。通过深入了解上下游、熟悉业务流程,并结合我所掌握的技术,我对整个应用的开发和部署流程进行了优化。而这样的技能,在现今的IT行业中,无疑是每家公司所迫切需要的。
凭借这些努力和成果,我两次荣获了公司的“月度之星”的殊荣。


业余时间,我也没有闲下来。我创建了一个关于云原生的专栏《我做云原生那几年》,目前已经累积发布了67篇文章。现在的前端领域中,真正熟悉云原生的人是相当少的。这片广袤的领域就像一块未被开垦的荒地,很少有人知道前端与云原生结合会碰撞出何种火花。但可以确定的是,这样的探索决定了我的职业生涯绝不会单调。
随着我积累的专业资料越来越多,一家出版社主动接触我,询问我是否有意将这些经验和知识整理成书。经过近一年的辛勤努力和创作,我终于迎来了人生中的第一本书的出版。这不仅是对我职业生涯的一种肯定,也为更多的开发者提供了一条新的探索路径。

总结
很感谢自己一直以来的努力,没有放弃成长的机会,坚持学习云计算等前沿技术。学习一项新技术,特别是云技术,概念多,耗时长,资料杂且多,所以在这个漫长的学习过程我也走了很多弯路。对于现在要学习云技术的同学,我要告诉你们一个好消息,亚马逊云科技推出了完整的云技能认证体系。如针对新手的AWS Certified Cloud Practitioner,主要考察队亚马逊云科技的基本了解,无需基本相关经验。

还有针对比较有经验的开发者准备的 AWS Certified Solutions Architect - Professional 与AWS Certified DevOps Engineer - Professional基于角色的认证,用于验证设计安全,优化和现代化的应用程序以及在亚马逊云科技上实现流程自动化所需的高级技能和知识。

本片文章就写到这里,祝大家都能在云计算的海洋里遨游,利用技术转化为生产力,为业务赋能。
相关文章:
我做云原生的那几年
背景介绍 在2020年6月,我加入了一家拥有超过500人的企业。彼时,前端团队人数众多,有二三十名成员。在这样的大团队中,每个人都要寻找自己的独特之处和核心竞争力。否则,你可能会沉没于常规的增删改查工作中࿰…...
@EventListener注解使用说明
在Java的Spring框架中,EventListener注解用于监听和处理应用程序中的各种事件。通过使用EventListener注解,开发人员可以方便地实现事件驱动的编程模型,提高代码的灵活性和可维护性。本文将详细探讨EventListener注解的使用方法和作用&#x…...
算法通关村第五关-白银挑战实现队列
大纲 队列基础队列的基本概念和基本特征实现队列队列的基本操作Java中的队列 队列基础 队列的基本概念和基本特征 队列的特点是节点的排队次序和出队次序按入队时间先后确定,即先入队者先出队,后入队者后出队,即我们常说的FIFO(first in fi…...
协力共创智能未来:乐鑫 ESP RainMaker 云方案线下研讨会圆满落幕
近日,乐鑫 ESP RainMaker 云方案线下研讨会(深圳)在亚马逊云科技与合作伙伴嘉宾的支持下成功举办,吸引了众多来自智能家电、照明电工、能源和宠物等行业的品牌客户、方案商和制造商。研讨会围绕如何基于乐鑫 ESP RainMaker 硬件连…...
读取谷歌地球的kml文件中的经纬度坐标
最近我在B站上传了如何获取研究边界的视频,下面分享一个可以读取kml中经纬度的matlab函数,如此一来就可以获取任意区域的经纬度坐标了。 1.谷歌地球中划分区域 2.matlab读取kml文件 function [sname,lon,lat] kml2xy(ip_kml) % ip_kml ocean_distubu…...
1深度学习李宏毅
目录 机器学习三件事:分类,预测和结构化生成 2、一般会有经常提到什么是标签label,label就是预测值,在机器学习领域的残差就是e和loss编辑3、一些计算loss的方法:编辑编辑 4、可以设置不同的b和w从而控制loss的…...
Flask_Login使用与源码解读
一、前言 用户登录后,验证状态需要记录在会话中,这样浏览不同页面时才能记住这个状态,Flask_Login是Flask的扩展,专门用于管理用户身份验证系统中的验证状态。 注:Flask是一个微框架,仅提供包含基本服务的…...
利用Graviton2和S3免费套餐搭建私人网盘
网盘是一种在线存储服务,提供文件存储,访问,备份,贡献等功能,是我们日常中不可或缺的一种服务。很多互联网公司都为个人和企业提供免费的网盘服务。但这些免费服务都有一些限制,比如限制下载速度࿰…...
跟着GPT学设计模式之单例模式
单例设计模式(Singleton Design Pattern)一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。 单例有几种经典的实现方式,…...
【MySQL索引与优化篇】数据库调优策略
数据库调优策略 文章目录 数据库调优策略1. 数据库调优的措施1.1 调优目标1.2 如何定位调优问题1.3 调优的维度和步骤第1步:选择合适的DBMS第2步:优化表设计第3步:优化逻辑查询第4步:优化物理查询第5步:使用 Redis 或 …...
基于BP神经网络的风险等级预测,BP神经网络的详细原理,
目录 背影 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 代码链接:基于BP神经网络的风险等级评价,基于BP神经网络的风险等级预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.n…...
最新Ai智能创作系统源码V3.0,AI绘画系统/支持GPT联网提问/支持Prompt应用+搭建部署教程
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...
项目资源不足,常见的5种处理方式
软件开发中,经常会遇到项目资源不足的情况,项目团队如果无法及时获得所需的人力、财力、物力等资源,往往会影响团队士气以及任务质量,造成无法按时完成任务,进而影响项目进度。 因此及时处理和应对资源不足的情况&…...
ER图设计神器,帮你省时省力,高效完成工作!
ER图(Entity-Relationship Diagram)工具用于设计数据库模型,通常用于表示数据实体、关系和属性之间的关系。以下是10个好用的ER图工具。 一、Lucidchart Lucidchart 是一款基于云的协作式图表设计工具,它允许用户创建、编辑和共享…...
Notepad++下载、使用
下载 https://notepad-plus-plus.org/downloads/ 安装 双击安装 选择安装路径 使用 在文件夹中搜索 文件类型可以根据需要设置 如 *.* 说明是所有文件类型; *.tar 说明是所有文件后缀是是tar的文件‘;...
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(一)
更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 仿钉钉的开源项目网上也不少,而且很多功能已经也比较完善了,但大部分都不是MIT协议…...
【知网检索征稿】第九届社会科学与经济发展国际学术会议 (ICSSED 2024)
第九届社会科学与经济发展国际学术会议 (ICSSED 2024) 2024 9th International Conference on Social Sciences and Economic Development 第九届社会科学与经济发展国际学术会议(ICSSED 2024)定于2024年3月22-24日在中国北京隆重举行。会议主要围绕社会科学与经济发展等研究…...
带你人工识别C#开源库BarcodeLib生成的一维码Code128
我们是做HIS系统开发的,前段时间发现某些处方的一维码出现无法识别的情况。看了一下一维码生成的逻辑,使用到了BarcodeLib库,经过反复确认,我们程序是没有问题的。后面不得不反编译看一下BarcodeLib生成一维码的逻辑。最后调整一维…...
软考 系统架构设计师系列知识点之系统架构评估(6)
接前一篇文章:软考 系统架构设计师系列知识点之系统架构评估(5) 所属章节: 第8章. 系统质量属性与架构评估 第2节. 系统架构评估 8.2.1 系统架构评估中的重要概念 相关试题 3. 正确识别风险点、非风险点、敏感点和权衡点是进行软…...
指挥通信车360度3d虚拟互动展示系统的优势及特点
通信车是装有通信装备,用于保障通信联络的专用车辆,用于偏僻/特殊环境下的机动通信。并且机动通信局装备通常分为应急综合通信车、网络管理车、程控电话车、自适应跳频电台车、数字扩频接力车、散射通信车、卫星通信车、光缆引接车、线缆收放车和通信电源…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
