NVIDIA GPU虚拟化软件vGPU购买指南

概况
英伟达虚拟GPU即 vGPU 解决方案由: 硬件部分 的 GPU (目前仅支持NVIDIA Tesla 系列和 NVIDIA Quadro RTX 6000/8000) GPU 和 软件部分 的 NVIDIA vGPU 构成。通过虚拟化的方式利用 NVIDIA 强大的图形和计算性能,将GPU资源重新划分,以保证GPU资源可以在多个虚拟机之间共享,或者可以将多个GPU分配给一个虚拟机。在 vGPU 解决方案中NVIDIA虚拟GPU软件运行的架构是基于NVIDIA Turing™、Volta™、Pascal™和Maxwell™(M系列已退市)四种体系结构以及四种 vGPU 类型,这些 vGPU 类型使得在 GPU 可以有效的加速虚拟应用程序、虚拟桌面(VDI)、科学计算以及人工智能场景。
一、硬件部分的四种体系架构
1、Maxwell 架构系列GPU

2、Pascal 架构系列GPU

3、Volta 和 Turing 架构 GPU

常用虚拟化的NVIDIA GPUs参数对比一览表

二、软件部分vGPU的分类(基于NVIDIA Virtual GPU 9.0 版本)

1)vComputeServer-面向计算场景进行优化、基于虚拟GPU个数进行授权,且仅支持订阅模式
提供了虚拟化GPU和加速计算密集型服务器工作负载的能力,包括AI,深度学习和数据科学。有了这个,汽车制造商可以使用最新的模拟和计算技术来创建最节省燃料和时尚的设计,研究人员可以分析基因的功能,以更快地开发医疗。
2)Quadro vDWS-支持专业图形和计算场景,基于vGPU数量进行授权
虚拟工作站可通过数据中心提供GPU资源让用户随时随地在任何设备上安全访问数据,用户不再受物理位置的限制,NVIDIA Quadro vDWS 能够进一步发挥Quadro 的优势,实现真正的GPU 加速数据中心,通过数据中心虚拟化应用程序为终端用户如建筑师、工程师和设计师提供专业工作站级别的用户体验。
常用应用程序:Adobe® Creative Cloud®、Allplan ANSYS、Autodesk 3ds Max、Autodesk AutoCAD、Autodesk Maya、Autodesk Revit、Bentley AECOsim Bentley MicroStation、Dassault Systèmes SOLIDWORKS、Esri ArcGIS Pro、Siemens PLM NX等
3)GRID vPC  -面向普通图形加速场景(办公),配合虚拟桌面VDI解决方案,基于vGPU数量授权。
4)GRID vApp -面向普通图形加速场景,配合虚拟应用和共享桌面解决方案,基于vGPU数量授权。
NVIDIA GRID™ 虚拟PC (GRID vPC) 和虚拟应用程序(GRID vApp)  等虚拟化解决方案提供的用户体验与本地PC 几乎别无二致。借助服务器端图形以及全面管理和监控功能,GRID 为您的VDI 环境提供长效的解决方案。为组织中的每台VM(虚拟机)提供GPU 加速能力,为各种现代企业应用程序提供卓越用户体验的解决方案,这些程序包括Microsoft Outlook、Office 2016、网络浏览器、Adobe Photoshop 以及Windows 10 操作系统。成本有效地扩展至整个企业,并将VDI 的覆盖范围扩展到每个成员。
1、NVIDIA GPU 虚拟化软件授权方式:

1)年度订阅模式
如果您是购买的年度订阅模式(租用模式)的 License,则 SUMS 服务已经涵盖在租用模式的 License 中。当租用模式的 License 授权到期,SUMS 也随之到期。年度订阅模式购买一年起。
2)永久授权模式
当您购买的 vGPU License 是永久授权,则需要至少购买三年的 SUMS 服务。SUMS 到期则意味着软 件升级和支持服务也随之停止,软件使用不受影响。
2、NVIDIA GPU 虚拟化软件授权方式:

NVIDIA vGPU 各个版本详细的功能参数如下:

1. 内置 vApps License
2. 控制台显示分辨率限制
3. 最大支持 2 个 4K 或者 4 个 2560×1600 分辨率的显示器
4. Maxwell 架构 GPU 需要 1:1 切割才支持计算(CUDA/OPENCL)
5. M6 仅支持为主显示设备场景
6. 详细的显存切割方式参考:https://docs.nvidia.com/grid/latest/grid-vgpu-user-guide/index.html#virtual-gpu-types-grid

等级保护2.0安全解决方案

应用场景
场景1:大数据智能化应用场景下等级保护建设实践
本场景下安全体系建设以保护业务和大数据的安全为核心目标,基于多云架构、大数据平台等全新IT技术架构建设安全保障体系,打通相互隔离的各级专网,实现数据汇聚融合和智能化应用。


场景2:基于电子政务云IT架构下的等级保护建设实践
结合安全管理、安全技术、安全运营、法律法规及监管四个体系,从做好云平台内生安全开始,全面覆盖云内业务安全、底层平台安全,构建基于政务云IT架构下的一体化安全保障体系。


应用场景3:基于自适应安全架构的等级保护及关基保护合规建设实践

结合关键信息基础设施保护要求,与单位信息化建设同步规划,建设以预测、防御、监测、响应一体化运营为核心的安全保障体系。

导读:自网络安全法颁布,成为网络领域的基本法,我国的网络安全进入了一个新时代。新时代的网络安全观:没有网络安全就没有国家安全,网络安全上升为国家战略,成为总体国家安全观的重要组成部分。

信息安全等级保护是党中央国务院决定在信息系统安全领域实施的基本国策,是国家信息安全保障工作的基本制度和基本方法。

等级保护的工作流程包括,定级、备案、建设整改、等级测评。

等级保护建设核心思想:信息系统的安全设计应基于业务流程自身特点,建立“可信、可控、可管”的安全防护体系,使得系统能够按照预期运行,免受信息安全攻击和破坏。

等级保护2.0安全解决方案

本文主要内容:

  • 网络安全法解读
  • 等级保护2.0安全解决方案
  • 新等级保护差异变化
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案
新时代网络安全等级保护解决方案

NUMA架构的CPU — 真的用好了么?

NUMA简介

这部分将简要介绍下NUMA架构的成因和具体原理,已经了解的读者可以直接跳到第二节。

为什么要有NUMA

在NUMA架构出现前,CPU欢快的朝着频率越来越高的方向发展。受到物理极限的挑战,又转为核数越来越多的方向发展。如果每个core的工作性质都是share-nothing(类似于map-reduce的node节点的作业属性),那么也许就不会有NUMA。由于所有CPU Core都是通过共享一个北桥来读取内存,随着核数如何的发展,北桥在响应时间上的性能瓶颈越来越明显。于是,聪明的硬件设计师们,先到了把内存控制器(原本北桥中读取内存的部分)也做个拆分,平分到了每个die上。于是NUMA就出现了!

NUMA是什么

NUMA中,虽然内存直接attach在CPU上,但是由于内存被平均分配在了各个die上。只有当CPU访问自身直接attach内存对应的物理地址时,才会有较短的响应时间(后称Local Access)。而如果需要访问其他CPU attach的内存的数据时,就需要通过inter-connect通道访问,响应时间就相比之前变慢了(后称Remote Access)。所以NUMA(Non-Uniform Memory Access)就此得名。

numa

我们需要为NUMA做什么

假设你是Linux教父Linus,对于NUMA架构你会做哪些优化?下面这点是显而易见的:

既然CPU只有在Local-Access时响应时间才能有保障,那么我们就尽量把该CPU所要的数据集中在他local的内存中就OK啦~

没错,事实上Linux识别到NUMA架构后,默认的内存分配方案就是:优先尝试在请求线程当前所处的CPU的Local内存上分配空间。如果local内存不足,优先淘汰local内存中无用的Page(Inactive,Unmapped)。 那么,问题来了。。。

NUMA的“七宗罪”

几乎所有的运维都会多多少少被NUMA坑害过,让我们看看究竟有多少种在NUMA上栽的方式:

究其原因几乎都和:“因为CPU亲和策略导致的内存分配不平均”及“NUMA Zone Claim内存回收”有关,而和数据库种类并没有直接联系。所以下文我们就拿MySQL为例,来看看重内存操作应用在NUMA架构下到底会出现什么问题。

MySQL在NUMA架构上会出现的问题

几乎所有NUMA + MySQL关键字的搜索结果都会指向:Jeremy Cole大神的两篇文章:

CPU规模因摩尔定律指数级发展,而总线发展缓慢,导致多核CPU通过一条总线共享内存成为瓶颈
于是NUMA出现了,CPU平均划分为若干个Chip(不多于4个),每个Chip有自己的内存控制器及内存插槽
CPU访问自己Chip上所插的内存时速度快,而访问其他CPU所关联的内存(下文称Remote Access)的速度相较慢三倍左右
于是Linux内核默认使用CPU亲和的内存分配策略,使内存页尽可能的和调用线程处在同一个Core/Chip中
由于内存页没有动态调整策略,使得大部分内存页都集中在CPU 0上
又因为Reclaim默认策略优先淘汰/Swap本Chip上的内存,使得大量有用内存被换出
当被换出页被访问时问题就以数据库响应时间飙高甚至阻塞的形式出现了

imbalance

解决方案

Jeremy Cole大神推荐的三个方案如下,如果想详细了解可以阅读 原文

这三个方案也被业界普遍认可可行,同时在 Twitter 的5.5patch 和 Percona 5.5 Improved NUMA Support 中作为功能被支持。

不过这种三合一的解决方案只是减少了NUMA内存分配不均,导致的MySQL SWAP问题出现的可能性。如果当系统上其他进程,或者MySQL本身需要大量内存时,Innodb Buffer Pool的那些Page同样还是会被Swap到存储上。于是又在这基础上出现了另外几个进阶方案

重新审视问题

如果本文写到这里就这么结束了,那和搜索引擎结果中大量的Step-by-Step科普帖没什么差别。虽然我们用了各种参数调整减少了问题发生概率,那么真的就彻底解决了这个问题么?问题根源究竟是什么?让我们回过头来重新审视下这个问题:

NUMA Interleave真的好么?

为什么Interleave的策略就解决了问题? 借用两张 Carrefour性能测试 的结果图,可以看到几乎所有情况下Interleave模式下的程序性能都要比默认的亲和模式要高,有时甚至能高达30%。究其根本原因是Linux服务器的大多数workload分布都是随机的:即每个线程在处理各个外部请求对应的逻辑时,所需要访问的内存是在物理上随机分布的。而Interleave模式就恰恰是针对这种特性将内存page随机打散到各个CPU Core上,使得每个CPU的负载和Remote Access的出现频率都均匀分布。相较NUMA默认的内存分配模式,死板的把内存都优先分配在线程所在Core上的做法,显然普遍适用性要强很多。 perf1 perf2

也就是说,像MySQL这种外部请求随机性强,各个线程访问内存在地址上平均分布的这种应用,Interleave的内存分配模式相较默认模式可以带来一定程度的性能提升。 此外 各种 论文 中也都通过实验证实,真正造成程序在NUMA系统上性能瓶颈的并不是Remote Acess带来的响应时间损耗,而是内存的不合理分布导致Remote Access将inter-connect这个小水管塞满所造成的结果。而Interleave恰好,把这种不合理分布情况下的Remote Access请求平均分布在了各个小水管中。所以这也是Interleave效果奇佳的一个原因。

那是不是简简单单的配置个Interleave就已经把NUMA的特性和性能发挥到了极致呢? 答案是否定的,目前Linux的内存分配机制在NUMA架构的CPU上还有一定的改进空间。例如:Dynamic Memory Loaction, Page Replication。

Dynamic Memory Relocation 我们来想一下这个情况:MySQL的线程分为两种,用户线程(SQL执行线程)和内部线程(内部功能,如:flush,io,master等)。对于用户线程来说随机性相当的强,但对于内部线程来说他们的行为以及所要访问的内存区域其实是相对固定且可以预测的。如果能对于这把这部分内存集中到这些内存线程所在的core上的时候,就能减少大量Remote Access,潜在的提升例如Page Flush,Purge等功能的吞吐量,甚至可以提高MySQL Crash后Recovery的速度(由于recovery是单线程)。 那是否能在Interleave模式下,把那些明显应该聚集在一个CPU上的内存集中在一起呢? 很可惜,Dynamic Memory Relocation这种技术目前只停留在理论和实验阶段。我们来看下难点:要做到按照线程的行为动态的调整page在memory的分布,就势必需要做线程和内存的实时监控(profile)。对于Memory Access这种非常异常频繁的底层操作来说增加profile入口的性能损耗是极大的。在 关于CPU Cache程序应该知道的那些事的评论中我也提到过,这个道理和为什么Linux没有全局监控CPU L1/L2 Cache命中率工具的原因是一样的。当然优化不会就此停步。上文提到的Carrefour算法和Linux社区的Auto NUMA patch都是积极的尝试。什么时候内存profile出现硬件级别,类似于CPU中 PMU 的功能时,动态内存规划就会展现很大的价值,甚至会作为Linux Kernel的一个内部功能来实现。到那时我们再回过头来审视这个方案的实际价值。

