亚洲全黄无码一级在线看_国产剧情久久久性色_无码av一区二区三区无码_亚洲成a×人片在线观看

當(dāng)前位置: 首頁(yè) > 科技新聞 >

從技術(shù)細(xì)節(jié)看美團(tuán)的架構(gòu)

時(shí)間:2019-12-02 16:38來(lái)源:網(wǎng)絡(luò)整理 瀏覽:
編者按:本文是根據(jù)ArchSummit北京2015大會(huì)上美團(tuán)網(wǎng)現(xiàn)任技術(shù)委員會(huì)主席夏華夏的演講《從技術(shù)細(xì)節(jié)看美團(tuán)架構(gòu)》整理而成,感謝Emily

編者按:本文是根據(jù)ArchSummit北京2015大會(huì)上美團(tuán)網(wǎng)現(xiàn)任技術(shù)委員會(huì)主席夏華夏的演講《從技術(shù)細(xì)節(jié)看美團(tuán)架構(gòu)》整理而成,感謝Emily的整理。

很多人認(rèn)為,電商都沒(méi)有什么技術(shù)含量,電商沒(méi)有什么門(mén)檻,入門(mén)的門(mén)檻并不高,電商很痛苦,需要不停地去掃街,不停地去拜訪各個(gè)商家,要在用戶和商家之間拉客接客。國(guó)內(nèi)曾經(jīng)出現(xiàn)的團(tuán)購(gòu)類網(wǎng)站有6400多家,到四年多以后的現(xiàn)在,美團(tuán)已經(jīng)是成為國(guó)內(nèi)最大的本地生活服務(wù)平臺(tái),不管怎么說(shuō),現(xiàn)在美團(tuán)在這些電商,至少團(tuán)購(gòu)類的電商里邊是走的比較成功的,如果說(shuō)電商真的是沒(méi)有門(mén)檻,那難道說(shuō)美團(tuán)走到現(xiàn)在是因?yàn)樾疫\(yùn)嗎?

那必然不是因?yàn)檫\(yùn)氣,如果大家知道王興,美團(tuán)的創(chuàng)始人,他在這個(gè)行業(yè)內(nèi)有個(gè)非常響亮的外號(hào),叫國(guó)內(nèi)史上最倒霉的連環(huán)創(chuàng)業(yè)者。因?yàn)樗白鲞^(guò)像校內(nèi)網(wǎng),做過(guò)飯否,最后都是因?yàn)橐恍┠涿畹脑蚓蜎](méi)有做起來(lái),或者發(fā)生了很多問(wèn)題。但是美團(tuán)現(xiàn)在他做得非常好,那肯定不是因?yàn)檫\(yùn)氣。其實(shí)在我們內(nèi)部,很多同學(xué)也在做思考總結(jié),我們希望找出一些比較好的東西能留下來(lái),然后以后繼續(xù)保持,在這其中分析來(lái)分析去,其中有一部分很重要的原因,就是我們技術(shù)團(tuán)隊(duì)的努力。今天與大家分享的,就是在技術(shù)團(tuán)隊(duì)中,不斷追求極致努力的一小部分經(jīng)驗(yàn)。

首先第一部分給大家介紹美團(tuán)的技術(shù)架構(gòu),架構(gòu)是如何演變的。第二部分講一講美團(tuán)的業(yè)務(wù)架構(gòu),在業(yè)務(wù)方面如何做一些業(yè)務(wù)流程的優(yōu)化。最后第三部分介紹O2O技術(shù),如何實(shí)現(xiàn)線上和線下都用技術(shù)來(lái)做優(yōu)化貫通的。

第一部分首先講一講技術(shù)架構(gòu),其實(shí)在初期的時(shí)候,美團(tuán)的技術(shù)架構(gòu)非常簡(jiǎn)單,的確在最初2010年、2011年的時(shí)候,技術(shù)是沒(méi)有門(mén)檻的,任何一個(gè)人都可以寫(xiě)一個(gè)電商的網(wǎng)站。


這就是一個(gè)最初期的架構(gòu),一個(gè)比較典型的LAMP架構(gòu),前端加上Apache/PHP,后端是MySQL,當(dāng)然我們會(huì)有一些運(yùn)維的工作在里面??赡艽蠹胰绻约簩?xiě)個(gè)網(wǎng)站的話,一開(kāi)始都是這種架構(gòu),這種架構(gòu)一開(kāi)始也很好用。然后慢慢的,當(dāng)業(yè)務(wù)量大了之后,我們發(fā)現(xiàn)整個(gè)系統(tǒng)的性能跟不上。那時(shí)候我們也只是做一些簡(jiǎn)單的優(yōu)化就夠了,比如說(shuō)一開(kāi)始我們是在前端,就是在Nginx和Apache之間加一些Varnish的緩存,然后在后端,我們可能用MemCached來(lái)減少M(fèi)ySQL的壓力,這些都是緩存,整個(gè)架構(gòu)還是沒(méi)有太大的變化,還是一個(gè)優(yōu)化了的LAMP架構(gòu)。

然后到2011年的時(shí)候,我們開(kāi)始做移動(dòng)端,這時(shí)候架構(gòu)還是沒(méi)有太大的變化,只不過(guò)是在Apache這種已有服務(wù)的API前面,又包了一層。就是我們?cè)谔峁┙oPC端的同時(shí),我們也包了一層移動(dòng)的API,這樣我們可以繼續(xù)給手機(jī)端的用戶提供服務(wù)。


