【APP開發】Hubot:將成為全世界初創企業最刻苦的「員工」
2015/10/27

【APP開發】Hubot:將成為全世界初創企業最刻苦的「員工」

【APP開發】Hubot:將成為全世界初創企業最刻苦的「員工」

當你走進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一樣的方式進行工作,很多很多公司都將會接受這種工作方式。