近年来,"软件定义"之风在IT业界越刮越猛,从软件定义网络(SDN)、软件定义存储(SDS)到软件定义数据中心(SDDC)、软件定义基础设施(SDI),各种产品和技术纷纷贴上"软件定义"标签,甚至有人提出"软件定义世界"、"一切皆软件","软件定义"俨然成为最先进技术的代名词。
面对不断升温中的"软件定义"热,我们该如何理解其精髓,它的魅力究竟在哪里?如何从传统的硬件定义世界演进到软件定义的新世界?日前至顶网记者独家专访了清华大学交叉信息学院助理院长、助理教授、博导徐葳老师,就"软件定义"相关话题进行了探讨。
更智能、更灵活、更便宜
在徐葳看来"软件定义"之风并非平地而起,而是因为"软件定义"本身的先进性,是用户需求的推动,它的流行带有必然性。"因为与硬件相比,软件更灵活,更容易创新,也更智能、更便宜。"徐葳表示。
徐葳认为软件定义大潮的最初兴起与SDN不无关系。"早期的网络设备都是专用硬件,比如硬件的交换机、路由器、硬件防火墙、入侵检测设备等,成本高也不灵活,而且很容易被厂商绑定。后来就有人提出SDN了这个想法,Openflow就是这个想法下的产物。"
因为SDN提倡控制与转发的分离,打破了厂商对网络硬件的垄断,从而给网络创新提供了一个非常好的思路。再加上当时虚拟化特别火,而虚拟机之间的网络连接没有很好的解决方案。SDN借着这个势头很快就火起来了,然后软件定义迅速蔓延到计算、存储到整个数据中心。
如果要深究"软件定义"热的根源,徐葳认为可以从以下几个方面来分析:
首先,软件比硬件容易开发,容易创新。"从硬件变成软件,发展就快了,价格就低了,功能就多了。这可能会带来数据中心的技术从节能、效率、性能、容量等多方面创新,尤其是基础架构的智能运维。"徐葳介绍说,他们就与百度合作通过软件控制,能在同样供电容量的数据中心中多摆放17%的机器。"这种好的软件方案多了,大家必然要从过去又贵又难用的硬件方案转移到软件定义的方案。"
其次,硬件发展很快,性能越来越强大,为软件定义提供了很好的基础。因为今天如何充分利用硬件性能已经不是最重要的,最重要的是如何能够快速推出能用且便宜的解决方案,而软件定义正好符合这个趋势。
第三,现在很多计算任务都靠加速卡完成的,比如深度学习就用到GPU就会很慢。这些加速卡耗电且贵、体积又大,不可能每个机器上一个。而管理好这些异构的资源,需要利用软件定义计算的方法。
第四,软件定义可以与开源软件结合,从而推动创新。因为利用软件定义,传统没能力做系统的厂商也可以用开源软件做硬件了,这有力地推动了创新。比如,在没有软件定义网络之前,网络领域就很少有新公司出现,而现在新公司出现频率大增。
"在软件定义的世界里,一台交换机、一个防火墙或者一个IDS就是一台标准的x86服务器,其中的英特尔通用处理器就可以实现专用ASIC芯片的功能。而以前的网络设备需要专用的ASIA芯片,研发成本很高,客观上阻碍了创新。"徐葳说。
实际上,我们也可以看到在软件定义大潮中,英特尔也是一个积极的推动者,不仅提出了SDI这样的理念和方法论,还联合VMware等合作伙伴大力推动软件定义在数据中心内部的落地。
软件定义需要硬件支持
因为"软件定义"具有很多明显的好处,因此一经提出很快就得到关注,并开始逐步落地。于此同时,有很多项目也借助软件定义大潮得到了很好的发展,OCP(开放计算项目)就是其中之一。
如今风头正劲的OCP是Facebook于2011年发起的开源硬件组织,其开源了包括数据中心、定制服务器在内的一系列硬件设计,短短4、5年时间就吸引了包括Google、苹果公司、微软等200多家企业加入。
对于OCP徐葳的理解显然要比大多数人认识更深入些。OCP基金会在全球认证很多符合OCP标准的数据中心,目前徐葳所负责的数据中心是中国唯一获得OCP认证。徐葳认为OCP与软件定义是一对好搭档。因为在通往软件定义之路的过程中,设计出适合做软件定义的硬件解决方案是最重要的,而这就是现在OCP做的事情。
"OCP无论是成功还是失败,它注定会与跟软件定义绑在一起的。OCP希望通过开源硬件的设计来提升数据中心硬件的发展速度,降低整体的硬件成本,增强硬件的可管理性。"徐葳介绍说,OCP造就了一批白牌硬件设备,无论是服务器、交换机还是存储设备。但是白牌硬件厂商一直都不擅长做软件,所以单独去买控制软件就是唯一一条路。这就给软件定义创造出一个市场。
另外,OCP倡导的是整机架部署,而且推行的都是超融合架构,磁盘分散在各个机器内部,这样在机架层面进行资源的调配也比较容易,这也给软件定义提供了更大的优化空间。同时白牌机器便宜,给做软件定义的企业留了一些利润空间。所以OCP对于软件定义具有很大的促进作用。
软件定义落地是长期过程
应该说,目前软件定义已经被普遍接受,并正在逐步落地。但是徐葳认为,软件定义的成功还需要相当长的时间,因为在软件定义之路还面临不少拦路虎。
第一,人的技能。传统数据中心内部的网管、系统管理、数据库管理员和软件开发人员等都有着比较严格的界定和不同的知识结构,工作很少有交叉。而现在,在软件定义的世界里,我们可能希望网络管理员能编写SDN程序、存储管理员理解Ceph里的复杂配置选项,而做到并不容易。
第二,硬件。现在的软件定义基本上是一种屌丝设计,即按照现有的硬件功能来设计软件,而不是真正的软件定义。例如Openflow设计那么复杂,与兼容Broadcom的芯片有关;Ceph设计得那么庞杂,也与要兼容各种服务器硬件有关(有盘多也有盘少的,有SSD的也有没有的,有网速快的也有网速慢的)。种种硬件给软件设计带来了很大麻烦,解决这个问题的除了在定制化硬件,未来在软件定义大潮下这可能成为一种趋势。
第三,可靠性和长尾延迟。现在数据中心内考虑不光是可靠性的问题,还有长尾延迟的问题,因为目前软件定义的基础设施之中很多采取Reactive的策略,就是发生了事件之后硬件不知道就去问软件控制器。这样的策略可能会导致更多的长尾延迟。未来软件定义的架构必须要解决这种问题。
"目前,我们看到越来越多的计算、内存和存储、乃至整个IT基础设施正在变成软件定义的,未来肯定会更多。而随着软件定义越来越普及,它很可能将成为硬件提供的标准功能了,就像现在的BIOS,到那时或许就没有软件定义这种说法了。"徐葳总结说。
原文发布时间为: 2016年6月6日
本文作者:邹大斌