DevOps 工程师成长日记系列三:版本

DevOps 工程师成长日记系列五:部署 原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-5-deploy-83e790545c23 原文作者:Igor Kantor 翻译君:CODING 戴维奥普斯 让我们简要回顾下我们的 DevOps 之旅: 在第一篇,我们介绍了 DevOps 文化以及相关的基... 阅读详情

原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-3-version-76034885a7ab
原文作者:Igor Kantor
翻译君:CODING 戴维奥普斯

图片
“Close-up of a backlit laptop keyboard” by Markus Petritz on Unsplash

快速回顾

让我们快速回顾一下前文:
简而言之,这个系列文章讲述的是现代 DevOps 的精髓——如何将一个想法尽可能快速地转化上线实现盈利。

具体来说,在第一部分的文章中,我们了解了 DevOps 文化和目标;在第二部分的文章中,我们讲述了如何使用 Terraform 为之后的代码部署奠定基础。因此在本文中,我们将会讨论如何防止这些代码在运行中失去控制(we will discuss how to keep all these pieces of code from completely going haywire all over the place. ),同时还将讨论如何使用 git 来构建和推广你自己的个人品牌。

如图所示,我们现在在 DevOps 旅程的这个位置:

图片
DevOps Journey

为什么要进行版本控制

当我们谈论"版本控制"时我们在谈论什么?

假设你正在开发一款软件,并且在不断的根据需求修改代码,添加或移除某些功能,那么最近的一次更新通常会是一次“突破性的”更新。换言之,不管你上次更新了什么内容,都打破了之前所做的工作。

现在要怎么做?

如果你真的比较老派,那么你可能更倾向于这样命名你的第一个文件:

awesome_code.pl

接着你开始做一些修改,同时需要保留有效的内容以防可能需要回退。因此,您将文件重命名为:

awesome_code.12.25.2018.pl

这样看起来运行得不错,直到你开始在一天内进行多次更改,最终可能会得到这样的文件名:

awesome_code.GOOD.12.25.2018.pl

当然,在专业的开发环境中,你有多个团队在同一代码库上协作,这将进一步打破这个模型。

毋庸置疑,这条疯狂的火车将快速脱轨。

源代码控制

源代码控制:一种将文件保存在集中位置的方法,多个团队可以在一个公共代码库上协同工作。

这并不是个新方法,我能找到的最早提到源代码控制的内容可以追溯到 1972 年,因此将代码集中在一个地方管理的想法肯定是陈旧的。相对较新的方法是所有构建产物都必须版本化,这意味着所有与生产环境相关的内容都必须进行版本控制,能被追踪、审查并且保留历史记录。

此外,强制“所有产品必须版本化”实际上也是迫使你以“自动化优先”的思维方式处理问题。例如,当你决定在你的 Dev AWS 开发环境中通过单击解决复杂问题时,你可以暂停并思考一下,“所有这些都是能以单击实现版本化构建吗?”

答案当然是否定的。虽然可以通过 UI 的快速原型查看是否有效,但这些尝试一定不是长久之计。从长远来看,请确保你使用 Terraform 或其他基础架构作为代码工具来执行所有操作。

所以如果一切都需要版本化构建,那么我们该如何存储和管理这些内容呢?
答案是 git。

Git

在 git 出现前,使用像 SVN 或其他的源代码控制系统通常是笨重的、用户不友好的、非常痛苦的经历。Git 的不同之处在于它包含了分布式源代码控制的概念。换句话说,当你正在处理更改时,你不会将其他人锁定在集中式源代码存储库之外。相反,你正在处理的是代码库的完整副本,然后该副本将会被合并到主存储库中。

请记住,以上是对 git 的工作原理的过度简化,即使知道 git 的内部工作方式是有价值的,并且需要一段时间才能掌握,但就本文而言,这已经足够了。

现在请记住,Git 不像旧的 SVN,它是一个分布式源代码控制系统,多个团队可以在一个共享的代码库上安全地工作。

