摘要: ## 初識slack幾年前開始創業,組建團隊的第一天,我們首先討論和考慮的不是高屋建瓴的商務場景和目標,而是整個團隊的協同和溝通的問題。選擇使用什麼作為團隊的IM,選擇什麼作為BUG的記錄,選擇什麼作為需求的追蹤,這些基礎設施的存在無形中提高了整個團隊的生產力,許諾了協作的順暢和流程。由於團隊的成員有些是外國人,而在國外GEEK圈中風光無限的SLACK也就順理成章的被老外們安利到了團隊中。
初識slack
幾年前開始創業,組建團隊的第一天,我們首先討論和考慮的不是高屋建瓴的商務場景和目標,而是整個團隊的協同和溝通的問題。選擇使用什麼作為團隊的IM,選擇什麼作為BUG的記錄,選擇什麼作為需求的追蹤,這些基礎設施的存在無形中提高了整個團隊的生產力,許諾了協作的順暢和流程。由於團隊的成員有些是外國人,而在國外GEEK圈中風光無限的SLACK也就順理成章的被老外們安利到了團隊中。
那麼slack是個什麼東西呢。
Slack是交談群組 +大規模工具整合 +檔案整合 +統一搜尋。截至2014年底,Slack已經整合了電子郵件、簡訊、Google Drives、Twitter、Trello、Asana、GitHub等 65種工具和服務,把可以把各種分散化的企業溝通和協作暫留到一起。
slack不僅僅是一個交談的IM工具,在團隊中的他的職責其他是工具整合,slack支援非常豐富的系統集成。
雖然後來離開了團隊,但是slack的使用習慣還是保留到了現在。關於slack的workflow,大家可以參考這篇本文。
關於觸發程序
容器服務作為阿裡雲的CaaS層的產品,與傳統的PaaS產品不同,容器服務其他的側重在提供容器集群的管理能力以及與三方系統的整合能力。對於三方整合,最常見的一種方式就是觸發程序,比如github提供了webhook機制可以在代碼提交的時候通知其他的系統,這種簡單快捷的方式在持續整合的系統中非常常見。
容服務提供了重新部署與自動擴容擴縮容兩種觸發程序,如下:
可以簡單的使用GET或者POST要求的方式叫用這兩個位址,從而達到重新部署與擴縮容的目的。容器服務本身提供了集群等級的openapi,套用等級的相容docker的api,那麼為什麼還需要提供這種使用curl、wget甚至瀏覽器存取都可以叫用的API。
這就要從這幾個API的尋找講起,阿裡雲大部分的產品是IaaS的產品,這些產品只要將自身提供的能力做到效能、易用性以及不可部分完成的作業功能的更優即可。但是容器服務是CaaS層的產品,是對IaaS層的更進階的抽象,我們需要關心不只只是容器如何部署,其他是和開發如何結合,如何符合大家的程式設計型號或者調整大家的程式設計型號。而大家的程式設計型號又各不相同,我們不應該用PaaS的方式去規約開發人員的使用習慣以及節流自身系統的能力,更合理的做法是提供不可部分完成的作業的功能,可以整合現有的系統與程式設計型號。而最簡單的方式就是觸發程序。
容器服務的slack整合
那麼是否有能力讓slack整合容器服務,通過slack來運維容器呢。其實用slack做運維並非是一個新潮的詞彙,GEEK們用slack在aws上管理雲資源,做持續整合,大部分依賴slack的一個令人說讚的功能,slack機器人。
下面我們從0部署一個可以運維容器服務的slack機器人。
步驟0建立slack的team與機器人
首先要學會使用slack的準系統,然後學會建立一個slack機器人並取得token,這個步驟在本文中就不過多的贅述了。
步驟1部署套用並建立觸發程序
在容器服務上部署一個demo的套用,並建立觸發程序。
2048:
image: 'blackicebird/2048:latest'
labels:
aliyun.scale: '1'
aliyun.routing.port_80: 2048
restart: always
點選套用詳情網頁的建立觸發程序,即可建立自動擴容的觸發程序或者重新部署的觸發程序。
步驟2部署slackrobot
newtown:
image: registry.aliyuncs.com/ringtail/newtwon:latest
restart: always
environment:
- debug=true
- key=<如果需要圖靈交談機器人,需填寫此項,此項為圖靈機器人的appkey>
- token=<slack機器人的token>
其中key是圖靈機器人的key,這個值選填,如果不填寫,請移除key,圖靈機器人只是為了增加這個項目的趣味性。token是slackbot的token,您可以通過slack的team管理組件找到。
附錄:
圖靈機器人:http://www.tuling123.com/
步驟3可以玩耍了
在這個slackrobot中包含了兩個基本模組,記憶模組與容器服務模組。指令的格式如下
記憶模組:
記住 key value//設定key,如果在別的模組使用,可以採用$key的方式
記住 key//追蹤 key
記住全部//清單全部key
容器服務模組:
容器服務觸發 <觸發程序位址>// curl url,建議用<>括起來網址,因為回顯到slack的時候回自動觸發。
下面我們利用slack robot進行一次簡單的運維 -- 容器擴容
主題指令如下
記住 2048觸發程序 <你的觸發程序位址>
記住 2048觸發程序
容器服務觸發 $2048觸發程序
輸入“容器服務觸發$2048觸發程序的後”,查看容器的服務清單,可以發現容器已經處在伸縮中了。
稍後可以發現容器已經擴容完成,歡迎大家探究其他的好玩的方式。
項目倉庫
紐敦的倉庫:https://github.com/ringtail/newtwon (出於對newton的尊敬改用newtown)
相關產品:
- 容器服務(Docker)
- 阿裡雲機器學習服務
- 阿裡雲辦公
- 雲端服務器ECS