原文链接:https://hackernoon.com/the-2018-devops-roadmap-31588d8670cb
原文作者:javinpaul
翻译君:CODING 戴维奥普斯

写在前面

我们在推进国内研发团队 DevOps 落地的过程中,发现不少研发组织在积极寻求 DevOps 技能方面的提升。今天翻译的这篇深受欢迎的 DevOps 技术雷达来自一位国外的 Java 博主,他也是一位非常热爱学习的开发者,接下来让我们马上进入到正文。

DevOps 技术指南

DevOps 目前非常火热,我认识的大多数朋友、同事和高级开发人员都在努力成为 DevOps 工程师,以及研发组织中的 DevOps 佼佼者。虽然我承认 DevOps 的好处,它与改进软件开发和部署过程直接相关,但从我有限的经验来看,这不是一件容易的事。在如此多的工具和实践中选择正确的学习路径是非常困难的。作为一名 Java 博主,许多读者经常问我:

  • 如何成为一名 DevOps 工程师?
  • 应该学习哪些工具?
  • 应该遵循哪些实践?
  • Maven 和 Jenkins 是不是 DevOps 工程师的必备技能?
  • Docker 和 Kubernetes 呢?
  • 基础设施自动化是不是 DevOps 的组成部分?
  • 是否应该学习 Chef、Puppet 或 Ansible?

以上只是读者经常会提到的一部分问题,我努力用我浅薄的经验来回答那些问题,但我不会只是用简单粗暴和重复使用的方式把那些答案整合后丢给大家。今天我将分享一个很不错的资源 —— 2019 DevOps RoadMap,它将帮助你成为梦寐以求的 DevOps 工程师。

昨天我在网上冲浪,偶遇了 Kamranahmedse 这个优秀的 GitHub 页面,上面有不少对立志成为前端开发人员、后端开发人员、全栈 Web 开发人员、DevOps 工程师的读者都很有用的路线图。这个 RoadMap 在任何意义上都很有价值,因为它不仅突出了 DevOps 工程师的角色,还讲述了覆盖该领域需要学习的工具和技术。最重要的是,它在视觉上令人赏心悦目(难道你不喜欢黄色和奶油色的蓝线吗?),所以你可以打印出来并粘在桌子上以便参考。

虽然路线图很好,它告诉了你要学什么,但它没有告诉你如何学习和在哪里学习。为了补充路线图,我分享了一些有用的免费和付费在线课程,以便你可以学习和改进你想要掌握的工具或领域。

话不多说,以下就是我所说的 DevOps RoadMap:


图片来自 kamranahmedse

现在让我们一步一步浏览 RoadMap,了解在 2019 年成为 DevOps 大师所需的基本技能:

1、编程语言

你们肯定知道以下三种主流编程语言之一,即 Java、Python 或 JavaScript。如果没有,你可以看看下面的课程来学习你选择的语言。我强烈建议你至少学习其中一种。

  • Java

如果你想学习 Java,The Complete Java MasterClass 是一个很棒的课程,最近也针对 Java 10 进行了更新。

  • Python

如果你想学习 Python,那么 The Complete Python BootCamp 是我最喜欢的资源,它将教你 Python 3,这是 Python 最受欢迎的版本。

  • JavaScript

如果你想学习 JavaScript,那么你不应该错过 Mosh Hamdani 在 Udemy 上的 JavaScript Basics for Beginners

如果你需要更多的选择并且不介意学习免费资源,你可以随时查看我的免费 JavaPythonJavaScript 课程列表。

2、操作系统

这是 Ops 部分的内容,在更早之前负责了解操作系统和硬件的人员以及系统管理员掌握操作系统即可。但对于 DevOps,现在开发人员也需要了解它们。你至少需要了解路线图中建议的:流程管理、多线程和高并发、Sockets、I/O 管理、虚拟化、内存存储和文件系统。

由于我们大多数人都在 Linux 操作系统上工作,我建议你通过 Udemy 上的 Linux Administration BootCamp 课程来更好地学习和理解 Linux 操作系统。

更多免费资源可查看 free Linux courses 列表。

3、终端命令

对于 DevOps 人员来说,熟练地掌握常用的、好用的操作系统命令是很重要的,特别是在 Linux 操作系统上工作的研发人员,至少需要知道一些必需的 Linux shell 命令,如 Bash、Ksh、findgrep、awk、sedlsof 以及 nslookup、netstat 等网络命令。如果你认为需要刷新下这些命令和工具,你可以考虑学习 Pluralsight 上的 Linux Command Line Interface (CLI) Fundamentals 课程。

