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

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 并进行管理。

Open vSwitch的ovs-vsctl命令详解

Introduction

Open vSwitch中有多个命令,分别有不同的作用,大致如下:
  • ovs-vsctl用于控制ovs db
  • ovs-ofctl用于管理OpenFlow switch 的 flow
  • ovs-dpctl用于管理ovs的datapath
  • ovs-appctl用于查询和管理ovs daemon
本文主要介绍ovs-vsctl。以下命令查询主机上已有的 OVS bridge,以及其中的 port。
ovs-vsctl show  
例子
$ ovs-vsctl show
fc562da8-fb36-4d62-8b47-5502e72069dc
Bridge br-vxlan
Port "vxlan0"
Interface "vxlan0"
type: vxlan
options: {remote_ip="10.10.10.1"}
Port br-vxlan
Interface br-vxlan
type: internal
Port "veth2"
Interface "veth2"
ovs_version: "2.5.0"

Bridge 相关命令

创建 bridge

创建bridge(或switch,以下统称为bridge) br0
使用选项--may-exist后,若欲创建的bridge已存在,该命令什么也不做,也不报错。
ovs-vsctl [--may-exist] add-br br0  

删除bridge

删除 bridge br0
使用选项--if-exists后,若欲删除的bridge不存在,该命令什么也不做,也不报错。
ovs-vsctl [--if-exists] del-br br0  

查询已有的 bridge

ovs-vsctl list-br  

端口相关命令

添加端口

添加端口(物理端口或vNIC)eth1到bridge eth1中
ovs-vsctl [--may-exist] add-port br0 eth1  

创建 bond

在br0上创建一个bond了eth0,eth1和eth2的bond端口bond0
# ovs-vsctl add-bond <bridge> <port> <iface...>
ovs-vsctl add-bond br0 bond0 eth0 eth1 eth2

移除端口

从br0上移除端口eth1
ovs-vsctl [--if-exists] del-port br0 eth1  

列出端口

列出br0上的端口(不包括internal port)
ovs-vsctl list-ports br0  

查看端口详细数据

列出OVS中端口eth1的详细数据
$ ovs-vsctl list interface eth1

OpenFlow 控制器相关

添加控制器

# ovs-vsctl set-controller <bridge> <target...>
ovs-vsctl set-controller br0 tcp:1.2.3.4:6633

# 设置多个controller
ovs-vsctl set-controller br0 tcp:1.2.3.4:6633 tcp:4.3.2.1:6633

# 添加使用unix socket通信的controller
ovs-vsctl set-controller br0 unix:/var/run/xx/xx.sock

移除控制器

ovs-vsctl del-controller br0  

查询 brige 上已配置的控制器

ovs-vsctl get-controller br0  

VLAN 相关

配置端口为Access口

设置br0中的端口eth0为VLAN 10的access口
ovs-vsctl set port eth0 tag=10  
添加eth1到指定bridge br0中,同时将其配置成指定VLAN 10的access端口
ovs-svctl add-port br0 eth1 tag=10  

配置端口为Trunk口

在br0上添加port eth1为VLAN 9,10,11的trunk
ovs-vsctl add-port br0 eth1 trunk=9,10,11  

VXLAN 相关

在bridge ovs0中添加远端IP为10.10.10.1的VXLAN endpoint端口vxlan0
# key=100表示设置vni为100,不设置默认为0
ovs-vsctl add-port ovs0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.10.10.1 options:key=100

# 不设key值,vni默认为0
ovs-vsctl add-port ovs0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.10.10.1

# key=flow的话,表示该port的vni可以通过openflow的actions来进行设置
# 如: actions=set_field:100->tun_id
# 或: actions=set_tunnel:100
ovs-vsctl add-port ovs0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=10.10.10.1 options:key=flow

其他

Atomic operation

一条命令创建bridge br0的,并添加eth0到br0中
ovs-vsctl add-br br0 -- add-port br0 eth0  

创建 internal port

OVS internal port 可以配置IP地址,普通 port 上配置的IP地址是不起作用的。在 br0 上创建一个internal port in0:
ovs-vsctl add-br br0 in0 -- set interface in0 type=internal  
ip addr add 10.10.10.10/24 dev in0

# 创建internal port的同时将其设置为VLAN 10的access port
ovs-vsctl add-br br0 in1 tag=10 -- set interface in1 type=internal
ip addr add 20.20.20.20/24 dev in1

设置 OpenFlow port id

# 将已在ovs中的端口veth1的OpenFlow端口设置成100
ovs-vsctl set interface veth1 ofport_request=100

