简而言之,这一系列文章讲述了这么一个故事,那就是指导我们尽快地学习如何将想法转化为收入,这就是现代DevOps运动的精髓。

具体来说,在第1部分中,我们讨论了DevOps的文化和目标。

在第2部分中,我们讨论了如何使用Terraform为代码部署建设基础。当然了,Terraform也是代码!

因此,在这篇文章中,我们将讨论如何使所有这些代码无处不在。剧透一下,接下来讲的会是关于Git的!

另外我们还将讨论如何使用此Git业务来构建和打造你的个人形象(影响)。

作为参考,我们将以此开始我们的学习之旅:

那么当我们谈论“版本控制”时我们是想表达什么?

想象一下,你正在开发一些软件,变更非常频繁,你需要根据需求来添加或删除功能。在一些情况下,最新的一次变更将会产生阻断性变化。换句话来说就是无论你最后做了什么,它都打破了之前的工作。

怎么办?

如果你相对落后的话,你可能倾向于将第一个文件命名为:awesome_code.pl

在你开始做出改变之前你需要保留有用的东西,以防你需要回滚到这一阶段。

因此,你会将文件重命名为:awesome_code.12.25.2018.pl

这样做也OK,直到某一天你会在每天进行多次更改,所以你最终会得到这样的结果:awesome_code.GOOD.12.25.2018.pl

诸如此类。

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

毋庸置疑,这种做法很快就会产生混乱。

源代码控制

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

现在,这个想法已经不新奇了。最早提到这种东西甚至可以追溯到1972年!所以,我们应该将代码集中在一个地方的想法肯定是很古老的了。

然而,相对较新的一个想法就是所有生产环境的产物都必须进行版本控制

那是什么意思呢?

这意味着涉及生产环境的所有内容都必须存储在版本控制中,他们需要被跟踪追溯,审核以及更改历史记录。

此外,强制执行“所有产品必须版本化”的规定实际上迫使你以“自动化为先”的思维方式处理问题。

例如,当你决定在AWS的开发环境中单击操作复杂问题时,你可以停下来并思考,“所有这些都是点击操作可以成为版本化产物吗?”

当然,这个问题的答案是“不”。因此虽然可以通过UI进行快速原型查看是否有效,但这些原型必须是短暂运行的。从长远来看,请确保使用Terraform或其他基础设施即代码工具来执行所有操作。

那么如果一切都是可版本化的,那么我们如何存储和管理这些东西呢?

答案就是Git。

Git

直到Git出现之前,使用像SVN或其他的源代码控制系统会很笨重,用户不友好的,并且通常使用起来非常痛苦。

Git的不同之处在于它包含了分布式源代码控制的概念。

换句话说,当你正在处理更改时,你不会将其他人锁定在集中式源码仓库外。相反,你正在处理的只是代码库的一个完整的副本,最后将该副本合并到主存储库中。

请记住,以上对Git如何工作的讲述有些粗略,过度简化了。但就本文想要表达的内容来说,这已经足够了,即使知道Git的内部工作方式有价值,我们还需要一段时间才能掌握。

现在,只需要记住Git不像SVN那样古老。它是一个分布式源代码控制系统,可供多个团队安稳、安全地在共享代码库上工作。

这对我们意味着什么呢?

明确一下,我强烈支持这一说法,如果不知道Git是如何工作的,你就无法成为一名专业的DevOps(云)工程师。就这么简单。

好的,那么如何学习Git呢?

我必须说,在Google上搜索Git教程可能会得到非常全面和非常令人困惑的教程。

即便如此,其中某一些还是非常好的。

我比较推荐大家阅读,学习和练习的一系列教程是Atlassian的Git教程。

这个教程讲的非常好,特别是Git Workflows这一部分,它被世界各地的专业软件工程师所使用。

另一个非常好的教程是Learn Git Branching。

Atlassian教程只是让你阅读和学习(如果那是你喜欢的方式),而Learn Git Branching是一个互动教程。

无论如何,如果你不明白Git是如何工作的,你将无法在这个领域走得更远!

我不得不再次强调这一点,缺乏对Git特性分支如何工作的理解,或者未能解释Gitflow,是导致DevOps工程师中99%的人落选的原因。

