閱讀52 返回首頁    go 微軟 go Office


麵對SDN,我們該怎麼辦?

引言:回顧SDN的發展曆史,可以發現:SDN作為一種新的網絡體係結構,對網絡學術圈和工業界都產生了深遠的影響。SDN並不是曇花一現的網絡技術新概念,而是一場網絡領域的技術變革。
我們將如何應對這場變革:SDN初學者如何入門和進階?網工如何在熟悉領域縱深發展?產品經理如何在SDN架構下設計下一代網絡產品?創業者如何尋找下一個SDN殺手級應用?投資者如何找到SDN領域的獨角獸?這些問題依然值得討論。
本文相關圖書《重構網絡:SDN架構與實現》。

       圖片描述

SDN初學者如何入門?

  所有新技術的入門都需要快速準確地理解三個問題:SDN是什麼?為什麼需要SDN?曆史起源?
  中文好的隻需要看衛峰兄的這本書就夠了《深度解析SDN:利益、戰略、技術、實踐》,通讀完此書就算SDN入門了。雖然有些信息稍顯過時,但依然是入門者的必備良藥,據說2017年會出第二版。英文好的可以閱讀《SDN A Comprehensive Approach》這本書。在現有的英文書籍裏麵,個人認為這本是比較係統全麵的入門級書籍。
  澤衛:根據我過去的經驗教訓,切記在網絡上閱讀大量碎片文章,這樣的入門學習非常不係統,對於後續的學習非常不利,會產生很多誤解。

SDN學習者如何進階?

  入門之後如何縱深發展。澤衛:個人的經驗是:
  “Learn SDN by the Hard Way”。什麼意思?簡單來說,就是笨辦法學習SDN,事實上要跨過任何新技術的門檻,一定不要想走捷徑。比如要深入學習SDN發展曆史,至少要弄清楚兩方麵的內容:一是定義 SDN 概念和架構背後的人,以及推動SDN 架構走向成熟的標誌性事件;二是最初SDN借鑒了哪些關鍵的技術理念,SDN架構是如何在這些技術原理的支撐下發展起來的。隻有一頭紮進去,踏踏實實弄明白每一點技術細節,才是最有效的學習思路。
  當然這種說法還是有點虛。到底怎樣通過笨辦法來學習SDN?具體來說,我們需要係統地閱讀一本SDN技術書籍,同時需要係統地學習一門SDN課程。
  進階的書籍強烈推薦澤衛和李呈的新書《重構網絡:SDN架構與實現》,本書適合入門之後的學習,不但能幫助入門者梳理SDN領域的知識體係,而且能幫助進階者挖掘SDN領域更深層次的信息。對SDN領域的技術概念和知識體係進行了係統梳理。點擊閱讀原文了解這本書的詳細內容。
  進階的課程我強烈推薦普林斯頓大學教授Nick Feamster在Coursera上的SDN開放課程:https://zh.coursera.org/learn/sdn。
             【圖2】
  相比其他課程,小Nick教授(斯坦福大學SDN之父是大Nick教授)課程的每一部分都有明確的學習目標、課程視頻、實驗內容和相關論文。從2014年開始課程內容逐年更新,每一課時結尾都有Nick教授對相關業內人士的視頻采訪,比如Martin Casado和Jennifer Rexford等。
  任何人都可以注冊學習本課程,2017年2月份將開始新的課程,如果你足夠努力,學完還能拿到一個結業證書。這個結業證書含金量較高,據我的了解,國內拿到這個結業證書的人非常之少,我自己也是屢屢堅持,屢屢半途而廢。

SDN科研如何進階?

  對於專注SDN科研的入門者來說,我一直在努力推薦《SDN A Comprehensive Survey》這篇總論型論文,再次強調一下,這是目前最完整和全麵的一篇總結型論文。這篇論文長達61頁,引用了579份參考文獻,從2014年開始每半年發布一個新版本,全麵細致地介紹了SDN科研領域的方方麵麵。國內很多SDN課題組,進組的學生人手一份。
         【圖3】
  澤衛:通過這篇論文的學習,可以快速梳理SDN領域的研究進展和現狀。隻有這樣,才能清晰地結合自己的研究方向找到合適的切入點。以前會有SDN方向的學生谘詢:導師讓做做SDN,該怎麼選方向?我的建議是先看看這篇論文,然後自然就知道選擇什麼方向了。
  不過,我個人對於國內SDN領域的科研有一個悲觀的論調:如果將SDN的研究分支比喻成一棵大樹,那麼這棵大樹已經枝葉繁茂了,所以留給國內科研機構的大機會已經不多了。也許更好的方式是結合自身在其他領域的積累,比如IoT、大數據、機器學習等,尋找SDN與原來研究領域的交叉點來做文章,或者將SDN理念和架構引入新的應用場景。
  我個人的觀察:2016年SDN-IoT領域和NetPL(網絡編程語言)領域開始活躍起來,也許這兩個方向在未來兩年會成為SDN科研的熱門Topic。

