58速運技術負責人沈劍(攝影/洪政偉)

來自中國最大貨運叫車服務的58速運,目前擁有超過100萬名司機註冊,每天同時有30萬個司機上線搶單,服務中國100多座城市內送貨,平均系統單日最高得處理40萬筆用戶訂單,每個叫車用戶下單更要在1秒內完成,30秒內附近上百位司機就要能夠收到訂單,以便於快速接單及搶單。58速運原來是58到家旗下核心業務之一,今年8月,58到家將58速運與香港貨運叫車GoGoVan在中國的快狗速運合併成立新公司,一舉成為中國城市最大規模的貨運叫車平臺,未來,甚至要能夠應付百萬人次的線上用戶下單和司機搶單。要滿足單日40萬張訂單,來安排百萬名司機的調度,是這家3年前才剛成立不久的58速運IT團隊,當前所面對的物流O2O考驗。

但這卻不是未來最大的IT挑戰,58速運技術負責人沈劍今年8月來臺在Modern Web大會中透露,物流O2O未來真正的挑戰是「未來1萬倍規模的擴充,」系統架構如何調整,才能夠扛得住,用戶數量、數據量、吞吐量及訪問量都暴增的衝擊,這得要靠IT架構演進及優化來實踐。

O2O服務IT架構真正考驗,得支撐未來1萬倍規模擴充

沈劍曾任2年的百度高級工程師,負責過後端即時通訊系統開發,後來才進到58集團,也擔任過58同城高級架構師,58到家高級技術總監,更曾實際參與過打造出能支撐10億流量超大型IT架構,因此,對於O2O業務發展階段,需要用到什麼類型的技術,會碰到哪些難題,比誰都還清楚。

他不只是名資深架構師,平時還會將自己技術經驗撰寫成文章,甚至在微信還成立一個「架構師之路」的個人技術分享專區,將自己成為架構師16年累積的架構心得寫成文章,光是去年整年就寫了100篇技術文章,目前更有超過10萬人訂閱每日觀看。

沈劍明白點出,現代架構師已經和傳統架構師的角色不同,他表示,傳統的架構師多半以業務架構設計為主,但現代架構師,如O2O平臺的架構師等,不只是要對業務非常的熟悉和了解,更多的工作在於,「得要事先考慮到當流量、數據量、訪問量,成長到為原先規模的1萬倍時,現有系統架構設計,有沒有辦法撐得住,」例如在一個聊天室裡,原為人數只有50人,發布訊息很容易,但如果增加到50萬人時,系統能不能在短時間內,將訊息同步發送給全部的人,這就變成是一個很大的挑戰,也是不同於傳統,現代架構師需要解決的難題。

沈劍也以58速運的O2O用車服務為例,來說明當O2O業務迅速成長面臨的嚴峻挑戰。58速運的O2O用車服務,其實就是一個貨運版Uber,讓這些有閒置汽車的人,直接能在他們建立的媒合平臺上接單,提供民眾搬家及送貨服務,並將找車、發貨、報價、支付等物流環節,全部改由線上操作,這些服務包括了司機查找、用戶下單、司機搶單,以及記錄里程等,讓叫車用戶只要透過手機App就能預定司機幫忙送貨到指定地點,並完成付款動作。

然而,要在競爭激烈的中國物流O2O行業生存,隨時都得跟時間賽跑,58速運也不例外。沈劍表示, 2014年成立時,58速運在產品或服務上,追求的是要快速實現,先上線先服務再說,「為了要跟競爭者搶時間,早期最大的成本是時間成本,任何能用錢解決的問題都不是技術問題」,所以在架構設計上相較簡單,只要Web層和資料庫部署完成後就先上線,「架構設計,以業務優先,技術面則先實現再優化。」他說。

好的架構設計,不應是設計出來,而是演進而來

當業務量開始快速增長,初期用的IT架構,就會開始遇到各種瓶頸,例如一開始,58速運司機上線人數還不多時,對於系統負荷還不會太大,但是後來,業務規模迅速成長,每天最多有30萬名司機同時上線,數量是原來的1,000倍,對於資料庫的寫入就會造成衝擊,例如早期平均每2秒會回傳一次司機目前所在位置的經緯度座標資訊,以便於系統在用戶下訂單和決定派單司機時,幫助用戶快速查找司機,並將下單完成後的訂單,同時推播給附近司機來搶單。

