近年来,"软件定义"之风在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日

本文作者:邹大斌

本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

软件定义:给你一个更智能的世界相关推荐

  1. 解读全球十大公司物联网战略,一个万物智能的世界即将到来

    解读全球十大公司物联网战略,一个万物智能的世界即将到来 互联网时代已经过去,移动互联网红利已褪去,信息科技开始向物联网转变,为社会数字化带来重大变革,并且物联网发展席卷全球,被视为未来科技发展重要方向 ...

  2. 全球十大公司物联网战略,一个万物智能的世界即将到来

    全球十大公司物联网战略,一个万物智能的世界即将到来 杨剑勇 百家号12-2207:28 文/杨剑勇 互联网时代已经过去,移动互联网红利已褪去,信息科技开始向物联网转变,为社会数字化带来重大变革,并且物 ...

  3. java更好的语言_Java,如果这是一个更好的世界

    java更好的语言 只是梦想着有一个更好的世界,在该世界中,Java平台中的一些旧错误已得到纠正,而某些令人敬畏的缺失功能也已实现. 不要误会我的意思. 我认为Java很棒. 但是它仍然存在一些问题, ...

  4. Java,如果这是一个更好的世界

    只是梦想着有一个更好的世界,在该世界中,Java平台中的一些旧错误已得到纠正,而某些令人敬畏的缺失功能也已实现. 不要误会我的意思. 我认为Java很棒. 但是它仍然存在一些问题,就像其他平台一样. ...

  5. 告别,去创造更大的世界

    再过两天,我将带领超级表格团队,离开因创业呆了半年多的上海,重新回到我曾经奋斗10年的北京,继续下一个征程. 半年多前刚来上海创业时,身上只有我哥借给我剩下的几百元现金.今天,超级表格获得了百万级别的 ...

  6. 如何让人工智能更智能?你需要一个开源平台

    如何让人工智能更智能?你需要一个开源平台 2020年6月19日,奥斯纳布吕克州下萨克森:Melanie Ploppa老师在教室中为小学生们上课.由于新冠隔离法规的限制,目前各学校必须采取特殊的卫生管理 ...

  7. Genesis公链将打造一个万物智能的数字世界

    如果说云计算.人工智能带来了生产力的提升,大数据让生产资料分发更高效,那么区块链就是对生产关系的变革.区块链技术正通过应对基础设施.能源.大宗交易和地产领域的挑战,开发可降低成本的可持续解决方案,从而 ...

  8. 聚焦技术,锐意创新,GaussDB给世界一个更优选择

    摘要:从整个行业应用层面来看,现在,数据库的国产化时代已经到来. 本文分享自华为云社区<聚焦技术,锐意创新,GaussDB给世界一个更优选择>,作者: GaussDB数据库. 今天,以&q ...

  9. 区块链100讲:Truffle——一个更简单的部署智能合约的方法

    本期<区块链100讲>我们将介绍一个更简单的部署智能合约的方法:Truffle. 1 什么是Truffle ? Truffle是针对基于以太坊的Solidity语言的一套开发框架.本身基于 ...

最新文章

  1. python运行过程中会被编译成二进制_Python代码在运行过程中,会被编译成二进制代码。_学小易找答案...
  2. Rpgmakermv(31)MOG插件与YEP的结合
  3. c#-检查USB硬件变化
  4. JS关于时间的一些计算与获取
  5. redis和memcache的区别
  6. IPO与上市的关系?
  7. ZOJ 3471 压缩状态DP
  8. 修改Oracle最大连接数
  9. R语言ggplot2包之画折线图
  10. 正则邮箱_正则表达式再进级
  11. 【故障分析】基于matlab轴承故障分析(时频图+功率谱)【含Matlab源码 922期】
  12. Wps开发工具-宏的使用
  13. ora-01045 :user system lacks create session privilege; logon denied
  14. 设计模式——软件设计的太极剑法
  15. 计算机pe教程,U大师U盘启动盘制作教程 详细图解步骤教你怎么装统(Win7PE精简版)...
  16. tableau实现年累计,月累计投放以及同比环比
  17. myeclipse中生成web service时出现异常Unable to create JAXBContext
  18. 使用pymysql将excel表格的数据导入mysql数据库(CRUD)(附代码)
  19. 在 HTML5 中捕获音频和视频
  20. 桌上有一只盘子,每次只能放入一个水果。请用Wait()、Signal()原语实现爸爸、儿子、女儿三个并发进程的同步。

热门文章

  1. LeetCode--88.合并两个有序数组(插入法,排序法)
  2. #ifndef#define#endif的用法
  3. Kinect开发学习笔记之(二)Kinect开发学习资源整理
  4. 各种排序算法的时间复杂度
  5. 非极大值抑制(NMS)
  6. 7-135 二叉搜索树的2层结点统计
  7. 7-323 逆波兰表达式 (10 分)
  8. activiti 7中文文档_如何阅读文档-以Pandas库为例
  9. MyBatis复习(六):MyBatis二级缓存
  10. Spring事务处理之 编程式事务 和 声明式事务