網絡工程師該怎麼辦?

  SDN將帶給我們最大的改變就是:從網絡工程師轉變為網絡開發工程師,把計算機科學中的係統經驗融合進網絡係統領域(Bringing the best ideas in Computer Science tonetworking)。
  Kyle Mestery(OpenStack Neutron項目核心成員,也是OpenDaylight OVSDB和OVS項目的貢獻者)認為網絡工程師需要學習編程技能,去動手寫代碼。成為一名網絡開發工程師,第一步就是掌握Linux方麵的開發和實踐能力,動手參與主流的網絡開源項目,比如開源軟件OpenFlow交換機Open vSwitch、開源控製器OpenDaylight及開源數據中心網絡虛擬化項目OpenStack Neutron等。
           【圖4】
  Kyle:https://www.siliconloons.com/
  Kyle總結了現有的主流網絡開源項目使用的編程語言。從中可以看出,Python和Java編程語言值得學習。我個人是網絡數據平麵硬件出身,也學習了一些python語言知識,至少需要能讀懂這些開源項目的源代碼。
                  【圖5】
  網絡領域著名博主ScottLowe、Jason Edelman和Matt Oswalt在2015年合寫了一本書:《下一代網絡工程師需要的網絡編程和自動化技能》。他們寫這本書的目的是為了幫助網絡工程師在SDN時代提升競爭力。他們認為網絡工程師應該關注係統自動化部署技能,具體包括Linux操作係統基礎、Python編程基礎、JSON和XML等網絡數據格式、持續集成和DevOps等。
  斯坦福大學SDN創始團隊在SDN領域創辦了多個初創公司,比如被VMware收購的Nicra,被資本看好的BigSwitch,在P4推動下火的一塌煳塗的Barefoot。但是您可能不知道,大Nick教授的三個博士還在2013年悄悄創建了一個初創公司Forward Networks,這個公司的願景看著很虛:Bringing the best ideasin Computer Science to networking。當年OpenFlow剛出來的時候,很多人也這麼看。過去幾年的學習和失敗經驗告訴我,還是跟著大Nick走才是正道。
  說了這麼多,簡單總結就是網絡工程師趕緊學習計算機編程方麵的技能和知識吧!網絡係統工程師趕緊惡補計算機係統方麵的技能和知識吧!如下是SDNLab的一個開源項目:SDN技能圖譜,大家可以對照一下,看看自己的知識體係還差哪些內容?
  【圖6】

網絡產品經理、創業者和投資者怎麼辦?

  個人認為這三種人對SDN的理解和認知要求應該是一致的,尤其是產品經理和創業者。先說說我個人的兩次嚐試。
  一次是在大公司內部尋找SDN產品的機會,當時確實選擇了一個很好的方向,現在看來也非常有價值,可惜在公司內部沒有獲得支持。現在回過頭來看,產品方向選對了,可惜整合資源的能力不足,另外插一句:千萬別相信什麼所謂的業界專家,14年我曾經將完整方案請教過一些人,都不看好。2016年卻有一堆人在做這個產品,因為終於看到了市場需求。
  另一次是在小公司做SDN產品,一開始就選擇了一個很難做的方向,產品研發和市場開拓對小團隊來說都很難。結果可想而知,必然是失敗。那麼到底網絡產品經理應該怎麼辦。我認為最重要的就是弄清楚為什麼需要SDN?不是你為什麼需要SDN,而是你的客戶為什麼需要你用SDN改造原有的產品和服務。
  SDN給你的客戶能帶來什麼?更多的網絡可編程能力,還是自動化的網絡運維能力?這些才是你需要真正關注的。當然,要弄清楚這些絕非易事,“發現問題-用SDN更好地解決-快速推出產品方案”,要做到這一步,還很難。早期推SDN產品的大牛們一定深有感觸。
  相比產品經理,創業者更需要步步為營,定義好產品,選好方向才是第一步。你需要足夠好的研發團隊,真正理解傳統網絡和SDN的銷售團隊,而且你的產品推出時機要剛好一步不差。大河互聯就是其中做的比較好的。
  之前其實跟很多對SDN感興趣的投資者都聊過。2015年之前國內投資者對國內SDN公司並不認可,雲杉網絡的發展證明了這一點。當然也跟國內SDN初創公司質量不高有關。我個人觀點:投資者想找好的國內SDN公司,還是需要先梳理一下SDN發展過程中的美國初創公司,其實跟其他領域一樣,目前還是C2C(Copy to China)相對靠譜些。
  大河互聯就是例子,雲杉網絡也是例子。後麵我會專門寫一篇有關SDN初創公司的文章,再詳細解釋。如下是之前一篇分析早期SDN初創公司的文章:
  https://www.sdneasy.com/sdn-start-ups-you-will-hear-about-in-2013/
           【圖7】

  本文作者楊澤衛,相關圖書《重構網絡:SDN架構與實現》,點此鏈接可在博文視點官網查看此書。
                    圖片描述
  想及時獲得更多精彩文章,可在微信中搜索“博文視點”或者掃描下方二維碼並關注。
                       圖片描述

最後更新:2017-04-28 23:21:44

  上一篇:go Nginx學習之如何防止流量攻擊
  下一篇:go RecyclerView Prefetch功能探究