www.atlassian.com/

    在 Atlassian, Go 被用于支持并发的实用程序设计,用于配置和监控测试服务器。他们为软件开发人员制作开发和协作工具,主要是 Java 商店。他们有一个用于测试的虚拟机集群,运行大量无盘主机。它的配置和监控系统是用 Go 开发的,系统由 3 部分组成:

    • 运行于每台服务器上的代理进程,广播虚拟机的状态。
    • 一个管理进程,收听代理的广播,在代理失败没有发送报告时执行指定的动作。
    • 一个命令行工具用于向管理进程传递命令。

    代理使用 protocol buffer 协议来编码它读到的状态信息,并通过 UDP 协议广播。管理进程读取配置文件,为集群中的每个虚拟机启动一个 goroutine 。每个 goroutine 监听对应的虚拟机的通告,并发出指令(shell 命令)使其保持正确的状态。

    为什么用 Go :根据配置,可以一个 goroutine 对应一台虚拟机。

    系统非常容易部署,只需要安装二进制文件,并且没有依赖。

    Dave Cheney,Atlassian 工程师说:「代理运行在从网络启动并且完全依靠内存运行的机器上,一个二进行制文件,对比 JVM 或 Python 运行时,能够节省更多的资源」。