這個(gè)時(shí)候其實(shí)也就是簡(jiǎn)單地把LAMP架構(gòu)做了一點(diǎn)點(diǎn)擴(kuò)展,但是已經(jīng)可以支撐很多很多的用戶,很多很多的容量了。我們?cè)谶@種架構(gòu)的前提下發(fā)展,直到我們想去做新的業(yè)務(wù)。美團(tuán)一開(kāi)始起步是個(gè)團(tuán)購(gòu)公司,后來(lái)我們?nèi)プ鲆恍┬碌?,比如說(shuō)酒店業(yè)務(wù)、電影業(yè)務(wù),直到現(xiàn)在大家可能使用過(guò)的美團(tuán)外賣(mài)的業(yè)務(wù)。當(dāng)我們?nèi)プ龊芏嗖煌臉I(yè)務(wù)的時(shí)候,我們發(fā)現(xiàn)做每一個(gè)業(yè)務(wù)似乎需要添加一些新的部分,這樣一個(gè)部分、一個(gè)部分堆積,對(duì)很多技術(shù)的同學(xué)來(lái)說(shuō),這是不能容忍的,那我們?cè)趺慈ジ倪M(jìn)它呢?我們希望把中間的很多的公共的東西,與業(yè)務(wù)無(wú)關(guān)的東西抽取出來(lái),形成一些公共的技術(shù)的組件,這樣可以為很多的不同的業(yè)務(wù)來(lái)使用,發(fā)展到現(xiàn)在,形成這樣一個(gè)看起來(lái)稍微復(fù)雜的架構(gòu)。

在最底層會(huì)有云平臺(tái),對(duì)內(nèi)對(duì)外都有服務(wù),會(huì)有云主機(jī),會(huì)有云存儲(chǔ),也會(huì)有虛擬網(wǎng)絡(luò),包括一些負(fù)載均衡的東西。在云平臺(tái)上面,我們會(huì)有一些基礎(chǔ)的組件,這些基礎(chǔ)組件跟業(yè)務(wù)的邏輯相隔比較遠(yuǎn),它會(huì)有比如配置,隊(duì)列中心,注冊(cè)中心,包括一些SQL和NoSQL的存儲(chǔ)等等,這些技術(shù)組件我們?cè)谒械臉I(yè)務(wù)里都會(huì)使用,所以我們把它提取出來(lái),作為我們的技術(shù)組件提供給業(yè)務(wù)能用。再往上,確實(shí)有一些東西是與業(yè)務(wù)結(jié)合比較多,比如說(shuō)用戶中心,支付,包括一些搜索,推薦,還包括,比如說(shuō)我們會(huì)建立用戶的一些地理位置的庫(kù),包括一些風(fēng)險(xiǎn)控制的東西,這些東西是與業(yè)務(wù)是有交互的。但是我們?nèi)シ治鲋蟀l(fā)現(xiàn)在不同的業(yè)務(wù)里面,這些組件還是差不多的,所以我們也是把它抽象出來(lái),現(xiàn)在叫業(yè)務(wù)組件,這些業(yè)務(wù)組件在所有的業(yè)務(wù)之間也是共用。

再往上才是我們各個(gè)不同的業(yè)務(wù)的,真正的比較獨(dú)特的一些邏輯。在這些業(yè)務(wù)邏輯前面,是前端的接入,這個(gè)前端接入其實(shí)對(duì)不同的業(yè)務(wù)也是一樣的,它會(huì)有前端的接入和轉(zhuǎn)發(fā),會(huì)有前端內(nèi)容的過(guò)濾,就是一些防抓取,防攻擊這樣的內(nèi)容過(guò)濾。比如說(shuō)為了做用戶訪問(wèn)性能的優(yōu)化,我們會(huì)做大量的各種各樣內(nèi)容的緩存,包括CDN也好,包括我們內(nèi)部不同層次之間,包括一些驗(yàn)證碼的服務(wù)。所以在這種架構(gòu)下面,當(dāng)我們?cè)僖プ鲆粋€(gè)新的業(yè)務(wù)的時(shí)候,我們就關(guān)注在中間業(yè)務(wù)邏輯這一塊就可以了,這樣可以很快地去拓展新的業(yè)務(wù)邏輯,而且每一個(gè)人,每一個(gè)團(tuán)隊(duì),只關(guān)注真正最有價(jià)值的那一部分的軟件的開(kāi)發(fā)。那當(dāng)然兩邊會(huì)有我們的,運(yùn)維的工作,安全的工作,是在每一層都會(huì)涉及的。

但是整個(gè)這樣一個(gè)邏輯發(fā)展到現(xiàn)在,我們是覺(jué)得最適合我們美團(tuán)現(xiàn)在這個(gè)階段的一套技術(shù)架構(gòu),那從一開(kāi)始的最簡(jiǎn)單的LAMP,到現(xiàn)在可能我們分了很多很多個(gè)組件、很多很多層,這些架構(gòu)看起來(lái)是非常非常不一樣的。但是我們現(xiàn)在回想起來(lái)并不覺(jué)得說(shuō),原來(lái)的就不好,現(xiàn)在的就好。我們覺(jué)得在公司發(fā)展的不同的階段,一開(kāi)始就最適合那種最簡(jiǎn)單的情況,如果說(shuō)我們一開(kāi)始,比如說(shuō)美團(tuán)2010年成立的時(shí)候就上這種很復(fù)雜的架構(gòu)的話,那可能我們2010年底才把軟件開(kāi)發(fā)完,那時(shí)候上線的時(shí)候,可能已經(jīng)有五千多家團(tuán)購(gòu)網(wǎng)站在線上了,所以這是不切實(shí)際的。所以整體來(lái)說(shuō),我們覺(jué)得在整個(gè)技術(shù)架構(gòu)的演變過(guò)程中,就是找當(dāng)前真正能夠滿足我們業(yè)務(wù)需求的。

另外一個(gè)特點(diǎn),大家也可以看到,在我們的整個(gè)的架構(gòu)里面,大量應(yīng)用了一些開(kāi)源的東西,從最初的LAMP架構(gòu)的時(shí)候,包括MySQL、Apache,到現(xiàn)在我們一些很復(fù)雜的架構(gòu)里面,比如說(shuō)搜索,現(xiàn)在會(huì)用到Lucene,會(huì)用到Solr,在云主機(jī)、云平臺(tái)這一塊,我們會(huì)用到比如說(shuō)OpenStack的一些個(gè)組件,包括比如存儲(chǔ)的Swift等等,用到很多的開(kāi)源的東西。開(kāi)源產(chǎn)品拿過(guò)來(lái)當(dāng)然會(huì)加速我們的這種開(kāi)發(fā)的周期,但是開(kāi)源產(chǎn)品我們也不僅僅是單單把它拿過(guò)來(lái),因?yàn)槿魏我粋€(gè)開(kāi)源的產(chǎn)品,如果你要拿到一個(gè)比較復(fù)雜的業(yè)務(wù)里,你就會(huì)發(fā)現(xiàn)它不是那么匹配的,它總是有些邊邊角角,比如說(shuō)要與系統(tǒng)的集成,或者很多開(kāi)源產(chǎn)品,它在大規(guī)模的情況下,高并發(fā)的情況下,考慮地并不是那么周到。所以我們?cè)陂_(kāi)源的基礎(chǔ)上做了大量的優(yōu)化,一方面能讓我們的整個(gè)系統(tǒng)能做更好地水平的擴(kuò)展、系統(tǒng)的擴(kuò)展、系統(tǒng)的優(yōu)化,同時(shí)也讓整個(gè)的用戶體驗(yàn)?zāi)軌蚋谩?/p>