对初学者和有经验的 Linux 用户来说,这是一个很好的复习。你需要一个 Pluralsight 会员才能访问该课程,每月花费约 29 美元或每年 299 美元,但我觉得物有所值。Pluralsight 就像开发者的 Netflix,它拥有超过 6000 个最新技术的高质量课程,可以随时随地学习,我主要是在旅行和上下班途中学习。如果你需要更多的选择并希望成为 shell 脚本大师,可以查看我的 best courses to learn shell scripting

4、网络和安全

信息孤岛的日子已经一去不复返了。当今世界,万物都连接在了一起,这也使得网络和安全变得非常重要。为了成为优秀的 DevOps 工程师,你必须了解基本的网络和安全概念,如 DNS、OSI 模型、HTTP、HTTPS、FTP、SSL、TLS 等。为了刷新概念认知,你可以查看在 Ed Liberman 在 Pluralsight 上的 TCP/IP and Networking Fundamentals for IT Pros 课程。

如果你需要更多选择,还可以查看这些 Udemy 课程,网络方面例如 The Complete Networking Fundamentals 是一个很好的课程,安全方面你还可以学习 The Complete Cyber Security Course: Network Security

5、服务器配置

作为 DevOps 大师,你应该知道你的机器中设置了什么以及如何设置它,只有这样你才可以思考如何去自动化操控它。通常 DevOps 工程师应该知道如何设置 IIS,Apache Tomcat 等 Web 服务器;还应该了解缓存服务器,负载均衡器,反向代理和防火墙等。如果你是 Web 开发领域的新手,我建议你查看 Colt Steele 的 Web Developer Bootcamp 课程。

6、基础设施即为代码

对于 DevOps 工程师来说,这可能是最重要的事情,这也是一个非常广阔的领域。作为DevOps 工程师,你应该了解 DockerKubernetes容器技术;AnsibleChefSaltPuppet 等配置管理工具;Terraform 和 Cloud Formation 等基础设施配置。以下是我推荐的一些相关工具的学习课程。

7、持续集成/交付

对于 DevOps 大师来说,这是另一个非常重要的事情:建立一个持续集成和交付的流水线。CI / CD 领域有很多工具,例如 Jenkins、TeamCity、Drone 等。

但是我强烈建议至少学习 Jenkins,因为它是最广泛使用的,可能是市场上最成熟的 CI / CD 工具。如果你不认识 Jenkins,那么这门课程最好先开始。没有比 Udemy 上经典的 Learn DevOps: CI/CD with Jenkins using Pipelines and Docker 更好的课程。我也从这个课程中学到了大部分的 Jenkins 技能。

课程链接:https://click.linksynergy.com/fs-bin/click?id=JVFxdTr9V80&subid=0&offerid=634352.1&type=10&tmpid=14538&RD_PARM1=https%3A%2F%2Fwww.udemy.com%2Flearn-devops-ci-cd-with-jenkins-using-pipelines-and-docker%2F

更多 Java 开发人员免费资源可查看 6 free Jenkins and Maven courses 列表。
资源链接:http://www.java67.com/2018/02/6-free-maven-and-jenkins-online-courses-for-java-developers.html

8、监控软件和基础设施

除了配置和部署之外,监控是 DevOps 的另一个重要方面,这就是 DevOps 工程师了解基础设施和应用程序监控的重要原因。

这个领域有很多工具,如 Nagios、Icing、Datadog,Zabbix、Monit、AppDynanic、New Relic 等。你可以根据需要选择其中一些来学习。

9、云提供商

云是下一个重要的事情,迟早你得将应用程序迁移到云,因此对于 DevOps 工程师来说了解一些流行的云提供商及其基础知识是很重要的。

 虽然 AWS 显然是云计算领域的领导者,但 Google Cloud 和 Azure 正在慢慢赶上,还有一些其它参与者,如 Heroku、Cloud Foundry 和 Digital Ocean。

我强烈建议学习 Udemy 上经典的完整入门课程:AWS Serverless APIs & Apps — A Complete Introduction 。

更多 AWS 免费学习资源可查看列表 free AWS courses 。

如果你只想从一门课程开始学习 DevOps,我认为 Learn DevOps: CI/CD with Jenkins using Pipelines and Docker 会是最好的开始。

写在最后

