Sysadmin 101: 票务系统

作者:Kyle Rankin

这是系统管理员基础知识系列文章的第三篇,我将重点介绍多年来我学到的一些经验教训,这些经验教训对于资深的系统管理员来说可能是显而易见的,但对于刚入行的人来说却是新闻。

第一篇文章中,我讨论了作为系统管理员如何处理警报和随叫随到轮换。 第二篇文章介绍了如何通过自动化摆脱困境。在本文中,我将探讨一些表面上可能看起来很枯燥或平淡无奇,但如果您想成为一名高效的系统管理员,则绝对至关重要的事情:票务系统。

我所说的票务系统是指允许系统管理员跟踪内部任务以及同事或客户请求的任务的系统。有很多方法可以使票务系统出错,从而成为组织的负担,因此许多系统管理员避免使用或勉强使用它。此外,对开发人员有效的票务方法可能对系统管理员来说很糟糕,反之亦然。如果您目前没有使用票务系统,我希望在本文结束时,我已经改变了您的想法。如果您确实使用了票务系统,但您希望没有使用,我希望我可以分享如何构建一个使一切变得更容易而不是更困难的票务系统。

为什么票务系统很重要

像文档一样,票务系统是成熟组织中一些管理员认为不必要甚至浪费时间的那些重要事项之一。无论您的组织规模如何,票务系统都很重要。在大型组织中,您有大量任务需要跟踪,这些任务分布在一群人中。在小型组织中,您通常有一个人承担多个角色。这让我想到了票务系统很重要的第一个原因。

票务系统确保任务不会被遗忘

系统管理员不断被要求执行新任务。如今,同事可能会通过多种方式请求您的帮助,从电子邮件、电话、聊天程序中的消息到拍拍肩膀。如果您当时没有做其他事情,您可以立即开始处理该任务,一切都会很好。当然,通常系统管理员必须同时平衡来自许多不同人员的需求。即使是通过电子邮件收到的请求,也往往会被遗忘。通过将每个请求存储在票据中,无论您如何收到请求,它都会被捕获,因此即使您忘记了它,下次您查看票务系统时也会记住它。

票务系统确保任务正确完成

即使您记得别人想让您做什么,您也可能不记得周一别人在周五当面告诉您的所有细节。票据允许您用他们自己的语言准确地记录人们希望完成的工作,并提供一种让他们在您关闭票据之前确认您已按照他们想要的方式完成任务的方式。

票务系统帮助您确定任务的优先级

每个请求对于提出请求的人来说都很重要。但是,与您的其他任务相比,每个请求对于您或您的团队来说可能都不那么紧急。当您的所有任务都记录在票据中时,团队负责人或经理可以查看并重新确定任务的优先级,以便按正确的顺序完成任务。这最终对每个人都更公平;否则,新任务有一种插队的方式,尤其是当请求某件事的人站在您的肩膀上时。

借助票务系统,团队负责人或经理可以列出完整的重要任务列表,以便在需要解释为什么他们没有放下一切来处理新请求时可以指出这些任务。至少,这将有助于引导关于为什么特定任务应该放在首位的对话。

票务系统分配工作

如果您只有一个系统管理员,则分配票据和项目很容易。但是,一旦您的团队壮大,分配工作以避免团队成员精疲力竭就变得很重要。同事们倾向于找到您团队中最有效率的资深成员,并在遇到任何问题时直接去找他们。当然,该团队成员可能已经在处理许多其他任务,或者可能正在努力专注于一个重要的项目。

当任务记录在票据中时,团队负责人或经理可以将票据分配和重新分配给团队的不同成员,以确保没有人精疲力竭,并确保每个人都学会如何做事。否则,您最终会在团队中培养出专家,他们总是处理与某些系统相关的票据,这会在该团队成员休假时导致问题。

票务系统为更改提供审计跟踪

每次您更改系统时,都会创造出问题的机会。如果您幸运的话,事情会在您进行更改后立即崩溃。更常见的是,您会发现更改需要一段时间才能引起问题。两周后,您会发现某些东西停止工作了,借助票务系统,您可以调出在该时间段内完成的所有任务。这使得更容易查明问题的潜在原因。

票务系统还为需要批准或完成证明的任务提供审计跟踪,例如创建或撤销帐户、授予新权限或修补软件。当有人问是谁说 Bob 可以访问生产环境以及何时发生时,您可以回答这个问题。如果您需要证明您已应用安全补丁,您可以指出您捕获的命令输出,然后将其存储在相应的票据中。

有效票务系统的质量

存在许多不同的票务系统,有时当您听到人们抱怨票据时,他们真正抱怨的是糟糕的票务系统。在选择票务系统时,您应该注意以下几点。

开发人员用来跟踪代码通过开发过程的某些系统会导致非常复杂的工作流程。但是,对于系统管理员来说,票务系统越简单越好。因为您已经要求系统管理员抽出时间来解决问题并在票据中记录下来,所以如果票务流程快速而简单,则会有所帮助。我更喜欢系统管理员的非常简单的票据工作流程,其中可能只有几个状态:打开、已分配、进行中、已解决和已关闭。(我将在下一节中详细介绍如何处理每个状态。)