而當送貨的司機人數,從原來數百名到數千名,爆增到30萬人。當30萬個司機同時上線時,也就意味著,存放司機位置資訊的資料庫,每秒至少要寫入15萬次,不只增加資料庫的寫入負擔,也會導致查詢效率低,無法在短時間內完成訂單推送,而影響到用戶下單意願。這也就成為了58速運IT架構的挑戰,如何利用優化IT架構,讓用戶能夠在短時間內下單叫車,並將訂單準確推播給附近上百名司機搶單。「這些問題不是只有用車O2O業務會碰到,其他O2O業務也會遇到相同的難題。」他說。

而要如何因應O2O業務量成長,來解決IT架構所面臨到的瓶頸,沈劍認為,最好的作法,就是要靠IT架構演進及優化來實踐。在架構設計上,沈劍也有一套獨特見解。他認為:「好的O2O架構設計不是設計出來,而是演進而來,」沈劍表示,所有的IT架構的演進,其實都和業務發展息息相關,不同的業務問題對應的架構設計也有所不同,如聊天室或電商服務等,但不論處理的是何種業務難題,「所有與業務脫節的架構設計都是耍流氓。」他說,即便是同一個業務問題,也會因為對應不同的業務發展階段,例如用戶量或數據量的不同,而需要採用不同的架構。

沈劍也觀察到,有部分的架構師,在設計公司內部的IT架構時,有時會參考其他公司的架構來設計,但他並不認同這種作法。他解釋,IT架構師該做的,應該是先分析自己的架構特性是什麼,接下來,再依據現階段業務的複雜程度,例如用戶人數規模、數據量、吞吐量及訪問量多寡等,來以此決定系統架構的演進,及優化調整,才是真正解決之道。

"好的O2O架構設計不是設計出來,而是演進而來,而所有脫離業務的架構都是耍流氓。"

── 58速運技術負責人 沈劍

攝影/洪政偉

架構演進優化的關鍵,在於找對「共通」痛點

如何針對不同業務發展階段來優化IT架構,沈劍的答案很簡短,「找出通用的痛點。」他表示,將這些通用的痛點找出來以後,利用下層統一解決,架構就會跟著演進。

沈劍也以旗下「58同城」分類黃頁網站為例,這是一個以提供訊息分類服務為主的中國線上服務平臺,58同城到現在成立10多年,架構經過非常多版本演進和迭代,他說,早期58同城的架構設計,著重在系統架構的快速迭代,以滿足當時業務快速擴張的需求,而當服務上線一段時間後,後來也發現到一些共通的問題點,例如當自家的工程師在利用資料庫存取元件(DAO)方式處理SQL語句,來進行業務程式開發時,經常容易出錯,後來找到問題原因,增加了一個DAO資料訪問層來解決,也使得原先的架構,就跟著演進了。

到了下一個階段,當用戶數逐漸攀升,業務規模越來越大時,這時的通用痛點,變成是系統耦合的問題,因為所有的服務數據都存放在同一個資料庫或伺服器上,當一臺機器設備出問題後,彼此就會相互影響,容易導致全部服務都停擺而無法使用,後來,也針對資料庫進行垂直拆分,將不同58業務拆開到不同的系統,及伺服器上來進行處理,以確保當其中一個系統出問題,也不會影響到其他服務運作。

隨著業務越來越複雜,沈劍表示,分層設計也變成是IT架構設計的常態,可以有效解決一些通用的困難,像是在Web層和資料庫之間,可以抽象出一個服務層,來取代原來Web伺服器直接存取資料庫的作法,利用Web服務化的方式,也讓Web層的業務邏輯開發變更快,而且當數據量、用戶量更進一步向上提升後,在架構設計上,也得考慮到維運、監控、服務管理等問題,可以將其他子系統抽象化設計,來逐一解決這些難題。「架構師雖然很難知道10年後的架構會是什麼,但至少能提前多想一步,才能跟上業務快速發展腳步。」