總結(jié)下來(lái),就是在技術(shù)架構(gòu)方面,想跟大家分享這么幾點(diǎn),一個(gè)就是整個(gè)技術(shù)架構(gòu)總是在不斷地結(jié)合業(yè)務(wù)在不斷地演化,還有就是至少?gòu)拿缊F(tuán)來(lái)說(shuō),我們是在開(kāi)源軟件的基礎(chǔ)上,然后不斷地做集成,不斷地做優(yōu)化,最后,軟件開(kāi)發(fā)的時(shí)候,不管是在對(duì)用戶體驗(yàn)來(lái)說(shuō),還是對(duì)工程師自己的體驗(yàn),我們總是在追求一些極致,這樣的情況下,我們的技術(shù)架構(gòu)就自然而然的在不斷地演變了。

第二部分分享一些業(yè)務(wù)架構(gòu)方面,我們做的優(yōu)化。

這個(gè)圖是一個(gè)比較復(fù)雜的圖,我們也不去講它的太多的細(xì)節(jié),大概分析一下,上面這一塊其實(shí)是剛才給大家看的,對(duì)用戶訪問(wèn)端,它所涉及到的一些組件,一些部分。但是對(duì)于電商來(lái)說(shuō),其實(shí)它還有一個(gè)很復(fù)雜的生產(chǎn)系統(tǒng),這個(gè)生產(chǎn)系統(tǒng)就是說(shuō)我們?cè)趺慈ジa(chǎn)商談單,談完之后,我們?cè)趺窗堰@個(gè)單子錄到線上,怎么去編輯,怎么去審核等等,這個(gè)單子的生產(chǎn)我們叫生產(chǎn)系統(tǒng)。

除此之外,還有整個(gè)公司的運(yùn)營(yíng),一些市場(chǎng)的營(yíng)銷推廣,我們?cè)趺慈ダ瓌?dòng)我們新的用戶,怎么去拉動(dòng)我們的新的商家等等,所以就涉及到很多的業(yè)務(wù)的模塊。整個(gè)的這個(gè)框架,細(xì)節(jié)我們不關(guān)注,但是第一感覺(jué)肯定是非常復(fù)雜,這個(gè)復(fù)雜的業(yè)務(wù)架構(gòu)有一個(gè)什么后果呢?一般來(lái)說(shuō),它會(huì)讓整個(gè)流程非常復(fù)雜,當(dāng)流程復(fù)雜了,那自然而然帶來(lái)的整個(gè)效率低下,所以對(duì)于技術(shù)團(tuán)隊(duì)來(lái)說(shuō),我們一個(gè)努力就是在不斷地去優(yōu)化我們的業(yè)務(wù)架構(gòu),不斷地讓流程簡(jiǎn)單,讓效率更高,那怎么來(lái)優(yōu)化呢?


我們有一些自己總結(jié)出來(lái)的方法論,就是讓復(fù)雜的事情簡(jiǎn)單化。一個(gè)很復(fù)雜的業(yè)務(wù)架構(gòu),我們希望對(duì)它做很多理解和梳理,梳理的過(guò)程中,我們就會(huì)發(fā)現(xiàn)一部分步驟其實(shí)是不需要的,可以省略的,這是一種簡(jiǎn)化;還有一個(gè)就是,當(dāng)我們梳理完了,發(fā)現(xiàn)每一個(gè)步驟都需要的時(shí)候,我們會(huì)盡量地把一個(gè)復(fù)雜的東西拆成很多比較小塊的,易于把控的一些東西,這就是一個(gè)把復(fù)雜東西簡(jiǎn)單化的一個(gè)過(guò)程。當(dāng)把一個(gè)復(fù)雜的東西拆成了簡(jiǎn)單的小的東西之后,我們就容易地去對(duì)這個(gè)簡(jiǎn)單的模塊,簡(jiǎn)單的功能進(jìn)行標(biāo)準(zhǔn)化。

所謂的標(biāo)準(zhǔn)化,就是去制訂一個(gè)標(biāo)準(zhǔn),這個(gè)東西該怎么做,應(yīng)該實(shí)現(xiàn)什么目的,做了之后我們?cè)趺慈ズ饬?。所以這三個(gè)是非常重要,就是我要去做什么,我怎么做,然后怎么去衡量。如果把每一個(gè)簡(jiǎn)單的東西都處理好了之后,這個(gè)簡(jiǎn)單的東西就成了一個(gè)標(biāo)準(zhǔn)的東西,標(biāo)準(zhǔn)的東西在很多時(shí)候就比較容易去推廣。這就是標(biāo)準(zhǔn)化的過(guò)程,如果整個(gè)的標(biāo)準(zhǔn)比較完善了,那我們就希望把這個(gè)標(biāo)準(zhǔn)固化下來(lái),固化下來(lái)就是說(shuō)整個(gè)的工作就會(huì)變成一個(gè)很簡(jiǎn)單的流程。

