这家初创公司正在成长,现在您的团队中有 5 名全职开发人员。您有一个已在生产环境中启动并运行的旧应用程序,以及一个即将发布的新 Web 应用程序。您有 5 台物理服务器(有些是新的,有些已经过时)和 5/10 的“云机器”。您的应用程序的旧版本运行在一个简单的网络服务器上,并且随着时间的推移逐渐演变为更“专业”的东西。另一方面,您的新应用程序利用云环境获利,旨在通过使用队列、nosql 和其他很酷的东西来支持“高流量”……您的销售额正在增加,需要进行功能开发和错误修复。通过开发新应用程序并支持旧应用程序,您的开发人员已达到其能力的 110%(并成为真正的“软件瑞士军刀开发人员”)... 当您耗尽资源时,当涉及到解决具体问题时,您会通过支付昂贵的账单来称呼“知道的人”。您有 unix 和 windows 服务器,并且在有时间或遇到应用程序错误时安装更新并阅读日志查看器。到目前为止,一家科技初创公司的普通情况......
所以,现在你有照片了。这家公司应该聘请系统管理员还是让“想要的开发人员”有时间操作基础设施并在他们对解决方案有疑问时外包?
Tom*_*nor 12
我说,只要你能买得起。
开发人员不是系统人员。他们不知道如何最好地优化 MySQL 以获得最佳性能。在 VM 上运行时,他们不知道 Apache 上的 Keepalive。
这是我遇到的两个示例,开发人员设置了一家初创公司的网络服务器,并在此过程中对其进行了调试。
很多开发者也有这样的态度:“它可以在我的PC上运行,因此它必须在服务器上运行!” - 坏消息。
如果您想正确完成,请雇用系统人员。
在这种规模下,您应该已经在考虑记录有关当前员工花时间回答问题的足够详细信息。根据您的描述,我会让每个人跟踪他们花费时间在哪个产品/站点/服务上,他们在做什么(管理、分析、发布前开发、错误修复等)。如果您在管理方面接近一名全职员工,那么您当然需要一名管理员。
除了从开发人员那里接手一些重要的工作之外,优秀的管理员还应该为服务增加价值——尤其是在可用性、安全性和性能方面。
但请记住,这是您业务增长中的一个痛苦阶段——不要指望一个人能够全天候 24x7 提供所有管理工作——某些工作必须共享,以便其他人拥有技能(以及访问备份媒体、密码、外部联系人……)以在她休假或在其他地方找到工作时为她提供保障。