作为SRE,我希望开发人员知道的5件事情!
时间: 2017-12-07 18:30:24 来源:
了解如何编写应用程序和了解其下的基础架构之间是有区别的。今年,当我从开发人员转到SRE(站点可靠性工程师),看到分布式系统如何在实际的公司工作时,真的改变了我写代码的方式。
当你独自进行软件开发时,你并没有想到如何被阻止。当我部署第一个网站时,我不知道如何解决这个问题。 我并不在乎编写测试。 让我们保持真实:我只关心添加新功能并看到最终产品。 我不明白如何主持静态图像,或配置服务器。
以下是我希望程序员在开发时更关注的一些事情:
1. 编写准确的提交消息和清晰的文档
程序员要确保代码是有效的,并适当进行注释。对于每一次修复都应该留下清晰的提交消息使代码审查人员更容易理解你做的改变,并在不通过的情况下帮助调试过程,这使得代码审查者有机会审查开发者添加的内容以及知晓原因。之前,我只是想快点结束编码或者解决难题,现在,我意识到清晰的文档可以节省更多时间。如果之后你打算开放一部分源代码,当这些东西在GitHub上出现时,开发者不会清楚这些代码的含义,这会导致一个糟糕的审查会议和需要很长时间才能解决问题。
2.编写重点测试
我曾经读过一则推特,上面写着“你最喜欢的公司离全面罢工还有30分钟”。这意味着什么,我们喜欢的公司或许并不像我们想象种那样坚不可摧,让这些公司继续奔跑需要很多的努力和团队合作。管理公司很难,你开始意识到在一个基础设施层面,事情会有多糟糕。一个有助于防止这种情况的方法是编写好的测试,测试应该是确定性的,并且清晰易读。如果你对自己的东西进行了很好的测试,那么就可以避免因为更改代码或更大的事件而导致的回归。
3.确保我的代码安全
我学到了很多安全方面的知识,更加意识到代码的生命周期。任何时候,代码的完整性都是非常重要的。否则,你不仅将客户置于危险之中,还将公司的信息置于危险之中。当人们使用应用程序时,他们相信隐私和信息正在应用程序中得到保护。没有安全措施,就会让客户丧失信心。在Equifax违规及其广泛的影响之后,我意识到在处理大型代码库时将安全作为优先考虑的重要性。所有优秀的设计都要考虑安全性,无论是设计抗震的房子还是创建强大的软件—良好的设计意味着优先考虑代码每个部分的安全性。
4.时间管理
作为SRE的随时待命迫使我提高了时间管理技能,这也改善了我的生活。我一直想要做很多事情,但是要知道,当我打电话时,我所有的注意力都是为了保持网站的正常运转,所以管理时间来做工作项目比以往任何时候都更重要。现在,我正在使用Evernote等新工具来组织我的想法,并使用任务列表确保任务完成。我会提前列出一周的任务清单,更有条理地完成项目。
5.细心
我在接电话的过程中已经学会了保持高度注意力的重要性,因为我总是需要随时为网站的故障想出合适的解决方案。如果我负责维护产品的基础架构和安全性,我不能分心别的事情。 如果出现问题,我的团队需要依靠我。我的反应能力非常重要,因为如果能够防止事件升级,可以帮助人们把注意力集中在他们正在做的事情上。
我以前从来没有真的考虑过这些问题,成为SRE使我了解了分布式系统和基础架构是如何工作的,并让我更深入地了解了我做的每一个决定将导致什么样的结果。