招幾個(gè)新的員工,然后給他們一個(gè)手冊(cè),告訴他們,照著這個(gè)手冊(cè)一步一步,第一步做什么,第二步做什么,第三步做什么,這就是流程化的東西。如果發(fā)展到這個(gè)時(shí)候,其實(shí)復(fù)雜的東西已經(jīng)可以比較高效地往下運(yùn)作了。但是對(duì)于計(jì)算機(jī)來(lái)說(shuō),對(duì)于搞技術(shù)的同學(xué)來(lái)說(shuō),我們知道,其實(shí)計(jì)算機(jī)它最擅長(zhǎng)的東西就是處理這種簡(jiǎn)單的流程,所以我們?nèi)绻龅搅鞒袒?,就有了一個(gè)自動(dòng)化的基礎(chǔ),我們可以用計(jì)算機(jī)來(lái)把這些固化的流程完成,這樣最終就把復(fù)雜的事情能夠盡量地做到自動(dòng)化。


我來(lái)舉一個(gè)簡(jiǎn)單的例子,尤其是后面流程化和自動(dòng)化這個(gè)東西,大家可能不是那么理解。就是我們?cè)谏蠁危^上單就是一個(gè)單子,比如一個(gè)餐館售賣(mài)的東西,就是本地服務(wù)的一個(gè)產(chǎn)品,我們叫一個(gè)單子。上單的時(shí)候,我們的銷售同學(xué)和商家談了一個(gè)問(wèn)題,最終要上到我們的整個(gè)網(wǎng)站里邊。我們今年上半年曾經(jīng)做過(guò)一個(gè)很大的努力就是,上單的時(shí)候我們希望免審核、免寫(xiě)、免編輯,為什么要這么做呢?給大家介紹一下舊有的流程,在舊有的流程里邊,銷售團(tuán)隊(duì)可能從簽訂合同開(kāi)始,還不算他一開(kāi)始跟商家去談私人關(guān)系,去一次一次的溝通,那時(shí)候可能要碰很多壁,即使是商家已經(jīng)同意了要和你合作了,那銷售的同學(xué)就可以和商家簽訂合同,從這個(gè)時(shí)候就進(jìn)入我們生產(chǎn)流程,然后要到我們的審核團(tuán)隊(duì)去審核合同,看這個(gè)合同的價(jià)格,定價(jià)是不是合理,是不是偏高,或者偏低,因?yàn)槠吡藫p害用戶的這個(gè)利益,偏低了之后美團(tuán)要貼錢(qián),所以要去審核,包括一些法律的東西,是不是合法,一些條款是不是合法,這是審核,如果審核不通過(guò),要打回來(lái),重新簽,如果審核通過(guò)了,回到我們的編輯團(tuán)隊(duì),那編輯的團(tuán)隊(duì)會(huì)干什么?

會(huì)把合同里的東西輸成文檔變成文字,變成一個(gè)文本的描述,然后還包括編輯的同學(xué),攝影師的團(tuán)隊(duì),他們會(huì)去每個(gè)商家去拍很多菜品的照片,或者商家門(mén)頭的照片等等,還要把這些照片再去剪切,包括打上防偽的美團(tuán)的水印等等,這些就是我們編輯團(tuán)隊(duì)原來(lái)要做得,他要把所有的這些東西原材料變成一個(gè)網(wǎng)上的單子,上了單子之后,先在一個(gè)系統(tǒng)里給商家看,這是我要給用戶展示的東西,這樣行不行?商家說(shuō)可以,我們就可以最終給用戶來(lái)賣(mài)了,那在這個(gè)整個(gè)的流程,從簽訂合同開(kāi)始,到最后用戶能夠看到這個(gè)單子,這之間的時(shí)間是7到10天,這是一個(gè)非常非常長(zhǎng)的時(shí)間,因?yàn)?到10天就可以對(duì)對(duì)商家?guī)?lái)很多很多流量。我們現(xiàn)在每天的銷售額是幾億人民幣,如果我們每個(gè)單子都拖到7到10天的話是不可忍受的。


技術(shù)團(tuán)隊(duì)就會(huì)想怎么去優(yōu)化這個(gè)流程。我們其實(shí)做了幾件事情,第一個(gè)就是說(shuō)把業(yè)務(wù)流程所有的東西盡量在線化,比如說(shuō)離線運(yùn)行的東西。有的編輯的同學(xué)他本來(lái)是去簽一個(gè)紙質(zhì)的合同,紙質(zhì)的合同寄到我們編審那邊,編審的同學(xué)要去一條一條的讀這個(gè)紙質(zhì)的合同,這個(gè)是很難容忍的,這個(gè)是沒(méi)辦法提升的。我們首先就把很多的,比如說(shuō)合同,盡量在線上來(lái)填合同,還有攝影師拍的照片,盡量直接傳到網(wǎng)上,不要通過(guò)一個(gè)其他的渠道,U盤(pán)等等來(lái)傳。這樣所有的東西在線上了以后,我們才有了所有用計(jì)算機(jī)處理的一個(gè)基礎(chǔ)。

還有一個(gè)就是,我們希望所有的數(shù)據(jù)結(jié)構(gòu)化。舉一個(gè)例子,對(duì)于一個(gè)餐館來(lái)說(shuō),我們可能往往會(huì)有很多的條款,比如說(shuō)他這個(gè)餐館是幾點(diǎn)到幾點(diǎn)營(yíng)業(yè),這個(gè)單子是幾點(diǎn)到幾點(diǎn)可以用,用的條件包括你可以用包間,或者不可以用包間,以及是否提供停車位,還有一些菜單的東西,這些東西在最初的時(shí)候,就是我們編輯的同學(xué)一條一條對(duì)著那個(gè)合同把它用手錄成一大段文字,這樣不是結(jié)構(gòu)化的東西。我們結(jié)構(gòu)化的努力,就是我們把每一項(xiàng)條款都變成我們數(shù)據(jù)里的一個(gè)結(jié)構(gòu)化的單元,比如說(shuō)你的這個(gè)單子在什么時(shí)間可用,星期幾,幾點(diǎn)幾分到幾點(diǎn)幾分可以用,這個(gè)本身就是一個(gè)數(shù)據(jù)存儲(chǔ)的項(xiàng)目。

