一個程式設計師的戰鬥:線上客服系統,一年30個版本更新,收穫首批忠實使用者

曹旭升(sheng.c)發表於2022-03-22

就像沒有一個畫匠不想辦一場屬於自己的畫展,沒有一個歌者不想寫一首自己的歌。 也許只有為數不多的聽眾,但是當他懷疑自己時,還是會有忠實的聽眾支援他繼續走下去。

我在業餘時間開發維護了一款線上客服系統,一是興趣使然,另一方面,正如上文。 我想如果有一天我離開了這個行業,我也會繼續維護更新,作為我曾經做過這個行業的一個見證。

也許,我可以休息一段時間了

本文記錄我這一年主要的版本更新情況和心路歷程。

經過這一年的戰鬥,客服系統終於穩定了下來,基本功能滿足了使用者的需要,穩定性得到了充足的驗證,針對各種複雜網路都有了很好的相容性。

可是最近因為疫情對生活的影響,以及作為一個35歲的打工人,工作中的種種煩心事,越來越難以沉靜下來繼續客服系統下一步的規劃和開發。

很想好好休息一段時間,希望客服系統能夠為使用者提供一些價值吧,就像開頭所說的:如果有一天我離開了這個行業,作為我曾經做過這個行業的一個見證。


最新免費版本下載:https://kf.shengxunwei.com

2021年3月28日,首個版本釋出

回望一年前的第1個版本,稱之為“簡陋”毫不為過,僅僅實現了基本的網站訪客監測和會話功能,以及基礎的歷史記錄管理、留言管理功能。

更不提首個版本中,對於訊息處理的各種 BUG,因為我在開發環境中無法完全模擬使用者的真實場景,以至首個使用者在上線使用之後,頻繁出現各種不穩定的情況,無數次救火,花了超過一個月的時間,才勉強穩定下來,正常應對日常使用,在這一過程中,第1個使用者給予了巨大的耐心和理解,如果沒有第1個使用者的支援,產品基本穩定不知還要走多少彎路。

2021年5月16日,釋出支援 Linux 的版本

服務端程式是用 .net core 編寫的,原生支援 Linux ,但在此之前,我沒有在 Linux 環境下完整部署驗證,也沒有編寫如何在 Linux 上部署的說明書。

直到 5 月份我遇到了另1個熱心的使用者,幫助我完成了在 Linux 環境上的全過程部署,測試,並向我反饋了遇到的問題,還告訴了我應該採用的處理方法。

在我徹底完成對 Linux 版本相容性的處理後,釋出了新的版本,並編寫了在 Linux 上安裝部署的詳細說明書。

2021年6月5日,釋出自動化配置工具

在安裝部署客服系統時,一直需要手工修改一些配置檔案,對程式設計師來說似乎並不是很難,但我遇到了越來越多的普通使用者,一直使用記事本修改配置檔案就顯得繁瑣了,於是我做了一個小工具,讓使用者能夠很容易的理解各項配置,並一次性寫入對應的目錄。

我把這個小工具與新版本一併釋出,在此之後,聯絡我詢問如何配置的使用者少了許多,我想他們能夠自行完成安裝配置了。

2021年7月4日,釋出支援 MySQL 資料庫的版本

隨時使用者越來越多,特別是使用 Linux 作為伺服器的使用者越來越多,希望能夠支援 MySQL 資料庫的反饋意見就像雪花一樣飛了過來,堆積在我的郵箱裡、QQ上。

在此之前,系統只支援 SQL Server,雖然其也有 Linux 版本,但是安裝使用和大多數使用者的習慣有所差異。

於是我在2021年7月4日,正式釋出了新版本,實現了對 SQL Server 和 MySQL 的同時支援,可以在一套程式中通過切換配置檔案,切換所要使用的資料庫引擎。

這個版本似乎像是一個里程碑,越來越的使用者採用了我的客服系統,大部分使用了 Linux + MySQL 的方案,這件事也讓我意識到開源世界的強大。

2021-10-13,生日當天,我沒有閒著,釋出了高併發穩定版

印象中在2021年8月的時候,有1個使用者聯絡我,反饋了一些使用過程中的不穩定現象,經過和對方技術的溝通協調,我震驚了:僅僅使用了我的客服系統兩三個月,他們的資料庫中就已經儲存了超過100萬條聊天記錄!使用強度之大遠遠超過我的想像,我自己都從來沒有驗證過幾百個訪客同時線上聊天會是什麼場景,他們做到了。

之所以與我聯絡,還是出現了一些穩定性的故障,如偶發的掉線或者訊息中斷,不能收到新訊息。

這個問題我和他們對接的時間可能長達兩個月左右,問題實在是很難定位,大流量、大併發、還是偶發,極難重現。問題定位和修復的過程很艱難。

好在,趕在10月13日生日那天,更新了版本,完善的解決了問題。

2022年1月8日,實現多國語言自動翻譯

大約是2021年下半年,陸續有使用者聯絡我,表示從事外貿行業,希望客服系統能夠實現客服與訪客之間雙向的實時自動翻譯。

一開始我想的比較複雜,拖著沒做這個功能,後來詢問的朋友越來越多,我仔細調研了一下這個需求,發現通過公有云上的介面實現起來,也不復雜,那段時間工作很忙,一直拖到了年底,才算把這件事完成,在2022年1月8日,正式釋出了新版。

2022年3月13日,在 TCP 通訊的基礎上,實現純 HTTP 通訊

隨時使用者越來越多,時常有使用者將伺服器部署在香港或其它海外地區,從中國大陸登入客服端時,會出現容易掉線的情況。

我調查之後發現在香港不管是阿里、亞馬遜、微軟都無法向中國大陸提供穩定的長連線,且網路一般都比較慢,而一些專門做香港伺服器的二線服務商,反而有可能可以通過專線的方式提供更穩定和更高速的連線。

一些使用者重新選擇服務商後問題得以解決,但仍然有一些使用者,因為各種網路問題,客服端無法維持長連線,為了徹底解決這個問題,服務好每一個使用者,我對資料傳輸層進行了大的改造,通過純 HTTP 的方式實現了原來的 TCP/IP 報文傳輸。

幾天前,我釋出了最新版本,可以在登入畫面選擇純HTTP通訊模式了。第一時間,我將這個版本推送給了所有的使用者。

也許,可以休息一段時間了

相關文章