DevOps 目前非常热门,我认识的大多数朋友,同事和高级开发者都在努力成为 DevOps 工程师,并将自己作为组织中的 DevOps 拥护者。
虽然我承认 DevOps 的好处,它与改进的软件开发和部署直接相关,但从我有限的经验来看,我可以说这不是一件容易的事。在如此多的工具和实践中选择正确的路径是非常困难的。
作为一个 Java 博主,我的读者经常会问到一些问题,例如:如何成为 DevOps 工程师,我应该学些什么?我应该进行什么样的训练?学习 Maven 和 Jenkins 一定是为了成为 DevOps 工程师吗?Dcoker 和 Kubernetes 怎么样?DevOps 如何建设基础的自动化流程?我是否应该学习 Chef、Puppet 或者 Ansible?读者们不断向我提出各种各样的问题,这些只是其中的一部分。
我在自己有限的经验中搜索答案,尽已所能回答那些问题。我不能使用一种简单、有效、可复用的方式把回答记录下来,不过没关系。
今天我将与大家分享一个很棒的资源,它将帮助你成为你一直想成为的 DevOps 工程师,2018年 DevOps 路线图。
昨天我在网上闲逛的时候,偶然发现了 Kamranahmedse 的 GitHub 页面,上面有一些有用的路线图,可以帮助我成为前端开发人员、后端开发人员、全栈 web 开发人员,最后也是最重要的,DevOps 工程师。
这个路线图在任何意义上都是非常棒的,因为它不仅强调了 DevOps 工程师的角色,而且还告诉了你需要学习哪些工具和技术来涵盖这个领域。
最重要的是,它在视觉上很吸引人(你喜欢黄色和奶油色的蓝色线条吗?),所以你可以打印出来并粘在桌子上以便于参考。
虽然路线图很好,但它告诉你要学什么,但它没有告诉你如何学习和在哪里学习。 为了完成路线图,我分享了一些有用的在线课程,包括免费和付费,以便你可以学习和改进你想要的工具或领域。
我谈到 2018 DevOps 路线图是这个:
Kamran Ahmed (kamranahmedse) 制图 (https://github.com/kamranahmedse/developer-roadmap)
现在,我们按照路线图逐步了解在 2018 年该如何掌握 DevOps 的基本技能:
Java、Python 和 JavaScript 是三种主要的编程语言,我相信你们至少知道一种。
如果你一种都不知道,也没关系。你可以通过下面的介绍的教程来选择一种语言。但我仍然强烈建议你至少学会上述三种通用的主流编程语言中的一种。
如果你想学习 Java,Java 大师养成是门不错的教程,最近它刚针对 Java 10 时行了更新。
如果你想学习 Python,我推荐一门自己最喜欢的课程:完全 Python 训练营。它能教会你 Python 3 这个最流行的 Python 版本。
如果你想学 JavaScript,那千万不要错过 Mosh Hamdani 在 Udemy 上的 JavaScript 基础入门。
如果你需要更多选择,而且愿意通过免费的资源来学习,那么你可以在我列出的清单中找到免费的 Java、Python 和 JavaScript 教程。
这是 Ops 部分开始的地方,早些时候它只是由知道操作系统和硬件的系统管理员支持,但是对于 DevOps,现在开发人员也需要了解它们了。
您至少需要了解路线图中建议的流程管理、线程和并发、套接字、I/O管理、虚拟化、内存存储和文件系统。
由于我们大多数人都在 Linux 工作,我建议你通过 Udemy 上的 Linux Administration BootCamp 课程来更好地学习和理解 Linux 操作系统。
如果您需要更多选择并且不介意从可用资源中学习,那么您还可以查看此 免费的 Linux 课程。
作为 DevOps 人,能在命令行终端中熟练的使用命令那必须要掌握的,尤其是在 Linux 环境中。必须要了解,Linux 的 shell,如 Bash、或者 Ksh;一些小工具比如 find、grep、awk、sed、lsof;还有网络命令像 nslookup 和 netstat 。
如果你感觉自己对这些命令和工具还比较陌生,那么你应该学下 Pluralsight 上的课程《Linux Command Interface(CLI) Fundamentals》。
新手可以掌握新知识,老手可以温故知新。要学习这个课程,你需要先花 $29/月或者 $299/年购买 Pluralsight 的会员,不过绝对物超所值。
Pluralsight 就是开发者的 Netflix ,拥有超过 6000 个针对最新技术的高质量课程,这就意味着你可以任何地方学到任何东西。更进一步解释,就是你无论是在旅行还是在通勤途中。
顺便提一句,如果你想成为 shell 脚本的大牛,你可以看看我列的这个清单:学习 shell 脚本的最好课程。
当今世界已经不再是与世隔绝的样子,每件事物相互之间都有关联,这突显了网络和安全的重要性。
要想成为优秀的 DevOps 工程师,你得对基本的网络和安全概念有所了解,比如 DNS、OSI 模型、HTTP、HTTPS、FTP、SSL、TLS 等。
为了获得这些概念的最新信息,你应该看看 Ed Liberman 在 Pluralsight 上推荐给 IT 人员的 TCP/IP 和网络基础教程。
如果你还需要更多选择,也可以去看看 Udemy 的教程,比如网络方面的完整的网络基础就很优秀,安全方面的完整信息安全课程:网络安全!。
5. 是什么,如何安装
作为 DevOps 冠军,您应该知道您的机器中设置了什么以及如何设置它,只有您可以考虑自动化它。
通常来说,DevOps 工程师应该知道如何设置一个 Web 服务器,例如 IIS、Apache 和 Tomcat 。
他应该知道缓存服务器、负载均衡、反向代理和防火墙等等。如果你是一个 Web 开发领域的新人,我建议你查看 Colt Steele 的 The Web Developer Bootcamp(Web开发训练营)。
对于DevOps工程师来说,这可能是最重要的事情,这也是一个非常广阔的领域。作为DevOps工程师,你应该了解诸如Docker和Kubernetes等容器,Ansible、Chef、Salt以及Puppet等配置管理工具,Terraform和Cloud Formation等基础架构置备。以下是我推荐的一些学习这些工具的课程。
如果你想学习Docker,那么在Udemy上来自Docker Captain的“掌握Docker:完整的工具集“就是最好的课程。它全面覆盖了DevOps工程师所需的所有工具。
如果你想学习Kubernetes,我建议你加入Learn DevOps: The Complete Kubernetes课程。这将教会你如何构建、部署以及管理Kubernetes。
如果您想学习Chef,那么没有比这更好的课程,Udemy上的Chef Fundamentals:自动化架构方法。目前来说,它可能是学习Chef的最佳课程。
如果你需要更多关于Docker的选择,你可以浏览下述列表:10 给DevOps工程师的10堂必备课程。
对于顶尖的 DevOps 来说,建立持续集成和交付流程是另一件非常重要的事情。在 CI/CD 领域有着非常丰富的工具,比如 Jenkins、TeamCity、Drone 等。
我强烈建议至少要学会 Jenkins,这是一个使用最为广泛的工具,它也可能是市场中最成熟的 CI/CD 工具。如果你还不知道 Jenkins,那么它就是这门课程最好的起点。
如果你想学 Jenkins,Udemy 上有经典 DevOps 和开发者都应该掌握的 Jenkins,没有比这更好的课程了。这是最好的课程,没有之一,我的 Jenkins 技能大多是在课程中学到的。
顺便提一句,如果你想看看别的资源,或者想通过免费资源来学习,你可以去看看我为 Java 开发者准备的 6 个免费的 Jenkins 和 Maven 课程列表。
Lear 除了设置和部署外,监控是 DevOps 的另一个重要方面,这也是 DevOps 工程师了解基础架构和应用程序监控的重要原因。
这个领域有很多工具,例如 Nagios,Icing,Datadog,Zabbix,Monit,AppDynanic,New Relic 等。
你可以根据公司中使用的 AppDynamic 和 Nagios 选择其中一些。
云是下一个重大事情,迟早你必将应用程序迁移到云上,因此对于DevOps工程师来说,至少要了解一些流行的云供应商及其基础知识是非常重要的。
虽然AWS显然是云计算领域的领航者,但它并不孤单,Google Cloud和Azure正在慢慢赶上,同时我们还有其他一些参与者,如Heroku、Cloud Foundry和Digital Ocean。
首先,我强烈建议加入Udemy上的经典的AWS Serverless APIs & Apps--完整入门课程,这显示是最好的选择。
顺便说一句,如果你需要更多选择并且不介意从免费资源中学习,那么你还可以查看我为开发人员和DevOps人员的准备的免费AVS课程列表。
感谢您阅读本文到这。 你可能会认为有很多东西需要学习,很多课程都要加入,但你不必担心。
您很可能已经了解了大部分内容,并且还有许多有用的免费资源可供您使用,我也将它们与最佳资源相关联,当然这些资源不是免费的,但是物有所值。
我是 Udemy 课程的特别粉丝,因为它们非常实惠,并且提供了很多非常便宜的价格,但您可以自由选择您想要的课程。
到这里,你对这件事应该有足够的知识和经验了。
祝你在学习 DevOps 的过程中拥有愉快的体验!这当然不是一件容易的事情,但是有这个路线图和本文的指导,你终会一步步走向自己所期望成为的那个 DevOps 工程师。
如果你喜欢本文,请在 medium (javinpaul) 上关注我。如果你在我每次发文的时候收到消息,请在 Twitter 上关注 javarevisited!
祝你 DevOps 之路顺利。非常感谢 Kamran Ahmed 制作了哪些精彩的内容。
from:https://www.oschina.net/translate/2018-devops-roadmap?lang=chs&p=2