图片

为什么要这么麻烦?

具体来说,我强烈主张如果不知道 git 的工作原理,你就不能成为一位专业的 DevOps(云)工程师,就这么简单。那么一个人如何学习 git 呢?

我必须说,谷歌搜索“git 教程”有一个拿不准的地方在于可能会同时出现极其全面和极其混乱的教程,但是有一些内容确实好。

我敦促大家阅读、学习和练习的一系列教程是 Atlassian 的 Git 教程。
事实上这些内容都非常好,但有一部分是全世界专业软件工程师都在使用的:Git Workflows。
另一个非常好的教程是 Learn Git Branching。
Atlassian 教程只是阅读和学习,而 Learn Git Branching 是一个互动教程。

无论如何,如果你不明白 git 的工作原理,你就不会在这个行业中走得太远!我不能一次又一次的强调这点:对 git 功能分支如何工作缺乏了解,或者无法解释 Gitflow,这是 99% 有抱负的 DevOps 工程师候选人的失败之处。

这里有一个关键点在于你可以参加面试,不知道 Terraform 或任何最新的流行的基础设施作为代码工具,没关系——你可以在工作中学习它。

但是,不知道 git 及其工作方式是一个表明你缺乏现代软件工程最佳实践的基础知识的信号,无论是否与 DevOps 相关,这向招聘经理发出了这样的信号:你的学习曲线将会非常陡峭。我相信你不想这样。

相反,你自信地谈论 git 最佳实践的能力将告诉招聘经理,你已经具备了一种软件工程的思维方式——这正是你想要展现的形象。

总结一下:你不需要成为世界上最厉害的 git 专家才能成为令人敬畏的 DevOps 工程师,但是你需要深入学习 git 一段时间直到真正掌握,才能自信地谈论相关话题。至少,你应该精通如何:

  1. Fork 代码仓库
  2. 创建分支
  3. 合并来自上游或者后端的更改
  4. 创建 Pull 请求

接下来要怎么做

现在,一旦你看完了介绍性的 git 教程,请为自己准备一个 GitHub 帐户。
(译者注:如果你在国内,希望使用高效便捷的开发工具以及中文页面,也可以使用 CODING)

一旦拥有你的 Github 帐户后,就开始向它贡献你的代码!无论你学到什么,都需要你编写代码,请确保定期将其提交到 Github。这不仅灌输了良好的源代码控制规则,还可以帮助你建立起自己的个人品牌。

注意:当你在学习如何使用 git 和 GitHub 时,请特别注意 Pull 请求(或 PR,如果你想要酷一点)。

图片
Pull Request, by Vidar Nordli-Mathisen

个人品牌建设

说到酷——一个品牌是向更广阔的世界展示你的能力的一种方式。

目前一种更好的方法是建立一个充实的 GitHub 主页作为你的个人品牌代理形象,现在几乎所有的雇主都会有这样的要求。因此你应该努力拥有一个整洁、精心策划的 GitHub 帐户——你可以将其放在简历上并引以为豪。

在后面的部分中,我们将讨论如何使用 Hugo 框架在 GitHub 上构建一个简单但看起来酷炫的网站。现在,只需要将代码放入 GitHub 就足够了。
之后随着你的经验越来越丰富,你可能会考虑使用两个 GitHub 帐户:一个用于存储你编写的练习代码的资料,另一个用于存储你希望向其他人展示的代码。

做一个总结:

  1. 学习 git
  2. 在 Github 上贡献你所学的一切
  3. 利用第 1 点和第 2 点展示到目前为止你学到的所有东西
  4. 然后从中获益!

最后一点想法

最后,请记住这个领域的最新发展,例如 GitOps。GitOps 将我们迄今为止讨论的所有想法都提升到了新的层次——通过 git、pull 请求和部署流水线完成所有工作。

