系统管理员 101:更上一层楼

作者:Kyle Rankin

这是系统管理员基础知识系列文章的第四篇。如今,DevOps 的兴起使得“系统管理员”这个职位名称都显得有些过时,就像它取代的“系统分析师”一样。这些 DevOps 职位与过去的系统管理员工作截然不同,它们更加强调软件开发,远远超出基本的 shell 脚本编写,因此,这些职位通常由具有软件开发背景、但之前系统管理员经验不多的人担任。

过去,系统管理员通常以初级职位入职,并由团队中的高级系统管理员指导,但如今,在许多情况下,公司会在外包云服务很长一段时间后才招聘第一位 DevOps 工程师。因此,DevOps 工程师可能会在没有导师的情况下,以初级职位被委以重任,唯一能依靠的导师就是搜索引擎和 Stack Overflow 帖子。

在本系列的第一篇文章中,我解释了系统管理员如何处理警报和轮班。在第二篇文章中,我讨论了如何通过自动化使自己从工作中解放出来。在第三篇中,我介绍了为什么以及如何使用工单。在本文中,我将描述系统管理员的总体职业发展路径,以及我认为可以让你成为“高级系统管理员”而不是“系统管理员”或“初级系统管理员”的特质,并提供一些关于如何更上一层楼的技巧。

请记住,职位头衔是非常灵活和松散的东西,它们对不同的人意味着不同的含义。此外,不同的人“升级”所需的时间也不同,这取决于他们天生的系统管理员技能、职业道德以及他们获得更多经验的机会。话虽如此,要警惕任何在任何领域仅用一两年就升到高级职位的人——职业生涯需要时间来犯错并学习你需要学习的经验教训,然后才能晋升到更高的级别。

初级系统管理员

初级系统管理员正处于系统管理员培训的早期阶段。这可能是他们的第一份系统管理员工作,他们正在从头开始学习一切,或者他们可能已经有几年的经验。无论哪种情况,初级系统管理员都有一些共同的特点

  • 完成任务需要团队其他成员的帮助。

  • 他们将严重依赖文档,可能不理解各个任务的作用。

  • 在新工作中可能需要数周甚至数月才能变得高效。

  • 他们的大部分时间将用于处理日常工单。

  • 最终他们可能会承担一个项目,但需要相当多的帮助才能完成它。

定义初级系统管理员的首要特质之一是他们完成工作所需的外部帮助量。一般来说,他们需要帮助和指导才能执行日常任务,尤其是在开始时。如果你记录了你的例行任务(你应该这样做!),你会发现初级系统管理员会尽职尽责地一步一步遵循你的程序,但他们可能不完全理解这些步骤的作用。如果任务偏离了常轨,或者如果由于某种原因某个步骤失败,他们会升级到更高级别的团队成员寻求帮助——这是一件好事,因为这种指导是初级系统管理员积累经验的主要途径之一,除了犯错和修复错误之外。

在这个级别的系统管理员在新组织可能需要几周甚至几个月才能变得高效,并开始独立完成日常任务而无需帮助。这些是团队审核文档以及团队初级成员标记文档中的空白或过时之处的绝佳机会。如果你让初级团队成员自己添加文档,只需确保更高级别的团队成员对其进行审核,以确保其正确和完整。

系统管理员的任务列表通常分为两大类:日常任务和项目。初级系统管理员通常最终会被分配更多日常“苦力活”,这不是惩罚,而仅仅是因为项目通常需要更多经验——他们将在掌握日常工单的过程中获得这些经验。

话虽如此,在某个时候,初级系统管理员承担他们的第一个项目将非常重要。理想情况下,这将是一个没有严格期限的项目,这样他们就可以花时间研究并将其做好。在这个级别,更高级别的团队成员将需要投入相当多的时间作为导师,帮助指导项目的规划和研究,并回答任何问题。

日常任务和项目对于初级系统管理员都很重要,因为掌握日常任务和成功完成几个项目将有助于初级系统管理员更上一层楼。他们掌握的每个任务都将增加他们在例行系统管理员任务中的一定程度的信心和熟练程度,而项目将有助于培养他们的研究技能以及完成超出剧本的任务的能力。

中级系统管理员

