Operable.io公司(創建了DevOps協作工具),近日宣布發布Cog ——一個新的ChatOps平臺,該平臺提供了訪問控制,類Unix系統流水線命令以及審計日志功能。ChatOps是一個幫助包括質量保障(QA)、開發以及運營人員在內的團隊成員將溝通、工具和過程整合在一起的協作模型。
Cog包含一個訪問控制框架,允許在組、用戶以及角色中進行權限管理。Cog擁有更細粒度的權限控制。例如,除了能夠支持“這個組的用戶可以運行該命令”,Cog還允許類似這樣的情況“當某些選項和參數都包含在該命令行時,這個組的用戶可以運行該命令”。
GitHub創造了第一個ChatOps機器人。另外兩個是Errbot和Lita,Errbot是基于Python編寫的,Lita是基于Ruby編寫的。InfoQ采訪了Operable.io聯合創始人兼CEO Mark Imbriaco,問到Cog和其他平臺有什么不同:
我們最初版本的第一個目標是消除使用ChatOps的障礙。主要是圍繞安全性和合規性。其次,我們想建立一個像Unix命令行一樣適應力強的共享命令行。
大多數ChatOps軟件提供了命令行界面,允許團隊成員進行操作,比如顯示特定指標的圖表或推進Git分支變為主干。
在傳統的企業環境中,DevOps的采納通常是較慢的。在這種環境下,通過一個聊天室來推動編譯到生產的整個流程,可能是難以接受的。企業對于權限控制和可靠性也非常關注。Imbriaco說,企業對DevOps的興趣正在逐步增加,但是現有的工具并不能滿足企業的需求。
Cog的架構建立在Relays上,Relays為Cog命令提供執行環境。Cog使用PostgreSQL數據庫進行持久化,采用命令行工具與系統進行交互。Cog基于MQTT消息總線把其他各組件粘合在一起。MQTT是一個輕量級協議,使用TCP/IP提供有限的網絡帶寬連接。它基于發布-訂閱消息模式,因此需要一個代理將消息分發給所有訂閱者。
一旦團隊開始使用chatops軟件,便會在日常工作中依賴它,因此軟件的可靠性是非常重要的。GitHub最近的故障報告中提到,他們的chatops服務器暫時的不可用導致運維團隊較慢的響應。Cog設置中擁有多個Relay實例以支持多并發和高可用,然而,PostgreSQL數據庫仍然存在單點故障。Imbriaco說,還有更多的工作要做,以使Cog更可靠。尤其針對PostgreSQL,他建議:
用戶遵循最佳實踐構建高可用的Postgres集群。在這方面有很多現有的技術。例如WAL-e持續歸檔工具(WAL-e continuous archival tooling),Heroku用它來構建他們很好的PostgreSQL故障轉移支持。
Cog以類Unix系統一樣的方式支持流水線命令。Imbriaco說,Unix哲學中每個命令“只關注一個目標并把它做好”然后把它們鏈接在一起順序執行處理,在Cog中已經采用了這一哲學,“同時Cog支持訪問控制和審計”。
Cog也與Slack和HipChat完成了集成。Cog軟件仍處于內部測試階段,源碼可以在GitHub上獲取。