自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

滴滴出行構(gòu)建業(yè)務(wù)中臺應(yīng)對軟件復(fù)雜度的具體對策與實踐

原創(chuàng)
開發(fā) 架構(gòu) 中臺
在51CTO主辦的WOTD 2017全球軟件開發(fā)技術(shù)峰會主會場上,滴滴出行執(zhí)行總監(jiān)賴春波做了主題為《如何構(gòu)建滴滴出行業(yè)務(wù)中臺》的精彩演講,從中可以了解到滴滴出行構(gòu)建業(yè)務(wù)中臺的原因及在過程中遇到的問題和應(yīng)對的策略。

【51CTO.com原創(chuàng)稿件】經(jīng)歷5年發(fā)展,滴滴出行已擁有4.5億用戶、超過2100萬車主,業(yè)務(wù)覆蓋400+城市。在創(chuàng)業(yè)初期,為了快速擁抱業(yè)務(wù),架構(gòu)的建設(shè)在體系化、完善度等方面會有所不足。隨時間推移,架構(gòu)在可持續(xù)性、穩(wěn)定性等方面需不斷進步。

2017年12月1日,在51CTO主辦的WOTD 2017全球軟件開發(fā)技術(shù)峰會主會場上,滴滴出行執(zhí)行總監(jiān)賴春波做了主題為《如何構(gòu)建滴滴出行業(yè)務(wù)中臺》的精彩演講,從中可以了解到滴滴出行構(gòu)建業(yè)務(wù)中臺的原因及在過程中遇到的問題和應(yīng)對的策略。在峰會現(xiàn)場,賴春波老師也接受了我們的專訪,進一步交流構(gòu)建業(yè)務(wù)中臺的一些實踐經(jīng)驗。

[[211958]]

賴春波·滴滴出行執(zhí)行總監(jiān)

構(gòu)建業(yè)務(wù)中臺的原因

2015年末,滴滴出行在短時間內(nèi)形成了包括快車、出租車、專車、順風(fēng)車、代駕等多業(yè)務(wù)的垂直化架構(gòu)。滴滴啟動了中臺戰(zhàn)略整合業(yè)務(wù)系統(tǒng)。決定構(gòu)建業(yè)務(wù)中臺主要出于四方面考慮:專業(yè)深度、人力資源、用戶體驗、全局打通

專業(yè)深度。由于是多業(yè)務(wù)垂直化的架構(gòu),會有多個團隊開發(fā)同樣的架構(gòu),這就需要很多的工程師。每個團隊都是用最快速的方式構(gòu)建流程,所以技術(shù)很難做深。這樣一來,導(dǎo)致客戶端的流暢度不高,后端不穩(wěn)定,影響可擴展性。

人力資源。原則上來說把每個團隊加到足夠的人,每個架構(gòu)都能有很好的發(fā)展。但工程師的薪資都非常高,招聘大量工程師來做同樣的架構(gòu),研發(fā)成本高昂。很還有些時候,愿意花錢,卻招聘不到合適的人。

用戶體驗。流暢度、穩(wěn)定性、擴展性、界面、交易流程等都是影響用戶體驗的重要因素。在當時的組織結(jié)構(gòu)和研發(fā)情況下,會出現(xiàn)業(yè)務(wù)的顏色各異,交易流程卻相同的問題,很影響用戶的體驗。

全局打通。所有業(yè)務(wù)本質(zhì)都是出行,出行本質(zhì)有協(xié)同效應(yīng)。但在各自獨立發(fā)展情況下,協(xié)同性就完全沒有,在構(gòu)建中臺過程中,可以逐步把協(xié)同性加起來。

構(gòu)建出行業(yè)務(wù)中臺在軟件復(fù)雜度上的挑戰(zhàn)

構(gòu)建出行業(yè)務(wù)中臺并不是只有好處,也一定會帶來很多問題,***的問題是軟件復(fù)雜度。

從業(yè)務(wù)角度來說,把所有業(yè)務(wù)合并到一個體系下,本身就是很難的事,再加上滴滴出行是實時性O(shè)2O業(yè)務(wù),場景差異很大,而且作為互聯(lián)網(wǎng)公司,不僅很多需求不明確,還會持續(xù)變化。這種情況下,想要用一套相對穩(wěn)定、相對固定的架構(gòu)去支持所有業(yè)務(wù),十分困難。

從組織角度來說,滴滴出行有多個事業(yè)部,業(yè)務(wù)涉及400多個城市,組織和個人的變化更快。

