程序员社区

如何在6个月或更短时间内成为DevOps工程师,第3部分:版本

如何在6个月或更短时间内成为DevOps工程师,第3部分:版本插图

【译文】原文地址

快速回顾

简而言之,这一系列文章讲述了一个故事。这个故事就是学习如何以最快的速度把一个想法转化为金钱——这是当今DevOps潮流的精髓。

特别是,在第1部分中,我们讨论了DevOps文化和目标。
在第2部分中,我们讨论了如何使用Terraform工具来提供代码运行的计算资源。当然,Terraform也是代码!
因此,在这篇文章中,我们将讨论如何让所有这些代码得到很好的管理。剧透下,这都是关于git技术!

附言:我们还将讨论如何利用git业务来建立和推广自己的个人品牌。
作为参考,我们的计划如下:

如何在6个月或更短时间内成为DevOps工程师,第3部分:版本插图1
DevOps旅程

Git有必要吗?

当我们谈到“版本控制”时,我们指的是什么?
假设您正在开发某个软件。您不断地对它进行更改,根据需要添加或删除功能。通常,最新的改变是“突破性的”改变。换句话说,不管你最后做了什么,都破坏了你之前的工作。
现在该怎么办?
好,如果你是一个传统的人,你可能会这样去命名文件:

awesome_code.pl

然后你开始修改文件,你需要保留有用的东西,以防你不得不再度使用它。因此你重命名文件为:

awesome_code.12.25.2018.pl

这很好。直到有一天你每天做出不止一个修改,所以你最终会得到这样的结果:

awesome_code.GOOD.12.25.2018.pl

当然,在一个专业的环境中,有多个团队在同一个代码库上协作,这进一步打破了这个模型。 不用说,这中方式很快会混乱。

代码控制

源代码控制:一种将文件保存在集中位置的方法,在这里多个团队可以在一个公共代码库上一起工作。
这个想法并不新鲜。我所能找到的关于这类事情的最早记载要追溯到1972年!因此,我们应该将代码集中在一个地方的想法肯定是很早就有了。

然而,相对较新的想法是,所有产生的变化都必须进行版本控制。

这个是什么意思呢?

这意味着与生产环境有关的所有东西都必须存储在版本控制中,接受跟踪、审查和变更历史记录。

此外,强制执行“所有的产品都必须版本化”的原则真的会迫使您用“自动化优先”的思维来处理问题。

例如,当您决定通过鼠标点击来解决Dev AWS环境中的复杂问题时,您可以暂停并思考,“所有这些点击都能版本化的东西吗?”

当然,答案是否定的。所以,虽然可以通过UI快速创建原型来判断某些内容是否有效,但这些努力是短暂的。从长远来看,请确保您使用Terraform或其他基础设施即代码工具来完成所有工作。

Ok,那么如果一切都是版本控制的产物,我们如何存储和管理这些东西呢?

答案是Git。

Git

在git出现之前,使用像SVN或其他的源代码控制系统都很笨拙,对用户不友好,而且通常是一个非常痛苦的体验。git所做的不同之处在于它采用了分布式源代码控制的概念。
换句话说,当您修改代码时,您没有将其他人锁定在集中的源代码存储库之外。相反,您正在处理代码库的一个完整副本。然后这个副本会合并到主库中。

请记住,上面的内容是对git工作方式的一个粗略的概括。但是对于本文的目的来说,这已经足够了,当然了解git的内部工作原理是很有价值的,并且需要一段时间来掌握它。

如何在6个月或更短时间内成为DevOps工程师,第3部分:版本插图2

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

必须这样吗?

确切的说,我强烈认为如果你不知道git是如何工作的,你就不能成为一个专业的DevOps(云)工程师。就这么简单。

Ok,那么该如何学习git的呢?

我必须说,谷歌上的“git教程”有一些是全面而令人困惑的。然而,也有一些是非常非常好的。我希望每个人都能够阅读、学习和实践Atlassian的Git教程。事实上,它们都很好,但有一部分是全世界专业软件工程师所使用的:Git工作流。另一个非常好的教程是学习Git分支。

Atlassian教程注重阅读和学习,而Learn Git branches则是一种交互式教程(如果这是你需要的)。无论如何,如果您不了解git的工作原理,那么您在这个行业中就走不了多远! 我怎么强调都不为过。一次又一次,缺乏对git特性分支如何工作的理解,或者未能解释Gitflow,是导致99%有抱负的DevOps工程师候失败的原因。
这是一个关键点。你可以在参加面试时不知道Terraform或任何最新流行的基础设施即代码工具,这没关系——你可以在工作中学习。

但是不知道git及其工作原理,说明你缺乏现代软件工程最佳实践的基础知识,不管是不是DevOps。这向招聘经理发出了这样的信号:你的学习曲线将会非常陡峭。你肯定不想发出这样的信号的!

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

总结一下:你不需要成为世界上最顶尖的git专家来获得这个令人敬畏的DevOps角色,但是你确实需要在git中生活和呼吸一段时间,以便能够自信地谈论正在发生的事情。

至少,你应该精通如下操作:
1、Fork一个代码库
2、创建分支
3、合并变更到上游
4、创建Pull Request

下一步呢?

现在,一旦你完成了git教程入门,获得一个GitHub帐户。

注意:GitLab也是可以的,但是在撰写本文时,GitHub是最流行的开源git库,所以你肯定和其他人一样。

一旦你有了你的GitHub帐户,开始贡献你的代码!无论你学到什么需要你写代码的东西,确保你定期把它提交给GitHub。

这不仅灌输了良好的源代码控制习惯,还帮助你建立自己的个人品牌。

注意:当你在学习如何使用git+GitHub时,特别注意Pull Requests(或者PRs,如果你想很酷的话)。

品牌

说到酷,品牌是一种向广阔的世界展示你的能力的方式。一种方法(目前是更好的方法之一)是建立一个稳固的GitHub作为你品牌代理。如今,几乎所有的企业都需要你具备的。

因此,你应该努力拥有一个整洁的、精心策划的GitHub账户——你可以把它放在你的简历上,并为此感到自豪。

在后面的章节中,我们将讨论如何使用Hugo框架在GitHub上构建一个简单但看起来很酷的网站。现在,只要把代码放到GitHub中就足够了。

以后,当你越来越有经验时,你可能会考虑拥有两个GitHub账户。一个用于存储您编写的个人实践代码,另一个用于存储您想要展示给其他人的代码。

总结

  • 学习git
  • 贡献你所学的一切到Github
  • 效益
    结束语:
    最后,请记住这方面的最新发展,如GitOps。GitOps将我们到目前为止讨论的所有想法都提升到了新的层次——所有事情都是通过git、pull请求和部署管道完成的。

请注意,GitOps和类似的方法反映的是事物的业务方面。具体来说,我们不需因为酷才使用像git这样复杂的东西。

相反,我们使用git来提高业务灵活性,加快创新速度,更快地交付功能——这些东西最终会让我们的业务赚到更多的钱!

本文到此为止!

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 如何在6个月或更短时间内成为DevOps工程师,第3部分:版本

一个分享Java & Python知识的社区