Page Replication 再来看一下这些情况:一些动态加载的库,把他们放在任何一个线程所在的CPU都会导致其他CPU上线程的执行效率下降。而这些共享数据往往读写比非常高,如果能把这些数据的副本在每个Memory Zone内都放置一份,理论上会带来较大的性能提升,同时也减少在inter-connect上出现的瓶颈。实时上,仍然是上文提到的Carrefour也做了这样的尝试。由于缺乏硬件级别(如MESI协议的硬件支持)和操作系统原生级别的支持,Page Replication在数据一致性上维护的成本显得比他带来的提升更多。因此这种尝试也仅仅停留在理论阶段。当然,如果能得到底层的大力支持,相信这个方案还是有极大的实际价值的。

究竟是哪里出了问题

NUMA的问题? NUMA本身没有错,是CPU发展的一种必然趋势。但是NUMA的出现使得操作系统不得不关注内存访问速度不平均的问题。

Linux Kernel内存分配策略的问题? 分配策略的初衷是好的,为了内存更接近需要他的线程,但是没有考虑到数据库这种大规模内存使用的应用场景。同时缺乏动态调整的功能,使得这种悲剧在内存分配的那一刻就被买下了伏笔。

数据库设计者不懂NUMA? 数据库设计者也许从一开始就不会意识到NUMA的流行,或者甚至说提供一个透明稳定的内存访问是操作系统最基本的职责。那么在现状改变非常困难的情况下(下文会提到为什么困难)是不是作为内存使用者有义务更好的去理解使用NUMA?

总结

其实无论是NUMA还是Linux Kernel,亦或是程序开发他们都没有错,只是还做得不够极致。如果NUMA在硬件级别可以提供更多低成本的profile接口;如果Linux Kernel可以使用更科学的动态调整策略;如果程序开发人员更懂NUMA,那么我们完全可以更好的发挥NUMA的性能,使得无限横向扩展CPU核数不再是一个梦想。

最专业的人工智能学习网站推荐

AI学习资源推荐原则

  • 权威:本文介绍的课程都是由国内外知名企业或高校推出的,课程内容的权威性、前沿性有保障。
  • 免费:课程基本都是免费的,就算收费也是象征性收1元那种。
  • 正版:所有课程资源都是发布者通过正规渠道发布的,而不是有些营销号那样收集很多收费课程的视频,通过病毒营销的方式传播。
  • 实用:我选的课程都是那种有代码的,你可以动手写程序实践。没有选那种只讲理论或者技术过于超前的课程。

针对人群

  • 想进入人工智能领域的学生、在职人员以及高校老师。
  • 专业要求:不光是计算机专业,数学、统计、自动化、机械电子、通信、电气等理工类专业,或者经管、心理学等专业都可以学习。因为人工智能本来就是交叉学科,与上述学科都有交叉。

微软:人工智能公开课

这套课程通过服务和API、数据分析平台、深度学习框架和工具这三个部分介绍微软公有云平台Azue上与人工智能相关的服务、技术和工具产品。

比如,学习服务和API这部分课程,你可以通过微软的 Bot Framework – 会话机器人框架,快速地搭建起自己的智能助手,同时支持各种不同的消息、应用渠道,比如手机应用、微信公众号、小程序等,让你的智能助手通过自然交流帮助用户完成一些复杂应用操作。

整套课程是由微软亚洲研究院和微软中国云计算事业部的开发人员主讲,课程内容都是中文的。虽说介绍的都是微软的平台,初学者可以从中学习到AI都有哪些技术,能干什么事情,况且从工程上讲,不要重复造轮子,如果别人的轮子好用,就用别人的就行了。

课程网址 http://t.cn/RC7oRj4

科大讯飞:AI大学

科大讯飞的优势在语音识别、语音合成、语义理解。这些都是人工智能领域关键的技术。滴滴、高德地图、携程等企业都在用他们的语音交互服务的接口。

课程都是中文的。

网址 http://t.cn/RuKdKdc

IBM:认知计算课程体系

IBM中国研究院认知计算系列课程从科研和产业相结合的角度,深入浅出地介绍了认知计算和人工智能技术的起源、发展和未来方向,以及机器学习和深度学习的基本、工具和应用。

课程分为六个部分:认知计算与人工智能、机器学习、机器学习与大数据、深度学习、CPU与认知计算、深度学习框架与工具。

课程网址 http://t.cn/RVofq4e

微软专业学位课程(MPP)

所有内容均由微软与哈佛、麻省理工等国际顶尖教育机构联手开发而来。与edX慕课平台合作,通过在线培训的方式提供给大家。以专家讲解和动手实验的方式帮助大家了解并学习专业技能经验。

近日正式上线的人工智能课程共分为四部分,从概念入门到技术解析,从实践应用到解决方案构建,可以帮助你掌握AI的基本原理和最新应用实践,并以此为基础开发自己的产品和服务。

通过9门必修课程和一个毕业设计项目,即可顺利习得人工智能相关的技能。

  • 课程依据工作岗位需求规划,通过在线教学弭平数码鸿沟与技术升级。
  • 全面拥抱开源技术、培养可适用于不同平台的数据科学与人工智能等技能。
  • 严谨的线上课程,搭配Hands-on-lab在线操作和实例应用。
  • 上课与考试,确保学生对于AI技术有一定的掌握度。

课程网址 http://t.cn/RuKdcaj

除了人工智能的课程,MPP还有数据科学、大数据等课程,有兴趣的可以看http://t.cn/RuKgnhT

Google:机器学习速成课程

课程有个副标题:使用 TensorFlow API,可见课程重点是介绍Google开发的人工智能学习系统TensorFlow。

这个课程节奏紧凑、内容实用,而且免费。从“汉化版”这方面讲,这门课做的可以说是很彻底了,从画面内容到课程声音再到字幕,全都有中文。虽然视频画面中讲课的人是老外,但声音仍为中文,只是听起来不那么自然,因为课程中的声音都是谷歌用机器学习技术生成的。

这门课程不仅有指导性课程视频,还有练习题以及交互性可视化内容,将学习和实践融为一体。谷歌将其定义为“机器学习热爱者的自学指南”。

不过课程网站和视频都在墙外,需要科学上网才能学习,请自备梯子。

课程网址 https://developers.google.com/machine-learning/crash-course

哥伦比亚大学:人工智能微硕士课程

跟微软的MPP课程一样,哥伦比亚的这套课程也是在慕课平台edx上,包含四门课:

  • Artificial Intelligence (AI)
  • Machine Learning
  • Robotics
  • Animation and CGI Motion

完成了微硕士(MicroMasters)课程的学习,可以申请哥大计算机专业硕士的学分,不过你首先得是哥大的学生,或者即将是哥大的学生(微硕士的学分两年内有效)。

课程网址 http://t.cn/RI6Fy6u

coursera

coursera是著名的MOOC平台,人工智能和机器学习领域国际上最权威的学者吴恩达就是它的创始人之一。要说人工智能相关的课程,在coursera上可真的太多了,比如:

  • 台湾大学的人工智慧
  • IBM的Applied AI with DeepLearning
  • Intel的 An Introduction to Practical Deep Learning

腾讯课堂:自兴动脑AI在线

据统计,腾讯课堂每年有接近100万的用户在学习IT类目的直播课程。作为独家人工智能学院联合运营伙伴——自兴动脑AI在线,有机器学习、深度学习、人工智能入门级及系统学习课程,针对的人群是国内本科文化水平以上学生,有超过30年的科研项目的真实数据作为其中部门实训内容。

http://zxdn.ke.qq.com

Splunk(SPLK.O):叫板IBM的大数据后起之秀

作为大数据时代的“独行侠”,Splunk是机器数据领域的绝对龙头。传统的IT选型,企业通常会找三家左右的供应商进行PK,但对splunk中国客户而言,却并非如此。splunk中国客户主要分为两大类,除了必须招投标的一类客户外,另外一类客户基本上没有选型一说,因为,目前市场上splunk$Splunk(SPLK)$没有竞争对手! Splunk为何如此霸气,我们来探一探。

1. 核心观点

1.1. 客户、收入稳定增长,FY2020Q1财务表现低于预期

公司收入稳定在35%的增长,客户增长绝对值得以保持,世界百强企业的覆盖率达到92%,产品续费率高达95%,毛利率高达80%,每年稳定创造现金流,non-GAAP基准下公司净利润增速高达50%以上,以上要素是公司股价多年持续走牛的主要因素。但是由于FY2020Q1数据的公布,公司股价遭遇较大的抛压,几大因素显示了公司未来存在一定的不确定性。FY2020一季度毛利率、non-GAAP净利润以及现金流的下滑引起了市场对公司经营上的担忧。另外公司取消了软件永久使用权的购买选项,这有可能成为公司未来续费率下降的一个伏笔。公司FY2020收入指引的下限只有23%,低于过去几个季度的35%。总体而言,公司基本面表现强劲,但是从近期的季报可以看出公司短期经营存在一定的不确定性。

1.2. 机器数据领域绝对龙头,成长前景较好

公司是机器数据(非结构化数据,主要为各种电子设备的工作日志)领域的绝对龙头,目前市场上仍然未能找到一家非结构化数据检索、处理、分析能力能与公司匹敌的企业,甚至都不具备能够灵活处理机器数据的企业。而据IDC分析2020年非结构化数据容量将达到结构化数据的3倍,因此机器数据领域还是一片蓝海。基于强大的数据处理引擎,公司IT运营软件得以获取极高的市占率,虽然目前市场仍然比较分散,但是公司已经是与IBM并驾齐驱的龙头,各自占有10%的市场份额。另外在数据安全防护领域,公司主打的主动防护也深得用户认可,目前市场上评分最高的两款产品分别为IBM QRadar和公司的Splunk Security Intelligence Platform。总体而言,公司具备极高的技术壁垒,所处行业竞争格局又较为分散,甚至于是一片蓝海,因此看好公司的长期成长。

1.3. 当前估值不具备明显优势,市场给予一定溢价

采用PSG的方法将公司与同行进行比较,目前下一年度收入指引增速比公司慢的标的中,仅有一家公司PS高于公司,公司当前估值较为合理。

2. 公司概况

2.1. 公司简介

SPLUNK INC$Splunk(SPLK)$是一家数据收集分析软件提供商,总部位于美国旧金山,目前员工4400人。公司主要提供即时的营运资讯,客户通过软件可以收集、索引、搜索、浏览、监控和分析任何形式或来源的用户数据。目前公司是市场上非结构化以及半结构化数据(机器数据)的独家处理、分析提供商,同时也是信息安全领域能与IBM对标的唯一一家企业。公司于2012年4月登陆纳斯达克,保荐机构包括大小摩、瑞士信贷、UBS以及两家不那么出名的机构(PACIFIC CREST SECURITIES和COWEN AND COMPANY)。

2.2. 历史沿革

公司成立于2003年10月,2012年成功登陆纳斯达克,保荐机构包括大小摩、瑞士信贷等大行。公司2013年开始进入并购高峰期,其中最大手笔为3亿美元收购Phantom,溢价2.5亿美元,收入增长贡献为2000-3000万美元。

2.3. 公司业务

公司目前产品主要包括:应用软件开发、IT运营、信息安全、大数据以及商业分析五个方面。公司拥有企业用户数量超过4700家,世界百强企业覆盖率达到92%。

产品定价方面,公司目前主要的标准化产品包括splunk enterprise、splunk cloud、splunk light以及splunk light cloud四种,均已每日数据流量限额为定价。公司2018财年取消了Perpetual License的销售套餐,全部转为Term license的销售模式。相对于Perpetual License而言,Term License的费用包括了日常使用以及维护支持,而在Perpetual License的模式下,日常使用费用一次性缴清,而维护支持费用按需支付。修改销售模式后,公司增量收入构成由维护支持费用转换为产品定制收入。

公司成本支出方面主要包括员工工资及津贴支出、云设备租赁费用以及第三方咨询费用等。

2.4. 股权结构

从股权结构来看,公司目前高管持股比例为0.42%,机构持股比例为95.01%,普信为公司第一大股东,持股比例14.88%。另外目前持股的公募基金还包括先锋、黑石等著名机构。

近一季机构以增持为主,最大手笔的为瑞士信贷的14万股增持,总金额为1820万美元。

3. 行业概况

3.1. ITOM行业

