@JonnieWayy
This commit is contained in:
Xingyu Wang 2020-08-02 21:20:58 +08:00
parent 0ec9347e16
commit de17fc9fb8

View File

@ -1,48 +1,48 @@
[#]: collector: (lujun9972)
[#]: translator: (JonnieWayy)
[#]: reviewer: ( )
[#]: reviewer: (wxy)
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How failure-driven development makes you successful)
[#]: via: (https://opensource.com/article/20/3/failure-driven-development)
[#]: author: (Jessica Cherry https://opensource.com/users/jrepka)
失败驱动的开发如何使你成功
屡屡失败犯错的我为什么没有被开除
======
我是词典里 “failure” 一词旁边的插图,这就是为什么我擅长我的工作。
![failure sign at a party, celebrating failure][1]
我的职称是高级软件工程师,但这不是我最亲近的同事对我的称呼。由于我摧毁的一切,他们管我叫“樱桃炸弹”。我定期会遇到的失败已经可以追溯到我们的季度性收益和停机时间。字面上看,我是你所读到过的生产灾难,里面写道:“无论何时何地,什么事情永远都不要做。”
> 我是词典里 “失败” 一词旁边的插图,这就是为什么我擅长我的工作的原因。
我的职业生涯始于服务台,在那里我写了一些损坏高端公司服务器的循环。我将生产应用程序关闭了长达八个小时而没有发出警告,并且在试图使得情况好转的过程中摧毁了无数个集群,其中两个是因为我输错了一些东西。
![](https://img.linux.net.cn/data/attachment/album/202008/02/212013q5jjc78ihwd72cij.jpg)
是我们在 [Kubernetes][2] 中设有灾难恢复 DR集群的原因。我是个混乱的工程师当我们有从未经过停机恢复计划测试的应用程序时我会丝毫不带警告地去教人们如何快速采取行动并进行故障排除。我作为可能失败的最好例子而存在这实际上是有史以来最酷的事情。
的职称是高级软件工程师,但我最亲近的同事并不这么称呼我。由于我摧毁一切,他们管我叫“樱桃炸弹”(正巧我姓“樱桃”)。我定期会遇到的失败已经可以影响到我们的季度性收益和停机时间。简单的来说,我就是你所听说过的生产灾难:“别动,啥都别做,无论何时何地。”
### Jess 和消失的 K8s 集群
我的职业生涯始于支持服务台,在那里我写了一些循环,破坏了高端客户的服务器。我曾在没有警告的情况下将生产应用程序关闭了长达八个小时,并且在试图使得情况好转的过程中摧毁了无数个集群,有几次只是因为我打错了字。
的官方职责之一涉及到我们的应用架构。对于任何形式的架构改动,我都要进行代码的编写与测试,看看有什么可能性。近来,温和一点说,这成了我老板史诗级的痛苦。
是我们在 [Kubernetes][2] 中设有灾难恢复DR集群的原因。我是个混乱的工程师我们有一个应用程序它的故障恢复计划还从未测试过而我在没有警告的情况下就教人们如何快速行动和排除故障。我作为可能失败的最好例子而存在这实际上是有史以来最酷的事情。
We run most of our infrastructure on Kubernetes, which is known for its resiliency. Despite that reputation, I managed to make two clusters just, well, disappear. You may be wondering how I could do that; it's pretty easy: **terraform destroy**. We manage our infrastructure as code through [Terraform][3], and it won't take any knowledge of the software to know that **destroy** can do something bad. Before you panic, it was the dev clusters, so life went on.
### 我和消失的 K8s 集群
们在 Kubernetes 上运行我们的大多数基础架构, Kubernetes 以其弹性著称。尽管有这样的声誉,我还是使得两个集群,好吧,消失了。你可能会好奇我是怎么做到的,很容易,**Terraform 破坏**。我们通过 [Terraform][3] 将我们的基础架构作为代码进行管理,并且不需要任何软件知识就知道**破坏**可做坏事。在你恐慌之前,它是开发人员集群 dev cluster所以生活仍在继续。
的正式职责之一涉及到我们的应用架构。对于任何形式的架构改动,我都要进行代码的编写与测试,看看有什么可能性。近来,据说这成了我老板史诗级的痛苦,这只是轻描淡写。
考虑到这一点,有理由问我为什么还没丢掉饭碗,以及为什么我要写下关于这些事情的内容。这很好回答:我仍然有工作,因我的基础架构代码比起起初之时更新工作更好更快了。我写下关于这些事情的内容是因为每个人都时常会遭遇失败,这是非常非常正常的。如果你没有定期遭遇失败,我认为你并没有足够尽力地在学习
我们在 Kubernetes 上运行我们的大多数基础架构Kubernetes 以其弹性著称。尽管有这样的声誉,我还是使得两个集群,好吧,消失了。你可能会好奇我是怎么做到的,很容易,`terraform destroy`。我们通过 [Terraform][3] 以代码的方式管理我们的基础架构,并且不需要任何软件知识就知道 `destroy` 可做坏事。在你惊慌失措之前,好吧,是开发集群,所以我还活着
### 破坏东西并训练人们
鉴于此,你们肯定会问我为什么还没丢掉饭碗,以及为什么我要写下这些事情。这很好回答:我仍然有工作,是因为我更新的基础架构代码比起起初的代码工作得更好更快了。我写下这些是因为每个人都会经常性地遭遇失败,这是非常非常正常的。如果你没有时不时遭遇失败,我认为你并没有足够努力地学习。
你可能还会认为永远不会有人让我去训练任何人。那是最糟糕的主意,因为(就像我的团队开玩笑说的)你永远都不应该做我所做的事情。但是我的老板定期让我去训练新人。我甚至会给整个团队提供训练,用我们自己的基础架构或代码去教人们如何构建他们自己的基础架构。
### 破坏东西并培训人们
原因如下:失败是你迈向成功的第一步。失败的教训绝不只是“备份是个绝佳的主意”。不,从失败中,你学会更快地恢复、更快地排除故障并且在你工作中取得惊人的进步。当你对自己的工作感到惊叹时,你就可以训练其他人,教他们关于什么事情不要做,并且帮助他们去理解一切的工作原理。由于你的经验,他们会比你开始的地方更进一步 —— 并且他们也很可能会以每个人都能从中学到东西的新颖、惊人、史诗般的方式失败。
你可能还会认为永远不会有人让我去培训任何人。那是最糟糕的主意,因为(就像我的团队开玩笑说的)你永远都不应该做我所做的事情。但是我的老板却让我定期去训练新人。我甚至为整个团队提供使用我们的基础设施或代码的培训,教人们如何建立自己的基础设施。
原因是这样的:失败是你迈向成功的第一步。失败的教训绝不只是“备份是个绝佳的主意”。不,从失败中,你学会了更快地恢复、更快地排除故障并且在你工作中取得惊人的进步。当你在工作中变得惊人的时候,你就可以培训其他人,教给他们什么事情不要做,并且帮助他们去理解一切是如何工作的。由于你的经验,他们会比你开始时更进一步 —— 而且他们也很可能以新的、惊人的、史诗般的方式失败,每个人都可以从中学到东西。
### 你的成功取决于你的失败
没有人生来就具有软件工程和云基础架构方面的天赋,就像没有人天生就会走路。我们都是从翻滚和碰撞中开始的。从那里开始,我们学会爬行,然后能够站立一会儿。当我们开始走路后,我们会跌倒并且擦伤膝盖,撞到手肘,还有 —— 至少在我哥哥的情况下 —— 走着走着撞上桌子的尖角,然后在眉毛中间缝了针。
没有人生来就具有软件工程和云基础架构方面的天赋,就像没有人天生就会走路。我们都是从滚动和翻爬开始的。从那时起,我们学会爬行,然后能够站立一会儿。当我们开始走路后,我们会跌倒并且擦伤膝盖,撞到手肘,还有,比如像我哥哥,走着走着撞上桌子的尖角,然后在眉毛中间缝了针。
凡事都需要时间去学习。一路上阅读手边能获得的一切来帮助你,但这永远只是个开始。完美是无法实现的幻想,你必须通过失败来取得成功。
凡事都需要时间去学习。一路上阅读手边能获得的一切来帮助你,但这永远只是个开始。完美是无法实现的幻想,你必须通过失败来取得成功。
每走一步,我的失败都教会我如何把事情做得更好。
最终,你的成功正如你失败的总和一样多,因为这标志着你成功的程度。
最终,你的成功和你累积的失败一样多,这标志着你成功的程度。
--------------------------------------------------------------------------------
@ -51,7 +51,7 @@ via: https://opensource.com/article/20/3/failure-driven-development
作者:[Jessica Cherry][a]
选题:[lujun9972][b]
译者:[JonnieWayy](https://github.com/JonnieWayy)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出