當(dāng)結(jié)構(gòu)化之后,銷售上單的時(shí)候,它就是一個(gè)表單,一個(gè)表格這么填寫(xiě),最后生成的數(shù)據(jù)就不是一大段文字了,而是很多結(jié)構(gòu)化的數(shù)據(jù)。這個(gè)數(shù)據(jù)有什么好處?比如說(shuō)我們生成單子的時(shí)候,如果要改版,它很容易做一些改版,或者說(shuō)我們商家要調(diào)整一個(gè)價(jià)格,就只把價(jià)格那個(gè)項(xiàng)目給商家來(lái)做調(diào)整就可以了。不用擔(dān)心商家改的時(shí)候,把一些條款的其他東西改掉。然后還包括,比如說(shuō)現(xiàn)在會(huì)在PC端和這個(gè)移動(dòng)端同時(shí)顯示同樣的單子,其實(shí)因?yàn)轱@示器的差別,我們?cè)赑C端和移動(dòng)端的顯示肯定是不一樣的。

只有當(dāng)我們把它結(jié)構(gòu)化之后,我們才能自動(dòng)地匹配不同的顯示環(huán)境,這就是結(jié)構(gòu)化的一個(gè)好處。再比如說(shuō),我們會(huì)把一切可量化的東西量化,就是價(jià)格我們不希望輸入一個(gè)字符串的幾塊錢(qián),因?yàn)檫@個(gè)東西計(jì)算機(jī)是不容易去理解的,我們希望如果它是數(shù)字的,比方說(shuō)價(jià)格,你就填一個(gè)價(jià)格,如果進(jìn)價(jià)是多少,我賣(mài)價(jià)是多少,還有可使用時(shí)間,就用時(shí)間的格式來(lái)填,這樣的好處就是我們的審核就變得非常容易。我們的審核團(tuán)隊(duì),它根本不需要人工的去讀這個(gè)東西,只要我們把規(guī)則制訂好了,那計(jì)算機(jī)就可以把這個(gè)量化的東西一條一條地過(guò)一下。


所以當(dāng)我們做了這些努力之后,我們新的流程變成什么樣子了呢?銷售團(tuán)隊(duì)同樣還是要去填合同,但是他填寫(xiě)一個(gè)表格的數(shù)據(jù),填寫(xiě)好后這個(gè)表格的數(shù)據(jù),系統(tǒng)會(huì)自動(dòng)地審查,自動(dòng)地生成一個(gè)單子,然后立刻可以給商家做確認(rèn),商家確認(rèn)之后,就可以上線給用戶了。然后,做了這些努力之后,我們把中間的很多環(huán)節(jié)和步驟,包括人力都省掉了,我們不需要那么多編輯的同學(xué),不需要那么多審核的同學(xué),而且整個(gè)的流程會(huì)走地非常順暢,非???,便捷。


給大家看一下收益是什么呢?這是從今年1月份到9月份的一個(gè)數(shù)據(jù),藍(lán)線是我們每個(gè)月的上單量,從今年1月份,除了2月份,2月份因?yàn)槭谴汗?jié),整個(gè)的上單量有所下降,其余幾個(gè)月份上單量一直是非??焖俚耐蠞q的,一直到現(xiàn)在,每個(gè)月我們美團(tuán)上的單子有40多萬(wàn)單不同的消費(fèi)單,這種單子做一個(gè)假設(shè),如果有一個(gè)吃喝玩樂(lè)的達(dá)人,他每天去吃一單美團(tuán)的單子的,那40萬(wàn)單夠他吃一千年。假設(shè)我們這個(gè)單子能持續(xù)一千年,我們會(huì)提供非常非常豐富的單子給用戶做選擇,上這么多的單我們的單均成本,我們從原來(lái)的很高,現(xiàn)在已經(jīng)降到了個(gè)位數(shù)。如果我們沒(méi)有做剛才那些努力的話,我們是根本不可能實(shí)現(xiàn)這么多的上單量,我們的成本也不可能降下來(lái)。因?yàn)槲覀儼殉杀緣旱暮艿停涂梢詾樯碳姨峁└玫姆?wù),也給用戶提供更好的優(yōu)惠,這就是技術(shù)給我們帶來(lái)的一些優(yōu)勢(shì)。

最后第三點(diǎn),給大家分享一下,在線上線下這兩部分,技術(shù)都是可以去做的,我們說(shuō)O2O,O2O是什么?就是Online+Offline,就是線下加線上。有一部分同學(xué)可能會(huì)有一些誤解,可能技術(shù)只是在線上的,其實(shí)不是那樣,技術(shù)它不分線上、線下,它在線上線下都是非常重要的,需要貫穿線上線下。我在這里給大家舉兩個(gè)例子,線上的就不舉了,因?yàn)榧夹g(shù)都是在優(yōu)化線上的東西。給大家舉兩個(gè)例子,看我們?cè)趺慈ビ眉夹g(shù)來(lái)優(yōu)化線下的一些東西。


第一個(gè)就是外賣(mài)單子這個(gè)流程中,我們做了一個(gè)外賣(mài)打印機(jī)。先給大家介紹一下背景,美團(tuán)外賣(mài)整個(gè)下單是怎么樣的?比如用戶下單,在我們的網(wǎng)站上說(shuō),我要買(mǎi)一個(gè)砂鍋飯,在哪個(gè)餐館買(mǎi),我要送到什么地方,我們就需要通知商家,通知商家的時(shí)候,要告訴他用戶要買(mǎi)什么,他地址是什么,電話是什么,然后我們的商家的廚師去做菜,小二就要去送餐,用戶完成消費(fèi)。美團(tuán)外賣(mài)是2013年的11月13號(hào)上線的,第一單的時(shí)候,最初的時(shí)候,我們?cè)趺刺幚砟??那個(gè)時(shí)候真的很原始,當(dāng)然我們一開(kāi)始還是做了個(gè)手機(jī)的APP,用戶在手機(jī)的APP上下單,我們會(huì)有美團(tuán)的外賣(mài)的這個(gè)同學(xué),包括一些客服的同學(xué),也包括一些很多技術(shù)的同學(xué)也幫忙打電話,我們就打電話通知商家說(shuō),某某定了一個(gè)什么單子,然后他的地址是什么,電話是什么,告訴商家。