请注意,GitOps 和类似它的方法都是与业务方面的内容息息相关的。具体来说,我们使用像 git 这样的复杂工具并不是因为它们很酷,相反,我们使用 git 来实现业务敏捷性、加速创新并更快地交付功能——这些都是为了让我们的业务能获得更高的收益!

译后记

我们相信,在企业数字化转型落地过程中 ,DevOps 是企业软件开发模式革新的重要支柱。
CODING 作为国内领先的 DevOps 解决方案提供商,涵盖了软件开发从构想到交付的一切所需,支持 Git/SVN 代码托管,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度,帮助企业轻松将创意转化为创收。
CODING 也会持续关注并分享软件研发领域最新理念与技术,与 DevOps 工程师一起成长。

提示工程架构师必学:DevOps在提示版本管理中的实战经验 随着大语言模型(LLM)在各行各业的普及落地,提示词(Prompt)已从“简单的文本输入”升级为“AI系统最核心资产之一”。然而,当提示词数量从1个变成100个,版本从V1迭代到V10,团队从1人扩展到多人协作时,“提示词混乱症”便会爆发——找不到历史好用的版本、新改的提示突然“失灵却查不出原因”、不同团队用的提示五花八门……这时候, 阅读详情

相关推荐

测试开发工程师成长日记001 - 敏捷测试、CI/CD/CT、DecOps的一些介绍

小张的测开学习记录

zy01051314的博客 6298

版本构建工程师_工程师建议:如何构建用户需要且快速的产品

版本构建工程师UnsplashUnsplash Working on a startup is always hard. Founders have to master multitasking skills and control everything. Very often, in such a situation, they can't correctly assess the techn...

cullen2012的博客 544

PADS VX2.7学习记录05-PADS Layout设计文件Gerber等输出整理

在“PDF Document”栏中,依次选中除REF-TOP和REF-BOT之外的文件,单击图标,将其余PDF Document文件进行删除,如图所示。然后单击【生成PDF】按钮,即可创建一份PDF格式的位号图。

tianpu2320959696的博客 1024

DevOps 工程师成长日记系列四:打包

原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-4-package-47677ca2f058 原文作者:Igor Kantor 翻译君:CODING 戴维奥普斯 前情提要 在这个系列的第一篇文章中,我们详细地介绍了 DevOps 相关的文化和基础...

weixin_30786657的博客 262

C#+Winform+OpenCvSharp实战:5步搞定工业视觉检测框架(附源码下载)

本文详细介绍了如何使用C#、Winform和OpenCvSharp构建工业视觉检测框架,通过5个关键步骤实现高效、稳定的视觉检测系统。内容涵盖环境配置、相机集成、核心算法实现、系统集成与通信,以及部署优化,帮助开发者快速掌握工业视觉检测技术,提升检测精度和效率。附完整源码下载,助力工业数字化转型。

pz89012345的博客 550

STM32CubeMX定时器配置

因为只有当 CH2 处于 输入模式 时,硬件才能把这根脚送进滤波器(TI2FP2通道之前要滤波),再生成 TI2FP2 这条支路供 Slave-Mode 控制器使用,也就是说TI2FP2 并不是“独立存在”的,但在CubeMX配置时:如下图,我们只设置Slave Mode和TI1FP1,之后,CH1就自动配置为 Input Capture 了,下图发现,Channel1只能 Input Capture 或者Disable。哪来的主定时器和从定时器呢?把待测 PWM 的高电平当“门”,连接到ETR。

2402_89015641的博客 3184

为什么你总get不到增长玩法背后的逻辑?

“好羡慕他能有那么多技能。”“工作这么久,还是只能给别人打工。”“为什么同事总get不到增长玩法背后的逻辑”“……”下面这些账号助你升职加薪涨知识DoMarketing-营销智库ID:...

增长黑盒Growthbox 624

六自由度机械臂运动学分析及其轨迹规划

