博客

自动化、云和持续交付: 学习该学什么

罗伯特·海恩斯缩略图
罗伯特·海恩斯
2017 年 10 月 24 日发布

在云和自动化技能的自助餐中,您如何决定学习什么? 在之前的文章中,我们讨论了私有云带来的运营变化,以及运营团队在云时代将从事的新工作

对于我们大多数人来说,这意味着学习一些新的一般概念和一些特定的技术技能。 如果您很幸运(或者不幸,取决于细节),那么您的环境的自动化和编排工具套件就会通过命令或普遍采用的方式建立起来。 在这种情况下,通常只是找到你喜欢的学习方式,获得某种实验室或测试环境(这通常是公共云提供商及其“首次免费”信用的来源),然后开始学习。

但是,如果您从头开始,要么构建自己的自动化工具集,要么只是学习,因为您可以预见到它在不久的将来会出现,那该怎么办? 拥有选择是件好事,但在自动化领域肯定有很多选择。 将其分解成大范围的领域是集中精力学习你应该学习的内容的一种方法。

源代码版本控制系统。 掌握版本控制系统很重要,因为 A)当您构建成为按钮创建者所需的脚本和工具时,您将需要在某个地方保存它们 - 并管理版本控制 B)这是开发团队或 DevOps 组中的同事将使用的。 最明显的起点是Git/Github - 尽管当然还有很多其他可用的系统 - 其中一些甚至可能更适合您的组织。 但是 Git 是一套普遍且可移植的技能。

持续集成/持续交付(CI/CD)工具。 在许多情况下,更改和部署将由 Jenkins 这样的工具进行管理,它是 CI/CDapplication的一个很好的例子。 Jenkins 创建了部署管道,其中application代码可以在有序、自动化的工作流程中进行编译、测试和部署。 大多数 CI/CDapplications可以通过使用插件进行扩展,可用于管理各种活动,包括部署新的服务器实例或配置基础设施组件。

我们感兴趣的 CI/CD 工作流程可能利用的工具主要用于自动化基础设施,并且有相当广泛的工具可供选择,所有工具都有优点和缺点。 由于 F5 与许多提供商都是良好的合作伙伴,因此我不会推荐特定的一家,但有很多很棒的文章详细介绍了它们之间的差异。 我的建议是先阅读一下你认为最简单的内容。 这听起来可能非常主观且不具针对性的建议,但每个人的大脑都是不同的,并且在没有强有力的理由的情况下,值得找到一种可以快速掌握的实用程序。 Ansible、Puppet、Chef、Salt 或 Terraform 等工具都有详尽的文档,并且拥有大量用户。 

最后——或者首先,如果您选择相信本博客的最后一段,您可能需要掌握一门基本的脚本语言。 网络自动化领域毫无疑问的赢家是 Python,因为它拥有来自许多主要供应商或软件项目的 SDK,包括F5

以上就是对一些您可能需要花一些时间学习的关键自动化技术的简要介绍。 嗯,不止一点,我想说的是,假设你有一份日常工作,那么未来几个月还有几个月的学习。  最后 —— 我的建议是从列表中的最后一个开始 —— Python 并从那里“上游”工作。 如果您理解工具如何以编程方式与您的组件对话,那么您在向上移动堆栈时将有更好的时间解决复杂问题,并且当您到达那里时可能会更加欣赏源代码控制的乐趣。