商家怎么辦?就只能用這個(gè)紙筆記下來(lái),交給廚師,說(shuō)你去做飯,廚師做完了,把小紙條給配送的同學(xué),配送的同學(xué)就去給用戶來(lái)送東西,這個(gè)里面過(guò)程是非常痛苦的。當(dāng)然那時(shí)候大家做的很有熱情,非常喜歡打電話,看到我們有用戶進(jìn)來(lái),一天從一單十幾單到幾百單,大家打電話打得很興奮。但是很快發(fā)現(xiàn)承受不了,因?yàn)榇蛞粏?,?duì)美團(tuán)的開(kāi)銷是說(shuō),一單哪怕只需要一分鐘去給商家打電話,幾百單的時(shí)候還行。一天一個(gè)人8小時(shí)工作,哪怕你持續(xù)不停的給商家打電話,那一分鐘打一個(gè)也就四百多單,你可以幫用戶定四百多單。但是當(dāng)這個(gè)單子增長(zhǎng)很快的時(shí)候,我們就發(fā)現(xiàn)我們?nèi)肆Ω簧狭?,技術(shù)的同學(xué)都去打電話了,技術(shù)同學(xué)受不了。商家也很痛苦,因?yàn)榇螂娫挼臅r(shí)候,很多的信息是說(shuō)不準(zhǔn)確的,他要記電話號(hào)碼,如果記不清的話,他還要再打過(guò)來(lái)問(wèn)剛才那個(gè)單子電話是什么,包括地址,有些地址字還比較難寫(xiě)。


我們?yōu)榱私夥?,首先我們解放我們自己,我們不給商家打電話了,我們給商家開(kāi)發(fā)一個(gè)APP,每個(gè)商家只要安裝了這個(gè)APP,他在手機(jī)上就可以接到通知。一旦有用戶下單, APP上就會(huì)有通知說(shuō)誰(shuí)誰(shuí)下了一個(gè)單,這時(shí)候老板根據(jù)APP上的信息,拿張紙,找個(gè)筆,把它寫(xiě)下來(lái),然后給廚師。這個(gè)時(shí)候你會(huì)發(fā)現(xiàn)說(shuō),至少美團(tuán)的同學(xué)們這個(gè)工作就省下來(lái)了。但是商家的工作,他雖然抄得準(zhǔn)確一點(diǎn),不用從電話里抄,直接從APP上抄,但是還是要做大量的工作,包括這個(gè)小紙條傳來(lái)傳去,有的人寫(xiě)得筆跡不是那么清楚。


后來(lái)我們?cè)龠M(jìn)一步,我們APP接到一個(gè)打印機(jī)上,這個(gè)APP有可能是一個(gè)手機(jī)的APP,也有可能是電腦上的一個(gè)應(yīng)用程序,這個(gè)APP連著打印機(jī),一旦用戶下單,打印機(jī)就會(huì)打出一個(gè)小條來(lái),他拿這個(gè)小條,這個(gè)信息就非常準(zhǔn)確了。商家不用花時(shí)間去寫(xiě)了,這時(shí)候就可以給廚師去做菜,廚師做完了交給配送員去送菜,這個(gè)就比較方便了。后來(lái)我們還是發(fā)現(xiàn)這個(gè)也不是很好,一般這個(gè)APP總是在老板那里的,如果說(shuō)好幾個(gè)人拿著APP會(huì)出現(xiàn)問(wèn)題,好幾個(gè)人拿的話,比如老板和老板娘都拿著,他們可能都去打,一個(gè)定單可能打了兩份;或者說(shuō),有時(shí)候說(shuō)老板拿著這個(gè)APP,但是老板剛好不在,那他就打不了。有的店,他就不得不買(mǎi)一臺(tái)電腦放在那,但是電腦對(duì)于很多小的外賣(mài)店,還是一筆額外的開(kāi)銷。因?yàn)楝F(xiàn)在手機(jī)上網(wǎng)的多,但是電腦上網(wǎng)的人已經(jīng)很少了,還是對(duì)商家有很多不方便的地方。


今年5月份的時(shí)候,我們的硬件的團(tuán)隊(duì),他們就說(shuō)我們自己來(lái)做一個(gè)云打印機(jī)。所謂云打印機(jī)就是它自己可以聯(lián)網(wǎng),聯(lián)網(wǎng)的時(shí)候有很多聯(lián)網(wǎng)的方式,比如說(shuō)我可以插一個(gè)手機(jī)卡,通過(guò)手機(jī)的網(wǎng)絡(luò)來(lái)聯(lián)網(wǎng),或者我也可以通過(guò)WiFi來(lái)聯(lián)網(wǎng),聯(lián)網(wǎng)之后,手機(jī)下單的時(shí)候,我們的美團(tuán)后臺(tái)的服務(wù)器會(huì)把這個(gè)單子的信息直接推送到這個(gè)云打印機(jī)上,這個(gè)云打印機(jī)就像一個(gè)POS機(jī)那樣,是一個(gè)很小的設(shè)備,會(huì)自動(dòng)地打印出單子的信息,這樣就大大得解放了我們美團(tuán)的同學(xué)和商家的同學(xué)。這是一個(gè)我們用技術(shù)來(lái)優(yōu)化商家端這邊的流程的一個(gè)例子。

