在火山口上談?wù)勎覍D-WAN的冷思考
SDWAN將是2018年最具有投資價值的風(fēng)口,這不是預(yù)言,因為2017年就已經(jīng)是了,只不過GARTNER不一定看得到。如果連GARTNER都能畫出曲線圖,那就已經(jīng)不算是機(jī)會了。
然而自古以來,真正的風(fēng)口必定是火山口,只有極少量碳元素能夠在瞬間的高溫高壓下成為鉆石,大部分紅紅火火的巖漿,24小時之內(nèi)就會化為塵與土。
在和SDWAN短兵相接的2017年,我遇到了很多問題,解決了很多問題,進(jìn)而有機(jī)會與新的問題格斗。但是有一個問題始終在我腦海里盤旋,面對一個完全不可能用數(shù)學(xué)模型來描述的互聯(lián)網(wǎng),模型化的控制算法有用嗎?
昨天晚上,我終于把這事想明白了,沒用。
如果有用,1997年的互聯(lián)網(wǎng)就已經(jīng)被算法統(tǒng)治,不需要等待20年,更何況就洞察問題的眼光和解決問題的能力而言,互聯(lián)網(wǎng)的第一代開拓者要比后世高明得多。到今天為止,除了虛擬化和云計算,我們找不出任何能夠與奠基性互聯(lián)網(wǎng)技術(shù)相提并論的東西。直到2018年,整個互聯(lián)網(wǎng)仍然是在沿著1988年就已經(jīng)形成的趨勢發(fā)展,只是前進(jìn)的速度越來越快而已。即使是AI,也只是提高了加速度,還遠(yuǎn)遠(yuǎn)達(dá)不到變革趨勢的地步。
任何一種互聯(lián)網(wǎng)產(chǎn)品,一定是因為與一代人緊耦合而成功,當(dāng)這一代人逐步老去,產(chǎn)品也隨之凋零。無論是FACEBOOK、TWITTER還是微信、QQ,都會是我們的陪葬品。
但是在遠(yuǎn)離用戶的TCP/IP協(xié)議棧,TCP、IP及其衍生品卻已經(jīng)安然陪伴了幾代人,至今沒有衰落的跡象,而且除了學(xué)術(shù)圈,從來沒有人認(rèn)為它們已經(jīng)衰老。
TCP/IP協(xié)議棧里的那幾個基礎(chǔ)協(xié)議,兩只手就能數(shù)過來,為什么能夠打破周期律的魔咒?
其中的原因,是人性,或者說,人性中的最大公約數(shù)。
從有文字記載的那一代人開始至今,人性中共通的部分幾乎沒有發(fā)生過變化,而且是以矛盾的形式成對出現(xiàn):貪婪、恐懼、從眾、獨(dú)行........
TCP/IP的核心協(xié)議之所以能夠持久到無人懷疑其持久性,恰好是因為設(shè)計理念與人性中的最大公約數(shù)緊耦合,堅持中庸之道,而與其中個性化的部分松耦合甚至隔離。
而我們?nèi)粘4蚪坏赖幕ヂ?lián)網(wǎng)產(chǎn)品設(shè)計理念,恰好相反。
在人性的共性與特定人群的個性之間如何取舍,決定了一項技術(shù)的壽命以及存活形式。但這種取舍,又由產(chǎn)品和技術(shù)的定位決定,應(yīng)用層的技術(shù)和產(chǎn)品,只能追逐特定群體的個性化需求,而底層的技術(shù),則必須與個性化保持距離。
那么問題來了,SDWAN這個精神分裂癥患者,應(yīng)該如何選擇自己的落腳點(diǎn)?
首先SDWAN屬于地地道道的網(wǎng)絡(luò)技術(shù),然而服務(wù)的對象又是極度個性化的客戶需求。網(wǎng)絡(luò)中共性的需求,網(wǎng)絡(luò)基礎(chǔ)設(shè)施已經(jīng)滿足得很好,不需要SDWAN。SDWAN的生存空間,在巨無霸SP、CP們無力或者無暇顧及的縫隙中。
服務(wù)于運(yùn)營商和大型互聯(lián)網(wǎng)公司的SDWAN技術(shù),我始終認(rèn)為應(yīng)該歸于基礎(chǔ)網(wǎng)絡(luò)技術(shù),這類技術(shù)首先考慮的不是個性化、靈活性,而是穩(wěn)定性和可用性。這類技術(shù)的特點(diǎn),是防守而不是進(jìn)攻,是彌補(bǔ)廣大用戶日益增長的普遍需求與基礎(chǔ)設(shè)施盡力而為服務(wù)能力滯后之間的差距,而不是先行滿足少數(shù)用戶的個性化需求。
這就是為什么國內(nèi)三大運(yùn)營商雖然在戰(zhàn)略層面高度重視SDWAN,但在戰(zhàn)術(shù)層面莫衷一是甚至自相矛盾的原因。防守還是進(jìn)攻,這是一個問題。
初創(chuàng)型SDWAN公司的優(yōu)勢在于,根本不需要糾結(jié)于選擇題,只能進(jìn)攻,防守即死亡。
為了達(dá)成持續(xù)攻擊的目標(biāo),SDWAN只有一種選擇,在運(yùn)動中持續(xù)尋找個性化需求與復(fù)雜網(wǎng)絡(luò)狀態(tài)之間可控的交集,并迅速榨取其中的資源。
國內(nèi)外初創(chuàng)型SDWAN公司很多,但是據(jù)我的觀察和了解,真正具備良好盈利能力的,都是運(yùn)動戰(zhàn)、游擊戰(zhàn)高手,技術(shù)粗糙、身手敏捷。而那些技術(shù)精致、身手笨拙的公司,都沒有掙到錢
現(xiàn)在越來越多的人在各種宏大的場合講SDWAN,如果粗略劃分一下,可以分為架構(gòu)、算法兩大流派,但是很不幸,這個行當(dāng)里最不值錢的恰好就是架構(gòu)和算法。
先說架構(gòu),大部分人認(rèn)為架構(gòu)即規(guī)劃,只要有了好的架構(gòu)就等于成功了一多半。這個觀念至少落后時代30年。所有的架構(gòu)都必須建立在對網(wǎng)絡(luò)的正確理解之上,正確理解的東西越多,架構(gòu)就越精細(xì),反之則越粗獷,甚至看起來根本不像個架構(gòu)。但是對于互聯(lián)網(wǎng)這個復(fù)雜巨系統(tǒng),沒有人能夠提前獲得足夠的正確理解,甚至少得可憐的正確理解都不可得,在這個空洞的基礎(chǔ)上,架構(gòu)從何而來?如果稍微留心一下那些熱衷于談?wù)摷軜?gòu)的會蟲,很容易發(fā)現(xiàn)他們往往醉心于編織一個精致完美的系統(tǒng)架構(gòu)圖,但是對于網(wǎng)絡(luò)中到底發(fā)生了什么卻幾乎一無所知。這樣的架構(gòu),連他們自己都不敢用。在互聯(lián)網(wǎng)這個領(lǐng)域,架構(gòu)歷來只是對既成事實的總結(jié),而且是對影響足夠廣泛的既成事實的總結(jié),這就是為什么谷歌最近4年來發(fā)布的關(guān)于SDWAN的論文,口氣越來越謹(jǐn)慎,越來越不像SDWAN,而更像是對一個公司內(nèi)部技改項目的經(jīng)驗總結(jié)。
至于算法,現(xiàn)在已經(jīng)有人考慮用AI解救網(wǎng)絡(luò)工程師了。但是別忘了一切算法的血液都來自輸入數(shù)據(jù),算法越復(fù)雜,對輸入數(shù)據(jù)的精確性和全面性要求越苛刻。而互聯(lián)網(wǎng)的窘境恰恰在于,無論是運(yùn)營商還是互聯(lián)網(wǎng)公司,都缺乏足夠支撐稍微復(fù)雜一點(diǎn)的網(wǎng)絡(luò)工程師替代算法的數(shù)據(jù)。
但是,這些宏觀上的困境,并不影響SDWAN在圍觀世界中有所作為。
剛才我們提到,SDWAN屬于精神分裂型技術(shù),既要緊貼用戶的個性化需求,又要順應(yīng)廣域網(wǎng)的復(fù)雜特性,這是不利的一面。但是精神分裂癥患者有精神分裂癥的玩法,那就是在宏觀不確定性中捕捉暫時、局部的確定性。
下面,回歸正題,談一談我的一些冷思考。
首先,SDWAN的核心,不是控制,而是管理,而管理的核心,是網(wǎng)絡(luò)狀態(tài)一致性維護(hù)的能力。
當(dāng)無數(shù)人在各種場合大談SDWAN控制面如何如何的時候,任何一個知道點(diǎn)常識的人都應(yīng)該自然而然地想到以下個問題。
第一,控制的核心是算法,也就是模型化的解決方案,但是模型化的解決方案必定面向可以模型化的問題,那些控制算法所面向的問題,是可以模型化的嗎?
第二,如果算法是問題的核心,為什么二十年前的工程師沒有想到使用這些算法,難道是前人愚鈍?
第三,今天被熱議的這些控制算法,大部分在至少十年前就已經(jīng)被嘗試過了,只不過那時候還沒有SDWAN這個東西,當(dāng)時為什么失敗了?導(dǎo)致失敗的因素,今天都被消滅了嗎?
上述三個問題的答案,大部分是否定的。因為要獲得控制算法對輸入數(shù)據(jù)所要求的準(zhǔn)確性和時效性,控制面本身幫不上任何忙,只能依靠管理面。而管理面的效率,取決于網(wǎng)絡(luò)狀態(tài)信息獲取和測量的手段。在過去的幾十年里,這些手段的進(jìn)步非常緩慢,并且常常被“測得快和測得準(zhǔn)”之間的矛盾所困擾?,F(xiàn)在你能夠見到的大部分SDWAN體系架構(gòu)中,管理面只是一個配角,采用的技術(shù)也和傳統(tǒng)的網(wǎng)管處在同一個水平,這樣的系統(tǒng)設(shè)計,我實在看不出來能比一個傳統(tǒng)的網(wǎng)管系統(tǒng)強(qiáng)到哪去。
網(wǎng)絡(luò)信息的采集只是網(wǎng)絡(luò)狀態(tài)一致性維護(hù)的一部分,信息采集不全、不準(zhǔn),降低控制的效率即可,不會有什么害處。但是網(wǎng)絡(luò)狀態(tài)一致性維護(hù)的另一個方面,在控制平面和數(shù)據(jù)平面保持控制狀態(tài)的一致性,卻只能做好不能做壞。一旦數(shù)據(jù)平面出現(xiàn)了應(yīng)該撤銷而沒有撤銷的僵尸流表或轉(zhuǎn)發(fā)表,就如同給自己埋下不定時炸彈,積累到一定程度,足夠摧毀整個網(wǎng)絡(luò)。然而不幸的是,這個問題也被廣泛地忽略了。
什么才是好的網(wǎng)絡(luò)狀態(tài)一致性維護(hù)?在SDWAN這個領(lǐng)域,做的最好的是谷歌。但是如果把視野放寬,那些古老的協(xié)議甚至足以令谷歌望塵莫及。例如飽受詬病的分布式路由協(xié)議。
幾乎所有華麗的SDWAN系統(tǒng)架構(gòu)都會以批評分布式路由協(xié)議傻、笨、慢開場。但是事實恰好相反,分布式路由協(xié)議的設(shè)計之智慧,完全不是現(xiàn)有的SDWAN可以相提并論。因為這些協(xié)議牢牢把握住了以網(wǎng)絡(luò)狀態(tài)一致性維護(hù)為核心這個精髓。
以O(shè)SPF為例,整個協(xié)議的核心根本不是迪杰斯特拉算法,而是路由器應(yīng)該“與誰交換信息、交換什么信息、什么時機(jī)交換信息”。這個信息,就是網(wǎng)絡(luò)拓?fù)湫畔?。由于分布式實施,每個路由器并不知道自己獲得的拓?fù)湫畔⑹欠袢?、實時和精確,也不知道以多快的頻率測量和更新拓?fù)湫畔⒛軌蜻_(dá)到最佳效果。這是OSPF的困境。為此OSPF的設(shè)計中采用了兩個巧妙的機(jī)制,第一是利用廣播的絕佳滲透性確保信令消息的可達(dá)性不受拓?fù)渥兏约奥酚墒У挠绊懀瑯?gòu)造出一個獨(dú)立、彈性的信令平面。第二是我行我算,無論LSDB是什么樣、應(yīng)該是什么樣,只要有變化就計算,盡管就單次計算而言,結(jié)果可能錯誤百出,但是這種持續(xù)的計算行為遲早會收斂到正確的狀態(tài),而且絕不會出現(xiàn)僵尸路由表這樣的問題。所以O(shè)SPF對網(wǎng)絡(luò)狀態(tài)一致性的維護(hù)完全可以在不知道真實網(wǎng)絡(luò)狀態(tài)的情況下展開,而且總是趨向于正確的方向,具備自我清潔功能。反觀SDWAN,控制消息傳遞的可靠性幾乎完全依賴于預(yù)設(shè)專線或者靠天吃飯,而最常見的網(wǎng)絡(luò)狀態(tài)一致性維護(hù)機(jī)制只是轉(zhuǎn)發(fā)設(shè)備與控制器失聯(lián)之后仍然能夠存續(xù)轉(zhuǎn)發(fā)策略,并在一定的時間之后徹底刪除。僅此而已。
這意味著SDWAN無論是在獲取網(wǎng)絡(luò)狀態(tài)還是保持控制策略一致性方面,都存在明顯的脆弱性,當(dāng)網(wǎng)絡(luò)不那么完美的時候,SDWAN系統(tǒng)既沒有能力為控制面提供準(zhǔn)確實時的輸入,也沒有能力對錯誤的計算結(jié)果進(jìn)行抑制和清除,更不可能在網(wǎng)絡(luò)恢復(fù)穩(wěn)態(tài)之前朝著正確的方向自動駕駛。
大部分SDWAN并非工作在完美的環(huán)境之下,要么以O(shè)VERLAY的形式立于危墻,要么租用并不完全可靠的專線資源,這種場景下,脆弱的管理面之所以沒有引起足夠的重視,我認(rèn)為主要是因為現(xiàn)有的SDWAN系統(tǒng)規(guī)模仍然非常有限,依靠人工也能收拾殘局。但是一旦系統(tǒng)體量突破某個限度,管理面的問題必定會浮出水面。體量如谷歌者,無論是在數(shù)據(jù)中心內(nèi)部SDN還是DCI皆非常倚重分布式路由協(xié)議的設(shè)計理念,而Juniper引以為榮的segment routing則重新皈依源路由技術(shù),也是因為管理面瓶頸難以突破所致。
任何一個商用的系統(tǒng)都必須以提供穩(wěn)定的輸出預(yù)期為前提,這個穩(wěn)定的輸出,顯然取決于管理面而非控制面。這和AI的命門是數(shù)據(jù)而非算法是一個道理。
第二,網(wǎng)絡(luò)狀態(tài)一致性維護(hù)的能力,并不總是需要依托控制器實現(xiàn),中小規(guī)模網(wǎng)絡(luò)中,人工的效率甚至有可能更高。
在過去的兩年中,每與同行談?wù)揝DWAN,被問的最多的問題并不是我們用SDWAN解決了什么問題、滿足了哪些特殊的需求,而是“你們的控制器是基于ODL還是ONOS”。這代表了一種根深蒂固的誤解,干SDWAN,必須先有控制器,控制器是系統(tǒng)的核心。但是根據(jù)我的經(jīng)驗,控制器不僅不是核心,而且完全可以不存在。尤其是在中小規(guī)模的SDWAN系統(tǒng)中,雇傭一個經(jīng)驗豐富的網(wǎng)絡(luò)工程師所能帶來的收益,遠(yuǎn)遠(yuǎn)勝過雇傭一群碼農(nóng)開發(fā)一個復(fù)雜的控制系統(tǒng)。這樣的例子我可以隨手舉出三個以上,而且都是這個行當(dāng)里的吸金翹楚。一旦你掌握了網(wǎng)絡(luò)的特性,并且這種特性具備長期穩(wěn)定性,剩下的事情就只是用最廉價的方式利用和駕馭這種特性了,這件事情遠(yuǎn)比想象的要簡單得多。
當(dāng)然,如果想迅速吸引眼球,也可以給自己披上SDWAN的外衣。
很多只顧埋頭賺錢的公司,確實是在經(jīng)過大師點(diǎn)撥之后才恍然大悟,┗|`O′|┛ 嗷~~,原來我干的就是SDWAN??!
所以說架構(gòu)這種東西,確實是只能總結(jié),而不能用來規(guī)劃的。
如果一個初創(chuàng)公司告訴你說,我們目前還沒有賺錢,但是正在奮力開發(fā)SDWAN控制器,那么至少有百分之百的可能,這公司離死不遠(yuǎn)。
但是,當(dāng)SDWAN的規(guī)模突破某個限度,人工的劣勢就會顯現(xiàn),運(yùn)維自動化的重要性必然浮現(xiàn)。這個臨界點(diǎn)將出現(xiàn)在網(wǎng)絡(luò)狀態(tài)一致性維護(hù)難以維計的時刻。但即使是在這個時刻,控制器仍然不是必需品。
第三,SDWAN的生存之道,是去生產(chǎn)環(huán)境中擴(kuò)大與真實問題的接觸面,并藉此遏制不切實際的想法。
SDWAN最重要的任務(wù),可能就是要在充滿不確定性的宏觀網(wǎng)絡(luò)環(huán)境中捕捉暫時、局部性的確定性。這件事情也指望不上算法,因為所有的算法都依賴于確定性的輸入和確定性的模型。效率最高的方法,是先沖上去再說,在生產(chǎn)環(huán)境中與真實的問題充分接觸,藉此區(qū)分哪些是主要矛盾,哪些是次要矛盾,順便搞清楚哪些事情確實有利可圖,而哪些事情只是看起來很美。
人人皆知奧卡姆剃刀原則,如無必要勿增實體。但是SDWAN本身所處環(huán)境以及面臨問題的復(fù)雜性,會讓這個領(lǐng)域看起來如同AD HOC一樣遍地都是創(chuàng)新性的問題,但是到底哪些問題值得解決,仍然要靠生產(chǎn)環(huán)境來檢驗。
僅就這一點(diǎn)而言,學(xué)術(shù)圈很難在SDWAN領(lǐng)域有所建樹,除非與工業(yè)界緊密結(jié)合,或者自己搞出一個能承載真實用戶需求的SDWAN系統(tǒng),用實驗數(shù)據(jù)說話。
從今天開始,就是2018年了,很多人正準(zhǔn)備投身于SDWAN的淘金熱當(dāng)中,或者借著SDWAN的風(fēng)頭寫幾篇不錯的論文、拿到幾個多金的項目。在這個火山口上,我覺得首先應(yīng)該保持冷靜,因為這個領(lǐng)域的成熟程度,無論是技術(shù)還是產(chǎn)業(yè),都遠(yuǎn)遠(yuǎn)超過媒體們的想象。這既不是無主之地,也不是處女地,巨獸和小型食肉動物,已經(jīng)站滿了每一個賽道,后來者若要立足和生存,需要以更加務(wù)實的態(tài)度以及更加高超的技巧,開辟新的賽道。