代其鋒:如何用技術啃下ToB業務的硬骨頭

對比中美傳統企業級服務公司,用友、東軟、金蝶三家老牌企業市場服務商合計體量僅142億美元,與美國巨頭 Oracle、SAP、Salsforce 合計4206億美元市值差距巨大。而最近有個說法,中國互聯網的新增長點是 ToB 業務。ToB 產品對靈活性、低耦合、高複用要求比較高。客戶提訴求,服務方用積木盒子模塊組裝一個高達給客戶使用。那麼如何去打造 ToB 業務平臺呢?

帶着以上問題,我們對ArchSummit深圳全球架構師峯會2019專題講師、百分點資深架構師代其鋒老師進行採訪,請他分享這些年在 ToB 業務開發中的技術經驗積累。代老師擁有10 餘年企業級服務、互聯網領域從業經驗,現主要在百分點負責海外國家級政府項目的技術架構和研發團隊管理。以下爲採訪全文。

InfoQ:您現在主要負責海外國家級政府項目的技術架構,一般收到項目需求的時候,如何去拆分需求,如何規劃並按照客戶需求去調整/優化,有沒有具體的流程?

代其鋒:海外的需求是複雜多變的,不同的客戶對需求的把控程度存在巨大差異,大部分客戶並不能完整的表達自己的述求。如果想要比較好的應對複雜需求的變化,首先需要考慮一個完善的需求提交、分析、確認,到系統設計、研發、實現等組織流程。

項目組一般有兩個非常重要的角色,一個是業務負責人,一個是技術負責人,其中業務負責人主要把控項目的需求,整個需求從提出到落地可分爲兩大階段,一是需求確認,二是需求實現。

需求確認階段,業務負責人會將複雜需求分解給業務組各個業務同事,並在需求明確後,拉技術負責人介入,提前評估技術可行性和規避技術實現風險,最終確認需求。

需求實現階段,將需求確認階段產出的需求規格說明書,交由產品同事進行產品、UI設計,評審通過後再交由技術組進行系統概要設計、詳細設計,並最終編碼、測試,交付現場。需求變更時,也是採用上述組織流程來落地實現。

沒有流程必然會導致每個項目執行的套路、質量各異,爲了有效的執行海外項目,提高團隊的作戰效率,海外部門針對項目的開發流程可謂是積累了豐富的經驗,走了不少彎路,大家一起迭代的梳理出了多個版本的流程,目前我們的流程已經相對比較簡單可執行,包括了項目啓動階段->需求確認階段->系統開發/里程碑驗收階段->安裝部署->最終驗收階段,對每個階段的負責人,以及相應的產出都進行了嚴格的定義;同時,我們也對產出的文檔有嚴格的質量規範,項目組會出具相應的模板,避免大家在文檔的形式和格式上耽誤太多時間。

InfoQ:在採用“微服務+運維平臺+技術中臺” 解決思路解決客戶訴求之前,百分點的解決方案經歷過哪些迭代版本?

代其鋒:百分點在做 ToB 服務之前,一直是爲客戶提供 SaaS 的推薦服務,在大數據平臺、算法方面已經有了一定積累,但是這些積累都是和我們內部的系統強綁定,從穩定性和靈活性方面來看都達不到交付的要求。

在 ToB 方面,技術路線大致可以分爲如下幾個階段:

1)對已有產品進行改造,業務系統的開發語言各異,沒有統一的規範標準;
2)統一技術棧爲 Java,開始採用微服務開發,部署流程逐漸規範化;
3)爲了提高開發和交付效率,打造自己的數據中臺、業務中臺、雲平臺;沉澱出了 "大數據操作系統”、“商業智能” 等數據中臺產品,以及 “動態知識圖譜”、“統一認證中心”、“Sextant” 等業務中臺及雲平臺系統。

InfoQ:“微服務+運維平臺+技術中臺” 的具體技術架構是如何設計的?(請用架構圖展示出來)各個平臺之間是如何協作的?

代其鋒:經過多年的發展,百分點在業界的標籤是一家大數據+人工智能解決方案的公司,所以我們的技術架構是圍繞數據和智能來設計的。

下面分別介紹我們的微服務、運維平臺以及技術中臺。

