在New Relic,德沃斯是我们运作方式的一个组成部分——不同的团队协作,以帮助促进更频繁的部署,更快的问题解决,以及在整个组织中更稳定和创新。虽然我们已经写了很多关于德沃斯多年来,我们没有谈过的一件事是我们如何在新的遗物中实际练习Devops。

在这篇文章中,我将分享我们如何在New Relic内部处理DevOps,包括我们使用的关键实践和技术工具,以及到目前为止我们从我们的努力中看到的好处。

早期收养

New Relic使用DevOps方法已经有一段时间了。它起源于Nic弯管机(目前我们的首席建筑师和工程副总裁)在2012年建立了网站可靠性工程团队。该团队的一些早期成员成为内部Devops思想领导者,并且在我们的许多网站可靠性工程师(SRES)渴望尝试之前一个更有组织的Devops方法。

DevOps项目并不总是像这样从头开始。在许多组织中,DevOps是由管理层强加的,通常只是因为它已经成为一个时髦的流行语:“我听说过一个叫‘DevOps’的东西,我们打算试试。让我们开始做DevOps吧。”然而,在New Relic,是工程师们自己意识到了这个概念并开始尝试它,从那时起,它就在没有管理的情况下有机地发展起来(这总是聪明管理的标志)。

尽管如此,对Devops的举动最初需要一个大型文化转变 - 撕裂墙壁传统上的开发和运营团队,以便两个团体都致力于客户幸福的共同目标。但是,当然,Devops不仅仅是一种新的心态;我们需要确保我们有正确的流程和工具到位。

关键DevOps实践

我们尝试的第一件事之一是我们所谓的“前瞻性SRE”,这是对某种“顾问”的不同团队分配的SRE,以帮助保持顺利运行的东西。我们的前瞻性SRES对不同的产品团队负责 - 通常是几次 - 但他们不一定是这些团队的一部分。

今天,Metrics管道团队在这方面更进一步,我们称之为“产品可靠性工程师”或PRE,这是一种专注于特定产品的SRE类型。这个新角色的开发试图将SRE直接嵌入到特定的团队中。这些PREs不再通过售票系统与开发者进行沟通,而根据我的经验,这必然会导致瓶颈和摩擦;相反,他们会加入团队,成为其中的一员。团队的目标成为他们的目标,反之亦然。

除了创造特定的救主友好角色之外,我们还注意到我们的团队如何构建。多年来,我们尝试了许多不同的组织结构,如果某些事情没有工作,我们并不害怕废除它并尝试一种新的方法。事实上,我们的工程团队最近参加了我们所谓的巨大,创新的重组倡议“项目高档,“其中每个人都有机会选择他们想要工作的团队。如果Devops是关于击倒团队之间的障碍,那么项目高档是最终的Devops Move。

DevOps的关键技术

现在我想谈谈一些使我们的Devops计划顺利运行的技术工具:卡桑德拉Docker。

卡桑德拉是一个分布式数据存储,允许New Relic扩展。传统上,我们将度量数据存储在一个关系数据库中,如MySQL,它将由一个独立的团队拥有(哦哦!团队之间的障碍)。Cassandra的魅力在于,它是一个可以把自己当作服务来对待的数据库,而且它是用Java编写的,因此开发人员可以查看代码的核心,了解它在做什么。正因为如此,团队中的每个人——包括开发人员和运营人员——都知道如何操作Cassandra,如何部署它,如何在它出现问题时停止它,以及如何替换它。

码头工人对我们来说至关重要,因为它有助于开发人员进行运营工作。例如,假设我们有一个技术堆栈,包括Ruby Apps,Java Apps等。如果您停靠所有这些应用程序,您可以使用相同的命令。如果您没有使用Docker,您需要为Ruby应用程序提供Ruby脚本,为您的Java应用程序的Java脚本以及硬件和数据库的Puppet脚本。Docker可以使所有这些更容易,提供一种使用相同命令的任何技术操作的API。事实上,新的遗物一直是我们使用Docker的漂亮切削刃。(我们也在Docker容器中运行Cassandra,使它对devops更加友好。)

使用我们自己的工具

和我们的客户一样,我们依靠自己的一些工具来做好DevOps。由于DevOps的目的是打破开发和运维之间的壁垒,让他们能够共同工作,所以找到一种他们能够使用的共同语言和共同的工具集是非常重要的。新的遗物见解在这方面是理想的,因为它允许来自“开发世界”和“运营世界”的数据组合和显示在一个仪表板中。当每个人都有一个统一的地方去看,并且数据显示在清晰易懂的图表中,那么团队的所有成员都在同一个地方操作。这是非常强大的。不仅仅是技术团队能够很容易地获取这些信息;组织的每个成员都知道。

另外两个对DevOps有帮助的Relic工具是New Relic APM(更容易理解的图表和指标!)和New Relic的警报- 特别是我们最近揭幕的新的遗物动态基线警报,它可以帮助不同团队的人员监视任何特定应用程序的状态。

(有关此主题的更多信息,请务必阅读New Relic可以帮助你更好地完成DevOps的6种方法。)

DevOps的好处

我们从我们的Devops途及软件开发的好处包括删除可以挫败开发团队的瓶颈和硬盘。我们使用简单的系统来衡量不同的团队是否被封锁,红色,黄色和绿色状态指示器。幸运的是,我的团队从来没有是红色的,这意味着我们从未被另一个团队阻止过。事实上,我们几乎总是绿色。

此外,我们的SREs通过记录所有内容、为所有操作创建运行本、编写事件等,帮助逐渐形成一种强大的编写文化。这有助于减少公共要素在每个团队中,因为所有知识都被记录并向所有人都能录取,而不仅仅卡在一个开发人员的头部。

DevOps文化的一个不太明显的好处是员工保留——作为一个团队,工程师倾向于初创企业的文化而不是大型企业的文化。在DevOps模式下运作,让我们的工程师有在小型初创公司工作的感觉,同时仍然收获在大公司工作的好处。

想了解更多关于DevOps的信息吗?访问我们的DevOps中心一定要查看这些额外的DevOps资源:

Jose Fernandez是New Relic Metrics管道团队的首席软件工程师。查看贴子

对新遗物博客的写作有兴趣吗?亚搏体育登入网给我们发一份建议书!