当前位置: 首页 > 科技观察

面对SDN,我们该怎么办?

时间:2023-03-22 17:24:16 科技观察

面对SDN的浪潮,你将如何应对这种变化?SDN初学者如何入门和进阶?网络工程师如何在熟悉的领域深入发展?SDN架构下网络产品经理如何设计下一代网络产品?网络创业投资人如何寻找下一个SDN杀手级应用?投资人如何发现SDN领域的独角兽?让我们一起寻找答案。记得刘云杰院士多次提到,SDN是网络架构的变革,绝不是单点技术的突破。与传统的网络协议不同,新协议的出现只能解决一类网络问题。回顾SDN的发展历程,可以发现SDN对网络学术界和工业界都产生了深远的影响。但是身处其中的我们将如何应对这种变化呢?SDN初学者如何入门和进阶?网络工程师如何在熟悉的领域深入发展?网络产品经理如何在SDN架构下设计下一代网络产品?网络创业者如何寻找下一个SDN杀手级应用?投资人如何发现SDN领域的独角兽?这些问题还是值得讨论的。让我们谈谈初学者如何入门。所有的变化都是一样的,所有新技术的引入都需要快速准确地理解三个问题:什么是SDN?为什么需要SDN?历史渊源?懂中文的只需要看魏峰哥的这本书《深度解析SDN:利益、战略、技术、实践》,看完这本书就可以上手SDN了。虽然有些资料略显陈旧,但仍不失为新手必备良药。据说2017年会出第二版,如果英文比中文好,可以看看这本书《SDN:A Comprehensive Approach》。在现有的英文书籍中,这是一本比较系统、全面的入门级书籍。如果你觉得读书没有给你成就感,可以选择参加ONFOfficialONFCertifiedSDNAssociate(OCSA)认证。通过考试后,ONF将颁发OCSA证书。根据我以往的经验和教训,以上三种方法任选其一即可上手。记得看网上很多零碎的文章。这种入门学习很不系统,对后面的学习很不利,会造成很多误会。再说说如何进阶和深入发展。就我个人而言,作为一名网络领域的工程师,我很庆幸自己身处这样一个变革的时代。老作家孟言在《一个“技术文化人”的片段感悟》中提到:程序员的进阶之道就是“抬头看路,头一直在路上”。SDN学习者上手之后,抬头看路比较清晰,之后需要的就是低头。那么如何保持低头。我的个人经验是:“通过艰难的方式学习SDN”。你是什??么意思?简单来说,就是学习SDN的笨办法。其实,任何一项新技术,要想跨过门槛,一定不能走捷径。例如,要详细了解SDN的发展历史,至少要弄清楚两个方面:一是定义SDN的概念和架构背后的人物,以及推动SDN架构走向成熟的标志性事件;二是从最初的SDN中借鉴了哪些关键技术概念,SDN架构是如何在这些技术原理的支持下发展起来的。最有效的学习方式就是扎扎实实地钻研每一个技术细节。当然,这个说法还是有点假。如何傻傻地学习SDN?具体来说,此时我们需要系统地学习一门SDN课程。之前在知乎的回答里列举了很多国外大学的SDN课程。今天强烈推荐Coursera上普林斯顿大学NickFeamster教授的SDN课程:https://zh.coursera.org/learn/sdn与其他课程相比,Nick教授(斯坦福大学SDN之父是Nick教授)的每一部分课程有明确的学习目标、课程视频、实验内容和相关论文。自2014年起,课程内容逐年更新。每节课结束时,都有Nick教授对MartinCasado和JenniferRexford等相关业内人士的视频采访。任何人都可以注册此课程,从2017年2月开始新课程,如果你足够努力,你将获得结业证书。这张结业证书含金量很高。据我所知,在国内拿到这个结业证书的人寥寥无几。对于SDN研究领域的进阶者,我一直在努力推荐一般论文《Software-DefinedNetworking:AComprehensiveSurvey》。如果重要的事情说三遍,请阅读这篇论文[1]。这篇论文长达61页,引用了579篇参考文献。自2014年起,每六个月发布一个新版本,全面细致地介绍了SDN研究的方方面面。国内有很多SDN研究组,进组的同学拿一份。但是这篇论文太长了,涵盖的内容太多了。我很惭愧,我自己从来没有把它读透。但我的经验是,你需要清楚本文的上下文。通过本文的学习,您可以快速梳理SDN领域的研究历史和现状。我相信只有这样你才能清楚的结合自己的研究方向,找到合适的切入点。以前经常有同学问我:导师让我做SDN,方向怎么选?我的建议是先看这篇论文,然后自然知道选择哪个方向。不过,我个人对国内SDN领域的科研持悲观态度:如果把SDN研究分支比作一棵大树,那么这棵大树已经枝繁叶茂,国内科研机构大机会并不多.向上。或许更好的方式是结合自己在其他领域的积累,比如物联网、大数据、机器学习等,找到SDN和原来研究领域的交集来做文章,或者介绍一下概念和架构SDN进入新的应用场景。个人观察:2016年,SDN-IoT领域和NetPL(网络编程语言)领域活跃起来。或许这两个方向会成为未来两年SDN研究的热门话题。接下来我们聊聊网络相关领域的工程师应该做什么?顾名思义,SDN给我们带来的最大变化就是:从网络工程师到网络开发工程师,将计算机科学中的系统经验融入网络系统领域(BringingthebestideasinComputerSciencetonetworking)。这绝不是个人吐槽。KyleMestery(OpenStackNeutron项目的核心成员,OpenDaylightOVSDB和OVS项目的贡献者)认为,网络工程师需要学习编程技能并亲手编写代码。如果我们想成为一名网络开发工程师,至少需要掌握Linux的实用技能,包括开源软件OpenFlow交换机OpenvSwitch、开源控制器OpenDaylight、开源数据中心网络虚拟化项目OpenStackNeutron的使用和开发[2].Kyle总结了现有主流网络开源项目使用的编程语言。Kyle:http://www.siliconloons.com/网络领域知名博主ScottLowe、JasonEdelman和MattOswalt在2015年合着了一本书:《Network Programmability and Automation Skills for the Next-Generation Network Engineer》【3】。他们编写本书的目的是帮助网络工程师提高在SDN时代的竞争力。他们认为网络工程师应该专注于系统自动化部署技能,包括Linux操作系统基础、Python编程基础、JSON和XML等网络数据格式、持续集成和DevOps等。斯坦福SDN创始团队McKeownGroup大学,创办了多家SDN领域的初创公司,比如被VMware收购的Nicra,受到资本青睐的BigSwitch,还有被P4驱动的乱七八糟的Barefoot。但你可能不知道,尼克教授的三位博士还在2013年悄悄创建了一家初创公司ForwardNetworks。这家公司的愿景很空洞:BringingthebestideasinComputerSciencetonetworking)。OpenFlow刚出来的时候,很多人也是这么想的。这几年的学习和失败经验告诉我,跟着大尼克走才是正确的做法。说了这么多,简单总结一下,网络工程师应该快速学习计算机编程的技能和知识!网络系统工程师要快速补充计算机系统的技能和知识!***让我们谈谈网络产品经理、创业者和投资人如何应对。个人觉得这三个人对SDN的理解和认知需求应该是一致的,尤其是产品经理和创业者。先说说我个人的两次尝试。第一次是在大公司内部寻找SDN产品的机会。当时确实是个不错的方向,现在看来也很有价值,可惜没有得到公司内部的支持。现在回想起来,我选择了正确的产品方向,可惜资源整合能力不足。还有一句话:不要相信所谓的行业专家。2014年我问过一些人完整的计划,他们都不看好。2016年,很多人都在做这个产品,因为他们终于看到了市场需求。另一次是在一家小公司做SDN产品。一开始,我选择了一个困难的方向。产品开发和市场开发对于一个小团队来说是困难的。结果可想而知,肯定是失败了。那么网络产品经理应该怎么做呢?我认为最重要的是弄清楚为什么需要SDN?不是你为什么需要SDN,而是你的客户为什么需要你用SDN来改造原有的产品和服务。SDN能给你的客户带来什么?更多的网络可编程性,还是自动化的网络运维能力?这些才是你真正需要注意的。当然,想弄清楚这些东西并不容易。“发现问题——利用SDN更好地解决问题——快速推出产品解决方案”,要做到这一步还是有难度的。想必早期推广SDN产品的大牛们都深受感动。与产品经理相比,创业者更需要按部就班。第一步是定义好产品,选择好方向。你需要一个足够优秀的研发团队,一个真正了解传统网络和SDN的销售团队,你的产品推出的时机要恰到好处。大河互联网是其中比较好的一个。其实我之前和很多对SDN感兴趣的投资人谈过。2015年之前,国内投资人并不认可国内SDN公司,云山网络的发展证明了这一点。当然,这也与国内SDN创业公司素质不高有关。我的个人观点:投资人想在国内找到好的SDN公司,还是要梳理一下SDN发展过程中的美国初创公司。其实和其他领域一样,C2C(CopytoChina)目前还是比较靠谱的。大河互联网就是一个例子,云山网络也是。