微服務我們採用了 SpringCloud 技術棧,衆所周知,SpringCloud 技術棧大而全,但很多用戶,並不需要 SpringCloud 技術棧的全家桶,同時,不同項目有着自己的開發集成要求和歷史遺留系統,爲了使傳統軟件系統快速升級爲微服務架構,利用微服務特性,我們選擇了SpringCloud 技術棧的 Eureka(服務註冊組件),Zuul(統一網關組件),Feign(聲明式、模板化的HTTP客戶端)作爲基礎組件。

基於 SpringCloud 基礎組件,我們自研了配置管理服務ACM服務(兼容 SpringCloud Config client),在 ACM 服務中,內置了MySQL、Kafka 等基礎組件的配置,方便使用。同時,我們將常見的權限管理,SSO 等功能集成到 Zuul 網關中,提高組件複用效率,通過提供整套微服務架構技術選型,集成開發規範,可以極大的提高微服務開發的效率。

在運維方面,我們採用了 Docker+K8s 技術棧,爲了更好的管理服務,提高 DevOps 的效率以及資源的利用率,我們開發了自己的雲平臺-Sextant,通過雲平臺,我們打通了 DevOps 整個閉環,我們採用 Git 管理代碼,通過 Jenkins 做持續集成,Jenkins 將應用放入到鏡像倉庫,其它的事情都交給 Sextant 搞定。包括對服務器資源,項目資源,服務的動態部署及擴容,負載均衡等的管理。

基本流程如下:

再說技術中臺,我們主要沉澱了 “大數據操作系統”、“商業智能”、“動態知識圖譜” 等中臺產品。百分點的整個技術體系如下所示:

這些產品之間都是鬆散耦合的方式,也就是說,它們既可以單獨的與業務系統結合,也可以提供組合的解決方案,每個中臺產品都有自己的定位。比如大數據操作系統定位於整個數據生命週期的管理,它集成了數據的採集,分析,數據的管理,整個數據的處理都可以通過大數據操作系統來完成,它也可以和其它產品進行結合,比如可以將加工好的彙總型數據放入到 MPP 數據庫,供商務智能系統進行分析。

經過多年的摸索和實踐,我們已經在大數據和人工智能方面積累了自己的解決方案和技術中臺,基本上能夠支持百分點的業務場景,當然每個行業、每個客戶的實際需求都不一樣,我們也是在不斷的迭代我們的技術中臺和解決方案。

InfoQ:客戶的訴求各不相同,有哪些記憶猶新的比較有代表性的攻堅案例?

代其鋒:其實攻堅項目比較多,舉一個印象比較深的某國家級項目。這個項目是在17年接到需求,到現在已經執行到第3期了。這個項目的第一期時間特別緊張,從接到需求到交付,業主只給了2個月時間,關鍵是中間還有一個春節。因爲時間緊急,在節前就基本上確定了核心成員,包括項目經理、業務經理、技術經理。

項目經理主要職責是負責項目的立項、規劃執行週期、與其他兩位 leader 確定項目成員。該項目還涉及到第三方合作,所以項目經理節前就和第三方公司進行了溝通,確定了具體的對接人和時間點。

業務經理主要是和業主溝通,確定業務的具體邏輯,產品原型;我們業務經理很厲害,通過與業主進行多次的溝通,很快就拍了一個比較完善的需求和基本可用的原型。

我主要負責技術經理一職,實際上也充當了產品經理的角色,實際上通過與業務經理的溝通,已經對需求有了非常深刻的理解,在實際開發過程中,很多產品細節,包括交互,我都直接的通過文字描述+當面溝通傳達給了研發的小夥伴。

在開發前期,我們做了很好的架構設計,確保主幹沒有問題,對於一些當時還不太重要的則沒有過度設計;架構劃分清楚後,實際上大家的工作邊界也相對清晰。有一部分人開始投入技術攻關,而另外一部分人則開始定義接口,這樣事情就可以並行開展了。

這個項目裏面,我們有幾個比較大的挑戰:

  1. 業務系統多,有大概十個子系統;
  2. 這個項目對 GIS 的要求非常高,我們之前積累很少;
  3. 涉及了航天方面的專業知識和算法。

