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

栏目: 编程工具 · 发布时间: 5年前

内容简介:让我们快速回顾一下。简而言之,这一系列文章讲述了这么一个故事,那就是指导我们尽快地学习如何将想法转化为收入,这就是现代DevOps运动的精髓。具体来说,在第1部分中,我们讨论了DevOps的文化和目标。

快速回顾

让我们快速回顾一下。

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

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

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

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

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

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

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

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

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

怎么办?

如果你相对落后的话,你可能倾向于将第一个文件命名为 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的内部工作方式有价值,我们还需要一段时间才能掌握。

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

现在,只需要记住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,如果你想扮酷的话)。

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

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

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

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

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

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

总结一下:

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

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

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

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

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

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

(翻译:fengxsong)


以上所述就是小编给大家介绍的《如何在六个月或更短的时间内成为DevOps工程师(三):版本控制》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言从入门到精通

C语言从入门到精通

王娣//韩旭 / 清华大学 / 2010-7 / 49.80元

《C语言从入门到精通》从初学者的角度出发,以通俗易懂的语言,丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识。全书共分17章,包括C语言概述,算法,数据类型,运算符与表达式,常用的数据输入、输出函数,选择结构程序设计,循环控制,数组,函数,指针,结构体和共用体,位运算,预处理,文件,存储管理,网络套接字编程和学生成绩管理系统等。所有知识都结合具体实例进行介绍,涉及的程序代码给出......一起来看看 《C语言从入门到精通》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码