原文作者非常详尽地给我们解读了 DevOps 技术的学习路线图,除了作者分享的国外课程、工具,国内也有非常多的学习资源。对英文课程没有太大兴趣的同学,只要了解这个学习思路即可。CODING 也会持续关注并分享 DevOps 领域最新理念与技术,与 DevOps 工程师一起成长。

2019 DevOps 技术指南的更多相关文章

  1. 基于微服务的DevOps落地指南 交付效率提升40%

    基于微服务的DevOps落地指南 交付效率提升40% 2015-2016年,珍爱线下门店已新增覆盖城市9个,与此同时,CRM系统大小故障却发生了数十起... ... 珍爱网是以“网络征选+人工红娘”模 ...

  2. DOIS 2019 DevOps国际峰会北京站来袭~

    DevOps 国际峰会是国内唯一的国际性 DevOps 技术峰会,由 OSCAR 联盟指导.DevOps 时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈 DevOps 体系与方法.过程与 ...

  3. Go 开发关键技术指南 | 为什么你要选择 GO?(内含超全知识大图)

    作者 | 杨成立(忘篱) 阿里巴巴高级技术专家 关注"阿里巴巴云原生"公众号,回复 Go 即可查看清晰知识大图! 导读:从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的 ...

  4. Go 开发关键技术指南 | Go 面向失败编程 (内含超全知识大图)

    作者 | 杨成立(忘篱) 阿里巴巴高级技术专家 关注"阿里巴巴云原生"公众号,回复 Go 即可查看清晰知识大图! 导读:从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的 ...

  5. 阿里巴巴如何进行测试提效 | 阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...

  6. 什么是以特性为核心的持续交付|阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...

  7. 阿里巴巴基于应用和变更的交付模式|阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...

  8. 业务驱动的全景监控体系在阿里的应用 | 阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...

  9. 阿里巴巴发布最佳实践 | 阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...

随机推荐

  1. luogu P1840 Color the Axis_NOI导刊2011提高(05)|并查集

    题目描述 在一条数轴上有N个点,分别是1-N.一开始所有的点都被染成黑色.接着我们进行M次操作,第i次操作将[Li,Ri]这些点染成白色.请输出每个操作执行后剩余黑色点的个数. 输入格式 输入一行为N ...

  2. 掘金转载-手写一个Promise

    目录 一 什么是Promise ? 二 Promises/A+ 规范 2.1 术语 2.2 基本要求 2.2.1. Promise的状态 2.2.2. Then 方法 2.3 简易版实践 2.4 进一 ...

  3. LightOJ 1253 Misere NIM(反NIM博弈)

    Alice and Bob are playing game of Misère Nim. Misère Nim is a game playing on k piles of stones, eac ...

  4. TypeScript躬行记(2)——接口

    在传统的面向对象语言中,接口(Interface)好比协议,它会列出一系列的规则(即对行为进行抽象),再由类来实现这些规则.而TypeScript中的接口更加灵活,除了包含常规的作用之外,它还能扩展其 ...

  5. Linux-(2)Linux安装

    二.Linux 安装 2.1 物理机安装 使用相关镜像制作软件(软碟通等)制作U盘启动盘即可,按照正常的安装步骤安装即可,一般来说(迷你版本)有线网卡直接会有驱动,无线网卡的驱动需要自行编译或者查找. ...

  6. Vue中使用keep-alive优化网页性能

    用keep-alive包裹路由 当前数据第一次访问时,会被缓存到浏览器缓存当中,若数据无更替,则直接读取缓存中的数据. 使用keep-alive时会存在一个activated的生命周期钩子 只有在la ...

  7. js中 forEach 和 map 区别

    共同点: 1.都是循环遍历数组中的每一项. 2.forEach()和map()里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input. 3.匿名函数中 ...

  8. 一篇文章让你明白CPU缓存一致性协议MESI

    CPU高速缓存(Cache Memory) CPU为何要有高速缓存 CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU.这就造成了高性能能的内存和硬盘价格及 ...

  9. 后缀数组SA入门(史上最晦涩难懂的讲解)

    参考资料:victorique的博客(有一点锅无伤大雅,记得看评论区),$wzz$ 课件(快去$ftp$%%%),$oi-wiki$以及某个人的帮助(万分感谢!) 首先还是要说一句:我不知道为什么我这 ...

  10. LeetCode刷题总结-树篇(上)

          引子:刷题的过程可能是枯燥的,但程序员们的日常确不乏趣味.分享一则LeetCode上名为<打家劫舍 |||>题目的评论: 如有兴趣可以从此题为起点,去LeetCode开启刷题之 ...