接下來(lái)給大家舉一個(gè),我們?cè)趺慈ビ眉夹g(shù)優(yōu)化用戶端的例子。我們?cè)谟脩舳艘灿泻芏嗑€下的工作,其中一個(gè)工作就是用戶運(yùn)營(yíng)。我們有一種需求叫“拉新”運(yùn)營(yíng)團(tuán)隊(duì),他們的任務(wù)就是對(duì)一些已經(jīng)注冊(cè)了美團(tuán)的帳號(hào),但是過(guò)來(lái)逛了一圈,最后沒(méi)買(mǎi)東西就走了,可能來(lái)逛了好幾次,他還是沒(méi)買(mǎi),這時(shí)候美團(tuán)就急了,美團(tuán)急了怎么辦呢?給你10塊錢(qián),你趕緊買(mǎi)一個(gè)吧。因?yàn)楹芏嘤脩舻拇_是這樣,他沒(méi)買(mǎi)可能是因?yàn)樗恢谰W(wǎng)上怎么支付。他支付流程沒(méi)做通,或者說(shuō)他可能就不太習(xí)慣,所以我們希望把這些用戶轉(zhuǎn)化成一個(gè)習(xí)慣于在網(wǎng)上消費(fèi)的用戶,讓他體驗(yàn)一下,可能體驗(yàn)一下他覺(jué)得好,他可以以后接著買(mǎi)。給用戶10塊錢(qián), 20塊錢(qián),做一些優(yōu)惠活動(dòng),吸引用戶完成首次的購(gòu)買(mǎi)。那其實(shí)我們這邊的花銷是真金實(shí)銀的,我們是給用戶很多免費(fèi),對(duì)于美團(tuán)來(lái)說(shuō)薄利多銷,利很薄,所以我們希望少花錢(qián),多辦事,這個(gè)錢(qián)能少給就少給,能不給就不給,運(yùn)營(yíng)的團(tuán)隊(duì),就跟我們技術(shù)的同學(xué)聊,問(wèn)這個(gè)事情能不能優(yōu)化?


我們就去分析,先去分析這些用戶到底是什么樣的用戶,發(fā)現(xiàn)用戶有很多類,一類是有一些用戶他雖然來(lái)逛了一圈,或者逛了幾圈,他還沒(méi)買(mǎi),但是假以時(shí)日,可能再過(guò)幾天,最后他還是會(huì)自動(dòng)的轉(zhuǎn)化,所以有一些用戶的這種自動(dòng)轉(zhuǎn)化的可能性是比較高的。還有一些用戶,他可能來(lái)了幾次,他可能每次就是來(lái)逛逛,每次逛逛,就像逛街一樣,雖然他不買(mǎi),但是逛著也很爽,看著菜單他可能口水直流,也覺(jué)得挺爽。所以有些用戶,就是你不給他刺激,他就完不成自動(dòng)的轉(zhuǎn)化。然后還有一些用戶質(zhì)量低,所謂質(zhì)量低就是對(duì)美團(tuán)的質(zhì)量,我給他券的時(shí)候他就過(guò)來(lái)買(mǎi)個(gè)東西,比如我給他10塊錢(qián),他可以過(guò)來(lái)買(mǎi)個(gè)11塊錢(qián)的東西,然后轉(zhuǎn)身就跑了,我不給他券,他就半年不過(guò)來(lái),美團(tuán)又忍不住,又給他10塊錢(qián),他又過(guò)來(lái)看了看買(mǎi)了個(gè)9塊錢(qián)的東西就走了。對(duì)這種用戶不是說(shuō)質(zhì)量低,對(duì)美團(tuán)來(lái)說(shuō)當(dāng)然我們希望盡量這種薅羊毛式的這種用戶,他來(lái)當(dāng)然我們也歡迎,但是不來(lái)我們也就不去拉攏了。

還有一些用戶就是,屬于用戶質(zhì)量比較高的那些用戶,如果我們一旦幫助他轉(zhuǎn)化,就是越過(guò)了這個(gè)首次消費(fèi)這個(gè)坎的話,他可能就成為一個(gè)很高頻的,習(xí)慣于在美團(tuán)消費(fèi)的用戶,我們叫高質(zhì)量用戶。對(duì)于美團(tuán)來(lái)說(shuō),我們希望真正運(yùn)營(yíng)的對(duì)象,真正拉攏的對(duì)象就是在這些,我如果不給他刺激,他自己可能轉(zhuǎn)化不了,然后同時(shí)如果他轉(zhuǎn)化了,他對(duì)美團(tuán)的銷售額的貢獻(xiàn)會(huì)比較大。這種用戶,對(duì)其他三個(gè)象限,比如說(shuō)第一象限里邊,這部分用戶我不需要給他發(fā)券了,發(fā)券就是對(duì)美團(tuán)來(lái)說(shuō)浪費(fèi)錢(qián)了,我們叫浪費(fèi),當(dāng)然也沒(méi)浪費(fèi)。對(duì)下面這兩個(gè)象限呢,因?yàn)橛脩舯旧碣|(zhì)量比較低,所以他來(lái)和不來(lái)至少對(duì)美團(tuán)的最后的獲利來(lái)說(shuō)沒(méi)有大的關(guān)系,那我們?cè)趺慈フ页鲞@部分用戶?這是運(yùn)營(yíng)的同學(xué)給技術(shù)團(tuán)隊(duì)提出了一個(gè)要求,那我們?cè)趺慈プ瞿兀?/p>


做用戶畫(huà)像,在美團(tuán)其實(shí)有大量的用戶的數(shù)據(jù)。我們可以看到,他什么時(shí)候注冊(cè)的美團(tuán),他從什么瀏覽器,從什么操作系統(tǒng),然后包括說(shuō),他去看了哪些單子,瀏覽了什么單子,他做了什么搜索,他用的是什么手機(jī),這些信息我們都有。有大量的數(shù)據(jù),那我們從這些數(shù)據(jù)里面就給用戶畫(huà)像,我們會(huì)去判斷用戶的各種屬性,這些屬性有一些是,可能用戶在注冊(cè)的時(shí)候就會(huì)告訴我們了,比如說(shuō)性別,年齡,包括郵箱,這些可能本身他注冊(cè)的時(shí)候就會(huì)告訴我們,還有一些是需要我們?nèi)シ治?,比如說(shuō)這個(gè)是否結(jié)婚了,他的職業(yè)是什么,然后包括他的地理位置,地理位置當(dāng)然比較好拿,因?yàn)楹芏?,現(xiàn)在我們絕大部分用戶是在手機(jī)上的,他一旦在手機(jī)上做周邊的這種搜索,我們就可以拿到他的地理位置,地理位置的話,我們就可以知道,比如說(shuō)他是一個(gè)學(xué)校的用戶,是學(xué)生,還是說(shuō)一個(gè)工業(yè)園區(qū)的一個(gè)白領(lǐng),還是一個(gè)比如金融街的一個(gè)比較高大上的一個(gè)這個(gè)金融界人士。郵箱也很重要,比如說(shuō)我們發(fā)現(xiàn)用戶是qq.com的這種用戶,跟gmail.com的用戶,他是兩類不一樣的用戶,他所關(guān)注的東西,感興趣的東西都不一樣。