另以58速運來說,沈劍表示,至今58速運也歷經幾次的IT架構的演進,例如線上司機數量越來越多,資料庫吞吐量不足以支撐司機位置數據的寫入時,則先採取增加快取,並透過異步方式,將儲存在快取裡的經緯度位置資料,每隔一段時間再寫入資料庫,以分攤資料庫的寫入壓力;即使是當遇到資料量爆增,而無法將所有數據放置於同一個資料庫時,也採用了水平切分架構,利用增加實例的方式,來線性擴充資料庫的性能,同時針對重要的系統也加入備援機制,以確保系統高可用性。另外,還透過業務解耦方式,將用戶下單和司機派單過程,拆分成兩個無關的過程,並建立一個執行緒池(Thread Pool),利用佇列方式,來同時進行多個司機派單任務的推播,以縮短訂單推送時間,後來也新增加一個服務層,以因應越來越複雜的業務特性。「這些架構設計常用的優化方式和架構思路,不只能用在物流O2O業務,也同樣適用在其他O2O業務上。」他表示。

現代架構師須具備π型專業能力

成為一名架構師,應具備什麼能力?沈劍也以π型人才來形容,需要具備有技術的廣度(涵蓋Web、服務、資料庫、到快取、大數據及算法分析等)、特定專業領域的深度(如資料庫等),以及非常熟悉和了解業務,才能夠依據業務發展的不同階段調整,來優化架構,不過他也坦言,這些條件都要具備齊全,其實並不容易,常常需要仰賴多年站在第一線,實際參與系統開發、解決架構問題,及與業務結合的過程中,來逐步累積各方面的經驗,才能夠具備這些能力的要求。

為了讓新進架構師可以更快熟悉公司內部的業務,他觀察到,有些獨自設有IT架構部門的公司,有時會直接將架構師,短期派駐到業務部門,來解決當前的業務問題,但沈劍相當反對這個作法,「架構師不能與業務脫離,」他表示,在技術組織架構上,不應該是成立一個集中式的架構部門,來掌控公司所有架構師資源,而是不同業務部門都需要有屬於自己的架構師,「這也是現在58到家採取的作法,如速運會有速運的架構師,平臺也有自己的架構師,可以針對不同業務來設計架構。」他說。

對於想要成為架構師的第一步,沈劍則建議,最好的方式,還是在實戰中來養成,透過不斷接觸到不同業務的難點,碰到問題解決問題,只要持之以恆下去,就算踏出了成功的一步,例如,原來就是後端工程師,已經在負責某個後端系統,不論是Web層、服務層或是資料庫相關,接下來只要繼續維持,碰到問題,然後將問題解決,並且隨著碰觸到的業務越多元,解決不同類型的難題,隨著時間磨練,自然而然就會具備有架構師的能力,除此之外,還可以透過相關書籍來學習新技術,或是參與技術大會交流分享,來幫助自己成長。

沈劍表示,58速運雖然才剛成立沒多久,但目前單日最高擁有40萬張訂單,隨著業務量的迅速成長,他坦言,現有的架構,已經跟不上目前業務的快速發展,所以接下來,也得要依據現有數據量、用戶量,及訪問量成長規模,來持續進行架構演進及優化,甚至未來更要能夠支撐1萬倍規模的擴充,系統架構如何調整,才能夠扛得住,這也是58速運接下來的挑戰。

 CTO小檔案 

沈劍

58速運技術負責人

學歷:華中科技大學計算機碩士

經歷:曾擔任百度高級工程師,負責後端系統開發,2011年加入58同城後,也曾任高級架構師,負責過即時通訊、推薦系統開發及支付優化,2015年也在旗下58到家擔任高級技術總監,率領團隊優化後端平臺、架構及基礎服務,也曾擔任技術委員會主席,今年7月接掌58速運技術負責人

 公司檔案 

58速運

● 總部:中國北京市

● 成立時間:2014年

● 主要業務:提供車用O2O業務為主的貨運及搬家服務

● 網址:suyun.daojia.com

● 創辦人:陳小華

● 員工數:約1,000人

 公司大事紀 

● 2014年:58到家旗下成立58速運業務、推出O2O貨運叫車App

● 2015年:58到家速運更名為58速運,布局城市貨運派送市場

● 2017年:與香港貨運叫車GoGoVan在中國的快狗速運整併,成立新公司,中文名稱沿用58速運


Advertisement

更多 iThome相關內容