百度SDN實踐與思考
2015中國SDN/NFV大會在北京召開,本次大會圍繞SDN/NFV展開討論,來自運營商、服務提供商等業界巨頭紛紛參與此次大會。百度公司系統部副總監張誠發表了題為《百度SDN實踐與思考》的演講。
謝謝大家!謝謝組委會的組織!今天因為時間比較的有限,我講的信息稍微多一些,時間上提醒我一下。今天跟大家分享的主題是“百度SDN實踐與思考”,更多的是在過往七八的時間,百度在SDN的嘗試,以及在工程上的一些經驗。

第一,我們為什么做SDN?我們的需求是什么?這個和傳統的電信企業不太一樣。
第一我管他叫還記得那年的青蔥歲月,百度那個時候規模沒有這么大,當時頭疼的兩個問題,我們4-7層用的都是商用交換機,在前端有前端的服務,有協議上的互通,我們業務向前迭代,商用的產品對我們來講是黑盒子,廠商給我們的開發時間趕不上互聯發展。
在那個時候開始很多的互聯網的黑客比較喜歡攻擊百度,那個時候我們有攻擊流量,我們怎么預防,我們能不能把黑盒子功能抽出控制層面,然后我們開發迭代一些,我們有LVS的組織,我們想把流量分流出來進行分析,那個時候不是那么堅持,只是立項在調研開發。
然后之后我們聽了一個名字,就是SDN網絡,我覺得我們可以開始干了,在2009年的時候,百度的第一個產品,BVS以及我們BCS,就是把流量按照七比三分出來,進行緩沖預防。
以前大部分的開發適應我們的基礎設施,因為他的工程建設周期相對比較強,你的產品的設計開發更多的適應硬件的平臺,如果我們在數據中心基礎層面,把 控制層面剝離出來變成管理層,會使我們硬件發展變化一步,這樣對軟件開發有更多的好處,對我們互聯網公司我們網絡平臺不能直接的給公司帶來利潤或者商業的 價值,對網絡基礎平臺,對業務最大的好處,快速的支撐業務的發展和迭代。
但是當我們嘗試做的時候,發現那個時候從2010到現在是中國互聯網規模和信息爆炸的時候,服務器的快速的增長,他的擴張,我們跟不上硬件設施的發 展,我們就沒有辦法控制了,我們回到價值的層面,在硬件基礎設施平臺上哪些東西需要抽象。按照SDN進行軟件的管理,按照硬件工業的這種發展不斷的進行快 速標準的擴張。
最后我提出一個整個SDN在百度的思路是自我認知不斷否定提升,談不上某一個階段對錯,只有適合不適合。
第二,我們做SDN網絡架構設計,做重構,但是我不提倡重構,他和軟件開發不一樣,他軟件重構代價小很多,涉及硬件的,如果你重構的話你的成本非常 大,另外你的周期非常的長,所以我認為,作為我們架構師或者我們基礎設施的管理者,具備這樣的素質,你在不停的階段否定自己,但是你的重構應該是彈性可擴 張的。
百度走過的路的時間緯度不一樣,我們走的路不一定是自己最正確的方向,所以大家選擇適合自己的方向是最好的。
百度為什么做SDN?主要是規模和效率的驅動,隨著數據量的擴張,大概五六年前,中文有效的網絡一百五六十億的網頁,現在超過了一千億,現在百度面對數百萬的要求。
以及上線變更批量下線的要求,我們針對管理規模上的驅動。在SDN的一個架構在這個架構上面百度SDN的產品和系統開發,分成縱向三塊的領域,右邊 我們更多的是在軟件定義一些軟件的功能。我們嘗試用軟件定義網絡上的原器件,比如說防空及、流量檢測、網絡功能轉發調度的設備,我們很多的產品在右邊兩 個,最下面的是硬件,現在在百度。我們自己做了一個抽象層,我們今天做很多硬件上面最頭疼的事情,我們面對不同的硬件的結構,這個跟我們互聯網公司軟件迭 代的思路不相匹配,我們做了一個抽象層,他的意思就是說,對于下面的硬件,無論是硬件對上層開發是唯一的,他是一個翻譯層,在我們自己研發的層面上,我們 在百度他會去把我在硬件的芯片上,無論是你什么芯片等等的,對于我的OS來講,我上層系統級的開發是整個層面都適配。
你想生產這樣的產品要根據我們的規則產生,另外傳輸的層面,是一個很好的例子,SDN能給我們解決什么?其實對于百度來講,給我解決最大的問題不要 在糾結。因為我記得最早互聯網公司,異地同傳對于互聯網公司我們運維和工程的人員大量的是網絡出身,或者寫編程出身的,轉身做網絡系統,運維產生的割裂, 你要有人運維網絡系統,所以在2008、2009、2010年我們使用其他技術,我們把傳輸和ED的網定義在一起,我們可以一個光纖分到很多的光波達到他 的數據共享。
再往后發展,隨著我們很多大量異地的數據中心,距離傳輸超過一千公里,而且帶寬160、320、400G很難滿足我們的要求,所以我們很難不建設這樣的網絡,所以SDN做了很好的融合。
我們自有的光產品,通過廠商的聯合開發,運維拓展發展,我們可以把他剝離出來,并且和SDN做了一個融合,實現了統一的管理,這個我們做的不是很完善,我們在傳輸的層面不斷的努力嘗試,他的進展嚴格落后我們IP上面。
通過SDN解決的方案,反過來促使我們產品級的開發,和產品級的設計和我們硬件做一個結合。舉出一個簡單的例子,有的做過產品,那個時候沒有做,很 多的RD他很苦惱的,特別做高性能SPC,他很苦惱,你網絡的帶寬,為什么千兆,雙千兆,我們可以提供以太網,或者我們可以提供40G的以太網,當你的基 礎平臺不斷迭代的時候,你可以給產品提供一個很大的想象的空間。
接下來是百度基于網絡的架構,百度整個網絡架構從2007到現在,經歷了一個大版本的迭代,我簡單的分享一下,從2007年到現在的話,最早我們做第一個版本的迭代,你的規模小的時候,我們把單用于,變成雙用于,就是把胖的網絡變成瘦的網絡。

