我在一家网络公司工作,我们团队的部分职责是维护生产 Web 应用程序和服务器群。我们的部门最近才成立,现在我们有大量追赶修补服务器,并实施监控和备份。
为了开始处理这个庞然大物,我们将其分为几个阶段,作为第一阶段的一部分,我们将在几台服务器上重新安装操作系统,让它们从旧的 Redhat 8(不是 fedora 8)操作系统安装更新。作为 webapp,服务器需要运行 apache 和 php。需要编译到这些程序中的模块已记录在案,旧的编译构建过程也已记录在案。
作为系统管理员,你们希望记录哪些内容,又应该记录哪些内容?由于构建过程和文档都需要更新,那么规划需要完成的项目的最佳方法是什么?定义步骤应该是系统管理员的工作,还是技术经理的工作?这是“高级 unix 工程师”与初级工程师资格的一部分吗?如果这会影响您的绩效评估,您希望以什么标准来评估您在此类项目中的表现?
编辑:该应用程序正在持续开发中。其中大部分是用 PHP4 编写的,并且继续在 PHP4 上运行,但是,作为 Web 服务运行的较新代码以 PHP5 运行。因此,在同一个框中同时安装了 php4 和 PHP5。每个构建所需的模块都有文档记录。系统管理员有该文档。
答案1
如果这是一个独特的问题,你如何衡量问题出在人身上还是问题本身?
如果你的一半员工被杀/被解雇/等等,你应该记录下让你的部门正常运转所需的一切……如果你需要由新的管理员重建该部门,他们应该能够凭借你的文档在新的地点让一切重新运转起来。
实际上……嘿!是的,没错。如果文档在大多数地方都创建了,并且保持最新状态,那你就很幸运了。
如果您正在管理庞大的任务,也许您需要与您的管理员会面,询问事情进展如何以及尝试了哪些方法。如果在这三周内他只负责这个问题而没有得到解决,是不是因为他没有努力解决?他尝试过什么来纠正这个问题?
您不能事无巨细地处理问题,否则他可能会开始与您争吵。系统管理员需要足够的自由来工作,而不会感觉自己每一步都受到严格审查。但如果项目或任务真的落后了,那么您的担心是有道理的。向他了解他是否需要某些东西来完成工作,或者他难以克服的问题是什么。
好书:管理人类作者:迈克尔·洛普 (Michael Lopp)。
绩效应基于 IT 问题解决情况如何,是否能满足用户需求,以及服务器维护和基础设施问题。你不可能将问题简化为“每天解决 X 个问题”或“编写 X 行代码”来衡量每位员工。
也许你可以从团队中的其他人那里获得一些反馈,了解彼此的工作情况或主要需求是什么。优秀的技术人员希望与优秀的技术人员一起工作。他们不想与“快乐又友善”但能力不足的人一起工作。如果这意味着一切顺利,并且脾气暴躁的人知道他的东西,他们就会与一个讨厌和他们待在同一个房间里的脾气暴躁的人一起工作。
答案2
旧东西(遗留)可能很难:
如果我没看错的话,您有旧版本的软件,并试图让它在最新的操作系统版本上运行。Red Hat 8 已经有 7 年的历史了,所以我认为应用程序也应该更新(也许这些模块从那时起就没有更新过)。所以听起来就像你说的一样,这是一个棘手的问题。
记录和期望:
这取决于具体情况,但你确实应该列出你总体上的期望。明确说明你想要的一切。然后你应该能够相信管理员会跟进并更新你,如果他们由于某种原因不能这样做的话。你可以与他们联系,确保他们正在做这些事情。系统管理很奇怪,因为不同职位的差异很大,所以可能需要一些时间才能让他们了解你对他们的期望。
我的建议是,沟通!:
我认为我们无法告诉你这些是不是难题。开发人员与系统管理员之间的差距不应该太大,因此,如果您遇到问题,请找一位您信任的开发人员与管理员坐下来,帮助他解决这些问题。该开发人员应该能够提供一些反馈。
关于更新 Everything:
以下这些想法可能有用,也可能没用:
- 这个使用频率有多高?也许最好将其虚拟化然后忘掉它:-P
- 应用程序有多复杂?重建它是否更便宜、更省时?这也与应用程序的更新有关,如果这些模块已经过时,则应该删除这些部分并重新编码。这也与沟通有关,如果可以的话,团队系统管理员和开发人员可以一起找到最佳解决方案。
答案3
我想说的是,如果您的系统管理员在 3 周后无法完成自定义操作系统的安装,那么他/她要么能力不足,要么您以某种方式混淆了他/她,从而导致无休止的延迟。在您描述的场景中,基本/基础工作流程应该是:管理和/或部署团队提出要求和依赖项列表。这些要求将包括时间范围、可扩展性、容错性、稳健性、可用性阈值等。依赖项将涵盖需要在服务器上运行的应用程序以及(可选)支持这些应用程序所需的软件。除非您对软件和软件版本有非常具体的已知需求,否则系统管理员可能会处理后者。无论哪种方式,都应该记录所有内容,并制定批准流程,以便“走廊尽头的人”不能背着人们进行更改并最终扰乱系统管理员的工作流程和期望。一旦所有信息都提供给系统管理员,他/她应该能够提供或多或少可靠的时间估计。
从你所说的来看,这个人似乎甚至没有测试构建版本以查看一切是否正常。在理想的环境中,应该有一组测试脚本,以便通过运行这些脚本来验证构建版本是否正确。他们不仅会验证功能,还会验证是否包含了正确的软件版本(包括系统和应用程序库)。在较大的环境中,让整个团队专门进行性能测试也并不罕见,这样一旦部署了服务器及其安装的应用程序,你就可以确保它在实验室或暂存环境中的功能和扩展性会与实验室或暂存环境一样好,甚至更好。这是另一回事:暂存环境是关键。你可以制定策略,要求服务器从实验室环境过渡到暂存环境,最后过渡到生产环境。
我不介意系统管理员花时间仔细研究事情,以便服务器投入生产时能够完美运行。我以前认识一个这样做的人。这并不是说他不称职;相反,他意识到部署失败的严重性,所以他花了一点额外的时间来 100% 确保一切都是正常的。到目前为止,他的声誉几乎无可挑剔,我会向任何系统管理团队推荐他。然而,在琐碎的任务上反复犯错应该会引发橙色(还不是红色)警报。一个基本的系统管理员应该了解他的操作系统和常用的应用程序库,这样当需要构建系统时,他/她就不会对使用哪个操作系统以及部署哪些库和应用程序产生疑问。至于为一组自定义应用程序构建自定义服务器,我大约需要 1-2 天的时间来完成基本安装和配置(以及性能调整、强化等)。之后,这将取决于需要安装什么。软件需求越多,构建、安装和测试所需的时间就越长,也许这就是阻碍系统管理员工作的原因。不过,由于您没有提供足够的信息,所以我不能肯定地说。
我希望这能有所帮助。
迈克尔
答案4
这家伙很可能吓坏了,因为根据您对事物运作方式的简要解释,这听起来就像您的 IT 环境是一场噩梦。
我愿意打赌,你的 SA 从开发人员/业务部门类型的人那里得到的指示也很糟糕。让一个人坐在提交请求的人和实际工作的人之间。让他们拒绝那些没有意义的请求并记录正在做的事情。
爱因斯坦说过:“疯狂就是一遍又一遍地做着同样的事情,却期待着不同的结果”