编者按:DevOps是最近开发界很火的一个领域。但是要想成为DevOps工程师必须18般武艺样样精通。幸好GitHub上面有Kamranahmedse给出了成为一名DevOps工程师的路线图,它说明了DevOps工程师的角色是什么,需要学习哪些工具和技术。javinpaul则在Medium上的《 The 2018 DevOps RoadMap 》一文中补充了相关的在线课程有哪些。把这两份东西结合起来成为DevOps就有路可循了。
当下DevOps的确很热,我的大多数朋友、同事以及我认识的资深开发者都在致力于成为一名DevOps工程师,并且在他们的组织中以DevOps拥护者的身份出现。
尽管我真心承认DevOps的好处,因为这直接与软件开发和部署的改进关联,但从我有限的经验来看这可不是件简单的工作。在这过程中选择合适的路径非常困难,因为工具和实践实在是太多了。
作为一名Java博主,我的很多读者都问我类似这样的问题:如何成为一名DevOps工程师,我应该学习哪些工具?应该遵循哪些实践?学习Maven和Jenkins是不是成为DevOps开发者的必须?我该不该学习Chef、Puppet或者Ansible等。
我已经在自己有限的经验范围内尽力去回答那些问题了,但是仍然无法以一种简单的、可重用的方式去把这些记下来。不过,别担心。
今天我打算跟大家分享一个出色的资源来帮助各位成为一名DevOps工程师,这个东西就是2018 DevOps路线图。
昨天我在网上随便乱逛然后在GitHub上看到了Kamranahmedse的这个出色的 主页 ,上面列举了成为前端开发者、后端开发者、全栈web开发者以及最后但绝不是最不重要的,DevOps工程师的路线图。
无论从哪种意义来说这份路线图都非常出色,因为它不仅聚焦了DevOps工程师的角色是什么,同时还告诉了哪些工具和技术你需要学习才能掌握某个领域。
此外,路线图的颜色也非常漂亮(你难道不喜欢黄色、奶油色外加蓝线吗?),可以打印出来挂在墙上随时参考。
虽说这幅路线图很好地告诉了你该学什么,但是它并没有告诉你怎么学以及去哪里学。为了完善这份路线图,我在此提供一些有用的在线课程,包括免费和付费的,以便你可以学习和改进你想要的工具或者领域。
提供给开发者的2018 DevOps路线图
先来看看我提到的那份2018 DevOps 路线图是什么样的:
Kamranahmedse制图(https://github.com/kamranahmedse/developer-roadmap)
现在我们先来一步步地过一遍这张路线图,看看如何去学习那些成为DevOps大牛所需的基本技能。
显然我假设你们这帮家伙绝对了解Java、Python或者JavaScript这三门主要语言之一了。
如果你还没有,别担心,看看下面的课程就能学习你选择的语言了,尽管我强烈建议你至少学习者三门主流通用编程语言之一。
如果你想学Java,那么 The Complete Java MasterClass 会是一门很好的课程,而且最近已经更新到Java 10了。
如果你想学Python,那么 The Complete Python BootCamp 是我的最爱,里面会教你学Python 3,这是Python最流行的版本。
还有,如果你希望学习JavaScript,那么Mosh Hamdani在Udemy上面的《 JavaScript Basics for Beginners 》就是不二之选。
如果你需要更多的选择并且免费课程也没关系的话,那你可以看看我的 Java、Python与JavaScript 免费课程清单。
这个主要跟Ops有关系,在过去这个东西主要由支持人员和系统管理员负责了解OS和硬件,但DevOps运动兴起之后,开发者也需要了解它们了。
你至少需要了解路线图里面建议的进程管理、线程与并发、套接字、I/O管理、虚拟化、内存存储与文件系统。
鉴于我们大多数都跟Linux打交道,我建议你好好看看Udemy上面的 Linux Administration BootCamp 课程,以便更好地学习和理解Linux操作系统。
如果你需要更多的选择并且不介意从免费资源学习的话,你可以看看这份免费Linux课程清单。
对于一个做DevOps的家伙来说,在命令行方式有个好的命令可用很重要,尤其是如果他是在Linux环境下工作的话。懂得一些像Bash或者Ksh这样的Linux shell或者像find、grep、awk、sed、lsof这样的工具,以及像nslookup和netstat这样的网络命令是必须的。
如果你觉得自己需要补一下这些命令和工具,那就应该参加Pluralsight 上面的这门 Linux Command Line Interface (CLI) Fundamentals 课程。
无论是对初学者还是有经验的Linux用户来说这个都是很好的帮助记忆的工具。不过你得是 会员 才能访问这门课程,费用是一个月29美元或者一年299美元,但是物有所值。
Pluralsight就像是开发者的Netflix,里面有超过6000门高质量的课程,涵括了最新技术,意味着你可以在任何地方学习任何东西。我基本上都是在路上和通勤的时候学习的。
顺便说一句,如果你需要更多的选择并且想要成为shell脚本大师的话,你还可以看看我的 学习shell脚本的最佳课程清单 。
孤岛的日子已经一去不复返,在今日的世界里,一切东西都是互联的,这使得网络和安全变得非常重要。
为了成为一名好的DevOps工程师,你必须了解一些基本的网络和安全概念,比如DNS、OSI模型、HTTP、HTTPS、FTP、SSL、TLS等。
为了记得这些概念,你可以看看Ed Liberman 在Pluralsight上面开设的这门 TCP/IP and Networking Fundamentals for IT Pros (IT专业人士的TCP/IP与网络基础)课程。
作为一名DevOps的拥护者,你应该知道你的机器里面安装了什么,以及如何安装那个东西,只有这样你才能思考把它自动化的事情。
通常而言,DevOps工程师应该知道如何安装像IIS、Apache以及Tomcat这样的Web Server。
他还应该了解一些Caching Server(缓冲服务器)、Load balancer(负载均衡器)、Reverse Proxy(反向代理)以及Firewall(防火墙)方面的东西。如果你在web开发领域是个新手的haunted,我建议你看看Colt Steele的 The Web Developer Bootcamp 。
这大概是DevOps工程师最重要的事情了,而且这是一个范围很广的领域。作为一名DevOps工程师,你应该了解一些像Docker 和 Kubernetes这样的容器。类似Ansible、Chef、Salt以及Puppet这样的配置管理,还有像Terraform和Cloud格式化这样的Infrastructure Provisioning。这里有一些我推荐的相关学习课程。
如果你希望学习Docker,那么Udemy上来自一位Docker Captain的 Docker Mastery: The Complete Toolset 课程就是最好的起步教程。里面提供了DevOps工程师用到的所有工具的全面介绍。
如果你想学Kubernetes那我建议你参加 Learn DevOps: The Complete Kubernetes 这门课程。这会教你如何开发、部署以及管理Kubernetes。
还有,如果你想学习Chef那没有比Udemy上的 Chef Fundamentals: A Recipe for Automating Infrastructure 更好的课程了。也许是目前学习Chef最好的课程。
如果你需要更多Docker方面的选择,可以看看这份 DevOps工程师十大基本教程 。
对于DevOps大师和拥护者来说这是另一个非常重要的东西,比如设置一条管道给持续集成和交付。CI/CD领域有很多工具,比如Jenkins、TeamCity与Drone等。
但是我强烈建议你至少要学习一下Jenkins,因为这是使用最广泛大概也是市面上最成熟的CI/CD工具。如果你不知道Jenkins那这门课程就是最佳起步。
如果你想学Jenkins,那就没有其他课程能比Udemy上经典的《 Master Jenkins CI For DevOps and Developers 》更好了。这就是最好的课程,我大部分的Jenkins技能都是从这门课上学来的。
顺便说一句,如果你需要更多选择并且不介意学习免费资源的话那你还可以看看我的《 为Java开发者准备的6门免费Jenkins和Maven课程 》。
除了设置和部署以外,监控也是DevOps另一个重要方面,这就是为什么DevOps学习有关基础设施和应用监控很重要的原因。
这个领域有很多工具,比如Nagios、Icing、Datadog、Zabbix、Monit、AppDynanic、New Relic等。
视你的公司用的是什么样的工具,你可以选择其中一些来学习。
云是大势所趋,你迟早要把你的应用迁移到云端,因此作为一名DevOps工程师你至少得了解一些流行的云提供商以及他们的基础。
虽然AWS是云领域的领导者,但并不是唯一的一个,Google Cloud和Azure也在慢慢赶上,此外还有Heroku、Cloud Foundry以及Digital Ocean这样的其他玩家。
作为起步我强烈建议你参加Udemy上这门经典的《 AWS Serverless API与App——完全介绍 》课程,这是这方面最好的课程了。
顺便说一句,如果你需要更多的选择并且不介意学习免费资源的话,你可以看看我的面向开发者与DevOps工程师的 免费AWS课程清单 。
其他你可能会喜欢的编程文章:
2018年学习Python的10个理由
2018年你可以学习的10门编程语言
每一位Java开发者都应该知道的10项工具
学习Java编程语言的10个理由
Java和Web开发者2018年应该学习的10个框架
2018年成为更好的Java开发者的10个提示
2018年值得学习的前5个Java框架
每一位Java开发者应该知道的10个测试库
感谢阅读本文。看到这里你也许会头痛有那么多东西要学,那么多课程要加入,但请不要担心。
很有可能你已经知道了其中大多数的东西,而且也有大量可用的免费资源,我也把那些免费资源链接放进来了。不过那些付费的资源虽然要花钱,但绝对物有所值。
我是Udemy课程的特别粉丝,因为这些课程钱不贵同时提供了很好的价值,但是选择什么样的课程由你来定。
到最后,你应该对这里提到的东西拥有足够的知识和经验。
希望你的DevOps之旅能有好运!这条路走起来当然不会容易,但是按照这份路线图和指南,你就离成为DevOps工程师更近了一步了。
原文链接: https://hackernoon.com/the-2018-devops-roadmap-31588d8670cb
编译组出品。编辑:郝鹏程。