我做云原生的那几年
背景介绍
在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虚拟互动展示系统的优势及特点
通信车是装有通信装备,用于保障通信联络的专用车辆,用于偏僻/特殊环境下的机动通信。并且机动通信局装备通常分为应急综合通信车、网络管理车、程控电话车、自适应跳频电台车、数字扩频接力车、散射通信车、卫星通信车、光缆引接车、线缆收放车和通信电源…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