# 将端口veth1添加到bridge br0中,并将veth1的OpenFlow端口设置成200
ovs-vsctl add-port br0 veth1 -- set interface veth1 ofport_request=200
{% admonition note Note %} OpenFlow的端口 id 在设置 flow 的匹配字段 in_port 以及 actions 字段的 output 中都会用到。 
可以通过命令ovs-ofctl show br0来查看 br0 中各端口的 OpenFlow 端口 id,该 id 并不求是按顺序的。 {% endadmonition %}

设置OpenFlow版本

ovs-vsctl set bridge br0 protocols=OpenFlow10,OpenFlow12,OpenFlow13  

28个UNIX/LINUX的命令行神器

dstat & sar

iostat, vmstat, ifstat 三合一的工具,用来查看系统性能(我在《性能调优攻略》中提到过那三个xxstat工具)。
你可以这样使用:
1
alias dstat='dstat -cdlmnpsy'
dstat screenshot

slurm

查看网络流量的一个工具
slurm screenshot

vim & emacs

真正程序员的代码编辑器。
vim screenshot

screen, dtach, tmux, byobu

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。请参看IBM DeveloperWorks的这篇文章《使用 screen 管理你的远程会话
gnu screen screenshot
dtach 是用来模拟screen的detach的功能的小工具,其可以让你随意地attach到各种会话上 。下图为dtach+dvtm的样子。
tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此。与screen相比的优点:可以横向和纵向分割窗口,且窗格可以自由移动和调整大小。可在多个缓冲区进行复制和粘贴,支持跨窗口搜索;非正常断线后不需重新detach;……  有人说——与tmux相比,screen简直弱爆了
byobu是Ubuntu开发的,在Screen的基础上进行包装,使其更加易用的一个工具。最新的Byobu,已经是基于Tmux作为后端了。可通过“byobu-tmux”这个命令行前端来接受各种与tmux一模一样的参数来控制它。Byobu的细节做的非常好,效果图如下:

multitail

MultiTail是个用来实现同时监控多个文档、类似tail命令的功能的软件。他和tail的区别就是他会在控制台中打开多个窗口,这样使同时监控多个日志文档成为可能。他还可以看log文件的统计,合并log文件,过滤log文件,分屏,……。
multitail screenshot

tpp

终端下的PPT,要是在某某大会上用这个演示PPT,就太TMD的Geek了。
tpp screenshot

xargs & parallel

Executes tasks from input (even multithread).
xargs 是一个比较古老的命令,有简单的并行功能,这个不说了。对于GNU parallel ( online manpage )来说,它不仅能够处理本机上多执行绪,还能分散至远端电脑协助处理。而使用GNU parallel前,要先确定本机有安装GNU parallel / ssh / rsync,远端电脑也要安装ssh。
xargs screenshot

duplicity & rsyncrypto

Duplicity是使用rsync算法加密的高效率备份软件,Duplicity支持目录加密生产和格式上传到远程或本地文件服务器。
rsyncrypto 就是 rsync + encryption。对于rsync的算法可参看酷壳的rsync核心算法
Encrypting backup tools.
duplicity screenshot

nethack & slash’em

NetHackWiki),
20年历史的古老电脑游戏。没有声音,没有漂亮的界面,不过这个游戏真的很有意思。网上有个家伙说:如果你一生只做一件事情,那么玩NetHack。这句话很惹眼,但也让人觉得这个游戏很复杂不容易上手。其实,这个游戏很虽然很复杂,却容易上手。虽然玩通关很难,但上手很容易。NetHack上有许多复杂的规则,”the DevTeam thinks of everything”(开发团队想到了所有的事情)。各种各样的怪物,各种各样的武器….,有许多spoilers文件来说明其规则。除了每次开始随机生成的地图,每次玩游戏,你也都会碰到奇怪的事情: 因为喝了一种药水,变成了机器人;因为踢坏了商店的门被要求高价赔偿;你的狗为你偷来了商店的东西….. 这有点象人生,你不能完全了解这个世界,但你仍然可以选择自己的面对方式。
网上有许多文章所这是最好的电脑游戏或最好的电脑游戏之一。也许是因为它开放的源代码让人赞赏,古老的历史让人宽容,复杂的规则让人敬畏。虽然它不是当前流行的游戏,但它比任何一个当前流行的游戏都更有可能再经受20年的考验。
Slash’EM 也是一个基于NetHack的经典游戏。
nethack screenshot

lftp

利用lftp命令行ftp工具进行网站数据的增量备份,镜像,就像使用rsync一样。
lftp screenshot

ack

ack是一个perl脚本,是grep的一个可选替换品。其可以对匹配字符有高亮显示。是为程序员专门设计的,默认递归搜索,省提供多种文件类型供选。
ack screenshot

calcurse & remind + wyrd