可以提高他的擴展性和穩定性,我們把三層的結構壓成二層的結構,大家知道互聯網數據中心,有內外網,那個時候我們用這種IPM的方式。把我們的內網 流量,外網流量還有管理網的流量,通過控制層面做一個分流終結。4.0我們把IP并入我們的網絡,5.0把數據中心做一個大的池子,使我們對外提供服,未 來基于開發者的公共的平臺,包括百度的云平臺再我們同一套基礎設施,通過SDN的層面進行很好流量安全的控制和分發,時間的關系沒有辦法在每個幻燈片進行 細節。
后面舉幾個例子,一個在運維管理上面的例子,第一,規模的問題的實踐,現在基于SDN,我們在百度可以做到軟件鏈路狀態的監控,但是SNMP他經常會受到影響,你可以通過路由協議進行很好的監控另外對于交換機你做到自己的研發,你在OS芯片進行監控,包括溫度濕度感應。

包括降低數據中心的POE,就是省電,現在大家沒有人用風能,大家得用水塔智能,另外提高數據中心的溫度,你提高所有數據中心IT承載設備的溫度,這樣你可以探討數據中心POE的提升。
另外報警,我們把很多的日志存儲,做反復的迭代,我相信在很多的場合,現在百度一對于服務器的硬盤的預警,我們在你沒有發生故障的時候,我預測你會發生故障,然后進行批量的更換,這是人工的算法,如果沒有SDN的架構,你很難把日志剝離出來。
大家現在說數據量越多越好,不是的,是你的高效數據,和格式統一的數據越多,你的結果會更有效。在服務器的上線,插網線自動的安裝,每年交互幾千臺服務器。
另外擁塞的監控,我們很多人基于SFLOW收集數據,很少建立好的模型,剔除到你的沒有用的數據。
這是我們在工程產品上的例子,這是基于X86+DPDK的軟件。這是我們百度自己研發的交換機,OS是我們自己研發的,加上ODMBOX,我們所有 的都是用在我們百度自研的交換機。我現在在ODL的實踐聯盟里面,這是一個方向,我們在不斷的嘗試,我們和騰訊阿里在這個事情上不斷的推進。
另外我們基于ODL做搭建一個網絡,我們通過我們自己已有的TOR建立架構的網絡,和我們小型的網絡,在流程自動化的層面看他的互動性和協作性,這種ODLOF做控制及以及傳統網絡互聯,還有OFCONTROLLER研發。
最后這是我們對技術的展望,包括我們希望更多的看到我們大流量的,實際上基于大流量的芯片的檢測,并且告訴應用層做處理,我們不希望在系統的層面消 耗過多的資源,另外我們也是想,我們更關注的是25、50、100G的演進,實際上他倡導的聯盟做的項目,把很多交換的芯片抽象到一個接口上面,使你的開 發迭代更加的簡單。
第三,說的抽象層,我跟大家倡議的,我們做這個聯盟非常好的,今天的芯片廠商非常的多,ODM廠商更多,我們都要面對很多廠商硬件,比如,今天給我們廠商發這種標準,他們按這個標準做的時候,使我們上層應用操作更簡單,迭代更快。
另外我們做4G層的產品,和共有業務相關的硬件級的產品和平臺,和我們產品更好的結合,未來想開放更多的IPO的開發,基于我們硬件平臺進行他的開發創新,加快大家產品的迭代。
好的時間的關系,我今天的演講到這,謝謝大家!