根据IDC数据,目前全球ITOM市场约为90亿美元,公司占据10%左右的份额,收入增长远高于行业增长,为行业领跑者。目前行业格局较为分散,龙头企业IBM市场份额与公司不相上下。在该领域公司较其他企业具有一定的先发优势,同时是目前为一家能够高效处理非结构化数据的企业,这为其后续市场的开括建立了极大的竞争优势。根据IDC的预测,未来大数据市场将由非结构化数据占据主流,公司凭借其在非结构化数据的处理能力,有望跃居成为行业第一。

3.2. SIEM行业

根据Cartner数据,2019年SIEM(信息安全管理)市场将达到27.67亿美元,增长率在9%左右。从IDC给出的市场份额占比来看,公司2016年在安全领域额市占率为3.89%。但从目前的产品来看,公司目前已经基本与IBM处于并驾齐驱的竞争态势。

4. 公司经营

4.1. 公司核心竞争力

4.1.1. 行业领先的大数据分析平台

公司软件可用于监控、分析实时的机器数据以及TB级的历史数据,且数据来源不限,可以是本地也可以来自云。比方说,Splunk$Splunk(SPLK)$可以实时对任何app、服务器或网络设备的的数据进行索引并提供搜索,这些数据可以是日志、配置文件、消息和告警等。利用Splunk可监控分布部署在多个数据中心的成千上万台服务器,可以管理PaaS云的基础设施,可监控云交付SaaS解决方案的性能,并可监控SaaS与托管混合型的中心。

公司的索引技术可以在搜索的同时实时显示新数据,从而实现对企业IT系统状态的实时监控。此外splunk的索引范围甚至可以扩展到外部数据库,虚拟索引使Splunk能够访问存储在外部数据库(如Hadoop)中的数据,并将计算推送到用户的系统中。

公司用户还可以直接从数据库将结构化数据导入Splunk Enterprise以及对存储的参考字段执行查找外部关系数据库(例如DB2,MySQL,AWS Aurora或Teradata.22)从而组成完整的索引结果。通过虚拟索引和数据库连接,用户能够跨库索引在Hadoop上的结构化、非结构化以及半结构化数据,以及在相关数据库中的结构化业务数据。此外,Splunk还能作为数据通道,通过API将数据转发到其他部分企业的IT网络。

4.1.2. 深耕机器数据领域,坐拥物联网风口

机器数据主要指电子设备日常使用的过程中产生的日志及记录,主要为非结构化数据,相较于结构化数据,其更难以被识别、分析以及创造价值。根据IDC的预测,机器数据将以年化75%的速度继续增长,至2020达到结构化数据的3倍以上,并在物联网时代成为主要的数据分析来源。

公司是目前唯一一家能够将机器数据灵活运用的大数据公司,核心产品为专门用于管理机器数据的数据引擎。数据引擎包括收集、索引、搜索和管理功能,无论信息的格式和来源的复杂程度,公司数据引擎每天都可以提供TB级别的信息索引。

4.1.3. 信息安全防护领域领跑者

根据Garner数据,目前信息安全防护(SIEM)领域主要包括IBM、Splunk、LogRhythm等玩家,从产品力上来看,2018年公司基本与龙头IBM处于并驾齐驱的竞争态势。两款产品IBM QRadar和Splunk Security Intelligence Platform在市场中也收获了不相上下的行业口碑。

4.1.4. 产品生态完备,平台适用性较强

公司搜索处理语言(SPL)是专为查询机器而设计的专用语言,能够支持算法优化搜索并实时计算搜索结果。相对于其他数据库语言(例如,SQL),SPL的设计简单灵活,同时兼顾性能,具有更高的适用性。

公司产品拥有较为直观的用户终端设计。傻瓜式的操纵使得公司软件终端在不使用SPL的情况下就可以实现部分关键功能,同时图文并茂的展示形式更能够便于用户理解操作流程和分析结果。从而降低用户入门难度。

公司产品的设计充分考虑了其在整个软件生态中的适用性,通过第三方扩展,公司产品不仅能够访问外部数据库、支持多种编程语言,还能在一定程度与外部应用实现功能互补。

4.2. 核心经营数据分析

得益于行业的高速发展以及公司产品竞争力的提升,过去的6个财年公司用户始终保持上升态势,近年公司用户量达到17500,虽然由于基数的原因增速有所下滑,但增长绝对值保持稳定。公司续费率至2014财年二季度以来,保持在94%以上的高水平,一方面由于公司销售类型包括永久使用权,另一方面也得益于公司用户粘性的提高。

公司2019财年实现百万美元的订单394单,世界100强企业覆盖率达到92%。得益于公司的大客户张略,公司收入保持稳定较快增长,销售费用呈下降趋势。

5. 公司财务

5.1. 收入分析

公司收入准则从ASC 605调整至ASC 606,采用新准则,公司2019财年增长37.7%,2020第一季度增长36%。收入结构上,公司收入主要包括软件以及运维收入,近几年增速保持相对稳定,公司2018财年更改产品的付费模式,取消永久使用权的购买项,相应的软件运维收入计入软件收入,由此公司软件收入近年增长反超运维收入,2020Q1软件收入增长54%。

从季度报表可以看出,在19财年的高基数以及收入准则的调整下,2020财年收入有所放缓。从收入结构上可以更明显地看出公司收费模式变动导致的收入结构变动。

5.2. 成本分析

从成本的角度来看,公司毛利率总体保持在80%左右的较高水平并有所提升,但一季度毛利率下滑至77.45%导致公司股价承压。由于将部分运维的核算计入软件,公司软件毛利率有所降低,但在成本几乎翻倍的情况下毛利仅下跌一个点可以看出,公司在逐步获得规模效应。运维业务方面,由于将部分收入计入软件,毛利轻微下滑,但实际影响不大。

5.3. 费用分析

公司近年来三费比率基本保持稳定,销售费用得益于高续费率,逐步开始降低。2020Q1研发、销售以及管理费用率分别为30%、65%、15%,考虑到一季度为公司销售费用的支出高峰期,公司费用基本保持稳定。

5.4. 利润分析

利润方面由于激励的原因,公司GAAP的报表仍然处于亏损状态,但从non-GAAP的角度,公司基本实现了一定的净利润,并保持较高的增长。但FY2020Q1的non-GAAP净利润仅有3百万,经营利润率也出现负数,为公司短期股价承压的另一个因素。

5.5. 收入指引

根据公司收入指引,公司基本每年能够实现10%左右的surprise,另外公司连续多个季度上调收入指引。预计下季度财报依旧会出现类似状况。

5.6. 现金流分析

公司目前已经实现现金的持续流入,与部分早期企业相比,公司报表上的亏损并未带来现金流的损失,non-GAAP的净利润根据有参考价值,公司目前账上现金充沛,经营情况较好。但是FY2020Q1的报表显示,公司一季度经营活动现金流入仅有3503万美元,较可比季度的7649万美元要少不少,为公司股价承压的第三个因素。

6. 估值分析

6.1. 相对估值法:云协作企业享有更高的估值,公司估值依赖于云协作业务的发展

采用PSG的方法对公司进行估值,参考市场上的可比标的,公司目前股价处于合理区间,以下一年度的guidance增速为参考,只有一家可比标的增速比公司低且PS估值比公司高,因此从PSG的角度来看,公司估值基本处于合理区间。

从卖方的观点来看,公司目前的目标价中位数为157.5美元,较当前价格130美元有21%的上涨空间。估值溢价主要来自于行业龙头的地位。我们认为,鉴于公司2020Q1报表的表现,公司收费模式转换后存在一定的不确定性。

作者:基岩研究院

2018物联网产业分类排行,新趋势报告

随着互联网红利逐渐消失,“Internet of
things(IoT)”——物联网,在整体科技发展潮流中顺势而行,成为被普遍看好的新一代产业发展方向。

之所以称之为物联网,其本质实际上是互联网的延伸,只是终端由互联网时代的PC、服务器等转向了嵌入式计算机系统及其配套的传感器。各终端之间能彼此进行数据交互,便是物联网的基本原理。

据麦肯锡最新报告估算,全球物联网市场规模将在2025年前扩大到3.9-11.1兆美元,包括设备厂商的利润、效率、新兴业务以及具有更高执行效能的商品为消费者带来的利益等。这也意味着物联网产业将有潜力在2025年达到约11%的全球经济占有率。而随着AI、大数据、云计算的加速落地,2018年,物联网将在更多领域踵事增华。

2017年中国物联网企业初步行为排行榜
排名 企业 相关业务
1 华为 5G、eLTE、LiteOS、华为云、NB-IoT方案、LTE-V、智能硬件
2 百度 百度天工、Apollo、CarLife
3 中国移动 5G、OneNET平台、物联卡、2G eSIM物联网通信芯片
4 阿里巴巴 阿里云、Link物联网平台、阿里通信
5 腾讯 QQ物联、腾讯云、微信硬件平台
6 中兴通讯 5G、AnyLink物联网平台
7 大唐电信 5G、通信模块、应用芯片
8 中国联通 5G、沃云、M2M物联网卡
9 中国电信 电信物联卡、5G
10 京东 京东微联、智能大屏联盟、自建物流
11 小米 智能硬件、小米云服务、SecSIM安全方案
12 科大讯飞 灵犀3.0、智能硬件、语音识别
13 庆科 庆科云、智能系统解决方案、智能硬件
14 京东方 智能终端设备制造、ESL零售物联网解决方案
15 海尔 物联网空调、智能家居、UHome OS
16 联发科 MT2503芯片、Linklt开发平台
17 联想 IoT智能云、C1100模组、ICBAG
18 格力 物联网空调、智能家居
19 利尔达 嵌入式解决方案
20 新大陆 NLECloud、物联网感知与信息识别芯片
2018《互联网周刊》&eNet研究院选择排行
一、效率依然是物联网的最直观的体验
物联网将为你打造科技品质生活

产品革新与生态革命往往从C端开始,随着智能机以及智能穿戴的兴起,人们看到了科技为生活赋能的光明前景和更加便利的服务体验。以智能手机为例,激烈的市场竞争逐渐成型,以华为和苹果为代表的头部玩家通过推出搭载神经网络引擎的AI芯片,加速了手机AI时代的到来。

另外,以智能音箱、物联网中央空调、智能手表等为代表的智能化终端也在快速渗透,这些场景相互连接,一个充满科技感的智能化蓝图正在铺开,这不仅是生活的颠覆,更是一次企业的涅槃。

可以预见,家居相关厂商和相关企业将在2018年继续发力家庭物联网,基于标准的设备能力模型开发智能插件并加载到智能网关上,实现跨厂商多协议的智能硬件0改动快速接入,并能够通过App对硬件进行操控和状态监测调整。新型的家庭网络管理、智能家居调试等,将让用户对灯具、门锁、家电以及更多新型智能终端在“云”上进行操作。

除了消费电子外,运动健康设备、个人护理设备以及家庭安防系统都是物联网背景下“智慧生活”的重要终端资源,除了为年轻人的品质生活提供了更多选项,也为养老服务带来新的思路。随着老龄化日益加深以及用工矛盾的凸显,网联化的人工智能产品将发挥更大价值。通过NB-IoT(移动物联网的窄带大连接技术)、云计算、大数据深度对接,更细颗粒度的监测维度和情感陪护将让老年人的生活质量和尊严得到大幅提升。

2018国内值得关注的智能家居企业
排名 企业 相关业务
1 海尔 海尔U-home、海尔U+、智能家电
2 小米 智能家电、智能硬件
3 京东 京东微联
4 美的 M-Smart智慧家居系统、智能家电
5 TCL 智能家电、智趣家系统
6 HDL 智能家居
7 格力 智能家电、格力+APP
8 长虹 UP平台、智能硬件、AICenter
9 沈阳富加居科技有限公司 LivingLab 智能家居系统
10 海信 智能家电、Hi-Smart3.0系统
11 DOOYA杜亚 门窗电机
12 聚晖电子 KOTI智能家居
13 新合创 智慧家庭解决方案
14 紫光物联 智能家居软件
15 欧瑞博 智能家居
2018《互联网周刊》&eNet研究院选择排行
物联网将化繁为整,打造有序和谐科技新城

城市是集生活、工作、娱乐为一体的综合地理区位,我国“智慧城市”建设在2016年便有了新的进展,作为阿里云ET人工智能技术集大成者——ET城市大脑,对杭州整个城市进行了全局实时分析,自动调配公共资源,修正城市运行中的Bug。在今年,杭州城市大脑项目预计将接入1700路视频,覆盖全城43%的道路范围,上线后,监控覆盖区域将无需人工巡逻。

城市转型智慧城市并没想象中简单,传统连接技术无法满足智慧城市对于覆盖率广、功耗低、成本适中的海量连接需求。而物联网的主要特征之一便是节点的海量性,人、服务器、物品、设备、传感器都是终端节点,数据流源源不断。通过广泛多样的数据收集及处理,城市将实现事故报警、交通信号灯的优化,对人、车、物、事了如指掌和优化决策,让整个城市变得可以被检索。随着城镇化进程不断加深,加之国家对城市发展提出的新要求,“智慧城市”会在未来几年呈现遍地开花的态势。

