软件定义绝不能算是一个新话题,因为它源起于2008年斯坦福大学的一个项目,把传统的交换机通过软件的方式按照三层结构开发出了一个Open Flow。这样算来,软件定义的提法已出现了十年时间,而之所以我们认为它是一个很新的概念,是因为软件定义直到2013年才正式应用于云的网络管理,至此软件定义才从软件定义网络(SDN)这一端开始,得到广泛应用。接下来,软件定义存储(SDS)、软件定义数据中心(SDDC)也应运而生,但这些却还只是将软件定义限于IT的基础架构端。而近日软件定义城市概念开始变得流行,软件定义终于开始出现在应用端。那么,当软件定义技术出现新变局时,我们不禁开始思考:我们离真正的软件应用定义时代还有多远?算法统治世界的时代是否真地已经来临?
软件定义的世界
尽管我们或许在内心中还会存有疑问:我们眼前的世界是否真是软件在主导?但看看我们的四周,我们就会发现软件已经真正主导了我们的生活。
交通工具和手机是我们每天都离不开的两个工具。在交通工业中,工业软件已经占到了总成本的40%以上,并且随着交通工具智能化程度的提升,这种比重一定会呈现出上升的趋势。宝马7系的软件总量超过了2亿行,特斯拉S总量超过4亿行,飞机空客A380软件总量超过了10亿行。在这些趋势的带动之下,2016年全球软件的销售是200亿美元。同时,我们的手机也不再仅仅是单一的通讯工具,互联网延伸给我们催生了软件新的模式的变化,基于云的新的软件使用模式就是软件服务。手机APP的两大阵营APP-Stare和Google Play大概有300亿以上的应用,累计下载量是1500亿次。2016年全球移动商家的收入达到了448亿美元。而近日开始流行的软件定义城市的概念,更是说明软件将重新定义城市的基本功能、服务模式、运行管理。
软件的背后是具备有限、指令明确、有效三大特征在内的算法。软件正在统治世界,而软件的核心则是算法。一种观点认为:在诸多算法中,归并排序和快速排序及堆积排序、傅里叶变换与快速傅里叶变换、迪杰斯特拉算法、RSA算法、安全哈希算法、整数因子分解、链接分析、比例积分微分算法、数据压缩算法、随机数生成算法,已经足以统治世界。另一种观点显然更为实用,从应用的角度认为Google Search谷歌搜索、Facebook News Feed、OKCupid情侣匹配、NSA数据采集,解读和加密、推荐算法、Google AdWords、高频率的股票交易、MP3压缩、预测分析软件、调音等应用的算法才真正统治了世界。
我们之所以要从算法和数据结构两个方面解析软件,是想说明在软件定义世界的同时,其自己也存在算法优化的空间。同时,前端的PC、智能手机需要与云端的设备相联接,所有的应用就统一于数据。这样,貌似工业软件、移动应用与SDN、SDS等技术无关,但从软、硬件的关系来看,正是SDN、SDS、SDDC等技术制约着整个系统的性能。因此,抛开前端的热闹,去看一看后端的风景,也许才真正有助于我们更为全面地理解软件定义世界。
SDN的本质
SDN的本质是把整个网络分成了三层::硬件层、控制层和应用层分开,通过一个应用编程结构对网络设备进行任意的编程,从而可以实现新型的网络协议、新型的投入结构,而不需要改变网络设备的硬件本身。尽管SDN在2015年才在Gartner的报告中首次出现,但我们必须说,SDN重新定义了传统的网络架构甚至通信产业,SDN在2016年的市场份额就达到了37亿美元。
软件定义时代的一个基本特征,就是万物互联,一切均可编程。在这个过程中,必然产生海量数据,并且这些数据还需要支撑人工智能应用和大数据应用。因此,数据传输必然面临一个巨大的挑战,这个挑战同时也是SDN技术的挑战。
谈起SDN,书生云公司创始人、首席科学家王东临认为:“SDN还没有达到预想的目标,但也还有很大的发展空间。现有的SDN简化了硬件,但软件协议栈还不够简化,需要做减法式的优化,例如去TCP/IP。”
从目前的应用情况来看,几十年前发明的TCP/IP协议早已不适应网络传输速度的高速发展,制约了整个网络的性能,但由于TCP/IP协议应用广泛,因此替代它从目前来看几乎是不可能的事情。对此,王东临:“在广域网领域,由于兼容性问题,目前确实无法替代TCP/IP协议。但在机房内部,却可以弃用以太网和TCP/IP协议,而代之以专门为高性能网络设计的协议,例如远程直接数据存取(RDMA)/PCIe/SAS。这样做虽然不能提高网站的访问速度,但可以提高机房的计算和存储性能。例如,对任何一个大型网站,服务器和存储的每一个I/O都要通过机房网络的,象我们在谷歌、百度搜索某些信息,我们发过去的不过是几十个字节的信息,但在谷歌、百度内部为这个搜索请求服务的有上千台服务器,服务器之间(计算网络)、服务器和存储设备之间(存储网络)传输的数据量是非常巨大的,去TCP/IP可以非常有效地提高机房网络的性能。”
王东临强调:“现有的SDN技术都是基于TCP/IP的,如果我们去掉TCP/IP协议,现有的SDN技术也失去了存在的基础,所以SDN技术需要来一次大的变革。另外,现有的交换机,不管是传统交换机还是SDN交换机,都是一个红绿灯路口,不知道什么时候有多少车从哪个方向来往哪个方向去,需要覆盖各种各样的情况,为此做了很多冗余的设计和多余的判断,这些路径和协议栈都是正常情况下不需要用的,为了保证数据交换适用于各种特殊情况又不得不加进来。我们的思路与之不同,我们是从源头上就知道有多少数据要去什么地方,一开始就规划好数据所走的路径,这样每个路口的设计就可以大大简化了,性能也就可以大大提升了”
概括起来,王东临说:“软件定义基础设施,不要纠结于SDN、SDS、SDDC,这样就走入了头痛医头,脚痛医脚的误区;而是需要有一个全面优化的概念,硬件要做到高性能,软件也要做减法。总之就是要把减法进行到底。按我们的思路来,在机房内部全面优化的结果就是超融合一体机。”
软件定义是大势所趋,但业界往往是创新公司的观念领先于IT产业,IT产业的流行技术又领先用户需求。这样一来,创新公司的观念领先用户需求两个层面,风险会非常大。王东临对此表示认同:“创新型公司的日子往往并不好过。创新型公司会引发产业变革,但命运可能是九死一生,市场并不买账。亚马逊做了好多年,特斯拉差点就死掉了。我的经验是做好‘最小实现,快速迭代’。做到新技术比同时期的产品都要好,一点点地展现,一点点地转化。一次性研发投入并不很大,但便于实现产品化,便于投融资介入。”
软件定义的时代已经来临,一个更智能、更灵活、更便宜的软件新世界终将来到我们面前。从软件定义的角度来看,IT基础设施未来几年的趋势一定是做减法。在我们期许软件定义新时代时,也许更应把关注点放在SDS、SSD、SDDC这些领域的新技术突破上边去。