爲了理解業務,我們花了很多時間用來學習,同時也聘請了一些專家,這樣在短期內基本上對這個領域有了大致瞭解,已經足夠指導我們開發了。

整個研發團隊大概不到十個人,大家在整個開發過程中非常辛苦,完全沒有抱怨,整個開發和測試時間其實還不到一個月,在攻關期間,有同事就直接睡到了公司,我們和第三方公司也很早開始了聯調,在聯調期間,有各種異常情況發生,還好最後都一一克服了。

這個項目,我感受比較深的有這幾點:

  1. 優秀的負責人非常關鍵,比如項目經理在規劃時間節點的時候儘量提前來考慮,很早就將第三方公司拉到一起來聯調,這一點非常關鍵,避免了很多後續的風險;
  2. 時間再緊張,也要做好技術的設計和代碼的開發,否則一定會耽誤最終交付的時間;
  3. 大家目標一致,每個人都要更進一步的思考項目的問題,及時的提出自己看到的問題,而不是被動的等待。

InfoQ:國內和國外的ToB項目存在哪些差異點?在技術上有什麼偏重?

代其鋒:國內項目最近我接觸不多,總體來說,國內的行業相對分散,需求也更加多樣化,客戶對技術和商業效果的期待都很高。

我們接觸的國外 ToB 項目一般規模較大,需集成更多的第三方以及現有的 IT 系統,並且大多數項目都基本上是從頭開始規劃,包括機房的建設、服務器的規劃、系統的研發以及部署等都是從零開始。

對於這些項目而言,項目的落地使用和數據的集成和是比較大的挑戰。

項目的落地是首先要考慮的問題,我們需要想清楚客戶需要什麼,我們能給客戶帶來什麼價值,以及客戶如何去使用我們的系統。圍繞着這些問題,需要我們的業務人員不斷和用戶溝通,出方案,再溝通,一般需要經歷很多次的溝通,我們才能和客戶達成一致。由於項目龐大,對於客戶該如何使用我們的系統也是一個問題,需要從用戶的角度去思考,這樣能夠幫助我們梳理清楚業務的扭轉關係。

在數據集成方面,需要將客戶舊有系統的數據進行遷移,以及完成當前項目中各方數據的收集處理,在技術上更多地需要考慮成熟靈活的集成方案,同時考慮到可能的數據量增量、數據接入的實時性、實際的網絡拓撲等,對大數據量的支撐也是一個必須考慮的問題,系統必須具備可靠的可擴展性以及性能,才能滿足業務需要。

InfoQ:從您的經驗來看,如何打造高效的研發團隊?尤其是跨區域和跨時差的團隊,如何高效協作開發?

代其鋒:這個問題要從團隊文化和標準化流程兩方面來驅動。

經過十年的發展,百分點已經形成了自己獨特的文化,可以用幾個關鍵詞來概括:正直、堅韌、超越、團隊精神、爲客戶創造價值,雖然只有5個關鍵詞,但是其背後蘊含了豐富的內涵,我們有自己的解讀,我們基於這個文化內核來驅動整個團隊,打破區域、時差的界限。

當然,只有文化是不夠的,大家思想同步了,但是做事的方式各異,還是無法更好的協作,所以我們也花了很多時間在流程化、標準化上面。我們有一套適合自己的項目和產品研發流程,同時對於每個階段的產出也有標準化的要求。在項目管理上,我們自主研發了項目管理工具 PMP,產品設計中心 Design 等,在內部的溝通交流以及辦公自動化方面我們還自研了 BLing,促進信息共享,溝通順暢;在研發工具方面,我們有自己的雲平臺 Sextant,也使用了 Jira、Wiki、Git、Zoom 等,標準化管理項目生命週期中的各個關鍵步驟,並儘量自動化。

除此以上講述外,在7月12日深圳ArchSummit全球架構師峯會上,代其鋒老師還會詳細的介紹ToB業務技術架構細節和團隊協調管理的內容《ToB技術實踐:挑戰與破局之道》,本專題下其他話題包括:

9折報名倒數第二週,感興趣報名的話歡迎聯繫票務經理灰灰 17326843116(微信同號)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章