我做云原生的那几年

背景介绍

在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基于角色的认证,用于验证设计安全,优化和现代化的应用程序以及在亚马逊云科技上实现流程自动化所需的高级技能和知识。
在这里插入图片描述
本片文章就写到这里,祝大家都能在云计算的海洋里遨游,利用技术转化为生产力,为业务赋能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/127182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 低版本getenv 无法获取变量值的替换方案

正常 7 的版本可以获取环境变量,getenv() 即可,但是到了低版本的,可能只能获取计算机的环境变量,在根目录的.env 文件中无法获取。 只能通过代码简单的转化获取 function env($variableName) {$dotenvFile file_get_contents(.env);$lines …

Qt 使用Quazip解压缩、压缩文件

1.环境搭建 Quazip,是在zlib基础上进行了简单封装的开源库,适用于多种平台,利用它可以很方便将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。 下载Quazip QuaZIP download | SourceForge.net 解压后&…

项目进度管理:确保项目按时完成

项目进度管理是项目管理中至关重要的一环。它涉及到规划、跟踪和控制项目的进度,以确保项目能够按时完成。 一、项目进度管理方法 制定项目计划 项目计划是项目进度管理的基础。它包括确定项目的目标、范围、资源需求和时间表等内容。在制定项目计划时&#xff0…

代码随想录训练营第52天 | 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

300.最长递增子序列 题目链接:https://leetcode.com/problems/longest-increasing-subsequence 解法: 1. dp[i]的定义 dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。 2. 状态转移方程 位置i的最长升序子序列等于j从0到i-1各个位置…

Ubuntu更换镜像源

Ubuntu更换镜像源 镜像源设置文件镜像源设置focal版本镜像源设置bionic版本镜像源设置 更新源问题 镜像源设置文件 备份镜像源设置文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑镜像源设置文件 sudo gedit /etc/apt/sources.list镜像源设置 Ubuntu有不…

STM32:使用蓝牙模块

一、蓝牙概要 蓝牙是一种常见的无线通信协议,通常用于短距离通信。蓝牙分为经典蓝牙和低功耗蓝牙(BLE)。经典蓝牙通常用于需要持续传输数据的设备,比如蓝牙耳机等。低功耗蓝牙通常用于只需要间歇性传输数据的设备,比如运动手环。 蓝牙…

python脚本监听域名证书过期时间,并将通知消息到钉钉

版本一: 执行脚本带上 --dingtalk-webhook和–domains后指定钉钉token和域名 python3 ssl_spirtime.py --dingtalk-webhook https://oapi.dingtalk.com/robot/send?access_tokenavd345324 --domains www.abc1.com www.abc2.com www.abc3.com脚本如下 #!/usr/bin…

实现基于 Azure DevOps 的数据库 CI/CD 最佳实践

数据库变更一直是整个应用发布过程中效率最低、流程最复杂、风险最高的环节,也是 DevOps 流程中最难以攻克的阵地。那我们是否能在具体的 CI/CD 流程中,像处理代码那样处理数据库变更呢? DORA 调研报告 DORA(DevOps Research &am…

.net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池

using System; using System.Collections.Concurrent; using System.Net.Http; using System.Threading; using System.Threading.Tasks;/// <summary> /// 表示一个支持重试、熔断和超时策略的 HttpClient 实例池。 /// </summary> public class HttpClientPool :…

ESXI 的 OVF 文件编辑 方法。

方法一&#xff1a; 用Wrar解压OVF 文件&#xff0c;得到4个文件&#xff1b; 用记事本编辑 ".mf" 或 ".ovf" 文件保存退出&#xff0c;后续全部导入虚拟机ESXI。 方法二&#xff1a;要打开 OVF 文件并在其中查找清单文件 &#xff0c; 你可以按照以下步骤…

Android studio进入手机调试状态

首先usb插入电脑手机打开开发者模式进入点击就会在你的页面显示了

SpringCloud(二) Eureka注册中心的使用

在SpringCloud(一)中,我们学会了使用RestTemplate进行远程调用,但是在调用user-service时候需要在order-service中发送http请求,请求中需要书写对应微服务的ip和端口号,十分不方便,如果此时有多个user-service实例的话,就不知道调用哪个了(除非每次调用的时候都对ip和端口号进行…

设计模式(单例模式、工厂模式及适配器模式、装饰器模式)

目录 0 、设计模式简介 一、单例模式 二、工厂模式 三、适配器模式 四、装饰器模式 0 、设计模式简介 设计模式可以分为以下三种: 创建型模式&#xff1a;用来描述 “如何创建对象”&#xff0c;它的主要特点是 “将对象的创建和使用分离”。包括单例、原型、工厂方法、…

数据仓库-拉链表

在数据仓库中制作拉链表&#xff0c;可以按照以下步骤进行&#xff1a; 确定需求&#xff1a;首先明确需要使用拉链表的场景和需求。例如&#xff0c;可能需要记录历史数据的变化&#xff0c;以便进行时间序列分析等。设计表结构&#xff1a;在数据仓库中&#xff0c;拉链表通…

AutoX-对象、图片资源懒加载+Storage持久化

AutoX-对象、图片资源懒加载Storage持久化 一、使用场景 需要懒加载的场景有很多&#xff0c;我最开始是需要懒加载功能是在编写一个游戏自动化脚本时&#xff0c;需要事先检测某个物品的坐标&#xff0c;才能进行后续的点击操作&#xff0c;该物品在页面中的位置是固定的&am…

[SpringCloud | Linux] CentOS7 部署 SpringCloud 微服务

目录 一、环境准备 1、工具准备 2、虚拟机环境 3、Docker 环境 二、项目准备 1、配置各个模块&#xff08;微服务&#xff09;的 Dockerfile 2、配置 docker-compose.yml 文件 3、Maven 打包 4、文件整合并传输 三、微服务部署 1、部署至 Docker 2、访问微服务 四…

折纸达珠峰高度(forwhile循环、闭包函数循环)

对折0.1mm厚度的纸张多少次&#xff0c;高度可达珠峰高度8848180mm。 (本笔记适合熟悉循环和列表的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅…

使用 Docker 部署高可用 MongoDB 分片集群

使用 Docker 部署 MongoDB 集群 Mongodb 集群搭建 mongodb 集群搭建的方式有三种&#xff1a; 主从备份&#xff08;Master - Slave&#xff09;模式&#xff0c;或者叫主从复制模式。副本集&#xff08;Replica Set&#xff09;模式。分片&#xff08;Sharding&#xff09;…

vue图书馆书目推荐数据分析与可视化-计算机毕业设计python-django-php

建立本图书馆书目推荐数据分析是为了通过系统对图书数据根据算法进行的分析好推荐&#xff0c;以方便用户对自己所需图书信息的查询&#xff0c;根据不同的算法机制推荐给不同用户不同的图书&#xff0c;用户便可以从系统中获得图书信息信息。 对用户相关数据进行分析&#xff…

C#,数值计算——积分方程与逆理论Quad_matrix的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Quad_matrix : UniVarRealMultiValueFun { private int n { get; set; } private double x { get; set; } public Quad_matrix(double[,] a) { this.n a…