1、一些數(shù)據(jù)
電商的業(yè)務復雜度,可以通過些數(shù)據(jù)來說明。單一個很明顯的例子,2009年左有,當時商品詳情系統(tǒng)的PV才1億左有,到了2016年已經(jīng)近50億了,翻了50倍。而當時的系統(tǒng)架構(gòu)和現(xiàn)在的架構(gòu)完全不可同日而語。
2.系統(tǒng)規(guī)模的復雜度
一個復雜網(wǎng)站的系統(tǒng)架構(gòu)一般會經(jīng)歷如下的演變過程。
(1)單系統(tǒng)。早期業(yè)務簡單,定,每天晚上都需要把系統(tǒng)重新啟動下。 單系統(tǒng)階段也可分成兩段:最早是花50 幾臺機器就支撐了一個業(yè)務系統(tǒng)。剛開始系統(tǒng)不穩(wěn)萬元買的一個PHP系統(tǒng);隨著業(yè)務的發(fā)展,系統(tǒng)逐步改造成了Java技術體系, 名字叫Denali。
(2)分布式業(yè)務系統(tǒng)。到了2007年,團隊已經(jīng)有了上千人,項目支撐面臨巨大的挑戰(zhàn),系統(tǒng)架構(gòu)必須升級進化。這就開啟了第二個階段:分布式業(yè)務系統(tǒng)階段。我們開始做分布式戰(zhàn)略,把原來的單系統(tǒng)拆分成多個高內(nèi)聚、 低耦合的中心化系統(tǒng)?,F(xiàn)在大家耳熟能詳?shù)挠脩糁行?、商品中心、交易中心、店鋪中心都是這個階段出現(xiàn)的。這同時也意味著把上千人的團隊拆分成了業(yè)務相對比較集中的小團隊。每個獨立的系統(tǒng)可以獨立設計、獨立接需求、獨立發(fā)布,整個研發(fā)效率和系統(tǒng)穩(wěn)定性都上了一個臺階。
(3)業(yè)務平臺。電商發(fā)展的速度實在太快了,到了2011年,隨著各種B2C網(wǎng)站、各種導購網(wǎng)站的出現(xiàn),可能會把一個大型網(wǎng)站從組織架構(gòu)上拆成幾個獨立的事業(yè)部。多個獨立事業(yè)部的業(yè)務決策鏈路更短、業(yè)務發(fā)展更快,技術人員也快速增長。事業(yè)部的定位不一樣、業(yè)務發(fā)展方向不一樣、業(yè)務的管控規(guī)則不一-樣,甚至在一-些業(yè)務規(guī)則上 還可能相互沖突。
我們都知道,在做業(yè)務系統(tǒng)的時候,為了快速應對每天的業(yè)務需求變更,很多時候都是通過代碼來寫業(yè)務邏輯的,而在業(yè)務抽象建模,系統(tǒng)架構(gòu)的開放性方面都很不成熟這會導致業(yè)務邏輯之間的耦合 和相互影響,大幅降低研發(fā)效率。系統(tǒng)架構(gòu)必須升級,這就開啟了第三個階段:業(yè)務中心平臺化階段。什么是平臺?就是要把基礎能力和每個業(yè)務方的特性業(yè)務拆分,隔離業(yè)務和業(yè)務之間的邏輯。比如說兩個相似的業(yè)務方業(yè)務有可能是沖突的,但他們需要在同一個平臺上執(zhí)行,這時我們必須把業(yè)務的邏輯分開。這個階段開始升級會員平臺、商品平臺、交易平臺等等。平臺化最核心要點的是業(yè)務抽象建模和系統(tǒng)架構(gòu)的開放性:業(yè)務抽象解決80%的共性問題,系統(tǒng)架構(gòu)開放性解決20%的個性化問題。
(4)業(yè)務中臺。隨著生態(tài)的復雜度、業(yè)務的復雜度、系統(tǒng)復雜度的升級,又遇到了新的問題。領域的平臺化雖然解決了領域內(nèi)部的問題,但是每一個業(yè)務的執(zhí)行都是跨領域的,涉及會員、商品、交易、營銷、店鋪、評價、支付、物流、售后等等.....一套業(yè)務邏輯橫跨幾十個系統(tǒng)。比如一件衣服的商 品發(fā)布規(guī)則、交易規(guī)則和營銷規(guī)則均分散在不同的系統(tǒng)中,而且相互關聯(lián),時間一長就沒有人能說清全局了。如果程序員通過翻查代碼還原出所有的邏輯,代價極大。事態(tài)發(fā)展到后來,我們會發(fā)現(xiàn)評估需求的成本可能會大于實際開發(fā)的成本,而真正有效的工作占比很少,導致整個研發(fā)效率和業(yè)務響應速度都比較差。這已經(jīng)不是單純的技術問題了,而是復雜生態(tài)的協(xié)作問題。這時,我們開啟了第四個階段:業(yè)務中臺化階段。此階段主要解決信息獲取成本高、互聯(lián)互通成本高、服務具有不確定性和低水平重復建設這四個問題。
那么,如何來解決這些問題呢,我們可以了解下傳統(tǒng)的建 筑行業(yè)和互聯(lián)網(wǎng)本身的基礎設施建設,基本上都要靠三樣東西來共同解決復雜生態(tài)的協(xié)作問題:
協(xié)議標準、運行機制。
滿足標準的分布式執(zhí)行單元。
中心化的控制單元。
比如移動互聯(lián)網(wǎng),我們現(xiàn)在之所以上網(wǎng)能用手機,它的根本是什么呢?網(wǎng)絡的協(xié)議,也就是我們對網(wǎng)絡的理解,它是基石。在這個前提下,我們的各種設備,不管是什么品牌的手機,只要滿足3G協(xié)議、4G協(xié)議,就可以插卡上網(wǎng)。也就是這張SIM卡確定了我們的身份,從運營商控制網(wǎng)絡上獲取了控制信息,它知道我們是誰,能不能上網(wǎng),網(wǎng)絡速率等等信息。再回頭來看我們的電商生態(tài),就是要根據(jù)我們對商業(yè)的理解,把一些基礎協(xié)議梳理出來。例如什么是業(yè)務?什么是業(yè)務身份?各個業(yè)務領域的邊界是什么?每個領域提供的基礎服務是什么?領域服務和領域服務之間的流程鏈接標準是什么?之后,再在這些思想的指導下建立業(yè)務平臺化的實施標準和業(yè)務管控標準。因此,電商業(yè)務中臺是一套由業(yè)務能力標準、運行機制、業(yè)務分析方法論,配置管理和執(zhí)行系統(tǒng)以及運營服務團隊構(gòu)成的體系,能夠給各業(yè)務方提供快速,低成本創(chuàng)新的能力。
(5)構(gòu)建基礎平臺。從業(yè)務開發(fā)角度來看,中臺主要是為了提升業(yè)務的開發(fā)效率,此處的開發(fā)效率主要是指個人協(xié)作的效率。如果換成從機器維護的角度來看分工協(xié)作,那么技術要解決的無非就是數(shù)據(jù)、算法和計算三方面的問題。
數(shù)據(jù)。哪些數(shù)據(jù)有效,哪些數(shù)據(jù)重復,數(shù)據(jù)該放在哪個數(shù)據(jù)中心;
計算資源如何利用。平時大部分機器的負載都比較低,如何有效利用這個計算資源,在高峰和低谷都能充分發(fā)揮它的作用;,計算和數(shù)限的協(xié)作。計算和數(shù)據(jù)是香放在一 起?如果不放在一起,遷移數(shù)據(jù)就要考慮帶寬問題,會增加新的成本變量;,計算性價比的評估,依賴于算法。
數(shù)據(jù)、計算資源和好算法才能構(gòu)建出優(yōu)秀的基礎設施,在此基礎上才能給上層業(yè)務提供更好、更穩(wěn)定的基礎,所以搭建高效的基礎平臺是非常重要的。
3.組織管理的復雜度
其實復雜的問題都不是技術上的,往往是人和組織上的,所以如何提升人和組織的效能就比較關鍵了。
(1)呼喚全能工程師。在幾十個人維護一個單系統(tǒng)的情況下,決定效率的就是這幾十名工程師的技能水平,每個人的效率往往就決定了整體的效率。這種情況下Superman能發(fā)揮很大的作用。
(2)呼喚系統(tǒng)架構(gòu)師。當一個團隊達到上千人時,單系統(tǒng)肯定搞不定了,必須要構(gòu)建分布式系統(tǒng)了,工程師必須要分工了。這個階段最容易從業(yè)務開發(fā)團隊中誕生中間件團隊,他們?!竇解決系統(tǒng)之間的連接問題。這個時期也會誕生一批能力比較強的系統(tǒng)架構(gòu)師,他們決定系統(tǒng)該如何設計以保持高可用、高性能和高擴展性。從組織建設上,整個團隊會按照技術分工的維度進行細化拆分,如:
產(chǎn)生架構(gòu)團隊即系統(tǒng)架構(gòu)師,對整體的系統(tǒng)架構(gòu)進行規(guī)劃, 保障總體設計的高可用、高性能和高擴展性;
產(chǎn)生業(yè)務開發(fā)團隊即業(yè)務開發(fā)工程師,專注實現(xiàn)業(yè)務邏輯的開發(fā);
產(chǎn)生中間件團隊,專注開發(fā)和維護系統(tǒng)中一些通用技術組件,為業(yè)務開發(fā)提供支持,提升開發(fā)效率;
產(chǎn)生UED團隊,解決界面交互問題;。產(chǎn)生測試團隊,保障開發(fā)的可用性問題。
(3)業(yè)務平臺團隊誕生。當團隊達到幾千人時,光靠技術角色分T已經(jīng)無法解決問題時,就必須開始平臺化建設,也就是業(yè)務架構(gòu)師要發(fā)揮作用的時候了。公司的每個業(yè)務領域必須進行平臺化建設,如電商業(yè)務中進行商品平臺、交易平臺、營銷平臺、會員平臺的拆分。這些拆分后的平臺再為上層業(yè)務提供基礎的服務,便于上層業(yè)務進行更多元化的組合。在這個階段組建業(yè)務平臺團隊是最合適不過的了,這樣可以解決公共基礎業(yè)務的集中管控問題,避免基礎服務的重復和無序建設。
(4)業(yè)務中臺組織誕生。當公司規(guī)模達到幾萬人時,一般公司都會采取多個垂直化事業(yè)部的組織形式,每個事業(yè)部-般都是全編制的技術團隊,這其實也是重復造輪子最嚴重的時期。但是,一些基礎的業(yè)務能基于業(yè)務平臺中的service構(gòu)建業(yè)務嗎?其實也很難!因為人員一旦增多,再靠人與人之間的信息傳遞已經(jīng)不可能有效運轉(zhuǎn)了。例如你甚至很難知道公司當前到底提供哪些服務了,因為如果沒有機制保障服務的注冊和發(fā)現(xiàn)的話,它的獲取成本會非常之高。此階段影響效率的主要就是信息獲取成本、互聯(lián)互通成本和違約成本。
當公司達到上萬人甚至幾萬人規(guī)模時,必然存在以下兩種情況。后中管第一,沒有一個平臺型的業(yè)務部門,例如公共業(yè)務平臺、中間件、基礎技術平臺。在這種情況下,各垂直業(yè)務部必然會建設各自的平臺,產(chǎn)生大量重復建設,導致某些技術基礎設施和業(yè)務基礎服務不統(tǒng)一,甚至公司的技術棧都不一致,嚴重影響公司的效率和長遠發(fā)展。
第二,有一個平臺型的業(yè)務部門,但是也會出現(xiàn)各種問題。
不知道誰有什么樣的服務能力、由誰提供支持、服務質(zhì)量如何,團隊信用度如何;
找到了有能力的團隊,但BU目標不一致,不一定會獲得支持;
溝通不暢、對同一個名稱的理解各異(“多國語言”),需要“翻譯”;支持的質(zhì)量與個體能力有差異,具有不確定性;
系統(tǒng)間協(xié)同難:同一個需求需要在多個系統(tǒng)中實現(xiàn),相互連接需要定制,導致成本高;
后續(xù)支持不可控:開始支持,后續(xù)不支持了,沒有顯性違約成本;。支持方即便做得好也沒有可度量的標準,缺乏長遠的動力。
顯然第種情況我們是不提倡的, 無法持續(xù)發(fā)展;但是第種情況也會存在各種問題,這些問題也正是構(gòu)建深圳網(wǎng)站建設業(yè)務中臺需要解決的問題。
本文地址:http://93xgc8e.cn//article/4464.html