很难准确划定系统管理员从初级级别升级到更高水平的界限。没有确切的年资要求;相反,它更多地与系统管理员的技能水平以及他们的整体信心和独立性有关。以下是一些中级系统管理员常见的特点

  • 他们通常独立执行日常任务。

  • 他们理解例行任务背后的一些技术,而不仅仅是鹦鹉学舌般地重复他们在文档中看到的命令。

  • 在新工作中需要几周到一个月才能变得高效。

  • 他们的时间在日常工单和长期项目之间相当均衡。

  • 他们能够提出改进现有任务的新方法和改进措施。

  • 他们能够独立完成简单的项目,并在更高级别团队成员的帮助下完成更复杂的项目。

初级系统管理员和中级系统管理员之间的主要区别在于他们的独立性。随着系统管理员越来越熟悉服务器以及组织内部的流程,他们开始能够自己执行典型任务。中级系统管理员应该能够处理分配给他们的所有正常任务,而无需外部帮助。只有当他们遇到奇怪的“曲线球”,例如以前从未做过的一次性任务或一些独特的紧急情况时,中级系统管理员才可能需要联系更高级别的团队成员寻求指导。与初级系统管理员一样,这种类型的帮助非常重要,而中级系统管理员不应该为了试图“更高级”而不寻求帮助来处理奇怪的请求,这将是一个错误。向更有经验的系统管理员提问并获得建议将有助于他们更上一层楼。如果他们试图完全独自完成,无论如何,这将花费更长的时间。

中级系统管理员承担的项目也比他们的初级同行更多,并且他们能够独立完成简单的项目。初级系统管理员可能能够维护现有系统,但中级系统管理员实际上可能能够从头开始设置它。他们还可以开始处理更大、更复杂的项目,这些项目可能需要他们学习新技术并独立提出一些方法,尽管在这些情况下,他们仍然有时需要联系更有经验的团队成员,以确保他们走在正确的轨道上。

随着系统管理员掌握所有日常任务,他们自然也会开始提出改进和提高这些任务效率的方法,他们可能会向团队提出一些这方面的建议。这些改进可能会成为他们自己的项目。他们还应该能够为团队中的初级成员提供一定程度的指导和培训,至少在日常任务方面是如此。

如果中级系统管理员想要更上一层楼,最重要的事情之一就是承担项目并帮助处理紧急情况。项目和紧急情况通常提供跳出既定剧本思考的机会。正是这种批判性思维、研究和解决问题的能力,才能积累对系统管理员至关重要的经验。他们处理的紧急情况和项目越多,他们就会开始注意到一些常见的模式,而这种认识会建立一定程度的信心和更深入的理解,这对于晋升到更高水平至关重要。

高级系统管理员

尽管有些人可能会根据一定的年资来判断一个人是否是高级系统管理员,但在我看来,使一个人成为高级系统管理员而不是中级系统管理员的,不是年资或工作过的地点数量,而更多的是一种特定的心态,可以通过许多不同的方式获得这种心态。许多人在获得这种心态之前就获得了头衔,而且通常需要获得头衔(或与之相关的一些责任)才能使一个人更上一层楼。

高级系统管理员和中级系统管理员之间的主要区别在于,有一天,当高级系统管理员意识到,他们迄今为止响应的几乎所有紧急情况和参与的几乎所有项目都有一个共同的特征时,他们的头脑中会闪过一道灵光:只要有足够的时间和努力,他们就可以追踪到几乎任何问题的原因,并完成几乎任何系统管理员任务。这是一种真正的信心,而不是虚张声势,正是这种真正的独立性标志着高级系统管理员。

在你的职业生涯早期,某些任务或项目似乎超出了你的能力范围,你绝对需要帮助才能完成它们。稍后,你掌握了日常任务,但奇怪的紧急情况或复杂的项目仍然可能会让你感到害怕。高级系统管理员已经完成了如此多的项目,并响应了如此多的紧急情况,以至于他们最终建立了信心,以至于他们不会被下一个项目、下一个紧急情况或负责重要的关键任务基础设施的前景吓倒。就像中级系统管理员可能处理他们的日常工单一样,高级系统管理员会处理他们遇到的任何任务。

以下是一些高级系统管理员常见的特点

  • 他们可以独立执行日常任务和复杂项目。

  • 他们理解他们使用的技术背后的基本原理,并且可以将复杂的任务提炼成团队中的每个人都可以遵循的简单剧本。

  • 他们可以在一两周内在新工作中变得高效。

  • 他们更多的时间花在大型项目和不寻常的、超出常规的请求上。

  • 他们指导其他团队成员,并且对最佳实践有很好的认识。

  • 他们提出新的项目和改进措施,并且可以提出适当的设计来解决新的问题。

  • 他们理解自己的局限性,并制定程序来保护自己免受自身错误的侵害。