票据中必填字段越少越好。如果您想添加额外的字段用于标签或其他信息,那很好,只是不要将这些字段设为必填字段。这里的目标是允许系统管理员根据有人走过来拍拍他们的肩膀在一分钟内创建票据。

理想情况下,票务系统应该允许您通过其他方式从脚本生成票据,无论是通过向特殊地址发送电子邮件还是通过公开的 API。如果它有一个 API 允许您更改票据状态或添加评论,那就更好了,因为您可能会将这些集成到您的其他自动化脚本中。例如,我创建了一个生产部署脚本,该脚本与我的票务系统集成,以便它从票据本身读取它应该安装的软件包清单,然后将部署的所有结果作为评论输出到票据中。这是强制执行记录每次软件发布的最佳实践的好方法,但它以一种使其成为最容易实现的方式来完成。

赞成允许您在票据之间创建依赖关系或其他链接的票务系统。了解任务 A 依赖于任务 B 非常有用,因此您必须首先完成任务 B。这些类型的票务系统也使构建主票据来跟踪项目,然后将大型项目分解为描述可管理任务的单个票据变得更容易。这些类型的系统通常会在主票据中显示所有从属票据,因此快速浏览主票据可以让您了解项目进展情况。

如何管理和组织票据

每个票务系统都有其自身的票据状态概念,但在我看来,您至少应该具备以下状态

  • 打开:需要完成但尚未分配给任何人的任务。

  • 已分配:已在特定人员队列中的任务,但他们尚未开始处理该任务。此状态下的任务应该可以安全地重新分配给其他人。

  • 进行中:已分配给当前正在处理该任务的人员的任务。在重新分配此状态下的票据之前,您绝对应该与受让人沟通。

  • 已解决:系统管理员认为任务已完成,正在等待提交票据的人员确认后再关闭它。

  • 已关闭:任务已完成,让每个人都满意。

运行良好的票务系统应为团队提供一些重要问题的答案。第一个问题是“我现在应该处理什么?” 为了回答这个问题,团队的每个成员都应该能够认领票据,团队负责人或经理应该能够将票据分配给团队的各个成员。重要的是,人们只有在认领票据后才认领票据并开始工作;否则,团队的两个成员很容易(也很常见)在没有意识到的情况下开始处理同一任务。然后,团队中的每个人都可以开始处理他们个人队列中的票据,从优先级最高的任务开始。

一个好的票务系统应该回答的下一个问题是“我接下来应该处理什么?” 一旦系统管理员的个人队列为空,他们应该能够转到集体队列并查看按优先级排序的任务列表。应该清楚他们应该将哪些任务放入他们的队列中,如果对此有任何疑问,他们可以去找团队负责人或经理寻求一些澄清。同样,票据优先级有助于告知团队中的每个人接下来要做什么——优先级较高的任务优先于优先级较低的任务,不一定是因为它们不重要(票据对于提交票据的人来说始终很重要),而是因为它们不那么紧急。

我将票据优先级视为用户帮助告知团队票据对他们有多重要的一种方式,而不是对团队有多紧急。事实是,公司中的每个员工都不可能知道系统管理员必须为其他人执行的所有其他重要任务,也不能期望他们权衡自己的需求与所有其他人的需求的重要性。

一位优秀的经理应该保留根据队列中其他票据权衡分配给票据的优先级的权利,并根据其相对于其他任务的紧急程度来提高或降低优先级。也可能出现这样的情况,即两周前不紧急的任务现在变得紧急,因为该任务在队列中停留了很长时间,因此一位优秀的经理会意识到这一点并提高优先级。但是,如果您要开始更改票据优先级的做法,请务必告知所有人您的意图以及您将如何确定票据的紧急程度。

管理票据的另一个关键是确保您的所有请求都记录在票务系统中。有时,同事可能会因为给您发送请求消息或直接走到您的办公桌前请您做某事而试图插队。即使在您真的要放下一切来处理他们的请求的情况下,您也应该坚持在票据中记录请求,以便您可以跟踪工作。这不仅仅是为了让您可以根据其他任务对其进行优先级排序,或者为了让您不会忘记它,而是为了在一周后当基于此紧急更改出现某些问题时,您会看到此票据以及当天完成的其他任务,这将帮助您追踪原因。

最后,作为一名经理,请注意在您的团队中公平分配工作。即使团队中的一名成员恰好是特定服务的专家,也不要将与该服务相关的每个任务都分配给该人;让团队中的每个人都进行交叉培训非常重要。注意员工是否试图将票据分配给他们最喜欢的团队成员,并且不要害怕重新分配任务以均匀地分配工作。最后,每个票据队列都有例行的、平凡的繁重工作必须完成。务必在整个团队中分配这些任务,以免有人精疲力竭。

Kyle Rankin 是 Linux Journal 的技术编辑和专栏作家,也是 Purism 的首席安全官。他是 Linux Hardening in Hostile NetworksDevOps TroubleshootingThe Official Ubuntu Server BookKnoppix HacksKnoppix Pocket ReferenceLinux Multimedia HacksUbuntu Hacks 的作者,也是许多其他 O'Reilly 书籍的贡献者。Rankin 经常在 BsidesLV、O'Reilly Security Conference、OSCON、SCALE、CactusCon、Linux World Expo 和 Penguicon 等会议上就安全和开源软件发表演讲。您可以在 @kylerankin 上关注他。

加载 Disqus 评论