工业、制造业竞争力被重新定义

过去,制造业基于硬件资产规模建立起来的重资产模式曾被认为难以超越,但随着数字时代的到来,重资产企业“船大难掉头”的弊病逐渐凸显。另一方面,硬件产品的价值正不断向服务和软件迁移,使得硬件产品的内在价值正远远超越硬件本身。

随着“工业4.0”、“中国制造2025”等战略的提出,企业的竞争力正在被重新定义。由于传统制造业为客户带来的价值有限,物联网正为工业企业服务转型提供良好契机。物联网的特性使它抓取、分析数据的能力以及智能化、网联化的决策分析、执行能力空前强大,借助物联网持续感知客户需求,创造新的服务模式,推动业务增长,这便是物联网对企业的最大价值所在。

虽然几乎所有企业家都认为物联网将彻底改变行业,但制定相应策略并开始试水的先行者,大多数依然处于小规模试验中,而大规模应用的企业则处在投入初期,回报依然有限。越来越多的企业开始结合自身定位,与不同产业的外部伙伴展开合作,挖掘数据的同时,探索行业边界,打造全新的物联网生态系统。

2018年物联网智造企业TOP30
排名 企业 领域
1 华为 5G、智能终端、IoT平台、芯片、通信
2 美的 工业机器人、智能家居
3 海尔 物联网电器
4 格力 智能家电
5 中兴通讯 5G、智能终端、IoT平台、通信
6 京东方 智慧系统、显示和传感器件
7 海康威视 中心控制、视频分析
8 大疆创新 无人飞行器控制系统、无人机
9 沈阳新松 自动化装配与检测、工业机器人
10 科大讯飞 语音识别、智能家居
11 紫光股份 仪器仪表、通信设备、IT分销
12 浪潮 服务器及部件、IT终端及散件
13 TCL 智能家电
14 康佳 智能家电
15 均胜电子 交互产品、汽车电子、车载互联系统
16 欧菲光 生物识别模组、触摸和液晶显示
17 三安光电 芯片、LED产品
18 埃斯顿 智能装备核心控制功能部件、智能制造系统
19 中芯国际 IC设计、晶圆制造、芯片封装
20 潍柴动力 整车及关键零部件、非汽车用发动机
21 环旭电子 通讯、消费电子、存储产品、汽车电子
22 同方股份 芯片业务、硬件终端产品、轨道交通智能化
23 上海机电 机电一体化、装备设计
24 立讯精密 互联网产品、精密组件、汽车互联产品
25 东山精密司 精密压铸、LED及其组件、LCM组件
26 大族激光 激光及自动化配套设备、PCB、LED
27 华工科技 激光加工及系列成套设备、敏感元器件
28 汇川技术 变频器、控制技术、传感器、电源
29 汇顶科技 固定电话芯片、触控芯片、指纹识别芯片
30 新时达 与工业传动、机器人与运动控制
2018《互联网周刊》&eNet研究院选择排行
物联网与农业的融合迫在眉睫

随着城镇化进程提速,农村劳动力大量流动,农户兼业化、村庄空心化、人口老龄化等状况越发明显。而互联网化、智慧化为农业发展打开了一扇新的大门。

农业供给侧结构性改革的背景之下,“智慧农业”将感知识别层、大数据算法等与传统农业生产过程中的管理、生产、加工、销售和服务等方面紧密结合在一起,借此改革农业生产结构,促进传统农业与物联网的融合和交流,提高农业需求与供给侧的匹配度,从而实现真正意义上的“智慧农业”。

在农服领域的主要表现以SaaS服务为主,如新农宝。资本关注的重点还有无人机植保服务,成立两年多的农田管家,一月份获得了千万美元的第四轮融资,他们试图从飞防植保(无人机喷洒农药)切入,连接农户和飞防组织,用物联网平台改造农业生产。提升工作效率,同时规避农药中毒的风险。

从行业整体角度看,诸多地区建立了囊括农业资源、技术、市场、气象等各方面的农业数据库,集约化使得单位种植养殖规模扩大,机械化、智能化的作业方式势必成为主流。同时,供应链、农村电商、土地电商等领域,近几年均有巨头出手和创业者入围。

互联网改变的是农产品流通,随着万物互联的发展,“智慧农业”正逐渐向产中、产前等领域扩展。因此,在各个垂直细分领域,尤其是在生猪、粮食、大品类经济作物、农机装备、仓储物流、农机金融等领域,将是今年物联网企业攻坚的重点方向。

2018年度智慧农业平台TOP30
排名 平台名称
1 美菜
2 易果生鲜
3 盒马鲜生
4 天天果园
5 宋小菜
6 农田管家
7 一亩田
8 大丰收
9 什马金融
10 土流网
11 农分期
12 云农场科技
13 新农宝
14 味道网
15 极鲜网
16 蜂巢科技
17 极飞科技
18 佳格天地科技
19 农泰金融
20 花花草草
21 大气候农业科技
22 农管家
23 科百宏业科技
24 易耕云作
25 猪福达
26 慧云信息
27 丰顿科技
28 猪联网
29 聚土网
30 我会种
2018《互联网周刊》&eNet研究院选择排行
物流业将百尺竿头更进一步

物流业是融合运输业、仓储业、货代业和信息业等的复合型服务产业,随着我国基础设施建设的日益完善以及B2C电子商务的爆发,我国物流业已经实现了从无到有和后来居上的势头。总体来看,我国物流业已进入成熟期,但随着以杭州企业为代表的自动化、网联化物流的兴起,“智慧物流”成为行业新的红帆。

2017年12月,全球最大的单体全自动化码头——上海洋山深水港四期自动化码头正式运行。与传统人工码头不同,洋山四期码头采用上港集团自主研发的全自动化码头智能生产管理控制系统(TOS系统),不仅设备先进,其智能化和无人化的大范围应用是最大亮点。另外,桥吊、轨道吊、AGV均采用电力驱动,全程零排放,同时噪音得到极大改善。

新一代物流业的发展正在解决资源利用率低下的发展瓶颈,对于大数据的应用和跨境物流标准的统一,也使得国内物流效率得以在海外复制。随着商业物流试验取得的成果不断扩大,“智慧物流”大概率会如日方升,继续巩固领先优势。同时,基于电磁导航和感知技术的AGV等终端物流工具会随着网络优化加速落地,为网联时代下的智能物流业注入更强大的动能。

2018值得关注的智慧物流企业
排名 企业 关注方向
1 京东 全自动仓储+大数据
2 菜鸟网络 众包物流+智慧仓储
3 易商 仓储设施开发服务
4 满帮 智慧物流服务
5 惠龙国际 智能交通运输配送体系
6 丰巢科技 智能快递柜
7 安能物流 综合物流网络
8 罗计物流 智慧物流平台
9 旷视科技Face++ AI视觉+智能物流仓储
10 越海全球供应链 智慧供应链
11 啦啦快送 货柜物流平台
12 云鸟配送 供应链配送
13 中邮速递易 智能快递柜
14 惠凌股份 智慧物流系统软件
15 中物智福 智慧物流信息平台
2018《互联网周刊》&eNet研究院选择排行
物联网安全问题不容忽视

物联网为我们展示了一个万物互联的世界,如此规模的设备和数据让网络安全问题变得尤为严峻,《2017物联网安全年报》中提到,物联网的DDoS大流量攻击在未来会成为常态。基于物联网设备增多带来的规模效应,从难度、成本、风险与收益的角度看,DDoS在相当长的时间内都是一种有效的攻击形势。

物联网生态系统的构架是机遇,它是所有环节的纽带。而网络攻击带来的挑战也是基于这种中心化模式。对于物联网安全问题的解决方案,目前主流的有两种方案,一种是以阿里云为代表的对于云端安全的防护和隔离,但对于C端的指令难以保护。另一种则是则是基于区块链技术来解决物联网中的安全问题。

区块链的本质是分布式的,这意味着没有单一的主机掌控整个区块链。而区块链的优势在于它的公开性和私密性。公开性是指每个参与者都能看到区块曾经储存过的交易。私密性则是这些内容被秘钥保护着,且数据库智能被不断拓展,之前的记录很难改变。虽然有着诸多优点,但区块链的扩展性问题、处理能力、存储障碍、技术以及法律合规性等问题却为其大范围商用之路蒙上了一层阴影。

目前来看,还没有哪一种最适宜的IoT安全模式出现,这也正是我们需要去探索的星辰大海,在最佳方案出现之前,物联网参与方应根据自身特点,有针对性地部署防护措施,防范IoT原始生长期间安全问题的突然爆发。

二、诸多机遇随深挖逐一涌现
芯片之争或关乎物联网未来

ARM架构在95%智能手机、80%数码相机以及35%的电子设备中得到应用,共销售超过200亿个基于ARM构架的芯片,其移动世界规则和移动架构制定者地位可见一斑。2016年7月,日本软银集团243亿英镑(2076亿人民币)收购英国芯片设计商ARM为孙正义的物联网畅想铺平了前路。在国内物联网生态圈建设中,华为则在2016年世界移动大会上正式面向全球发布了端到端的NB-IoT解决方案。

众多数据显示,物联网正从硬件、传感等基础设备向软件平台和垂直行业应用升级。处理器的架构在物联网领域天然占据上风,虽然传统芯片厂商具有先发优势,但目前物联网缺乏“杀手级”应用,且少量多样的特性,这也意味着物联网芯片依然面临诸多挑战。

物联网仍处于刚起步阶段,还没有任何一家公司可以垄断该领域,随着竞争者陆续加入,物联网依然对所有人敞开怀抱。为了能提供行之有效的物联网服务和产品,必须提供覆盖感知技术、处理器和通信在内的广泛技术组合,所以合作与收购依然是当前整个产业的主流。对于芯片厂商而言,未必每家企业都能笑道最后,但只要参与便会收获相应的成长。

2018值得关注的物联网芯片企业
排名 企业 关注方向
1 联发科 IC设计、芯片整体系统解决方案
2 中芯国际 晶圆制造
3 海思 麒麟系列移动处理器
4 台积电 晶圆制造、嵌入式快闪记忆体
5 紫光国芯 IC设计、存储器芯片、FPGA可编程芯片
6 汇顶科技 生物识别芯片
7 大唐微电子 支付芯片、IC设计
8 华虹宏力 晶圆制造、微控制器
9 联电 晶圆制造、DRAM相关芯片
10 展讯 无线通信及多媒体终端芯片
11 华大电子 安全芯片
12 华润微电子 晶圆制造、芯片封测、微控制器
13 新岸线 通讯射频芯片
14 联芯科技 无线通信终端芯片
15 国民技术 安全芯片
16 同方微电子 身份识别芯片
17 北京君正 嵌入式CPU芯片
18 全志科技 智能应用处理器和模拟芯片
19 上海贝岭 光电收发芯片、计量控制
20 利尔达 嵌入式微控制器设计
2018《互联网周刊》&eNet研究院选择排行
IPv6:为每一粒沙都分配一个IP

IPv6是互联网工程任务组(IETF)在上世纪90年代就已提出的用来取代主流IPv4的下一代互联网协议。物联网业务的扩大势必对网络产生巨大压力,在IPv4资源日益枯竭的情况下,IPv6再次进入人们的视野。

IPv6使用更小的路由表,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高路由器转发数据包的速度。IPv6还增强了对组播及流控的支持,增加了对网络层的数据加密。

最值得关注的是,IPv6的地址长度为128b,是IPv4的4倍,号称能给世界上每粒沙子都分配一个IP,而在物联网时代,除了电脑,每一个路由器,甚至电视机、洗衣机、门锁都会占据一个IP,二者的长处和需要不谋而合。

《推进互联网协议第六版(IPv6)规模部署行动计划》提出:到2018年末,IPv6活跃用户要达到2亿,在互联网用户中占比不低于20%。除此之外,还提出了包括准备部署IPv4向IPv6平滑演进升级的计划,将IPv6正式纳入下一代网联化发展的战略中。由此可见,IPv6的全面推进是大势所趋,随着国家计划的推动,IPv6在2018年必将迎来重大进展。

北斗商用为物联网锦上添花

据报道,北斗地图App将于5月1日上线,其导航功能可精确到1米以内,并能够清晰定位到具体车道,未来随着整体导航系统的逐步完善,定位精度有望突破厘米级,这将对物联网背景下的智慧城市、智慧交通再添一剂催化。

值得关注的是,目前无人机在专业应用领域中还需要人为遥控来实现作业,随着有源定位技术的突破,如果将北斗定位芯片嵌入无人机中,技术上的诸多难题将迎刃而解,这将拓宽无人机应用领域深度,大大降低农业植保、公安救助、物流、安防等领域的工作难度。