calcurse是一个命令行下的日历和日程软件。remind + wyrd也很类似。关于日历,我不得不提一个Linux的Cycle日历,也是一个神器,呵呵。
calcurse screenshot

newsbeuter & rsstail

newsbeuter 和 rsstail 是命令行下RSS的阅读工具。
newsbeuter screenshot

powertop

做个环保的程序员,看看自己的电脑里哪些程序费电。PowerTOP 是一个让 Intel 平台的笔记本电脑节省电源的 Linux 工具。此工具由 Intel 公司发布。它可以帮助用户找出那些耗电量大的程序,通过修复或者关闭那些应用程序或进程,从而为用户节省电源。
powertop screenshot

htop & iotop

htop 和 iotop  用来查看进程,内存和IO负载。
htop screenshot

ttyrec & ipbt

ttyrec 是一个 tty 控制台录制程序,其所录制的数据文件可以使用与之配套的 ttyplay 播放。不管是你在 tty 中的各种操作,还是在 tty 中耳熟能详的软件,都可进行录制。
ipbt 是一个用来回放 ttyrec 所录制的控制台输入过程的工具。
与此类似的还有Shelr 和 termrec 
ipbt screenshot

rsync

通过SSH进行文件同步的经典工具(核心算法
rsync screenshot

mtr

MTR – traceroute 2.0,其是把 traceroute 和 ping 集成在一块的一个小工具 用于诊断网络。
mtr screenshot

socat & netpipes

socat是一个多功能的网络工具,名字来由是” Socket CAT”,可以看作是netcat的N倍加强版。
netpipes 和socat一样,主要是用来在命令行来进行socket操作的命令,这样你就可以在Shell脚本下行进socket网络通讯了。
socat screenshot

iftop & iptraf

iftopiptraf可以用来查看当前网络链接的一些流量情况。
iftop screenshot

siege & tsung

Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。
Tsung 是一个压力测试工具,可以测试包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服务器。针对 HTTP 测试,Tsung 支持 HTTP 1.0/1.1 ,包含一个代理模式的会话记录、支持 GET、POST 和 PUT 以及 DELETE 方法,支持 Cookie 和基本的 WWW 认证,同时还支持 SSL。
siege screenshot

ledger

ledger 一个命令行下记帐的小工具。
ledger screenshot

taskwarrior

TaskWarrior 是一个基于命令行的 TODO 列表管理工具。主要功能包括:标签、彩色表格输出、报表和图形、大量的命令、底层API、多用户文件锁等功能。
taskwarrior screenshot
下图是TaskWarrior 2.0的界面:

curl

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。cURL支援的通訊協定有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。
curl screenshot

rtorrent & aria2

rTorrent 是一个非常简洁、优秀、非常轻量的BT客户端. 它使用了 ncurses 库以 C++ 编写, 因此它完全基于文本并在终端中运行. 将 rTorrent 用在安装有 GNU Screen 和 Secure Shell 的低端系统上作为远程的 BT 客户端是非常理想的。
aria2 是 Linux 下一个不错的高速下载工具。由于它具有分段下载引擎,所以支持从多个地址或者从一个地址的多个连接来下载同一个文件。这样自然就大大加快了文件的下载速度。aria2 也具有断点续传功能,这使你随时能够恢复已经中断的文件下载。除了支持一般的 http(s) 和 ftp 协议外,aria2 还支持 BitTorrent 协议。这意味着,你也可以使用 aria2 来下载 torrent 文件。

 rtorrent screenshot

ttytter & earthquake

TTYtter 是一个Perl写的命令行上发Twitter的工具,可以进行所有其他平台客户端能进行的事情,当然,支持中文。脚本控、CLI控、终端控、Perl控的最愛。
Earthquake也是一个命令行上的Twitter客户端。
ttytter screenshot

vifm & ranger

Vifm 基于ncurses的文件管理器,DOS风格,用键盘操作。
vifm screenshot
Ranger用 Python 完成,默认为使用 Vim 风格的按键绑定,比如 hjkl(上下左右),dd(剪切),yy(复制)等等。功能很全,扩展/可配置性也非常不错。类似MacOS X下Finder(文件管理器)的多列文件管理方式。支持多标签页。实时预览文本文件和目录。

cowsay & sl

cowsay  不说了,如下所示,哈哈哈。还有xcowsay,你可以自己搜一搜。
cowsay screenshot
 sl是什么?ls?,呵呵,你会经常把ls 打成sl吗?如果是的话,这个东西可以让你娱乐一下,你会看到一辆火车呼啸而过~~,相当拉风。你可以使用sudo apt-get install sl 安装。
最后,再介绍一个命令中linuxlogo,你可以使用 sudo apt-get install linuxlogo来安装,然后,就可以使用linuxlogo -L
来看一下各种Linux的logo了