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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 1601|回复: 0

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

[复制链接]
发表于 2020-3-18 15:41:00 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2020-3-18 15:54 编辑 8 ?8 J) M# G  `' M$ C% W
0 ~& r; w+ S7 l( `' N


9 f- x; y/ S( e) W4 [/ `

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

6 M5 f: p3 Y/ f; O

1.jpeg


0 C* F; C/ z2 _1 z5 d5 L数据来源:[color=rgba(41, 46, 53, 0.6)]https://insights.stackoverflow.com/survey/2019

( U* D1 _* q0 B7 u; d; z

% V. I! e0 [' N3 o8 I" X! {. p' \

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

目标读者& y, o5 p5 z1 K: A3 [1 w5 z0 P
+ u! ^  q4 [1 v
# T- J; |$ b% z# j1 C6 y: X/ Y
你是否正在寻找一条 DevOps 转型的快速之道?
" `0 R* j" r" O7 y& y3 F

. c. B* ^5 `4 B. P1 u# [+ v
你是否是一个受过传统训练的运维人员并且想要体验 DevOps 领域的相关内容?

3 ?* H! n. k3 G: [. ]4 G
! a7 a6 `5 _" r" C1 s; V/ D: Q
或者你已经学习了一段时间相关技术,现在只是想要寻找职业上的转变但不知从何下手。

4 B* ]. y: O" J( W, V' E4 {

7 k4 s4 b7 J" Q- V. `1 c5 G: K7 ~# e' a1 p8 O

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

DevOps 工程师新定义什么是 DevOps5 P. p/ b. ]9 o/ A* W8 V

/ A" t! m# w2 L3 p

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


8 a* M2 j0 @" V( V  s$ Q


5 R" ?% I9 L' b; }' t7 m5 xDevOps 是一种研发团队同甘共苦、患难与共交付软件的方式。

# E) d8 ]1 u, y3 `, }

6 y1 d1 }( G% N3 k  E3 K' {

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

2 }7 e: u3 r, |- H# G$ F

' Q/ P# ^& x( _4 M4 b! {2 R, Y
这意味着,传统意义上的开发人员(编写软件的人)的目标与运维人员(运行软件的人)的目标大不相同。例如,作为一名开发人员,我希望尽可能快速地开发更多的新特性。毕竟,这是我的工作并且是客户需要的。然而,如果我是一名运维人员,我就会希望新特性越少越好。因为每一个新特性都意味着新的变更,而变更就意味着风险。


( O3 [. N, \1 J9 x) V

# H4 T" [1 `9 R% l3 @
由于这种目标错位,DevOps 诞生了。


% ]$ _3 p6 X- k! q


8 f# q% K1 ]1 z. i' a

“系统工程师 2.0”6 B, q- e- [9 }. s, R7 b

, i1 G9 S  l' H" q9 v  j5 D

; j  u: P: ^. J! N  ?1 U1 _. W$ B* [

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


6 U7 @6 W( t* f& W

- ~+ e/ M! H! u& U: g8 O
现在,纯粹主义者会告诉你没有 DevOps 工程师这样的职位,“DevOps 是一种文化,不是一种角色”, 他们会这么说。好吧,在技术上他们说的是正确的(最糟糕的那种“正确”)。但是正如经常发生的那样,这个术语已经超越其原始含义。

8 l' u  k$ |+ D' l0 N2 e9 N% z


) ]2 _) ?3 B- i) D3 b: G' s! Z* 现在,成为 DevOps 工程师就像“系统工程师 2.0”。