另外,虽然无人驾驶概念诞生,但真正落地却困难重重,以车载传感器的图像信息为主、卫星定位信息控制汽车行驶为辅的方式是一种新的尝试。随着北斗系统与GLONASS的对接,也让一个终端能接收到更精准的位置信息,加之多方筹谋推进与相关技术的继续突破,无人驾驶汽车有望在未来几年加速落地。

2017国内车联网企业TOP30
排名 企业 综述
1 飞驰镁物 TSP公司,是相对独立的可以为全部OEM企业提供车联网服务。
2 百度车联网 结合系统研发、地图、大数据等优势发力车联网产业。
3 四维图新 数字地图、动态交通信息和车联网等服务在业内拥有极高认可度。
4 皖通科技 少数具有高速公路信息系统建设高端核心软件的企业之一。
5 银江股份 交通智能化是公司三大主要智能系统工程产品之一。
6 阿里巴巴 结合地图、You OS等发力车联网产业的互联网公司。
7 星软 从事车联网动态信息云服务平台软、硬件产品研发和销售的企业。
8 启明信息 主营业务包括汽车核心管理软件研发及汽车电子制造。
9 宝信软件 宝康电子是宝信软件子公司,是智能交通业界领先者之一。
10 华力创通 雷达信号处理仿真系统和高速信号记录仪等拥有独到优势。
11 川大智胜 空中和地面智能交通领域领先的大型软件和重大设备供应商。
12 天泽信息 一家提供车辆远程管理信息服务及配套软硬件的企业。
13 均胜电子 车联网产业链中的终端硬件提供商,以硬件产品优势切入产业链。
14 亿阳信通 在电信运营支撑系统(OSS)等领域处于同行业的领先地位。
15 中科创达 提供操作系统开发、核心技术授权、智能仪表盘等解决方案。
16 索菱实业 从事CID系统的研发、生产、销售、并以此为基础向客户提供服务。
17 得润电子 生产研发各类电子连接器产品,以硬件产品优势切入车联网产业链。
18 易华录 提供车辆安全性诊断基础平台、自动驾驶、测试环境等服务。
19 博泰悦臻 主要从事车载智能终端和相关服务平台业务。
20 智信通 以车联网平台技术为支撑,结合Apps对汽车性能进行汇报和记录。
21 中交兴路 整合上下游产业链,主要开发拓展货运大数据、定位、金融等。
22 路畅科技 主要从事车载导航信息系统相关业务。
23 赛格导航 车载导航、智能安防领域优势明显。
24 远特科技 致力于智能汽车服务系统结合移动互联网技术推动车联网发展。
25 腾讯车联网 结合地图、海量用户数据与流量发力车联网产业的互联网公司。
26 中海网络 智能交通系统、轨道交通监控系统提供商之一。
27 行适安 专业商用车和特种车辆车联网的解决方案提供商。
28 车网互联 TSP市场提供开放式服务平台和行业定制解决方案的企业。
29 全志科技 智能应用处理器SoC和智能模拟芯片设计厂商。
30 易图通 凭借地理信息服务入驻前装车载导航市场以及车联网产业链。
2018《互联网周刊》&eNet研究院选择排行
结语

按照应用场景划分,物联网大概分为可穿戴、医疗器械、智能家居、游戏、车载、货品溯源和智慧社区等七大类,虽然各个场景的模式不尽相同,但物联网的一部分价值来自于运营服务,而核心零部件是获得后续运营服务的保障,一级市场和物联网生态建设企业对控制芯片、传感器、通讯模块的关注不会放松,相关领域即将迎来初级红利。

物联网的规模与影响虽然在不断激增,但部署和发展速度却未必如想象那般迅速,因为物联网产业实质上是以人为中心,万物互联为背景的产业升级,其发展轨迹必将服从于人的进步与生产力的发展。

科技始终源自人性。除了要用发展的眼光去看待科技,还要用正确的价值观去引导,让科技更好地为人类服务,让物联网闪烁“人性”之光。这,将是那些最终成功物联网企业的核心,要素,本。

如何提高运维团队的运维效率?

       如何运行一个庞杂的机房,进行无数的主动和被动的操作,同时避免错误导致的数据中心故障?
  1、以终为始
  以终为始是一种以结果为导向的思维方式,提示人们在做事情前要先明确做事情的最终目的,也就是“不忘初心,方得始终”。数据中心的终极目标是支持业务系统的不间断运行。在接手一个数据中心的运维任务之前,我们首先需要明确业务连续性目标,然后才能制定相应的运维策略。
  2、以人为本
  70%的数据中心故障是由人为造成的。与此同时,即使有最先进的监控系统,数据中心内无论主动保养操作,还是应急反应,都还需要依赖于人员的最终决策和操作。所以,配备足够的人员、有责任心、经验丰富的人员、对于数据中心的安全运行至关重要。
  3、培训与学习
  学习是一种修炼。有一种说法“最好的运维团队只不过是犯了足够的错误就修炼出来的”。数据中心基础设施牵涉到电力、暖通、弱电、消防、建筑等诸多专业,对于数据中心运维团队来说,需要学习的专业知识非常多。同时,每一个数据中心的配置和特定的操作流程都不完全相同。因此,培训与学习应该成为运维团队管理的一个重要组成部门。
  4。建立管理体系
  数据中心基础设施的运维管理工作的管理对象包括整个庞大的基础设施、运维团队、服务对象(IT部门或者IDC客户),是一项系统性很强的工作,需要建立起一个管理体系。在整个运维管理系统体系中最重要的三个方面是设备保养体系、与所有相关部门的沟通机制、以及支持整个数据中心生命周期管理的财务预算体系。
  5。规范操作流程
  任何规范化的企业管理,都不可避免地需要引入流程,数据中心运维管理也不例外。完全基于个人经验和判断的操作,往往隐藏着重大的故障风险。数据中心就是要强化流程管理。任何重要的操作,必须严格按照流程执行。建立流程文化是数据中心规范化管理的一个重要环节。数据中心最重要的三类流程是标准操作流程(SOP),维护保养操作流程(MOP),和应急相应流程(EOP)。
  6。动态管控
  除了之前提到的管理体系和操作流程这些相对静态的工作以外,数据中心还需要进行动态的管控。近几年,IT负载的动态性表现得越来越明显。一方面,IT设备的增加速度比较快。新的业务系统上线可能导致IT负载在短期内有较大的增加。另一方面,企业大量采用虚拟化技术以后,可能会出现机房内各机柜的IT负载在一天范围内有较大变化的情况。基础设施运维团队需要针对这种IT负载的动态性作出相应的对策。
  7。持续改善
  大型数据中心的出现只是近几年的事情。当数据中心超过一定规模的时候,管理变得复杂,已经超越原来简单的依赖于少数运维人员的责任心的时代,需要的是完整的管理思想和方法论。国内数据中心基础设施运维体系的成熟度大致处于三个等级的状态:基础级、成长级、文化级。
    8、用运维管理工具
     实践已经证明,用一个优秀的运维管理系统可以大幅度的提升运维管理效率。可以理顺运维流程,并对每一个运维事件进行时间限制。督促运维工程师解决故障。另外,运维经理可以从PC或者移动端随时关注运维事件的进程。运维管理工具的知识库、配置管理、拓扑图、监控管理等功能,也是提升运维效率的有效功能。

漫谈IT项目团队管理心得(转)

 如果在软件项目实施中选出最难解决的几个问题,那么管理问题一定名列前茅。在管理问题中,团队管理又是其中的难点。一个项目管理的好坏,很大程度就体现在团队的建设和管理上。团队管理涉及到管理学、心理学和哲学等诸多方面内容,具体实施起来还容易产生许多误区,因此,对项目主管的综合素质要求颇高。笔者进入项目管理领域的时间尚短,最近读了一些书籍,结合自己的一些经验,汇成一些心得体会,愿与朋友们共同提高。 
  1、什么是团队管理? 
  举个简单的例子:如果有一车沙从大厦顶上倒下来,对地面的冲击是不太大的,如果把一整车已凝固成整块的混凝土从大厦上倒下来,其结果就大不一样。团队管理就是把一车散沙变成已凝固成整块的混凝土,将一个个独立团队成员变成一个坚强有力的团体,从而能够顺利完成项目的既定目标。 
  沙土需要搭配石头、钢筋和水泥等才能形成混凝土,在团队建设中同样如此。每个成员的知识结构、技术技能、工作经验和年龄性别按比例的配置,达到合理的互补,决定了这个团队的基本要素。 
  有了沙土等基本要素,是否就一定是混凝土呢?没有水,没有搅拌,就还不行。混凝土中的水就是一种良好的团队氛围,团结信任积极向上的工作气氛。具备了这种气氛,意味着项目成功了一半。 
  项目主管在团队管理中相当于搅拌机的作用,组织会议、讨论、学习、攻关和休闲等活动,与成员之间形成良好的沟通,最终能形成明智的决策。 
  2、制定良好的规章制度 
  小头目管事,大主管管人。在项目规模小的时候,项目主管既要是技术专家,善于解决各种各样的技术问题,还要通过传帮带的方式实现人管人;在项目规模较大的时候,项目主管必须通过立规矩、建标准来实现制度管人。 
  所谓强将手下无弱兵,没有不合格的兵,只有不合格的元帅。一个强劲的管理者首先是一个规章制度的制定者。规章制度也包含很多层面:纪律条例、组织条例、财务条例、保密条例和奖惩制度等。好的规章制度可能体现在,执行者能感觉到规章制度的存在,但并不觉得规章制度会是一种约束。 
  执行规章制度还有一些考究,记得网上流行一个破窗理论:如果有人打破了一个建筑物的窗户玻璃,而这扇窗户又得不到及时的修理,别人就可能受到某些暗示性的纵容去打烂更多的窗户玻璃。久而久之,这些破窗户就会给人造成一种无序的感觉。这个理论说明,对于违背规章制度的行为,应该及时制止,否则长期下来,在这种公众麻木不仁的氛围中,一些不良风气、违规行为就会滋生、蔓延且繁荣。 
  项目主管虽然是规章制度的制定者或者监督者,但是更应该成为遵守规章制度的表率。如果项目主管自身都难以遵守,如何要求团队成员做到? 
  3、建立明确共同的目标 
  先讲个故事:一条猎狗将兔子赶出了窝,一直追赶他,追了很久仍没有抓到。一牧羊人看到此种情景停下来,讥笑猎狗说:“你们两个之间小的反而跑的快很多。”猎狗回答说:“你们不知道我们两个跑是完全不同的!我仅仅为了一餐饮而跑,而他却为了性命而跑呀。” 
  这个寓言揭示了:兔子与猎狗做一样的事情,都拼命的跑步,然而,他们的目标是不一致的,其目标不一致,导致其动力也会不一样。在团队管理中,不同角色的成员的目标是不一致的。项目主管直接面向客户,需要按照承诺,报质保量地按时完成项目目标。项目成员可能是打工者心态,我干一天你要支付我一天的工资,加班要给奖金,当然干项目能学到新知识新技能就更好。 
  团队中不同角色由于地位和看问题的角度不同,对项目的目标和期望值,会有很大的区别,这是一点也不奇怪的事情。好的项目主管善于捕捉成员间不同的心态,理解他们的需求,帮助他们树立共同的奋斗目标。劲往一处使,使得团队的努力形成合力。当然,在具体实施上可能会遇到一些问题。比如说员工持股问题,本来是把员工的利益与公司的利益捆绑在一起的问题,但是操作起来就可能会走样。A为一高科技企业的研发经理,他所在的公司实行员工持股制度,他说:中国搞员工持股根本就没有吸引力,上不了市,我们手中的股票和垃圾没有区别,老板搞员工持股,还是网不住这些骨干员工的。 
  笔者看来,项目主管也许还没有调配员工股的权利,但是可以给员工规划出一个好的发展远景和个人的发展计划,并使之与项目目标相协调。 
  4、营造积极进取团结向上的工作氛围 
  假如项目缺乏积极进取团结向上的工作氛围,项目成员的力量就很难合在一起,大家相互扯皮推诿指责,项目也就不可能成功。 
  钓过螃蟹的人或许都知道,篓子中放了一群螃蟹,不必盖上盖子,螃蟹是爬不出去的,因为只要有一只想往上爬,其它螃蟹便会纷纷攀附在它的身上,结果是把它拉下来,最后没有一只能够出去。企业里常有一些人,嫉妒别人的成就与杰出表现,天天想尽办法破坏与打压,如果不予去除,久而久之,组织里只剩下一群互相牵制、毫无生产力的螃蟹。 
  对于项目组中的不知悔改的螃蟹,应该尽早清理出去。对于公司而言,也许历史尚短,还没有形成成熟的企业文化和企业精神,从而造成大环境的不良风气,但是在项目组内部,通过大家的一致努力,完全可能营造出一个积极进取团结向上的工作氛围。 
  项目主管为了酿造这种氛围,需要做这些努力:奖罚分明公正,对于工作成绩突出者一定要让其精神物质双丰收,对于出工不出力者受到相应的惩罚;让每个成员承担一定的压力,项目主管不应该成为“所有的苦,所有的累,我都独自承担”的典型,项目主管越轻松,说明管理得越到位;在学术问题讨论上,要民主要平等,不做学霸不搞一言堂,充分调动每个成员的积极性。在生活中,项目主管需要多关心多照顾项目组成员,让大家都能感受到团队的温暖。 
  5、良好的沟通能力是解决复杂问题的金钥匙 
  由于每个人的知识结构和能力的区别,导致对于同一问题的认识很出现相应的偏差。 
  举个简单的例子,在软件设计中,B和C之间有接口。项目主管在给B和C分配任务时,就可能讲到了这个接口,但是B和C由于理解上出现不一致,导致在调试过程中出现问题。在这种时候,项目主管就需要具备良好的沟通能力,并能迅速判断到底谁的理解出了问题,把B和C的理解提升到同一层次。 
  在现实研发中,会经常出现接口问题,在实际工程项目中,还会经常出现客户对项目需求的更改要求,估计这也是每个项目主管都非常头疼的问题。项目已经进行到了收尾阶段,客户发现现实需求已经发生变化,需要项目组做大幅度的调整。项目主管要是不管不顾,这个项目可能就毫无意义;项目主管要是按照客户需求来调整项目目标,这个项目就可能拖期,超过预算。在这种时候,项目主管与公司高层,与客户之间的沟通能力就极其重要,良好的沟通能力将有助于解决这类复杂问题。 
  6、团队管理的几个误区 
  团队管理的误区是指在团队管理中对团队的发展产生负面影响的行为,这些行为严重的时候可能会颠覆一个团队。 
  常见的团队管理误区有以下一些:团队缺少关键技能和知识及解决办法;团队的计划不连贯;团队成员的傲慢情绪;团队分工不清,人员责任不明;团队总是追求短期目标;团队中经常有制造混乱的成员;团队成员之间缺少协同工作的习惯等。 
  解决团队管理误区的措施: 
      * 提高团队的开发能力 
  让全体成员分享所有相关的商务信息(商务秘密除外),而且要保证团队成员完全明白这些信息;强化团队发现问题和解决问题的能力;提高团队的整体决策能力。 
  * 避免短视行为 
  要确保所有团队成员对该组织、其目标和其结构有一个基本的认识。团队成员如果不具备关于团队的基本知识,自然难以认识到一个决议对其他团队和整个公司会带来的潜在影响。团队成员接受的全局观点越强,他们在做决策时对整个工作的考虑就会越多,就更能克服近视倾向。 
  * 工作重点和工作能力 
  项目主管可能不是技术专家,所以主管的工作重点是调动团队成员的积极性,为解决技术问题创造充分的条件。一个缺少基本技术技能的团队很容易出现问题,而有着良好基础但并不继续获取和使用新知识的团队,也会在将来陷入困境。 
  * 快刀乱斩麻的魄力 
  要想在当今时代保持一定的竞争力,经营机构在决策和实施决策计划时必须当机立断;任何延误都会造成严重后果。当决策完全陷入僵局时,应该提出这样一个问题:“今天不做决定会有什么样的后果?”或者“如果我们今天无法做出决定,事情会发展成什么样?”通常情况下,不做任何决定比行动的后果更严重。 
  * 在经验教训中成长 
  如果团队已经做出了错误的决定,项目主管应当同团队成员一起坐下来,反省错误的发生的原因,强调从这次教训中可以学到什么。不要指责任何人或滥用职权,只是告诉团队这个错误决定所带来的负面影响,并让团队研究所学到的东西和可采用什么措施以确保这类过失不再发生。 
  * 解决反抗与抵制情绪 
  技术人员的特点,决定了他们对项目主管的要求和指导一般会有反抗或抵制情绪,特别是团队发展初期。项目主管都应明白这一点,克服团队反抗情绪的最佳策略是把时间和精力都集中在谈论如何实现项目目标上。在这个大前提下,充分激发团队成员的积极性。