針對軟件復(fù)雜度的挑戰(zhàn),中臺的目標是:在業(yè)務(wù)多元化發(fā)展的組織中,去構(gòu)建一套工程架構(gòu),構(gòu)建一套組織結(jié)構(gòu)及對應(yīng)的管理機制,以保證業(yè)務(wù)可持續(xù)的又快又好的發(fā)”。

攻破軟件復(fù)雜度問題的具體對策與實踐

在談具體對策與實踐之前,先來看看整個業(yè)務(wù)中臺的架構(gòu)設(shè)計,如下圖。

整個的架構(gòu)設(shè)計分幾個邊界的上下文,好處在于把相關(guān)性不強的邏輯拆開,同時在一個相關(guān)性下面,通過分層可以去把業(yè)務(wù)進行更好的建模。調(diào)度層做為入口去牽引多個業(yè)務(wù)線,業(yè)務(wù)流程層為調(diào)度層做服務(wù),狀態(tài)智能層用來支持上面兩層。

在對業(yè)務(wù)和產(chǎn)品進行更好建模的基礎(chǔ)上,進行“五化”:服務(wù)化、異步化、配置化、插件化、數(shù)據(jù)化。

服務(wù)化。服務(wù)化很常見,以下單為例,如下圖:

下單流程能夠調(diào)用很多服務(wù),在多個層次,以接口層次結(jié)果拆解。這里需要提醒的是服務(wù)化要注意如下三點:

  • 服務(wù)之間的協(xié)議和規(guī)范要建立好。
  • 注意控制力度,力度太小、太大都會有問題。
  • 隨著時間的發(fā)展,服務(wù)化本身要不斷的演進。

異步化。對每個事件的非核心或不需要實時反饋給客戶端的邏輯進行拆解,核心的主流程會變簡潔。對非核心的邏輯在事件上做訂閱之后,進行二級處理。以結(jié)束訂單為例,如下圖

結(jié)束訂單的時候有很多邏輯要做,但是都是通過MysqlBinlog處理或MQ處理。

配置化。服務(wù)化和異步化能解決很多迭代效率的問題,但由于系統(tǒng)、業(yè)務(wù)的復(fù)雜性,各個業(yè)務(wù)都有些差異,體現(xiàn)在不同的產(chǎn)品線、城市、區(qū)域、時間等等,配置化核心是對這些進行建模,把每個對象模型化,抽象成ID,在不同的服務(wù)化里把這些可配置的能力進行抽象。具體抽象過程,如下圖。

***級抽象采用是類 iptables 的規(guī)則引擎判定產(chǎn)品分類,第二級的規(guī)則引擎,由模塊自定義。所有配置化都是用自生成平臺,要配置什么,自定義配置即可,這個過程是動態(tài)進行的。當前業(yè)務(wù)中臺已經(jīng)可以支持上千個配置點,比如不同層次的計價規(guī)則不一樣、不同產(chǎn)品線的車樣子不同、不同的場景,如拼車和接送機,管控規(guī)則也不一樣等等。

插件化。配置化解決的是業(yè)務(wù)線差異問題,但遇到邏輯差異較大的情況,就要做插件,統(tǒng)稱為FPI。

在FPI的能力上,不同的團隊可以開發(fā)很多插件,在特定的配置點下,把它的邏輯去進行加載。真正業(yè)務(wù)流程到這兒,可以調(diào)起它對應(yīng)的插件做出來。對于一些沒有差異化需求的業(yè)務(wù),可以用開發(fā)的default邏輯,這是更極端的靈活性的體現(xiàn)。

有靈活性的體現(xiàn)后,團隊還可以做一些組織上的調(diào)整,原來看起來,每個服務(wù)或者平臺是一個垂直化的架構(gòu),有些團隊是橫向,是FT,有些FT是接送機FT,專門做接送機的事情。

通過插件的形式在每個系統(tǒng)加載它的插件,它就可以跟著業(yè)務(wù)思考、跟著產(chǎn)品思考這個業(yè)務(wù)怎么走、這個產(chǎn)品怎么演化。相對的邏輯是更加專注的,這也帶來很好的組織結(jié)構(gòu)對中臺的適應(yīng)性。

數(shù)據(jù)化。在大數(shù)據(jù)時代,數(shù)據(jù)是不得不考慮的問題,所以在業(yè)務(wù)中臺,要實現(xiàn)全局打通,本質(zhì)是要把數(shù)據(jù)打通。所以制定了離線分析與在線決策的方案,如下圖。