这很关键,你可以在参加面试前不知道Terraform或是其他流行的基础设施即代码工具是什么,这没关系,你都可以在以后的工作中学习它。

但是不知道Git及其工作方式的话,表明你缺乏现代软件工程最佳实践的基础知识,DevOps思想或者其他。这向招聘经理传递了一种信号,那就是你的学习曲线会非常陡峭。你肯定不希望这样!

相反,如果你能自信地谈论关于Git的最佳实践的话,这将能让招聘经理觉得你首先具有软件工程的思维方式,这正是你想要表现的形象。

总结一下:你不需要成为世界上最重要的Git专家来获得很棒的DevOps角色,但你确实需要正确地使用Git一段时间以便能够自信地谈论关于它的一些最佳实践。

至少你应该精通以下几项:

  • 为一个Git仓库开一个分支
  • 创建分支
  • 从上游和下游合并更改
  • 创建PR

现在,一旦你学习完Git的教程之后,那么去开通一个GitHub帐户吧。

当然GitLab也可以,但是在写这篇文章时,GitHub是当前最流行的开源Git仓库,很多人都在使用它。

开通GitHub帐户后,开始在上面贡献代码!无论你学到什么需要你编写代码的东西,请确保定期将它提交给GitHub。

这不仅可以灌输良好的源代码控制规则,还可以帮助你打造自己的个人形象。

注意:当你在学习如何使用Git+GitHub时,请特别注意Pull Request(或PR,如果你想扮酷的话)。

品牌:向更多人展示你能力的一种方式。

有一个非常好的做法是建立GitHub仓库以此来展示你的能力。在当今很多雇主都会要求你要有一个(维护或者说是包装的很好的)Github账户。

因此,你应该努力拥有一个整洁、精心管理的GitHub账户,这样你就可以把它放在简历上,并以此为傲。

在后面的部分中,我们将讨论如何使用Hugo框架在GitHub上构建一个简单但酷炫的网站。现在你只需要将代码推上GitHub即可。

在之后,随着你的经验越来越丰富,你可能会考虑使用两个GitHub帐户。一个用于存储你编写的练习代码,另一个用于存储你想要向他人展示的代码。

总结一下:

  • 学习Git
  • 将你学到的所有知识提交贡献到GitHub
  • 展示截至目前为止在第一篇和第二篇中所学到的知识
  • 从中学习受益

最后,请记住这个领域的最新发展的一些工具,如GitOps。

GitOps将我们迄今为止讨论的所有想法提升到新的水准,所有一切操作都是通过Git,拉取请求和部署管道来完成。

请注意,GitOps和类似的方法是针对业务方面的。具体来说,我们使用Git等复杂的东西并不是因为它们很酷。

相反,我们使用Git来实现业务敏捷性,加速创新并更快地交付功能,这些最终都可以让我们的业务赚到更多钱!

现在就先讲这么多吧!更多内容可以关注我的博客~

转载来源:http://dockone.io/article/8372

原文链接:How To Become a DevOps Engineer In Six Months or Less, Part 3: Version(翻译:fengxsong)