全球主要的25家人工智能公司

过去几年来,人工智能的应用呈爆炸式增长,而大量的创业公司和知名企业都已经实施自己的人工智能计划。据纽约时报估计,仅在芯片领域就有45家人工智能创业公司,更不用说从事机器学习、深度学习和常规人工智能项目的数百家人工智能软件公司。

全球主要的25家人工智能公司

人工智能已经发展为多样化、多用途,并呈现出各种不同的形式,从自动驾驶汽车到通过语音命令操作的亚马逊Alexa,再到人工智能供电的服务器。这促成了大量的风险投资和收购。大量人工智能公司被一些行业巨头或投资商收购。根据CB Insights公司调查的数据,在2017年退出市场的120个人工智能公司有115个是被收购的。显然,人们对人工智能和提高人类的能力很感兴趣,尽管人工智能遭到一些行业人士的反对。

事实上,人工智能的发展具有许多可能性和风险。蒙特利尔大学教授兼蒙特利尔学习算法研究所所长Yoshua Bengio说:“人工智能将产生巨大的经济影响,但也会改变社会,人们很难做出更多的预测,但显然就业市场将受到影响。”

在此介绍一些值得人们关注的人工智能公司以及那些在人工智能方面进行了大量投资的公司。以下是正在塑造未来的25家人工智能公司,这些人工智能公司按字母顺序排列。

1. AIBrain

AIBrain公司位于美国加利福尼亚州,是一家人工智能公司,为智能手机和机器人应用构建人工智能解决方案。该公司提供三种产品:人工智能代理AICoRE,一款智能机器人软件平台iRSP,以及一款未来的模拟人工智能游戏Futurable。这些都是该公司完全自主的人工智能产品。该公司的工作重点是开发人工智能,并融入解决问题、学习和记忆的人类技能。

2. Amazon

云计算行业巨头Amazon公司提供面向消费者和商业的人工智能产品和服务。Amazon Echo通过智能语音服务器Alexa将人工智能技术带入家中。对于AWS公司来说,提供三项主要的人工智能服务:Lex的商业版本Alexa,将文本转换为语音的Polly,图像识别服务Rekognition。

3. Anki

Anki公司致力于通过其Cozmo和Anki Overdrive产品将消费类机器人带入日常生活。 Cozmo是Anki公司推出的旗舰机器人。Cozmo由于其情感反应被描述为迄今为止最先进的消费级机器人之一,而Overdrive则是一款完整的赛道游戏。

4. 苹果(Apple)

苹果公司在过去两年内收购了四家人工智能创业公司,向人工智能领域迈出了重要的一步。其中一家人工智能公司的技术成为面部识别安全系统FaceID的基础。该公司的大部分业务都围绕着苹果的虚拟助理Siri开展,但像以往一样,苹果公司对其计划持谨慎态度。它最近招聘了谷歌公司的人工智能部门的负责人,这无疑将有助于它的努力,并进一步与谷歌公司竞争。

5. Banjo

Banjo公司去年筹集的资金超过1亿美元,利用人工智能通过社交媒体进行梳理,并确定对其合作伙伴非常重要的实时事件和情况。这家创业公司是在2013年波士顿马拉松爆炸案后开发的,作为企业分析社交媒体,以更好地做出决策,加快行动速度,并改变人们理解和与世界各地的人们互动方式的一种方式。

6. CloudMinds

CloudMinds正在开发称为人类增强机器人智能(HARI)平台的端到端云计算智能(CI)系统。云计算智能与人工智能不同,它将机器与人类相结合,而不是将它们作为单独的实体来对待。这可以让机器人受到人类的控制。它还提供移动内联网云服务(MCS),为远程机器人控制提供信息安全。

7. Deepmind

Deepmind公司虽然不是一家提供人工智能产品的公司,但在人工智能研究中起到重要的作用。Deepmind仍然是行业主要的领导者。该公司总部位于伦敦,它从牛津大学和剑桥大学招收大量人才,这些人才在人工智能和机器学习研究方面处于领先地位。其研究论文发表后即被广泛阅读。谷歌公司不久前收购了DeepMind。

8. Facebook

Facebook AI Research(FAIR)在全球设有四个人工智能实验室,旨在更好地理解人们的沟通方式。该公司最近还进行了四项与人工智能有关的收购交易,最近的一次是收购Ozlo公司,以帮助Messenger为用户打造更精细的虚拟助理。

9. Google

谷歌公司显然是人工智能领域的领导者,正在进行大规模的人工智能开发和研究,在四年内收购了12家智能创业公司。谷歌公司在推进人工智能功能方面投入很大,其在人工智能技术方面的努力不是向市场销售产品,而是致力于改进服务。它在TensorFlow中有一个主要的软件项目以及它自己的Tensor AI芯片项目。

10. H2O

H2O公司的产品被全球超过12,600家组织的10万多名数据科学家所使用,它声称自己是“世界领先的开源深度学习平台”。该公司的产品包括H2O平台,将领先的开源深度学习工具与H2O结合在一起,还包括结合H2O和Spark的Sparkling Water框架,面向开发人员的Steam AI Engine以及承诺“人工智能可以做到的无人驾驶”。其客户名单包括Capital One,Progressive Insurance,Transamerica,Comcast,Macy’s和Walgreens等大型企业。

11. IBM

自20世纪50年代以来,IBM公司一直是人工智能领域的领导者。目前在人工智能领域的努力围绕着IBM Watson开展,例如基于人工智能的认知服务,人工智能软件即服务以及用于提供基于云计算的分析和人工智能服务的横向扩展系统。它也一直在收购,最近几年收购了三家人工智能创业公司。

12. iCarbonX

iCarbonX是一家中国的生物技术公司,它使用人工智能来提供个性化的健康分析和健康指数预测。它已与来自世界各地的7家专注于收集不同类型医疗保健数据的科技公司结成联盟,并将使用算法分析基因组、生理和行为数据,并提供定制的健康和医疗建议。

13. 英特尔(Intel)

英特尔公司已经收购了Nervana和Movidius两家人工智能公司。Nervana公司开发了一个深度学习处理器,而Movidius公司则致力于研究Windows系统上的神经网络。除了众多收购之外,英特尔还与微软公司一起投资了几家人工智能创业公司。英特尔还通过其Arria FPGA处理器为微软Bing搜索引擎提供人工智能加速。

14. Iris AI

Iris AI公司可帮助研究人员对科学工作和研究进行分类,以找到相关信息,并在使用它时学习如何创造更好的搜索者。自推出以来,已有12万人尝试了该服务,其中一些成为常规用户。该公司最近发布了Iris.ai 4.0,它增加了Focus工具,这是一种智能机制,可以精炼和整理研究文献的阅读清单,从而减少大量的人工努力。

15.微软

微软公司拥有面向消费者和商业/IT人工智能项目的组合。在消费者方面,它拥有Windows附带的数字助理Cortana,现在可用于除Windows P
hone之外的智能手机以及像十几岁少年一样交谈的聊天机器人Zo。在其Azure云服务上,微软公司提供人工智能服务,如机器人服务,机器学习和认知服务。

16. Next IT

Next IT公司是最早推出聊天机器人的公司之一,并帮助诸如阿拉斯加航空公司和Amtrak等公司轻松地与客户互动回答问题,并解决问题。他们的人工智能能力使他们能够帮助各种行业的组织,其中包括医疗和保险。

17. Nvidia

Nvidia公司多年致力成为人工智能的行业领导者。近二十年来,该公司一直在推广其CUDA GPU编程语言。人工智能技术的开发人员已经开始看到GPU大规模并行处理设计的价值,并接受了用于机器学习和人工智能的Nvidia GPU。 Nvidia在自动驾驶汽车方面做出了巨大的努力,而这是其众多努力的其中之一。

18. OpenAI

OpenAI公司具有开源的精神。这是一家研究公司,旨在促进和发展人工智能,使人类受益。该组织旨在与其他机构和研究人员“自由合作”,向公众开放其专利和研究成果。它拥有技术精湛的员工,他们出版广泛阅读的研究论文,并提供开源工具。

19. Salesforce

在过去的两年中,Salesforce公司已经收购了三家人工智能公司,并且最近推出了他们的人工智能服务Salesforce Einstein。他们最新的举措包括一个由175位数据科学家组成的团队,他们使用机器学习来帮助员工更加高效地执行任务,简化和加速他们的工作。除了Salesforce自己的员工之外,Salesforce Einstein还将面向可以构建自己应用程序的客户。

20. SoundHound

SoundHound以其音乐识别应用而闻名,但它也拥有用于进行各种语音到文本查询的自然语言处理的最先进和最准确的平台之一。在那些实施它的企业中,有三星、Nvidia、索尼旗下的Xperia、Yelp和Uber。

21. Twilio

