当你走进GitHub位于旧金山的总部时—处在当今软件世界最中心位置的初创企业—你会感觉自己好像走进了白宫。这里的走廊非常有意思,好像就是Oval Office的翻版,两边贴着条纹墙纸,金色的窗帘,角落里放的是美国国旗。这里前台所用的桌子也别有信息,它是按照总统的桌子的样式所打造的。但是如果你加深与他们的接触,或是参加了他们在下午举行的会议,你会发现,这里装饰的有意思程度,远远不及这里所开发的技术。当你走进这里的时候,他们的Hubot会给每一个人发送推送提醒,告诉你接下来要和哪些人见面。
这个东西在GitHub的员工眼中是一个非常简单的技术。当你拿着iPad坐在那张“总统桌”前的时候,Hubot会运行一段软件脚本,然后通过该公司的在线聊天系统将这些通知发送到你的设备上。但是这只是Hubot强大功能的一小部分而已。
利用这个聊天系统,这家公司的员工可以让Hubot明确查询那一辆旧金山的食品货车正在公司附近,而Hubot可以提供精准的回答。如果员工需要下午电话会议的拨入号码,Hubot也可以准确提供。如果员工需要将一段文字翻译成西班牙文,Hubot会照办。Hubot甚至还能够按照使用者的意愿发送Twitter、将GitHub.com上的最新流量数据制作成图标,并且显示给员工。当员工感到无聊的时候,Hubot甚至还能够给他们将笑话,或者是在网上找一些有意思的GIF图片。换句话说,Hubot是GitHub员工的“工作伴侣”。
‘一种全新的工作方式’
Sam Lambert是这家公司的系统总监,他将Hubot称为是“这家公司所有员工中最努力的那一个”。其实全公司的人都知道这个笑话。Hubot其实根本称不上是员工,他甚至不是一个真实的人。他的本质是一些软件产品。这些软件通过GitHub的聊天系统被整合到了一起。大约5年以前,一个名叫Ryan Tomayko的人开发了Hubot,他的本意是要用这个产品帮助公司内部的工程师找到一种更加简单的方式来管理和优化所有接入到GitHub.com的硬件和软件。
在Hubot刚刚开发出来的时候,他的功能还比较少:只需要向Hubot发送一个消息—和给使用GitHub聊天系统的所有人发送消息一样—工程师可以更新GitHub服务器操作系统的驱动、从数据库内删除内容、或是让整个服务器离线。但是在随后的几年中,Hubot的功能性开始慢慢增强,他开始支持公司内所有人的需求—他不仅能够完成更多的人,而且还能为这些人物提供会话情境。随着时间的推移,他逐渐成为了公司内部所发生的所有事情的记录中心。
Lambert表示:“他为我们提供了一种全新的工作方式。”
Hubot代表了未来企业运行的趋势,尤其是在这个自动化程度越来越高的时代背景之下。无论是在硅谷还是在其他地方,很多企业都开始使用GitHub或其他提供商的聊天系统,有些企业甚至还自己打造了类似的系统。例如Slack和Hipchat,这些软件都能给公司的员工提供实时沟通服务,企业可以将这种功能强大的工具与机器人整合在一起,从而提高业务效率。也许当前我们所见到的机器人中,有一些对于企业来说完全没有意义,但是仍然有一些机器人能够为企业提供帮助。事实上,GitHub甚至将Hubot的代码开源了,也就是说所有人都可以免费试用这个代码,而且目前这个代码已经支持了Slack和Hipchat,当然也包括经典的IRC系统以及谷歌的MeSSEnger服务。在这个背景下,越来越多的企业接受了Hubot,让这个产品处理公司内那些棘手的任务。Box.com就是其中之一。这个鼎鼎大名的硅谷数据云存储企业不久前刚刚完成了上市。
Hubot的崛起,其实恰恰反应了GitHub自身的崛起。GitHub.com是一个云集了众多软件开发人员的地方,他们在这里可以彼此分享代码,或者相互合作编写代码,在当今的开源软件世界中,GitHub已经成为了众多高手齐聚的“聚义厅”。许多其他首屈一指的大型科技企业甚至都在使用这个平台,例如谷歌、Facebook以及微软等。Hubot只是GitHub平台上众多的软件项目之一。通过自己的服务,GitHub已经向世界分享了大量优秀的软件,Hubot的广泛传播,其实映射的是开源运动自身的成功。
GitHub公司内部的任何人都可以通过Javascript编程语言(或是其他类似的语言)来为Hubot添加新的软件脚本。例如,如果某人想要Hubot自动决定那辆货车可以在开到街上,他要做的就是为这个任务编写一段脚本,对货车上的机器人进行编程,让它从Web上抓取最新的信息。如果有人想让Hubot将某一种语言翻译成另外一种语言,那么他要做的就是编写一段可以接入谷歌翻译API的软件脚本,凭借谷歌的在线翻译服务,Hubot就可以完成翻译任务了。而且既然Hubot是一个开源项目,这意味着GitHub员工之外的人也可以编写这些软件脚本,并且分享给所有人。随着Slack和Hipchat越来越流行,Hubot的知名度肯定也会越来越高。这就是开源世界的魅力。
‘这就是这家公司的文化’
当GitHub外部的人在讨论Hubot的时候,他们通常会将其描述为一个会” ChatOps”的工具,意思就是它会操作各种任务,例如配置新服务器和数据库,更新GitHub.com的代码等。ChatOps这个词最早正是GitHub所发明的,后来其他人开始打造其他的ChatOps机器人,例如Lita和Err等工具。
ChatOps的创意来源于一次被称为DevOps的运动,那时候Chef和Puppet等刚刚诞生不久的工具让IT人员可以自动配置和更新他们所在机构中的硬件和软件。ChatOps给这个运动添加了一种会话式的元素。Hubot提供了一种更新、更轻松以及更强大的方式,让GitHub能够管理、优化以及扩展他们的基础架构。Lambert表示: “GitHub的网站,每一天都在更新,而且这种更新都是机器人所完成的。”
Box也是通过这种方式对Hubot加以利用的。由于有许多的企业(Box的用户)使用Box的基础设施来储存重要数据,这家初创企业最近开始使用机器人来增加数据储存的安全性。如此一来,当有人试图对关键系统进行改变操作的时候,系统能够确认这个人有进行此项操作的授权和认证。目前这个功能也成为了开源项目,也就是说你也可以使用。
‘只要你能写出相应的代码,你就能让Hubot做任何事情。’JOSH NICHOLS, GITHUB
然而Hubot的潜力远远不仅如此,走出服务器机房,他依然可以大展身手,GitHub已经向我们证明了这一点。在谈到Hubot的时候,Lambert自豪的表示:“这就是GitHub这家公司的文化。”Hubot能够让他知道公司内部的哪些员工当前正坐在办公室里。当他需要打电话给位于世界另一端的GitHub员工时,Hubot能告诉他对方当前所处的时区。或者,如果你是GitHub销售团队的一员。Hubot可以调取潜在客户公司的各种信息。如果你是代码编写人员,Hubot能告诉你GitHub软件代码中最近出现了哪些变更。如果你在财务部门供职,他还可以想你展示公司最新的营收数字。
负责Hubot项目的GitHub员工Josh Nichols表示:“只要你能写出相应的代码,你就能让Hubot完成所有事情。”Hubot的主页上写着这样一段藐视:“这是一个可定制的,改善人们生活的机器人。”
Katelyn Bryant是GitHub公司PR部门的工作人员,她每天都会使用Hubot来管理公司的官方Twitter账号,还会用它来管理每天的工作。她表示:“很多人在开视频会议的时候会使用Blue Jeans。我认为Hubot也为我提供了相似的便利。当我需要参加视频狐会议的时候,它会自动发送给我一个连接,点击之后我就可以加入了。”
来自未来的Hubot
只要看到“/”这个服务,Hubot就会立即开始行动。这让这个系统看上去有一种“命令提示行”的感觉,要想让他工作,你必须要使用特定的指令,这有点像老式的计算机终端。但是同时,他还能给你提供一种会话的感觉,主要是由于,你给Hubot输入的指令,和与其他人聊天时所说的话没有什么区别。你要做的,只是打开一个聊天室并且给Hubot发送了一个命令。当Hubot处理你的命令的时候,他还会继续相应其他人的指令。
Lambert表示:“在使用Hubot的时候,你能够了解与你相关的情境,例如你当前在做什么,以及你所在的团队当前在做什么。当出现问题的时候,每个人都可以进入基础设施聊天室,在那里你可以看到所发生时间的补救过程。这个系统的协调功能非常强大。使用者可以了解情境,它能让团队中的每一个人都联合起来解决问题。”
另外,与命令提升行不同的是,Hubot和GitHut可以为使用者根据所有过往消息生成一种可以轻松访问的日志。例如,假设公司上周某一天更新了多台服务器,如果Lambert想要查看当天发生了什么事情,他要做的只是打开对话日志。他表示:“通过这个日志我就可以回到那个时间点。”
谁都可以学会使用的Hubot
当我们坐在GitHub总部位于2楼的”野生动物园”时—这件房间的墙上挂满了各种动物的毛绒玩具—Lambert尝试想起哪条命令能让Hubot找出哪辆食品货车正在附近。但是他没有想起来,这让他有点尴尬。
但是,随着机器学习技术的不断发展,计算机在理解人类自然语言方面正在不断进步—以后人们就可以像科幻电影里那样与计算机进行无障碍交流了。谷歌此前刚刚发布了一项研究报告,报告称他们的一个聊天机器人甚至可以与用户讨论人生的意义。虽然这个机器人对于人生意义的理解还有许多不足,但是它已经足够让人印象深刻了。这就是Hubot未来发展的目标。当年你需要的时候,你可以问他任何事情,而且所使用的就是你每天最习惯的说话方式。
虽然这一天还没有到来。但是今天的Hubot其实已经十分强大了。从诞生到如今,GitHub已经使用了它5年的时间,而且它还深深融进了这家公司的文化之中。当你走在GitHub的办公室里,你会看到很多人的笔记本电脑上都贴着Hubot的贴纸。该公司的设计人员专门为其设计了卡通形象。正是这个卡通人物,每天在帮助GitHub处理大量的工作和任务。
Lambert表示,Hubot与这家公司,以及公司员工的工作紧紧的缠绕在一起,他很难想象,如果有一天Hubot消失了,他们将如何继续开展工作。对于这样的技术,GitHub是一个绝对意义上的温床。他们的员工中有大量的编程人员,他们可以继续为Hubot添加命令脚本,接入更多的在线API,让这个系统拥有更多的功能,帮人们完成更多的任务。这也是我们即将迎来的世界,越来越多的人会开始享受代码所带来的便利。而且一些非技术人员也在开始学着编写Javascript等简单的变成语言。例如我反复提到的有关食品货车的代码,就是由GitHub公司内部一位营销部门的员工编写的—他的每日工作与编写代码几乎毫无关联。
同时,Slack等工具也在不断发展,而且发展的趋势就是与Hubot越来越接近。Slack可以无缝整合无数的服务,例如Blue Jeans的视频会议服务以及谷歌的Google Drive云存储服务等,当然还包括大量的软件开发工具。而且它能够将你与这些工具之间的互动变得更加自动化,在不需要要求你和你的企业掌握Javascript语言的情况下帮你处理大量的相同任务。
Keith Axline是FinSight公司的开发人员,他此前供职于WIRED。Axline表示:“他们让Chat Client成为了办公室的操作系统。你可以通过他完成许多重复工作,而且是通过Slack本身,而无需通过机器人。”
在GitHub内部,他们已经将Hubot拟人化了,赋予了他自己的个性。这家公司的员工非常喜欢向Hubot提问题。而且他们喜欢编写Javascript代码(毕竟他们大部分都是技术人员)。我认为,Hubot还将会走向更大的市场,被更多的人所接受。无论未来如何发展,Sma Lambert也许不久之后就会发现,假设他想要离开GitHub,市场上许多其他的公司都在用和GitHub一样的方式进行工作,很多很多公司都将会接受这种工作方式。