如何在六个月或更短的时间内成为DevOps工程师(三):版本控制相关推荐

  1. [译] 如何在六个月或更短的时间内成为 DevOps 工程师,第一部分 :基础

    原文地址:How To Become a DevOps Engineer In Six Months or Less 原文作者:Igor Kantor 译文出自:掘金翻译计划 本文永久链接:githu ...

  2. 如何在六个月或更短的时间内成为DevOps工程师(一)

    [编者的话]本系列文章适用于想向DevOps模型转型的开发人员,或者是受过传统培训,想要了解整个关于DevOps的内容的运维人员,如果不属于以上两者,只是想在职业上寻找变化却不知从何开始的话,也请继续 ...

  3. 如何在六个月或更短的时间内成为DevOps工程师(二):配置

    这是该系列的第二篇,点击此处阅读第一篇. 在第一篇中,我认为DevOps工程的工作是构建全自动的数字流水线,将代码从开发人员的手里上线到生产. 现在,要有效地完成这项工作需要对基本原理有充分的了解,如 ...

  4. 比特币现金支持者为网络的未来六个月做准备

    比特币现金支持者为网络的未来六个月做准备,比特币现金(BCH)网络成立已有六个月,分散化的货币基础设施不断增长.在过去的一周里,围绕生物安全信息交换所及其生态系统出现了许多新消息. 比特币现金网六个月 ...

  5. 六个月学php,修学六个月心得体会

    修学六个月心得体会(转发分享) 各位书友们大家好!首先祝贺各位书友即将进入三级修学.我叫***,是去年11月进班学习的,至今已有半年多了.当初我是偶然的机会听一位朋友说,他去参加一个读书会,在读书会上 ...

  6. python 比赛成绩预测_大数据新研究:用六个月的跑步记录准确预测马拉松完赛成绩...

    随着疫情得到控制,各个城市的马拉松比赛又开始相继恢复.从线上马拉松终于可以再次到各个城市不同的赛道上奔跑,无疑是跑者的福音.积压了大半年的情绪,也激发了跑者更高的训练热情,带来了更多跑量的累积. 而准 ...

  7. Oracle 加快 Java 迭代速度,功能性版本只维护六个月

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 本文经授权转自开源中国 2018 年,Java 将发生重要改变.正如之前所报道的,它正在转向 ...

  8. 【GPT-4】立即停止训练比 GPT-4 更强的模型,至少六个月!马斯克、图灵奖得主等数千 AI 专家紧急呼吁

    毋庸置疑,ChatGPT.GPT-4 引领了 AI 新时代的到来,但这种让很多环节都可以实现自动化流程的工具也让人颇为恐慌. 据路透社报道,包括图灵奖得主 Yoshua Bengio.伯克利计算机科学 ...

  9. 数据库查询近一年来的数据(近三个月、近六个月同理)

    最近在做一个需求,前台需要展示一个折线图,如下: 所以产生了一个问题,如何按照折线图所需,从数据库查询近一年.近三个月.近六个月的数据呢? 对此,我整理了主流数据库mysql.oracle版本的查询方 ...

最新文章

  1. 某米浏览器黑名单文件破解
  2. 分享5个免费的在线 SQL 数据库环境,简直太方便了!
  3. [导入]web2.0中流行的设计元素:颜色
  4. OO第三单元JML总结
  5. oracle adf 自定义lov,Oracle ADF table列自定义过滤组件的方法
  6. LeetCode 716. 最大栈(双栈 / list+map)
  7. HttpServletRequest对象
  8. sql 可以多个分组吗_你知道吗?罗非鱼的品种多达100多个,不单是食用鱼也可以是观赏鱼...
  9. md360 android,MD360Player4Android 学习的简单使用
  10. plc原理及应用_一年只一次,百篇电工+PLC技术资料大合集,不看真的亏!
  11. Android答题计时的代码,Android答题倒计时
  12. WSL登录失败:未授权用户再次计算机上的请求登录类型
  13. 认识和选用常用的几种 GPRS 模块(转)
  14. java为什么有基本类型_你了解Java数据类型吗?
  15. Java练习题 类 先创建一个Point类,然后定义Trianglele类。在Trianglele类中定义三个Point的实体来表示一个三角形的三个点,然后定义两个方法求三角形的周长、面积。
  16. java视频马_【B0718】[java视频教程]某马2019年Java进阶课日志框架视频教程 it教程...
  17. 数据结构与算法A实验六图论---7-1 列出连通集(BFS DFS)
  18. Ubuntu 安装中文支持
  19. 西部数据 4TB蓝盘出现问题无法使用
  20. 万达VS银泰 谁是最后的赢家?

热门文章

  1. 常用JavaScript函数 71 -(自我总结)
  2. 妈咪,我找到了!15个实用的Linux find命令示例
  3. 深入linux中重定向及管道详解
  4. 谷歌翻译 google translation api
  5. 在网页中嵌入任意字体的解决方案 (insert any font)
  6. 博弈——威佐夫博弈(hdu1527,2177)
  7. 虚拟机安装Vmware-tools
  8. java向上转型不能调用子类独有的方法
  9. LeetCode 108. Convert Sorted Array to Binary Search Tree
  10. LeetCode 287. Find the Duplicate Number