Twilio是一个云计算通信平台即服务(PaaS)公司,它允许软件开发人员通过使用各种API将文本消息、电话和视频呼叫集成到应用程序中。Twilio公司的服务通过HTTP访问,并根据使用情况进行计费。

22. Twitter

Twitter已经将大量资金投入人工智能。迄今为止,他们已经收购了4家人工智能公司。他们花费了1.5亿美元最新收购了人工智能科技创业公司Magic Pony。一段时间后,Twitter推出了一个所谓的算法时间表,它根据相关性对推文进行排名,而不是按照通常的反向时间顺序排列。该公司还增加了人工智能来推荐用户时间轴上的某些推文。

23.ViSenze

ViSenze公司的人工智能技术通过在网上购物时向用户推荐视觉上类似的物品。 ViSenze利用机器学习和计算机视觉算法,处理和分析数以百万计的视觉内容。它使用视觉感应来在线查找物品的匹配项,然后为定价、相似性和可用性提供过滤器。

24. X.ai

面向繁忙的用户,X.ai公司的智能虚拟助理Amy帮助用户安排会议。这个概念很简单,如果收到会议请求但没有时间处理物流问题,则将Amy复制到电子邮件中并由其处理。通过机器学习和自然语言处理,Amy根据用户的喜好和时间表安排会议的最佳时间和地点。

25. Zebra Medical Vision

Zebra Medical Systems是一家以色列公司,将深度学习技术应用于放射学领域。它声称它可以通过检查一个巨大的医学图像库和专门的检查技术来预测多种疾病,并且精确度高于人类。它最近将其算法移至谷歌公司的云端,以帮助它扩展并提供1美元的医疗扫描。

而相信不久的将来,这个行业领先的人工智能公司名单将会像人工智能一样迅速变化和发展。

基于 Open vSwitch 的 OpenFlow 实践

Open vSwitch 概述

Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机。在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略、网络隔离、流量监控等等。
OVS 遵循 Apache 2.0 许可证, 能同时支持多种标准的管理接口和协议。OVS 也提供了对 OpenFlow 协议的支持,用户可以使用任何支持 OpenFlow 协议的控制器对 OVS 进行远程管理控制。

Open vSwitch 概述

在 OVS 中, 有几个非常重要的概念:
  • Bridge: Bridge 代表一个以太网交换机(Switch),一个主机中可以创建一个或者多个 Bridge 设备。
  • Port: 端口与物理交换机的端口概念类似,每个 Port 都隶属于一个 Bridge。
  • Interface: 连接到 Port 的网络接口设备。在通常情况下,Port 和 Interface 是一对一的关系, 只有在配置 Port 为 bond 模式后,Port 和 Interface 是一对多的关系。
  • Controller: OpenFlow 控制器。OVS 可以同时接受一个或者多个 OpenFlow 控制器的管理。
  • datapath: 在 OVS 中,datapath 负责执行数据交换,也就是把从接收端口收到的数据包在流表中进行匹配,并执行匹配到的动作。
  • Flow table: 每个 datapath 都和一个“flow table”关联,当 datapath 接收到数据之后, OVS 会在 flow table 中查找可以匹配的 flow,执行对应的操作, 例如转发数据到另外的端口。

Open vSwitch 实验环境配置

OVS 可以安装在主流的 Linux 操作系统中,用户可以选择直接安装编译好的软件包,或者下载源码进行编译安装。
在我们的实验环境中,使用的操作系统是 64 位 Ubuntu Server 12.04.3 LTS,并通过源码编译的方式安装了 Open vSwitch 1.11.0
$ lsb_release -a
No LSB modules are available.
Distributor ID:Ubuntu
Description:Ubuntu 12.04.3 LTS
Release:12.04
Codename:precise
OVS 的源码编译安装方式可以参考官方文档 How to Install Open vSwitch on Linux, FreeBSD and NetBSD
安装完毕后,检查 OVS 的运行情况:
$ ps -ea | grep ovs
12533 ? 00:00:00 ovs_workq
12549 ? 00:00:04 ovsdb-server
12565 ? 00:00:48 ovs-vswitchd
12566 ? 00:00:00 ovs-vswitchd
查看 OVS 的版本信息, 我们安装版本的是 1.11.0

$ ovs-appctl --version
ovs-appctl (Open vSwitch) 1.11.0
Compiled Oct 28 2013 14:17:16
查看 OVS 支持的 OpenFlow 协议的版本
$ ovs-ofctl --version
ovs-ofctl (Open vSwitch) 1.11.0
Compiled Oct 28 2013 14:17:17
OpenFlow versions 0x1:0x4

基于 Open vSwitch 的 OpenFlow 实践

OpenFlow 是用于管理交换机流表的协议,ovs-ofctl 则是 OVS 提供的命令行工具。在没有配置 OpenFlow 控制器的模式下,用户可以使用 ovs-ofctl 命令通过 OpenFlow 协议去连接 OVS,创建、修改或删除 OVS 中的流表项,并对 OVS 的运行状况进行动态监控。
图 1. OpenFlow 的匹配流程

OpenFlow 的匹配流程

Flow 语法说明

在 OpenFlow 的白皮书中,Flow 被定义为某个特定的网络流量。例如,一个 TCP 连接就是一个 Flow,或者从某个 IP 地址发出来的数据包,都可以被认为是一个 Flow。支持 OpenFlow 协议的交换机应该包括一个或者多个流表,流表中的条目包含:数据包头的信息、匹配成功后要执行的指令和统计信息。
当数据包进入 OVS 后,会将数据包和流表中的流表项进行匹配,如果发现了匹配的流表项,则执行该流表项中的指令集。相反,如果数据包在流表中没有发现任何匹配,OVS 会通过控制通道把数据包发到 OpenFlow 控制器中。
在 OVS 中,流表项作为 ovs-ofctl 的参数,采用如下的格式:字段=值。如果有多个字段,可以用逗号或者空格分开。一些常用的字段列举如下:
表 1. 流表常用字段
字段名称 说明
in_port=port 传递数据包的端口的 OpenFlow 端口编号
dl_vlan=vlan 数据包的 VLAN Tag 值,范围是 0-4095,0xffff 代表不包含 VLAN Tag 的数据包
dl_src=<MAC>
dl_dst=<MAC>
匹配源或者目标的 MAC 地址
01:00:00:00:00:00/01:00:00:00:00:00 代表广播地址
00:00:00:00:00:00/01:00:00:00:00:00 代表单播地址
dl_type=ethertype 匹配以太网协议类型,其中:
dl_type=0x0800 代表 IPv4 协议
dl_type=0x086dd 代表 IPv6 协议
dl_type=0x0806 代表 ARP 协议

完整的的类型列表可以参见以太网协议类型列表

nw_src=ip[/netmask]
nw_dst=ip[/netmask]
当 dl_typ=0x0800 时,匹配源或者目标的 IPv4 地址,可以使 IP 地址或者域名
nw_proto=proto 和 dl_type 字段协同使用。
当 dl_type=0x0800 时,匹配 IP 协议编号
当 dl_type=0x086dd 代表 IPv6 协议编号

完整的 IP 协议编号可以参见IP 协议编号列表

table=number 指定要使用的流表的编号,范围是 0-254。在不指定的情况下,默认值为 0。通过使用流表编号,可以创建或者修改多个 Table 中的 Flow
reg<idx>=value[/mask] 交换机中的寄存器的值。当一个数据包进入交换机时,所有的寄存器都被清零,用户可以通过 Action 的指令修改寄存器中的值
对于 add−flow,add−flows 和 mod−flows 这三个命令,还需要指定要执行的动作:actions=[target][,target…]
一个流规则中可能有多个动作,按照指定的先后顺序执行。
常见的操作有:
  • output:port: 输出数据包到指定的端口。port 是指端口的 OpenFlow 端口编号
  • mod_vlan_vid: 修改数据包中的 VLAN tag
  • strip_vlan: 移除数据包中的 VLAN tag
  • mod_dl_src/ mod_dl_dest: 修改源或者目标的 MAC 地址信息
  • mod_nw_src/mod_nw_dst: 修改源或者目标的 IPv4 地址信息
  • resubmit:port: 替换流表的 in_port 字段,并重新进行匹配
  • load:value−>dst[start..end]: 写数据到指定的字段

实践操作 OpenFlow 命令