4 Y( B% T5 j3 S8 h8 X% x

# A9 d5 m8 D2 ^# L
* 换句话说,DevOps 工程师了解软件开发生命周期,并通过软件工程工具和流程解决传统运维挑战。

2 u/ X1 H- \" t

0 Q: S$ Z, A7 [4 s# @# S
* DevOps 最终意味着建立一个数字流水线:从开发者的笔记本中获取代码直至产生收益的全过程。


  k3 }( N6 ?8 b


: t8 b, Y+ p% I5 G# K& R

1.jpeg


! l( ]$ j: E. x7 K9 X% d! r

" p8 b' Q. R4 f" V7 z+ i1 `

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

  w" E9 G) I  p% r: }


4 h$ D) N4 ?  G- P$ _3 @温馨提示:要警惕那些声称招聘DevOps 团队”或“DevOps 部门”的公司。严格来说 DevOps 终究是关于文化和交付软件的方式,而不是配备新的团队或部门。

免责声明
( {7 N  C- c, ^! n  {7 f" u1 J% D: p) l1 R5 f$ \( e3 i0 A% i
: p/ y4 p; l3 [  I

% t) o# |7 r5 X9 {/ i2 H5 q2 }

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


, j/ V# w" n1 d; V+ u* T


+ G$ D7 S& K# e; N4 o你听过这句古老的格言吗 —— “世上没有初级的 DevOps 工程师。” 它其实是 Reddit 和 StackOverflow 上的流行比喻。 这意味着需要多年的经验,结合对工具的扎实理解,才能最终成为真正有效的高级 DevOps 从业者。遗憾的是,没有捷径可行。


9 N7 p* m$ n/ ]9 t4 Y4 Q' x


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

. o: b/ L, N5 h: _- \4 J


# p3 W% m7 U4 m, V# J工具与技能不同,因此在学习工具时,请确保不要忽视自己的技能(面试,网络,书面沟通,故障排除等)。

9 x- f! ~6 T1 n1 J, g6 F8 g

7 f2 t" c3 U$ j) ~7 I6 i0 ]
最重要的是,不要忘记我们追求的目标——建立一个全自动的数字化流水线,将创意转化为创收。

DevOps 学习路线图广度优先逐层遍历
/ b% d9 L( [& P7 Z7 x1 p
9 k  \7 A1 ~( w+ X

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

6 D5 F  s& g4 k3 @( |( G0 a5 [


% a7 d! t+ h5 L  e8 l4 {注意,你的目标是广度优先、逐层遍历。先从基础开始,学习蓝色标记的技术(Linux | Python | 腾讯云/阿里云),然后如果时间允许或者就业市场有相应需求,追踪紫色的技术(Golang | AWS/谷歌云)。

! U% M/ Y& G1 s- r/ c4 p. B

/ l' E3 n+ x9 o9 y1 s, v

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


& g- C- A, v4 u% a( S  K! p

1.jpeg


- z2 v4 R$ V3 {5 U( R9 o  R

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

/ h! I0 u+ T# x

8 @; a' |$ n) s; E

1.jpeg

, m6 A/ a6 J, D1 W& y+ r

为什么没有测试/ P% l/ U& s9 G2 m. g
! }6 S2 \8 z1 q' s

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

# ~$ H1 d3 ^" \" ^+ O8 W; m% S

' T4 a( i4 g8 N0 Q8 L
另外,请记住,我们不是在这里学习以及喋喋不休一大堆无关的技术。我们需要对完整的工具有比较充分的理解。将这些工具结合在一起,就可以讲述一个连贯的故事 —— 端到端的流程自动化。


* j/ `. y9 G8 J. M/ C' t/ T: y. U

* G0 A  r' X) W4 B  c7 _* Z& D! g  B& |
你肯定不希望学习一堆工具后就停下来。工具变化很快,概念变化得相对缓慢,因此你要做的是使用工具作为进阶概念的学习辅助。接下来,让我们再深入探讨下 DevOps 学习路线图。

DevOps 必备基础知识$ y! [$ {) \8 o4 h$ y

$ Q. k0 ]5 j1 X

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

: S5 D* E- c8 T$ D: q4 F, Q2 o

  • Linux
    8 H* O3 m. `  `% \3 |/ N

) T4 a  @. |6 N+ ~
: b- \  L1 O2 H2 B* ~
0 L/ A0 K! {1 A4 X$ u( V) P; w

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

7 \7 Y) V6 M7 C9 t; u" D' Z4 T

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


" w* C  o/ U4 v" P, N& A, @


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

! u/ X; Y' ~+ q: M& J" A


* `" l+ B& q* L8 c5 ~1 m* F0 s
1.jpeg
0 ?# a5 W7 j" ~4 W" q; ^

3 a4 }& `9 P! r0 l, {

( Y( ]# A3 V; ?+ w$ K

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

/ B% u+ y8 l9 w, Q3 l4 U1 r' B

  • Python3 R+ \4 D, `0 H$ @' p  I6 J5 r9 A

      _# r& z5 @$ N8 P5 X* I

. k$ _3 h7 M5 w: G' B$ Q& a

; k" l/ n' O! J1 E  L  A! j) O9 J

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


1 c0 |+ H6 S5 q6 j

8 t2 s3 S+ P2 V- X! @

  • 公有云& M5 |- S3 ~2 D( d
    : }2 B3 |( v# U( E! o9 F2 u7 w$ ~2 Z

) q/ A( k, D( |) R5 A

+ o2 z. ]) r* k/ ?' d, i9 d

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

5 I) `; j4 F$ ?$ Z

; Q  |6 a' ?2 S" @" X

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


* v% {+ I( F! ?

" n+ Z' I& m  A1 ~$ X
以上就是基础知识的介绍,在随后的系列文章中,我们将探讨更加复杂的问题:如何以完全自动化的方式配置、发布、打包、部署、运行和监控软件。

" }* F- b) a; ~5 Z$ z4 ?7 z9 z
# K6 k7 A: |* k4 p5 S0 J

# y$ `: j& w, u% c! ^/ v- z
7 f& ^; O5 z& W




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

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、DevOps专家认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

Baidu

GMT+8, 2021-8-6 08:23 , Processed in 0.114011 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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