***個是離線做分析,可以做數(shù)據(jù)血緣、模型訓(xùn)練,同時可以把它放到在線決策層面,構(gòu)建很好的智能客戶引擎和交易引擎,這個可以干預(yù),因為干預(yù)可以讓升艙或者多業(yè)務(wù)線的清單成為可能。因為有這樣的決策,使在線服務(wù)的管控和判決做得更加智能。

數(shù)據(jù)化方面,需要注意三方面:

  • 讓數(shù)據(jù)更加規(guī)范和標準化。
  • 構(gòu)建完整的數(shù)據(jù)流,從在線到離線,從日志到模型的在線使用。
  • 引入機器學(xué)習(xí)的算法、人工智能的算法去構(gòu)建在線數(shù)據(jù)智能的決策。

這是業(yè)務(wù)中臺的五個對策,主要解決傳統(tǒng)的系統(tǒng)架構(gòu)問題,怎么做到高耦合和內(nèi)聚,怎么提高迭代。配置化和插件化解決靈活性問題,把靈活性開放給不同團隊。數(shù)據(jù)化實際上是中臺賦能業(yè)務(wù),有中臺的賦能才能變得更好。

經(jīng)驗總結(jié)

***點:從***的業(yè)務(wù)孵化中臺是滴滴出行構(gòu)建業(yè)務(wù)中臺***經(jīng)驗,因為***的業(yè)務(wù)最復(fù)雜,把最復(fù)雜的業(yè)務(wù)搞定,用最復(fù)雜的業(yè)務(wù)落地別的業(yè)務(wù)會容易。從快車開始做,逐步整合專車、出租車、代駕等。

第二點:穩(wěn)定,中臺對業(yè)務(wù)有收益,最根本的是保證穩(wěn)定,穩(wěn)定是發(fā)展的前提和基礎(chǔ)。在整個構(gòu)建中臺的過程中非常重視穩(wěn)定性,有各種機制,包括灰度發(fā)布、分層次發(fā)布、流量回放、全鏈路壓測等等,保證代碼的質(zhì)量和系統(tǒng)的穩(wěn)定。

第三點:加強溝通,平衡多業(yè)務(wù)的優(yōu)先級。滴滴出行有多個業(yè)務(wù),有很多大區(qū)和城市,每個地方都有很多需求,要有一套機制和資源池,如何保證相應(yīng)每個業(yè)務(wù)都能按照所對應(yīng)的在公司的重要性的部分資源,要保障它的靈活性和效率,所以要有很多溝通工作,有很多平衡的工作。

第四點:中臺系統(tǒng)要不斷演進,不能一層不變,要發(fā)現(xiàn)問題、解決問題。業(yè)務(wù)中臺不是一蹴而就,而是要在發(fā)展過程中不斷的變化,持續(xù)迭代。

第五點: “沒有***,只有最合適”!所有中臺都一定是適合某個公司特點,最合適的中臺是當你深入了解業(yè)務(wù)、產(chǎn)品、系統(tǒng)、組織,而且不僅了解今天在哪里,還要了解過去是怎么演變而來,未來又會怎么演化。只有當了解所有的東西之后,才能做出***的中臺架構(gòu)的設(shè)計。

【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2017-12-01 11:00:16

WOTD滴滴出行賴春波

2019-01-02 05:55:30

領(lǐng)域驅(qū)動軟件復(fù)雜度

2016-05-24 16:47:04

滴滴出行分布式架構(gòu)設(shè)計

2019-06-27 09:55:36

微服務(wù)架構(gòu)滴滴出行

2024-04-25 08:33:25

算法時間復(fù)雜度空間復(fù)雜度

2018-12-18 10:11:37

軟件復(fù)雜度軟件系統(tǒng)軟件開發(fā)

2016-11-24 10:00:55

華為敏捷網(wǎng)絡(luò)

2021-01-05 10:41:42

算法時間空間

2017-06-30 15:33:57

大數(shù)據(jù)數(shù)據(jù)分析用戶評論

2019-11-18 12:41:35

算法Python計算復(fù)雜性理論

2009-07-09 10:45:16

C#基本概念復(fù)雜度遞歸與接口

2017-11-02 10:10:00

服務(wù)器滴滴車主APP異常

2022-02-22 10:11:01

系統(tǒng)軟件架構(gòu)

2017-05-05 16:10:39

滴滴出行斯坦福人工智能

2017-07-04 16:13:04

滴滴出行

2017-05-16 06:23:07

2019-10-14 17:00:14

前端代碼圈復(fù)雜度

2009-06-14 17:56:56

ibmdwWebSphere

2020-12-30 09:20:27

代碼

2015-10-13 09:43:43

復(fù)雜度核心
點贊
收藏

51CTO技術(shù)棧公眾號