同样,正是高级系统管理员的信心和独立性将他们与中级系统管理员区分开来。这并不是说高级系统管理员从不寻求帮助。与能够处理任何系统管理员任务的信心相伴随的是,职业生涯中充满错误所带来的谦逊。事实上,他们的一部分经验会教会他们向团队中的其他人寻求反馈的智慧,以确保他们没有遗漏任何东西。通常,高级系统管理员会提出多种解决问题的方法,每种方法都有优点和缺点,并利用团队的其他成员作为集思广益的平台,以帮助选择哪种方法在特定情况下最有效。

高级系统管理员的经验使他们多年来接触到许多不同的技术、系统和架构。这意味着他们开始注意到哪些方法有效,哪些方法无效,以及哪些方法一开始有效但在长期内会引起问题。特别是,他们可能会跟踪他们自己完成的某个项目的整个生命周期,并注意到他们的初始解决方案在特定时间点之前是如何工作的,然后在扩展时失败了,或者需要随着某些新技术的出现而改变。这种情况发生的越多,高级系统管理员就越开始培养出一种自然的最佳实践意识,以及我称之为“系统管理员感知”的东西,就像蜘蛛侠的“蜘蛛感应”一样,当他们看到一些将来会导致问题的事情时,比如从未测试过的备份系统或具有单点故障的系统,它会开始警告他们。正是通过培养这种专业知识,他们才能够升级到管理层之外的最后一个主要级别。

系统架构师

尽管每个组织都略有不同,但高级系统管理员在积累经验后可能会选择两条主要的职业道路。最常见的道路是管理。高级系统管理员随着时间的推移最终会花费更多时间指导他们的团队,并且经常被晋升为团队主管,然后晋升为团队的完整经理。另一条道路继续担任“个人贡献者”角色,他们可能担任也可能不担任团队主管,但他们没有任何直接下属,也不会花费时间进行员工评估或类似的事情。当然,也有将这两种极端情况结合起来的道路。在最后一部分中,我将描述个人贡献者系统管理员可以晋升到的最后一个级别之一:系统架构师。

在许多组织中,系统架构师和高级系统管理员之间的界限可能很模糊。同样模糊的是使某人成为系统架构师的资格。话虽如此,一般来说,系统架构师已经担任高级系统管理员多年。在他们的职业生涯中,他们参与了大量项目,包括与团队合作和独立完成的项目,并且他们已经开始看到哪些方法有效,哪些方法无效。正是这种对各种技术和项目设计的经验积累,开始构建这种固有的最佳实践意识,从而使某人成为系统架构师。

以下是系统架构师的一些常见特点

  • 他们熟悉许多解决特定问题的不同技术,以及它们的优缺点。

  • 在解决问题时,他们会提出多种方法,并且可以解释和捍卫他们首选的方法。

  • 他们了解解决方案的局限性以及解决方案在扩展时会在哪里失败。

  • 他们可以将一般性问题分解为单个任务,作为可以分配给团队的更大项目的一部分。

  • 他们可以根据新技术各自的优点来评估新技术,而不会被炒作或流行度分散注意力。

系统架构师不一定固守某种特定的方法,尽管他们可能有一套基于过去有效经验的方法来处理某些问题。由于他们在高级职位上工作了一段时间,他们对什么是好的架构与坏的架构,以及如何选择一种技术而不是另一种技术有了更深入的理解。技术以趋势发展,而这些趋势往往在足够长的时间范围内重复出现。系统架构师已经存在足够长的时间,他们至少已经看到了一些炒作技术的趋势周期之一,并且他们可能在过去的某个时候因为过快地采用一种不成熟的技术仅仅因为它很流行而受到伤害。初级管理员更可能被特定新技术的炒作所吸引,并希望在任何地方都使用它,而系统架构师更可能看穿炒作,并且对于任何新技术,都能够识别出它在哪里有用,在哪里没用。

结论

我希望这篇关于系统管理级别的描述对你规划自己的职业生涯有所帮助。在获得经验方面,没有什么比犯自己的错误并不得不自己从中恢复过来更好的了。与此同时,邀请身经百战的高级系统管理员喝啤酒并从他们的战争故事中学习肯定容易得多。我希望系统管理员 101 基础知识系列对那些刚入行系统管理员行列的人有所帮助,我也希望它可以帮助你避免在职业生涯中前进时从自己的错误中学习。

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 上。你可以关注他的 Twitter 账号 @kylerankin。

加载 Disqus 评论