六自由度机械臂轨迹规划 通过对比三次多项式插值法与五次多项式插值法的效果,选取后者对机械臂进行轨迹规划,将运动学解导入Matlab Robotics Toolbox仿真,得到各关节角度、速度和加速度与时间关系曲线。 三次多项式插值法 三次多项式有4个待定系数,可同时对起始点和目标点的角度和角速度给出约束条件。 数学公式 MATLAB代码 五次多项式插值法 五次多项式有6个待定系数,可同时对起始点和...

两条眉毛 6万+

DevOps 工程师成长日记系列一:必备知识与技能组合

原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-366097df7737 原文作者:Igor Kantor 翻译君:CODING 戴维奥普斯 写在前面 据 StackOverflow 2019 开发者调研结果公布:DevOps 专家的薪水仅次于研发管理者以及 SRE,位...

CODING 博客 916

TL494充电器原理与维修 (转)

TL494充电器原理与维修 电动自行车充电器多采用开关 电源,型号虽多,但电路结构大同小异,主要区别在于所选的脉宽调制(PWM)芯片不同如(UC3845、UC3842、SG3524、TL494)。现以佳腾牌 充电器为例,介绍其原理和故障检修方法。 一、电路原理 根据实物测绘的佳腾牌充电器电路原理如图1所示。整机可分为PWM产生和推动电路、功 率开关变换电路、...

weixin_30500663的博客 1814

全面解析智能座舱芯片参数:高通 (SA8295)vs 联发科,真实案例一行行讲给你听!

使用场景推荐芯片中低端车型 + 1屏导航语音SA8155P / MT8628(性价比高)中控+副驾+仪表+全景影像SA8255P / MT8678(性能强)高阶自动驾驶+域控融合SA8295P(顶级安全+算力)

weixin_43199439的博客 2075

DevOps 工程师成长日记系列二:配置

原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-2-configure-a2dfc11f6f7d 原文作者:Igor Kantor 翻译君:CODING 戴维奥普斯 前情提要 在第一篇文章中,我对 DevOps 工程师的工作定义是搭建一个数字化的全自动流水线...

CODING 博客 538

【异常】Claude Code CLI工具 模型加载异常 /init报错排查与完整解决方案 There‘s an issue with the selected model (glm-5). It

此类跨厂商模型配置报错,核心诱因是API生态的兼容性不匹配。优先使用工具原生支持的模型体系,可快速解决90%以上的同类报错;若需跨厂商使用目标模型,需完成API端点、鉴权密钥、模型ID的全链路适配,确保全流程配置合规,即可完成异常修复。

奶爸的编程之路,也就一周冷个三天 3701

DevOps

最近老是碰到这个名词,所以想了解一下这个到底是撒玩意? DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。 它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。 它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服

u010757530的博客 267

MATLAB基础应用精讲-【数模应用】PPO算法(附python代码实现)(二)

表示为状态转移概率和动作选择概率的乘积,因为状态和动作决定轨迹。

qq_36130719的博客 413

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【直播预告】企业DevOps工程实践@徐磊第1节

DevOps实践需要结合具体的工程实践才能在软件研发团队中落地,从代码分支策略到流水线,从制品晋级到质量门禁,从容器化到灰度发布。每一种工程实践都为团队提供了提升效能的可能性。但是是否存在一套团队应该照搬套用的所谓“最佳实践”一直都是一个有争议的话题。本次话题将从具体案例出发,分享有关“最佳实践”的思考。...

m0_69584846的博客 279

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【直播预告】企业DevOps工程实践@徐磊第2节

今晚20:30直播,英捷创软创始人&首席架构师&CEO 徐磊老师深度课程第2节,《企业DevOps工程实践》场景篇:基于HE2E的DevOps实践演示,立即报名,预约今晚直播

m0_69584846的博客 209

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: DevOps 工程师成长日记系列二:配置
下一篇: 测试工程师如何使用 CODING 进行测试管理
腾云 CODING
博客等级 码龄8年 203粉丝 260原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值