面对SDN,咱们该怎么办?

引言:回顾SDN的发展历史,能够发现:SDN做为一种新的网络体系结构,对网络学术圈和工业界都产生了深远的影响。SDN并非昙花一现的网络技术新概念,而是一场网络领域的技术变革。
咱们将如何应对这场变革:SDN初学者如何入门和进阶?网工如何在熟悉领域纵深发展?产品经理如何在SDN架构下设计下一代网络产品?创业者如何寻找下一个SDN杀手级应用?投资者如何找到SDN领域的独角兽?这些问题依然值得讨论。
本文相关图书《重构网络:SDN架构与实现》。python

       图片描述

SDN初学者如何入门?

  全部新技术的入门都须要快速准确地理解三个问题:SDN是什么?为何须要SDN?历史起源?
  中文好的只须要看卫峰兄的这本书就够了《深度解析SDN:利益、战略、技术、实践》,通读完此书就算SDN入门了。虽然有些信息稍显过期,但依然是入门者的必备良药,听说2017年会出第二版。英文好的能够阅读《SDN A Comprehensive Approach》这本书。在现有的英文书籍里面,我的认为这本是比较系统全面的入门级书籍。
  泽卫:根据我过去的经验教训,切记在网络上阅读大量碎片文章,这样的入门学习很是不系统,对于后续的学习很是不利,会产生不少误解。web

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:http://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初创公司的文章:
  http://www.sdneasy.com/sdn-start-ups-you-will-hear-about-in-2013/
           【图7】运维

  本文做者杨泽卫,相关图书《重构网络:SDN架构与实现》,点此连接可在博文视点官网查看此书。
                    图片描述机器学习