- 原文地址:How To Become a DevOps Engineer In Six Months or Less, Part 3: Version
- 原文做者:Igor Kantor
- 译文出自:掘金翻译计划
- 本文永久连接:github.com/xitu/gold-m…
- 译者:jianboy
- 校对者:lihanxiang
注意:这是《如何如何在六个月或更短的时间内成为 DevOps 工程师》系列的第三部分,第一部分请点击这里。第二部分点击这里。前端
让咱们快速回顾一下上期内容。android
简而言之,这一系列文章讲述了一个故事。ios
而这个故事正在学习如何将想法转化为金钱,快速 —— 现代化 DevOps 开发的精髓。git
具体而言,在第一部分咱们谈到了 DevOps 的文化和目标。github
在第二部分,咱们讨论了如何使用 Terraform 为将来的代码部署奠基基础。固然,Terraform 也是代码!面试
所以,在这篇文章中,咱们将讨论如何防止全部这些代码彻底失控。剧透,这都是关于 git!后端
额外奖励:咱们还将讨论如何使用此 git business 来构建和推广您本身的我的品牌。安全
做为参考,咱们从这里开始:bash
DevOps 之旅架构
那么,当咱们谈论“版本控制”时,咱们在说什么?
想象一下,你正在开发一些软件。您正在不断更改它,根据须要添加或删除功能。 一般状况下,最新的变化将是一次“破坏性”的变化。 换句话说,不管你最后作了什么,都打乱以前的工做。
怎么办?
好。若是您在之前的学校,您可能倾向于将您的第一个文件命名为:
awesome_code.pl
复制代码
而后你开始对文件作一些修改,你须要保留有用的东西,万一你必须恢复它。
所以,您将文件重命名为:
awesome_code.12.25.2018.pl
复制代码
这很好。直到有一天你天天进行屡次更改,因此你最终会获得这样的结果:
awesome_code.GOOD.12.25.2018.pl
复制代码
等等。
固然,在专业环境中,您有多个团队在相同的代码库上进行协做,这进一步打破这种文档备份方案。
毋庸置疑,上面这种文件重命名来版本管理确定行不通。
源代码控制:一种将文件保存在集中位置的方法,其中多个团队能够在公共代码库上一块儿工做。
如今,这个想法并不新鲜。我能找到的最先说起的文章能够追溯到 1972 年!所以,咱们应该将代码集中在一个地方的想法确定是老的。
然而,相对较新的是全部开发过程必须被版本化的想法。
什么意思呢?
这就是说涉及生产环境的全部内容都必须存储在版本控制中,并受到跟踪、审核和记录历史更改。
此外,强制执行“全部开发过程必须版本化”的原则实际上迫使您以“自动化第一”的思惟方式处理问题。
例如,当您决定在 Dev AWS 环境中只经过点击解决复杂问题时,您能够暂停并思考这么一个问题:“全部点击操做都受版本控制了吗?”
固然,答案是“不”。所以,虽然能够经过 UI 进行快速原型查看是否有效,但这些努力必须是短暂的。从长远来看,请确保您使用 Terraform 或其余架构即代码工具来执行全部操做都受版本控制。
好的,因此若是一切都受版本控制,那么咱们如何存储和管理这些东西呢?
答案是 git。
在 git 出现以前,使用像 SVN 或其余的源代码控制系统是笨重的,不是用户友好的,而且一般是很是痛苦的经历。
git 的不一样之处在于它包含分布式源代码控制的概念。
换句话说,当您正在处理更改时,您不会将其余人锁定在集中式源代码存储库以外。相反,您正在编写代码库的完整副本。而后该副本会 merged 进入 master 存储库。
请记住,以上是对 git 如何工做的粗略过分简化。但就本文而言,这已经足够了,即便知道 git 的内部工做方式既有价值又须要一段时间才能掌握。
如今,请记住,git 不是像旧版的 SVN 同样。它是一个分布式源代码控制系统,多个团队能够安全,可靠地在共享代码库上工做。
这对咱们意味着什么?
具体来讲,若是没有使用 git 版本管理而自称做专业的 DevOps(云)工程师,我严重怀疑你的能力。就这么简单。
好的,那么如何学习 git 呢?
我必须说,Google 搜索 “git 教程”的区别在于它提供的教程很是全面但很是使人困惑。
可是,有一些很是很是好。
我推荐你们阅读,学习和练习的一系列教程是 Atlassian’s Git Tutorials。
事实上,它们都很是好,但特别是世界各地的专业软件工程师使用的部分:Git Workflows。
我再怎么强调也不为过。一次又一次地,缺少理解 git 分支是如何工做的,或者没有解释 Gitflow 是什么让 99% 有抱负的 DevOps 工程师落选的缘由。
这是关键。你能够参加面试,即便不知道 Terraform 或者最新的架构及代码是什么,不要紧 — 你能够在工做中学习它。
不知道 git 及其工做方式代表你缺少现代软件工程最佳实践的基础知识,DevOps 与否。这向招聘经理发出信号,代表你的学习曲线很是陡峭。你不想发出信号!
相反,您自信地谈论 git 最佳实践的能力告诉招聘经理您首先要具有软件工程思惟模式 —— 这正是您想要应用到工做中的思惟。
总而言之,你不须要成为世界上最重要的 git 专家,来得到使人敬畏的 DevOps 角色,但你确实须要在一段时间内生活和呼吸 git,才能自信地谈论正在发生的事情。
至少,你应该精通以下:
如今,一旦您完成介绍性的 git 教程,请获取 GitHub 账户。
注意:GitLab 也能够,但在撰写本文时,GitHub 是最流行的开源 git 存储库,所以您确定但愿和其余人分享。
得到 GitHub 账户后,开始为其提供代码!不管你学到什么,都须要你编写代码,请确保按期将它提交给 GitHub。
这不只能够灌输良好的源代码控制思想,还能够帮助您创建本身的我的品牌。
注意:当你学习如何使用 git + GitHub 时,要特别注意 Pull Requests(也叫 PRs,若是你想变酷)。
Pull Request, by Vidar Nordli-Mathisen
品牌:向更广阔的世界展现您的能力的一种方式。
这种方式(目前,更好的方式之一!)是创建一个 GitHub 帐户,做为您的品牌表明。这些天几乎全部的面试官都会要求求职者有 GitHub 帐户。
所以,您应该努力拥有一个整洁、精心策划的 GitHub 账户 — 您能够将其放在简历上并为此感到自豪。
在后面的部分中,咱们将讨论如何使用 Hugo 框架在 GitHub 上构建一个简单但酷炫的网站。如今,只需将代码放入 GitHub 便可。
稍后,随着您的经验愈来愈丰富,您可能会考虑使用两个 GitHub 账户。一个用于存储您编写的练习代码的我的资料,另外一个用于存储您想要向其余人展现的代码。
总结一下:
最后,请记住这个领域的最新发展,例如 GitOps。
GitOps 将咱们迄今为止讨论的全部想法提高到新的水平 — 一切都经过 git、pull requests 和管道的部署。
请注意,GitOps 和相似的工具应用于商业方面的事情。具体来讲,咱们不是在使用像 git 之类的复杂东西,由于它们很酷。
相反,咱们使用 git 来实现业务敏捷性,加速创新并更快地交付功能 —— 这些均可以让咱们的业务最终赚到更多钱!
目前为止就这样了!
若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。