From Slack to Mattermost — COSCUP 轉換溝通工具的紀錄 (2)

Po-chiang "Bob" Chao
Words
Published in
7 min readAug 25, 2020

--

上一篇大概把轉換前的準備工作描述了點,這篇則是把大家帶進來「以後」所做的事。

額外工具探索

個人畢竟是 Slack 的長期使用者,看社內各種花式擺弄 Slack 也學過好幾招。先前在 COSCUP 就盡可能地使用各種 bot 跟 trigger 協助議程組運作,而轉移陣地是一定也要再面對一次整合難題。幾個比較簡單的需求 Mattermost 基本都有社群提供:

平心而論這個生態系是不若 Slack 豐富、當中許多品質也差一點
  • Remind: 替代 /remind 指令,但說實在沒有 Slack 的版本好用,導致我後來很少用
  • 視訊通話: 裝了 Jitsi Meet 的 plugin,不過主機是用 Jitsi Meet 的 demo 機而不是自己架就是
  • Trello: 這個… 社群是有提供,但不符合需求,我裝了以後又移除了。最後是球魚幫忙寫了一個、而我另外用工具兜了一個。後面再提。
  • 非同步式的 Standup tool: Standup Raven 超讚!
  • 同步 Telegram Channel: MatterBridge 蠻厲害的,支援很多軟體且可以多對多
  • 投票: 有 MatterPoll 可以用,不過其實按數字 reaction 已經可以符合很多需求了就是

另外有幾個就得要自己想辦法:

  • Slackbot 的回應: 我很愛用 Slackbot 的「關鍵字回應」功能設定一些例如「檢討文件網址」、「統編」等等的資料,一有人說出關鍵字就會回應正確的資訊。但目前 Mattermost 好像沒有這類玩意?球魚寫了一個版本,不過每句都要一個 http 來回、後來沒有正式推給大家玩。這玩意最好還是一個可以直接安裝在 Mattermost 裡、local 直接抓句子關鍵字並且回應的 bot,很可惜團隊裡沒有人擅長 Go。
教壞機器人
  • 每週狀況: 除了 Trello 逐篇更新外,我另外弄了個每週回顧,讓大家知道什麼事情還沒做完。這個我是靠 Integromat 拼湊出來的
  • Media scan: 我之前有設定固定掃網路上的關鍵字並且丟到某個頻道回報,這功能現在是可以靠 IFTTT 的 Webhook 來做
當你凝視著大會,大會也在凝視著你

我把發的 Webhook template 記錄如下歡迎自行取用(CC0… 一行而已是要講什麼 copyright…)。個人衷心覺得 RegExp 跟 Webhook 是現代大眾必須要理解的基礎資訊素養,可以在沒有人寫程式的情況下幫上你太多忙。

{"username": "Twitter","icon_url": "ICONURL","text": " {{UserName}} [tweeted]( {{LinkToTweet}}):\n> {{Text}}"}

踩到的雷

大致上使用的過程裡踩到三個雷,都還算好解決:

搜尋

本來架設時使用 MariaDB,然後就立刻發現搜尋不到中文詞彙 — 這問題超大的啊!翻查一下發現這其實在官方文件裡就有說明,不過坎坷的是 MariaDB 目前還不支援官方文件所提到的全文切詞外掛,因此你們現在看到的 COSCUP Mattermost 其實是重新改用 MySQL(Percona Server 8)再來一次的版本…

大光另外為中文搜尋調整了三項設定,我直接 quote 他的原話:

  • ft_min_word_len = 1: 要產生全文搜尋 INDEX 的詞彙長度大小,但中文單字可能就成詞所以設成 1。只對 MyISAM Engine 有影響,很少有機會用到了
  • innodb_ft_min_token_size = 1: 同上,只對 InnoDB Engine 有影響,Mattermost 用的是這個
  • ngram_token_size = 1: 用來切詞的長度大小,中文單字可能就成詞,設成 1

通知訊息

預設情況下,Mattermost 的 App 發送通知訊息時只會告訴你「誰留了言」,但不會顯示內容。這跟大部分的軟體邏輯較為不同,CrBoy 發現其實是可以在「系統控制台 > 站台設定 > 通知」裡調整:

時不時停機

由於一開始用的是 AWS 的免費方案,進入六月以後籌備的夥伴越來越密集使用,主機也就時有不穩跡象。跟大光討論並且佐以腹黒い茶所提供的經驗後,我們在七月底到八月中旬之間決定把主機開大,砸錢解決問題。

結果默默踩到另一件事情是機器開大後不慎改了 IP,造成大家一時連不上 XD 還好 Domain name 重新設一下就好。

意外的好處

Mattermost 跟 Telegram 一樣可以在訊息裡用 hashtag 還挺不錯的,我便設定了幾個 hashtag 用來搜集資料:

要列入文件、其他地方對於疫情的應對參考、檢討。Slack 真的應該有這功能。

那麼使用的狀況如何?

整體來說,我個人不太懷念 Slack,而使用上沒有特別聽到人喊了什麼嚴重問題,不過還是來看數據說話:

  • 發文量半年以來 23212:
    把 Slack 以前的資料調出來看,大概二月到八月就差不多都是這個數,總量的增減可能工作人員總數的影響更大,所以至少跟 Slack 相較,團隊成員並沒有「更不願意」使用 Mattermost
  • 私訊/私頻比 39.7%:
    Slack 的資料顯示 2015–2019 大概每年都是 5x%,這個算有大幅降低,以我個人期待來說算是挺不錯的。原因就沒細查了
  • 最高單日活躍人數 125,佔年度工作人員數的 105%:
    這就是近三年來的最高紀錄了(去年 98%、前年 88%),單看這點來說導入挺成功的

感謝

這次的系統導入我個人覺得算是很順利,當然也是要先歸功於 Mattermost 原本就是設計來作為 Slack 的競爭者、大家學習起來不算難度太高。另外關鍵的幾組人馬:

  • Petercpg: 若沒有人答應協助,我應該會直接放棄這個想法(事實上… 今年也有找不到人協助架設線上會議系統,宣告失敗的例子)。大光不但答應了還積極地協助監控各項問題、進行系統升級,真是非常感謝。
  • Singing/總召組: 系統導入若沒有決心會難上加難,社群協調人打開始就力挺很重要。
  • Toomore, ballfish: 各方面調整機器人與 Mattermost
  • CrBoy, Denny Huang, 腹黒い茶: 提供網路設定上的協助與建議

如果你也正考慮使用 Mattermost 替代 Slack,希望這兩篇文章稍稍有點幫助。

--

--