请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 1936|回复: 0

DevOps 工程师成长日记系列一:必备知识与技能组合

[复制链接]
发表于 2020-3-18 15:41:00 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2020-3-18 15:54 编辑
7 D$ s% M( Y2 h3 W( i; f" ]4 e
7 B1 D7 U' q/ a8 |; U! z. j

: r! h/ b2 b4 F5 T& M# g

据 StackOverflow 2019 开发者调研结果公布:DevOps 专家的薪水仅次于研发管理者以及 SRE,位居第三:

! g& s( ^- l8 o# P

1.jpeg


* |* H6 ?1 X, D% h8 f数据来源:[color=rgba(41, 46, 53, 0.6)]https://insights.stackoverflow.com/survey/2019


1 H7 D" }# B' C* Y, Q
+ J. o' b4 t$ N+ C

从 DevOps 专家的热门度来看,越来越多的企业意识到需要将 DevOps 从口头落地到日常研发流程中,实实在在给企业带来研发效能上的收益。在这场无声变革当中,专业的 DevOps 工程师必不可少。CODING 针对想要从事 DevOps 相关岗位的开发者精心策划了 DevOps 工程师成长日记系列,希望这系列文章能够给相关同学带来学习路径上的启发。接下来让我们进入到翻译内容的正文:

目标读者; u! A, T/ u' i5 D, Z, \

3 D; b9 \% Y- g, U& A
4 s, }* r) P$ `
你是否正在寻找一条 DevOps 转型的快速之道?

9 }4 I/ t, U$ @
. |: b# Y( P6 U4 R1 I
你是否是一个受过传统训练的运维人员并且想要体验 DevOps 领域的相关内容?
$ O9 {% G) y* W3 O6 ^2 H1 i0 C) I
$ M2 R2 K* G2 R5 o* t* H7 {' [+ s
或者你已经学习了一段时间相关技术,现在只是想要寻找职业上的转变但不知从何下手。
& z) K: r; ?0 {
/ `! ?' @; m% G1 z* Q8 r

+ F# t- e1 x3 j' N0 |1 d

如果属于上述情况的话,就继续往下阅读吧,接下来让我们一起看看如何在六个月内成为一名中级 DevOps 工程师。如果你已经从事多年 DevOps 相关工作,也仍然在寻找关于 DevOps 工程师的有效认可方式,那么你也是该系列文章的目标读者。

DevOps 工程师新定义什么是 DevOps4 {: t9 J! B( b- {; h

$ @0 H, t+ I, {

关于它的定义与由来你可以 Google 到各种前沿理论,但是大部分的解释都是长篇大论,让人喘不过气来。看看我会怎么做——我会帮你节省鼠标的点击次数并且把关键信息摘出来:


/ s$ }9 S3 e: V3 g" J9 e

6 S4 D9 ^; p8 ]6 F. A. O
DevOps 是一种研发团队同甘共苦、患难与共交付软件的方式。


$ V( o( C2 F# k, {" v


/ @( T2 [/ S8 m. v4 R9 `. P

定义就是这么简单,但它意味着什么?


. j: i5 C7 f! z+ A7 ~% ^


/ L# ?) g, X; f# S; T这意味着,传统意义上的开发人员(编写软件的人)的目标与运维人员(运行软件的人)的目标大不相同。例如,作为一名开发人员,我希望尽可能快速地开发更多的新特性。毕竟,这是我的工作并且是客户需要的。然而,如果我是一名运维人员,我就会希望新特性越少越好。因为每一个新特性都意味着新的变更,而变更就意味着风险。


8 A) h" r8 X5 Y, r& P2 E% Z! z


- H( h; S* Y3 D( i6 a" S3 C2 S  X由于这种目标错位,DevOps 诞生了。


0 F6 P. L5 b$ J+ U8 S5 ~9 r


( M5 u" O7 ]6 m7 D1 }

“系统工程师 2.0”
1 R2 _( P: e4 `( e/ I7 J
3 I4 S: P0 h: z/ B
5 n* i9 k" R2 n- c) S/ h

8 T) r3 q5 |5 o/ L0 d

DevOps 尝试将开发和运维融进一个研发小团队里,由这个小团队共同承担开发、部署、努力创造软件收入的痛苦、责任(相反也可能是奖励)。

- L2 l9 i2 J: |. ^. R


0 b9 s' k7 r( D2 W  J现在,纯粹主义者会告诉你没有 DevOps 工程师这样的职位,“DevOps 是一种文化,不是一种角色”, 他们会这么说。好吧,在技术上他们说的是正确的(最糟糕的那种“正确”)。但是正如经常发生的那样,这个术语已经超越其原始含义。


+ {* b6 B5 R0 g2 z  E8 i


' f% ?: s: `) t6 L+ K* 现在,成为 DevOps 工程师就像“系统工程师 2.0”。


! f1 t2 S  v8 P( u; _' s

: Q8 C6 v0 y, Q5 Z
* 换句话说,DevOps 工程师了解软件开发生命周期,并通过软件工程工具和流程解决传统运维挑战。

/ K. j% V- b7 {6 W* H# i6 A


- _9 p& l; x6 Q& t* DevOps 最终意味着建立一个数字流水线:从开发者的笔记本中获取代码直至产生收益的全过程。

; b9 H7 [. o& r. \. \& L

1 L" N3 Z# i: Z8 T" t: |, ^, b2 M. B

1.jpeg

* Y1 W. m$ C( O( q1 m

) B) A: e6 B+ G' G7 e0 f9 Z

作为一个职业选择,公司给 DevOps 相关岗位的薪资待遇都相当不错,几乎每家公司推行 DevOps 时都这样做或声称这样做。无论哪里的公司,DevOps 相关的工作机会都很丰富,它依然会是未来几年内有趣且有意义的工作岗位。


; B4 m8 g0 G, |# x; e  M0 \  `3 F1 G

8 ~( l& h: m7 `% C% H  Z
温馨提示:要警惕那些声称招聘DevOps 团队”或“DevOps 部门”的公司。严格来说 DevOps 终究是关于文化和交付软件的方式,而不是配备新的团队或部门。

免责声明4 V  M* j: M! b3 }5 N; `3 B
' a$ d" d7 w. F# E. O  V

2 f' K/ r3 c( Q+ ^( K  E4 s# ^3 E( {. A0 m( M; V, C

现在,让我们把肥宅快乐水放在一边,考虑以下几点:

( k* {  Q3 u' W) V( U

( D! g! s% S* U% s% c
你听过这句古老的格言吗 —— “世上没有初级的 DevOps 工程师。” 它其实是 Reddit 和 StackOverflow 上的流行比喻。 这意味着需要多年的经验,结合对工具的扎实理解,才能最终成为真正有效的高级 DevOps 从业者。遗憾的是,没有捷径可行。

. c9 w0 o) t0 h; \8 ]" A: @5 ~' q9 P


* g$ b. k! S7 u- G因此,这篇文章不是 DevOps 伪装指南。我不认为存在能够假装成一位具有几个月经验的高级 DevOps 工程师的方法;或者在几个月中掌握原本需要数年才能精通的快速变化的工具,和对方法的深刻理解,并且这些问题目前还没有完全解决。 然而,大多数公司都使用大同小异的(或者主流的)工具和概念菜单,这些就是文章的主要内容。

3 W3 X+ |9 ?( `1 ^$ M/ j0 L. {, H

' L- K0 w8 d# ?
工具与技能不同,因此在学习工具时,请确保不要忽视自己的技能(面试,网络,书面沟通,故障排除等)。

+ N  V, D2 O2 v* J


: G8 p- F" k5 v' B  w1 V& z( w+ d最重要的是,不要忘记我们追求的目标——建立一个全自动的数字化流水线,将创意转化为创收。

DevOps 学习路线图广度优先逐层遍历
0 B; M" p, M- p! F8 l; [* [% u3 ?- k0 z1 f: @2 p& d0 A) }) H

掌握以下内容你就可以诚实地称自己为 DevOps 工程师。如果你对“DevOps”相关的 title 反感的话可以叫自己“云工程师”。下面的路径图代表我(可能是在这个领域工作的大多数人)认为的一个称职的 DevOps 工程师应该掌握的技能。这只是一种意见,肯定会有不同的看法,没关系,我们并不追求完美,先把基础打好。


  @$ H( X' i; I


7 `) o/ q6 `9 A, H3 H注意,你的目标是广度优先、逐层遍历。先从基础开始,学习蓝色标记的技术(Linux | Python | 腾讯云/阿里云),然后如果时间允许或者就业市场有相应需求,追踪紫色的技术(Golang | AWS/谷歌云)。

! E  t6 D- K3 q9 T. m* N


& l6 K. |; j5 O8 B% k+ D* o& |

(译者注:原文的工具介绍是针对国外开发者,此处为了方便国内开发者实践译者进行了部分调整)

5 {1 Z* X, u( K

1.jpeg

4 D, p' e3 }9 @5 t5 f/ `

老实说,上述的基础层是你要持续学习的东西。Linux 很复杂,需要数年才能掌握;Python 需要持续练习才能保持最新状态;公有云发展如此迅速,以至于你今天所知道的事情可能只是它的冰山一角。但是,一旦你有一个合理的知识基础,就拥有了进入现实世界的技能组合。下面总共有 6 个蓝色列,建议每月学习一列。

0 ^" C4 v5 u% S/ @$ A! x

7 T1 }3 p  x' s$ K& w* ]7 x+ G3 c

1.jpeg


  a: P2 m7 f" o& n

为什么没有测试* Y* c2 c& J  h, W3 o6 F" `* M
5 s7 l9 _! @5 W  ^& Y, c

上面的学习路线中明显缺少 Test,这是有意为之的。编写单元测试、集成和验收测试并不是一件简单的事情,传统上是开发人员的责任。“测试”阶段的遗漏是有意的,因为本路线图的目标是快速获取新的技能和工具。笔者认为缺乏测试专业知识是 DevOps 就业一个微不足道的障碍。


/ [3 t# P% R$ B7 [6 `6 l

% w% [0 j5 M" ~8 o) y- a8 K
另外,请记住,我们不是在这里学习以及喋喋不休一大堆无关的技术。我们需要对完整的工具有比较充分的理解。将这些工具结合在一起,就可以讲述一个连贯的故事 —— 端到端的流程自动化。


7 `0 @4 I8 y& N' O$ o/ s

9 N, q0 X& n, E* `
你肯定不希望学习一堆工具后就停下来。工具变化很快,概念变化得相对缓慢,因此你要做的是使用工具作为进阶概念的学习辅助。接下来,让我们再深入探讨下 DevOps 学习路线图。

DevOps 必备基础知识# l6 Y( `# ~& k5 X% O& Q5 V8 t
. H$ k+ G" ~: Z) e

在图一的“Foundation”下,你看到的是每个 DevOps 工程师必须掌握的技能。**你会看到三个行业主导的支柱:操作系统,编程语言,公有云。**这些东西不会是一蹴而就的技能,你必须掌握以及持续学习,以保持相关性并及时了解最新情况。接下来我们逐一介绍它们:


9 d- |% s0 S6 b# d- {$ O! A/ a$ \4 P

  • Linux
    $ I# ]/ W/ y. A# h4 B2 N

# t/ M9 s$ y! A- J* A# j" y  x0 B, p9 H3 i. a4 C

" u1 h+ e2 o  w$ w) q

它是几乎所有软件运行的地方。有人会问:能完全处在微软生态系统中成为一名出色的 DevOps 从业者吗?当然可以,没有任何法律要求用 Linux 来实现一切。


3 Z$ F5 z6 n$ p8 g# K

% C( Z+ T2 Y, z9 r. }
然而请注意,尽管所有 DevOps 相关事情都可以通过 Windows 完成,但这个过程更加痛苦,而且工作机会要少得多。现在,你可以放心地预设在不了解 Linux 的情况下无法成为真正的 DevOps 专业人员。因此,Linux 是你必须学习和不断学习的东西。


. o; w+ _6 m+ A1 H3 h, x1 q! \


3 I1 F1 v. d- a- V* I5 S, H最好的方法是在家里安装 Linux( Fedora 或 Ubuntu)并尽可能多地使用它。你会破坏操作系统上的东西,会被问题困住,然后你不得不解决所有问题,在这个过程中,你将学习到 Linux 相关的知识与技能。作为参考,在北美红帽系统更为普遍,因此从 Fedora 或 CentOS 开始也是 OK 的。如果你在犹豫是否该用 KDE 或 Gnome 版本,就用 KDE 吧,Linus Torvalds 用的就是它 : )

( _; }2 ~/ H3 V% f# s

. }/ s( D) j, b+ a9 h* T
1.jpeg

- X$ g9 r8 R$ Z% o6 ?
: A; i. v: q! B- o

/ U! W( Q2 ^8 x4 k9 k/ u8 j5 ^4 f

Linux 主流发行版本 Google Trend 对比(近 5 年数据)


4 ]8 Z4 S4 e) P6 l. \

  • Python  @, Q- X# k) E4 `5 Q
    9 c( O) R$ {" z8 p0 x

$ c9 i7 |: m3 |$ e6 u% w) |& _

9 [! a8 _8 v7 h

Python 是如今占主导地位的后端语言,易于上手,被广泛使用。Python 在 AI 以及机器学习领域使用非常普遍,所以如果你想要转换到另一个热门领域,那么你也会更加得心应手。


* y$ @! B! l3 J1 G3 i" Q) \


; h# n* |. c1 q0 K+ H; a

  • 公有云2 e) Z- I  h5 o* B6 Z6 H% T% _
    * Q/ e" T- l7 D7 n3 l


, e8 M) |, y. K- ^, I2 {' a0 a


# A, E6 C5 E) k0 {

如果没有充分了解公有云的运作方式,就不可能成为一名经验丰富的 DevOps 专业人士。国内外云计算领域的主导者们提供了非常丰富的工具集。

+ u; b; ~: Q+ s' O& r. p: ?/ P. r


& }7 @$ E) ?" X) T5 ?9 r

我建议你每天留出 20-30 分钟来学习 Python,Linux 和公有云。图二是你必须学习的补充内容。总的来说,我估计每天要花费一个小时,每周五次就足以让你在 6 个月或更短的时间内充分了解 DevOps 相关的内容。总共有 6 个主要知识支柱,每个支柱对应一个月的学习时间。


! e/ \1 ~  u' ?6 n$ o1 G# Y

: T! Y6 C- @( s# l- k0 n
以上就是基础知识的介绍,在随后的系列文章中,我们将探讨更加复杂的问题:如何以完全自动化的方式配置、发布、打包、部署、运行和监控软件。


- Y; x; Q: h" l/ _2 ]# ?
' Q% f4 ?% Z2 x8 Z- k- l8 q( R* g9 }

! l0 g3 d$ w2 z
9 {5 c0 J% C; x




上一篇:重磅!2020 年 DevOps 技术运营标准和持续交付标准评估报名正式启动!
下一篇:深度剖析DevOps系列(4)-- Devops in Cloud
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、DevOps基础级认证、ITSS服务经理认证报名
ITIL(R) is a registered trademark of AXELOS Limited, used under permission of AXELOS Limited. The Swirl logo is a trademark of AXELOS Limited, used under permission of AXELOS Limited. All rights reserved.

QQ|ITIL ( 粤ICP备11099876号 )|appname

GMT+8, 2022-12-7 18:28 , Processed in 0.106091 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表