在本例中, 我们会创建一个不连接到任何控制器的 OVS 交换机,并演示如何使用 ovs-octl 命令操作 OpenFlow 流表。
创建一个新的 OVS 交换机
$ ovs-vsctl add-br ovs-switch
创建一个端口 p0,设置端口 p0 的 OpenFlow 端口编号为 100(如果在创建端口的时候没有指定 OpenFlow 端口编号,OVS 会自动生成一个)。
$ ovs-vsctl add-port ovs-switch p0 -- set Interface p0 ofport_request=100
设置网络接口设备的类型为“internal”。对于 internal 类型的的网络接口,OVS 会同时在 Linux 系统中创建一个可以用来收发数据的模拟网络设备。我们可以为这个网络设备配置 IP 地址、进行数据监听等等。
$ ovs-vsctl set Interface p0 type=internal
$ ethtool -i p0
driver: openvswitch
version:
firmware-version:
bus-info:
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
为了避免网络接口上的地址和本机已有网络地址冲突,我们可以创建一个虚拟网络空间 ns0,把 p0 接口移入网络空间 ns0,并配置 IP 地址为 192.168.1.100
$ ip netns add ns0
$ ip link set p0 netns ns0
$ ip netns exec ns0 ip addr add 192.168.1.100/24 dev p0
$ ip netns exec ns0 ifconfig p0 promisc up
使用同样的方法创建端口 p1、p2
表 2. 创建的端口信息
端口 说明
p0 IP 地址: 192.168.1.100/24
网络名称空间: ns0
网络接口 MAC 地址: 66:4e:cc:ae:4d:20
OpenFlow Port Number: 100
p1 IP 地址: 192.168.1.101/24
网络名称空间: ns1
网络接口 MAC 地址: 46:54:8a:95:dd:f8
OpenFlow Port Number: 101
p2 IP 地址: 192.168.1.102/24,
网络名称空间: ns2
网络接口 MAC 地址: 86:3b:c8:d0:44:10
OpenFlow Port Number: 102
创建所有的端口之后, 查看 OVS 交换机的信息
$ ovs-vsctl show
30282710-d401-4187-8e13-52388f693df7
Bridge ovs-switch
Port "p0"
Interface "p0"
type: internal
Port "p2"
Interface "p2"
type: internal
Port "p1"
Interface "p1"
type: internal
Port ovs-switch
Interface ovs-switch
type: internal
使用 ovs-ofctl 创建并测试 OpenFlow 命令
  1. 查看 Open vSwitch 中的端口信息。从输出结果中,可以获得交换机对应的 datapath ID (dpid),以及每个端口的 OpenFlow 端口编号,端口名称,当前状态等等。
    $ ovs-ofctl show ovs-switch
    OFPT_FEATURES_REPLY (xid=0x2): dpid:00001232a237ea45
    n_tables:254, n_buffers:256
    capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
    actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC SET_DL_DST
    SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST ENQUEUE
    100(p0): addr:54:01:00:00:00:00
    config: PORT_DOWN
    state: LINK_DOWN
    speed: 0 Mbps now, 0 Mbps max
    101(p1): addr:54:01:00:00:00:00
    config: PORT_DOWN
    state: LINK_DOWN
    speed: 0 Mbps now, 0 Mbps max
    102(p2): addr:54:01:00:00:00:00
    config: PORT_DOWN
    state: LINK_DOWN
    speed: 0 Mbps now, 0 Mbps max
    LOCAL(ovs-switch): addr:12:32:a2:37:ea:45
    config: 0
    state: 0
    speed: 0 Mbps now, 0 Mbps max
    OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
    如果想获得网络接口的 OpenFlow 编号,也可以在 OVS 的数据库中查询
    $ ovs-vsctl get Interface p0 ofport
    100
    查看 datapath 的信息
    $ ovs-dpctl show
    system@ovs-system:
    lookups: hit:12173 missed:712 lost:0
    flows: 0
    port 0: ovs-system (internal)
    port 1: ovs-switch (internal)
    port 2: p0 (internal)
    port 3: p1 (internal)
    port 4: p2 (internal)
  2. 屏蔽数据包
    屏蔽所有进入 OVS 的以太网广播数据包
    $ ovs-ofctl add-flow ovs-switch "table=0, dl_src=01:00:00:00:00:00/01:00:00:00:00:00, actions=drop"
    屏蔽 STP 协议的广播数据包
    $ ovs-ofctl add-flow ovs-switch "table=0, dl_dst=01:80:c2:00:00:00/ff:ff:ff:ff:ff:f0, actions=drop"
  3. 修改数据包
    添加新的 OpenFlow 条目,修改从端口 p0 收到的数据包的源地址为 9.181.137.1
    $ ovs-ofctl add-flow ovs-switch "priority=1 idle_timeout=0,
    in_port=100,actions=mod_nw_src:9.181.137.1,normal"
    从端口 p0(192.168.1.100)发送测试数据到端口 p1(192.168.1.101)
    $ ip netns exec ns0 ping 192.168.1.101
    在接收端口 p1 监控数据,发现接收到的数据包的来源已经被修改为 9.181.137.1
    $ ip netns exec ns1 tcpdump -i p1 icmp
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on p1, link-type EN10MB (Ethernet), capture size 65535 bytes
    15:59:16.885770 IP 9.181.137.1 > 192.168.1.101: ICMP echo request, id 23111, seq 457, length 64
    15:59:17.893809 IP 9.181.137.1 > 192.168.1.101: ICMP echo request, id 23111, seq 458, length 64
  4. 重定向数据包
    添加新的 OpenFlow 条目,重定向所有的 ICMP 数据包到端口 p2
    $ ovs-ofctl add-flow ovs-switch idle_timeout=0,dl_type=0x0800,nw_proto=1,actions=output:102
    从端口 p0 (192.168.1.100)发送数据到端口 p1(192.168.1.101)
    $ ip netns exec ns0 ping 192.168.1.101
    在端口 p2 上监控数据,发现数据包已被转发到端口 p2
    $ ip netns exec ns3 tcpdump -i p2 icmp
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on p2, link-type EN10MB (Ethernet), capture size 65535 bytes
    16:07:35.677770 IP 192.168.1.100 > 192.168.1.101: ICMP echo request, id 23147, seq 25, length 64
    16:07:36.685824 IP 192.168.1.100 > 192.168.1.101: ICMP echo request, id 23147, seq 26, length 64
  5. 修改数据包的 VLAN Tag
    除了使用“ping”、“tcpdump”和“iperf” 等 Linux 命令以外,我们也可以使用 OVS 提供的 ovs-appctl ofproto/trace 工具来测试 OVS 对数据包的转发状况。ovs-appctl ofproto/trace 可以用来生成测试用的模拟数据包,并一步步的展示 OVS 对数据包的流处理过程。在以下的例子中,我们演示一下如何使用这个命令:
    修改端口 p1 的 VLAN tag 为 101,使端口 p1 成为一个隶属于 VLAN 101 的端口
    $ ovs-vsctl set Port p1 tag=101

    现在由于端口 p0 和 p1 属于不同的 VLAN,它们之间无法进行数据交换。我们使用 ovs-appctl ofproto/trace 生成一个从端口 p0 发送到端口 p1 的数据包,这个数据包不包含任何 VLAN tag,并观察 OVS 的处理过程
    $ ovs-appctl ofproto/trace ovs-switch in_port=100,dl_src=66:4e:cc:ae:4d:20,
    dl_dst=46:54:8a:95:dd:f8 -generate
    Flow:metadata=0,in_port=100,vlan_tci=0x0000,dl_src=66:4e:cc:ae:4d:20,
    dl_dst=46:54:8a:95:dd:f8,dl_type=0x0000
    Rule: table=0 cookie=0 priority=0
    OpenFlow actions=NORMAL
    no learned MAC for destination, flooding

    Final flow: unchanged
    Relevant fields: skb_priority=0,in_port=100,vlan_tci=0x0000/0x1fff,
    dl_src=66:4e:cc:ae:4d:20,dl_dst=46:54:8a:95:dd:f8,dl_type=0x0000,nw_frag=no
    Datapath actions: 4,1
    在第一行输出中,“Flow:”之后的字段描述了输入的流的信息。由于我们没有指定太多信息,所以多数字段 (例如 dl_type 和 vlan_tci)被 OVS 设置为空值。
    在第二行的输出中,“Rule:” 之后的字段描述了匹配成功的流表项。
    在第三行的输出中,“OpenFlow actions”之后的字段描述了实际执行的操作。
    最后一段以”Final flow”开始的字段是整个处理过程的总结,“Datapath actions: 4,1”代表数据包被发送到 datapath 的 4 和 1 号端口。
    创建一条新的 Flow:对于从端口 p0 进入交换机的数据包,如果它不包含任何 VLAN tag,则自动为它添加 VLAN tag 101
    $ ovs-ofctl add-flow ovs-switch "priority=3,in_port=100,dl_vlan=0xffff,
    actions=mod_vlan_vid:101,normal"
    再次尝试从端口 p0 发送一个不包含任何 VLAN tag 的数据包,发现数据包进入端口 p0 之后, 会被加上 VLAN tag101, 同时转发到端口 p1 上
    $ ovs-appctl ofproto/trace ovs-switch in_port=100,dl_src=66:4e:cc:ae:4d:20,
    dl_dst=46:54:8a:95:dd:f8 –generate
    Flow: metadata=0,in_port=100,vlan_tci=0x0000,dl_src=66:4e:cc:ae:4d:20,
    dl_dst=46:54:8a:95:dd:f8,dl_type=0x0000
    Rule: table=0 cookie=0 priority=3,in_port=100,vlan_tci=0x0000
    OpenFlow actions=mod_vlan_vid:101,NORMAL
    forwarding to learned port

    Final flow: metadata=0,in_port=100,dl_vlan=101,dl_vlan_pcp=0,dl_src=66:4e:cc:ae:4d:20,
    dl_dst=46:54:8a:95:dd:f8,dl_type=0x0000
    Relevant fields: skb_priority=0,in_port=100,vlan_tci=0x0000/0x1fff,dl_src=66:4e:cc:ae:4d:20,
    dl_dst=46:54:8a:95:dd:f8,dl_type=0x0000,nw_frag=no
    Datapath actions: 3
    反过来从端口 p1 发送数据包,由于 p1 现在是带有 VLAN tag 101 的 Access 类型的端口,所以数据包进入端口 p1 之后,会被 OVS 添加 VLAN tag 101 并发送到端口 p0
    $ ovs-appctl ofproto/trace ovs-switch in_port=101,dl_dst=66:4e:cc:ae:4d:20,
    dl_src=46:54:8a:95:dd:f8 -generate
    Flow: metadata=0,in_port=101,vlan_tci=0x0000,dl_src=46:54:8a:95:dd:f8,
    dl_dst=66:4e:cc:ae:4d:20,dl_type=0x0000
    Rule: table=0 cookie=0 priority=0
    OpenFlow actions=NORMAL
    forwarding to learned port

    Final flow: unchanged
    Relevant fields: skb_priority=0,in_port=101,vlan_tci=0x0000,dl_src=46:54:8a:95:dd:f8,
    dl_dst=66:4e:cc:ae:4d:20,dl_type=0x0000,nw_frag=no
    Datapath actions: push_vlan(vid=101,pcp=0),2
  6. 其他 OpenFlow 常用的操作
    查看交换机中的所有 Table
    ovs-ofctl dump-tables ovs-switch
    查看交换机中的所有流表项
    ovs−ofctl dump−flows ovs-switch
    删除编号为 100 的端口上的所有流表项
    ovs-ofctl del-flows ovs-switch "in_port=100"
    查看交换机上的端口信息
    ovs-ofctl show ovs-switch

通过 Floodlight 管理 OVS

一方面,OpenFlow 控制器可以通过 OpenFlow 协议连接到任何支持 OpenFlow 的交换机,控制器通过和交换机交换流表规则来控制数据流向。另一方面, OpenFlow 控制器向用户提供的界面或者接口,用户可以通过界面对网络架构进行动态的修改,修改交换机的流表规则等等。Floodlight 是一个基于 Apache 协议,使用 Java 开发的企业级 OpenFlow 控制器。我们在下面的例子中演示如何安装 Floodlight,并连接管理 OVS 的过程。
Floodlight 的安装过程非常简单,在另外一台机器上, 下载 Floodlight 源码并编译
$ git clone git://github.com/floodlight/floodlight.git
$ cd floodlight/
$ ant
$ java -jar target/floodlight.jar
运行 Floodlight
$ java -jar floodlight.jar
在安装了 OVS 交换机的节点上,配置 OVS 交换机 ovs-switch,使用 Floodlight 作为控制器。默认情况下,Floodlight 在端口 6633 上进行监听,我们使用 ovs-vsctl 命令配置 OVS 交换机使用 TCP 协议连接到 Floodlight(IP 地址为 9.181.137.182,端口号 6633)。对于一个 OVS 交换机来说,可以同时配置一个或者多个控制器
$ ovs-vsctl set-controller ovs-switch tcp:9.181.137.182:6633
当 OVS 交换机连接到 Floodlight 控制器后,理论上所有的流表规则应该交给控制器来建立。由于 OVS 交换机和控制器之间是通过网络通讯来传递数据的,所以网络连接失败会影响到 Flow 的建立。针对这种情况,OVS 提供了两种处理模式:
  • standlone: 默认模式。如果 OVS 交换机超过三次无法正常连接到 OpenFlow 控制器,OVS 交换机自己会负责建立流表。在这种模式下,OVS 和常见的 L2 交换机相似。与此同时,OVS 也会继续尝试连接控制器,一旦网络连接恢复,OVS 会再次切换到使用控制器进行流表管理。
  • secure: 在 secure 模式下,如果 OVS 无法正常连接到 OpenFlow 控制器,
    OVS 会不停的尝试与控制器重新建立连接,而不会自己负责建立流表。
设置 OVS 的连接模式为 secure 模式
    $ ovs-vsctl set Bridge ovs-switch fail-mode=secure
查看 OVS 的状态,“is_connected:true”代表 OVS 已经成功连接到了 Floodlight
$ ovs-vsctl show
30282710-d401-4187-8e13-52388f693df7
Bridge ovs-switch
Controller "tcp:9.181.137.182:6633"
is_connected: true
Port ovs-switch
Interface ovs-switch
type: internal
Port "p0"
Interface "p0"
type: internal
Port "p1"
tag: 101
Interface "p1"
type: internal
Port "p2"
Interface "p2"
type: internal
通过访问 Floodlight 提供的 Web 管理界面 http://<Host Address>:8080/ui/index.html,我们可以查看 Floodlight 控制器的状态以及所有连接到 Floodlight 的交换机列表
图 2. Floodlight 主界面

Floodlight 主界面

选中某个 OpenFlow 交换机, 查看其中的端口列表和流表信息
图 3. 查看 OpenFlow 交换机的详细信息

查看 OpenFlow 交换机的详细信息

通过 Floodlight 的 RESTAPI,添加两条新的规则让端口 p0 和 p1 可以相互通讯。注意:替换命令行中的 switch 的 ID 为交换机的 datapath ID
curl -d '{"switch": "00:00:0e:f9:05:6b:7c:44", "name":"my-flow1", "cookie":"0","priority":"32768",
"ingress-port":"100","active":"true", "actions":"output=flood"}'
http://9.181.137.182:8080/wm/staticflowentrypusher/json

curl -d '{"switch": "00:00:0e:f9:05:6b:7c:44", "name":"my-flow2", "cookie":"0","priority":"32768",
"ingress-port":"101","active":"true", "actions":"output=flood"}'
http://9.181.137.182:8080/wm/staticflowentrypusher/json
验证是否能从端口 p0 发送数据包到 p1
$ ip netns exec ns0 ping -c4 192.168.1.101
PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_req=1 ttl=64 time=0.027 ms
64 bytes from 192.168.1.101: icmp_req=2 ttl=64 time=0.018 ms
64 bytes from 192.168.1.101: icmp_req=3 ttl=64 time=0.023 ms
64 bytes from 192.168.1.101: icmp_req=4 ttl=64 time=0.022 ms

--- 192.168.1.101 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.018/0.022/0.027/0.005 ms
在 OVS 端也可以看到,流表规则已经被 OVS 同步到本地。
$ ovs-ofctl dump-flows ovs-switch
NXST_FLOW reply (xid=0x4):
cookie=0xa0000000000000, duration=335.122s, table=0, n_packets=347, n_bytes=28070,
idle_age=1, in_port=100 actions=FLOOD
cookie=0xa0000000000000, duration=239.892s, table=0, n_packets=252, n_bytes=24080,
idle_age=0, in_port=101 actions=FLOOD
通过 Floodlight 的 RestAPI,查看交换机上的流表规则
curl http://9.181.137.182:8080/wm/staticflowentrypusher/list/00:00:0e:f9:05:6b:7c:44/json
通过 Floodlight 的 RestAPI,删除交换机上的流表规则
curl http://9.181.137.182:8080/wm/staticflowentrypusher/clear/00:00:0e:f9:05:6b:7c:44/json

总结

通过本文的讲述和实验,我们了解了 Open vSwitch 以及 OpenFlow 的基本概念,以及通过 OpenFlow 协议修改 Open vSwitch 中的流表项,最后演示了如何使用 Floodlight 连接 Open vSwitch 并进行管理。