企业中有关Server Sharing的一点想法
在某公司实习期间,发现一个现象:企业团队内部有多种不同的服务器资源,这些服务器的用途往往比较专一,资源利用率低;另外,团队中Dev和QE存在一些重复性工作。
1. 应用场景
用于企业内部团队协作,对各种不同服务器资源的管理,提高服务器的利用率,最大程度地共享资源,减少重复工作。
2. 一点想法
- Admin Server Console提供两个访问子系统:User System,用户系统,供小组成员使用,查询资源信息、执行远程命令、接受结果信息等;Administrator System,管理员系统,供Team Leader使用,管理本Team下的各类服务器资源:发布、更新、移除等。
- Admin Server Console与各种不同的Server Machine通过Agent代理进行通信,Agent代理安装在各个不同Server Machine上。
- Admin Server Console发送一定格式的消息命令给相应的Agent,Agent解析命令,调用所在Server Machine上的批处理文件(或其他脚本文件),完成指定操作。
- 各个受控的Server Machine接受Agent的调用,执行实际操作:更新Server Machine的各类资源状态,安装、升级或卸载产品,设置、运行、清理测试环境等,并返回执行结果给Agent。
- Agent完成指定的命令之后,向Admin Server Console发送回复:资源状态,执行情况,测试结果等。
- Agent应该具有自学习能力,例如,当其Server Machine执行完一些任务之后,需要学习并更新Server Machine的资源信息,学习负载情况并做出实时处理/应急处理,通报给Admin Server Console。
- 任务完成之后,需要学习并更新Server Machine的资源信息,学习负载情况并做出实时处理/应急处理,通报给Admin Server Console。
3. 应用举例
- 对于管理人员,通过Administrator System发布并管理服务器资源信息。
- 对于测试人员,通过User System浏览当前所有Server Machine的运行信息(可以很丰富,如Server Machine的基本信息、所处状态、端口信息、部署的产品的Build版本、安装的OS、Application Server、Database等),查看是否有适合于自己的测试环境,如果有则选择已有环境或占有一台Server Machine部署所需的环境后,远程操作执行测试脚本,当执行完毕后将测试结果通知给测试人员本人。
- 对于开发人员,亦可以通过User System查询各个Server Machine上的测试环境,并进行自己的工作。比如,测试人员发现Bug之后,开发人员可要求其尽可能保留现有环境,当其Fix Bug之后,将对应的产品组件Components部署,利用已有环境快速进行单元测试。