我們也會(huì)去分析用戶的收入水平和消費(fèi)水平,收入水平就是我們可能根據(jù)他的職業(yè),根據(jù)他的年齡的工作年限去判斷,他是在一個(gè)高收入,還是低收入,然后消費(fèi)水平相對(duì)來(lái)說(shuō),有可能他雖然收入很高,但是他過(guò)來(lái)看的單子都是一些比如打折打得很狠,比如吃一頓飯人均20塊錢(qián)這種也有。所以收入水平和消費(fèi)水平我們是分開(kāi)來(lái)判斷,然后會(huì)判斷這個(gè)用戶是傾向于最優(yōu)惠的價(jià)格,他還是講求比較高的質(zhì)量,就是訂酒店的時(shí)候是99塊錢(qián)的酒店,還是說(shuō)899的五星級(jí)酒店等等。

我們會(huì)去做一些分析,我們根據(jù)用戶他瀏覽的歷史,他去看了哪些單子,他去做了什么搜索,我們就可以知道他的品類偏好,他到底是喜歡美食,還是喜歡去看電影,還是喜歡去唱卡拉OK,這種娛樂(lè),這些也可以判斷出來(lái),再加上一些正常的統(tǒng)計(jì)的數(shù)據(jù),比如說(shuō)用戶搜索了多少次了,然后他去瀏覽了多少次,就是來(lái)逛街逛了多少次了,他是不是有收藏一些他比較喜歡的一些單子等等,這些很多很多的屬性加起來(lái),我們就建了用戶畫(huà)像的這種數(shù)據(jù)庫(kù),然后有了這些屬性,那我們接到運(yùn)營(yíng)同學(xué)的需求的時(shí)候,我們就會(huì)對(duì)用我們的用戶畫(huà)像里的數(shù)據(jù)先做特征的選擇,做特征的提取,甚至有一些屬性,比如說(shuō)年齡這個(gè)屬性,我們會(huì)做很多特征的離散化,就是把一個(gè)屬性離散成幾百個(gè),甚至幾萬(wàn)個(gè)這種屬性,放到我們的機(jī)器學(xué)習(xí)的模型里面去訓(xùn)練一些模型,最后我們用一些分類模型去,其實(shí)最后我們選的是SVM,就是支持項(xiàng)連機(jī)這種機(jī)器學(xué)習(xí)的算法,訓(xùn)練出的模型,它的準(zhǔn)確度相對(duì)來(lái)說(shuō),看起來(lái)沒(méi)有那么高,但是效果已經(jīng)很明顯,沃勒準(zhǔn)確率是75%,判斷用戶是不是真的在左上角那個(gè)象限里,準(zhǔn)確度75%,召回率能達(dá)到68%。有了這個(gè)技術(shù)支撐,最后我們運(yùn)營(yíng)的單位成本,比如說(shuō)我們拉新運(yùn)營(yíng)的單位成本就可以降低35%,總共的拉新運(yùn)營(yíng)開(kāi)支就節(jié)省了30%。

所以這個(gè)就是我們?cè)诩夹g(shù),在線下的用戶運(yùn)營(yíng)這邊做的一個(gè)努力。大家可以看到剛才舉了兩個(gè)例子,一個(gè)是在商家端,一個(gè)是在用戶端,其實(shí)不管怎么樣,我們?cè)诰€下技術(shù)可以做很多很多的優(yōu)化,讓我們線下的效率做很多的提升,那正是所有這些一個(gè)一個(gè)的優(yōu)化,加起來(lái)就可以把美團(tuán)的整個(gè)的生產(chǎn)效率提升上去,把我們的成本降下來(lái),這樣我們最后的獲利就是美團(tuán)越來(lái)越有競(jìng)爭(zhēng)力。

今天給大家分享的一些小的例子,最后總結(jié)一下,把它總結(jié)成幾點(diǎn)。第一點(diǎn),就是的確我們的技術(shù)架構(gòu)是要隨著業(yè)務(wù)的發(fā)展而不斷地變化的,不一定一個(gè)復(fù)雜的的一個(gè)完善的架構(gòu)就是好的,而是看,我們現(xiàn)在的公司是處在什么階段,如果是一個(gè)初創(chuàng)的公司,那大家還是要小步快跑,一個(gè)簡(jiǎn)單有效的方案就行了。第二我們是隨著業(yè)務(wù)發(fā)展,在一些開(kāi)源軟件的技術(shù)上不斷的優(yōu)化,業(yè)務(wù)流程我們也不斷的做一些標(biāo)準(zhǔn)化,自動(dòng)化,就是剛才給大家講了我們四個(gè)原則,就是把復(fù)雜的東西簡(jiǎn)單化,簡(jiǎn)單的東西標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)的東西流程化,流程的東西再自動(dòng)化,這是我們?cè)跇I(yè)務(wù)流程方面的一個(gè)優(yōu)化的原則。

第三個(gè)就是在技術(shù)上的,技術(shù)不僅僅對(duì)線上有用,在線下的每一個(gè)操作里,我們?cè)诓煌5乜次覀兡茏鲆恍┦裁礃拥膬?yōu)化。最后一句話就是,一個(gè)簡(jiǎn)單的事情,哪怕像美團(tuán)這樣,很多人覺(jué)得簡(jiǎn)單的事情要把它做到極致,就是真正做到極致,也會(huì)有足夠多的這種技術(shù)挑戰(zhàn),足夠高的門(mén)檻,所以我覺(jué)得現(xiàn)在很多O2O的創(chuàng)業(yè)的團(tuán)隊(duì)來(lái)說(shuō),他們做得事情看起來(lái)非常簡(jiǎn)單,但是只要大家不斷地優(yōu)化,不斷地極致,不斷地朝著極致去發(fā)展,你就可以在競(jìng)爭(zhēng)中勝出。這個(gè)就是給大家分享的美團(tuán)的技術(shù)團(tuán)隊(duì),我們做的很多的努力。

推薦內(nèi)容