微信号:infoqchina

介绍:有内容的技术社区媒体

Q新闻|Docker新增三大功能特性;来自物联网之父的五个想法;在微软Azure中用Redis为ASP.NET应用加速

2015-11-22 08:30 Q新闻

1
Docker新动向
新增三大功能特性,增强容器安全


11月16-17日,DockerCon Europe 2015在西班牙的巴塞罗那召开。在该会议中,Docker公司宣布了其对Docker平台中容器安全方面的三大改进——支持利用YubiKey进行硬件签名、对Docker Hub中的镜像开始进行安全扫描和支持用户名字空间。


首先,Docker开始支持利用YubiKey设备进行硬件签名。该USB设备与之前Docker已经实现的升级框架(The Update Framework,TUF)密切相关。在TUF框架下,当发布者将镜像上传到远程仓库后,Docker 会利用私钥对镜像进行签名。之后,当下载该镜像时,Docker会利用发布者的公钥来校验该镜像是否和发布者所发布的镜像一致,从而判断镜像是否被篡改过或者是否为最新版。


基于TUF,Docker在1.8版本中引入了内容可信(Docker Content Trust)的特性。YubiKey正是在内容可性框架的基础上,实现了容器的自动签名。开发人员或者系统管理员可以把YubiKey 4插入到笔记本电脑或者工作站中,从而将其独特的签名上传到容器中。当代码在工作流中移动时,该签名保证了只有经过授权的人员可以访问代码,大大提高代码的安全性。此外,YubiKey本身采用了指纹识别技术来保证该USB设备自身的安全。


其次,Docker添加了对Docker Hub中镜像文件的扫描工作。具体而言,Docker会定期的将检查表项和美国国土安全部更新的公共漏洞数据库进行比对。一旦出现匹配,Docker就会针对该镜像发出警告。这样,用户在使用该镜像时会更加谨慎,避免安全威胁;镜像贡献者也会警惕存在的漏洞,尽快进行修复。


最后,最新的Docker 1.9实验版本增加了对用户名字空间的支持。以往,容器都拥有宿主机的root用户访问权限。通过使用Linux的名字空间,Docker剥离了容器的该访问权限——只有Docker daemon进程拥有root权限,而且只有若干授权的系统管理员可以访问daemon。这样,IT部门就可以给予企业内部不同部门或者团队不同的访问控制权,提高整个工作流的安全。


2
物联网之父观点谈
物联网不是为一个烤箱开发App


1999年在保洁公司工作期间,Kevin Ashton产生了将RFID芯片安装在消费品中来自动监控库存水平的想法。Kevin Ashton使用“Internet of Things”一词作为一篇演示文稿的标题,之后它无意中就成为了流行词。Kevin Ashton也被称为物联网之父。


Kevin Ashton最近发表了他本人对一些物联网相关主题的观点,其中包括令人惊讶的主题,例如标准在云计算中扮演的角色和“奇点”的前景——这个经常被Tesla和SpaceX的CEO Elon Musk和天体物理学家Stephen Hawking提起的概念:人工智能将在不久的将来超过人类的智力水平并且我们应该防止它的发生。以下是对他本人一些观点的总结。


『物联网不是为一个烤箱开发App』


经典的误解是,[物联网]是烤箱告诉冰箱或烤箱通过一个App告诉你它已经准备好了。为什么这是一个有趣的误解呢?人们已经习惯了将电脑当做人类可以与之交互的东西。你告诉电脑一些事情,也许它会告诉你一些事情当做反馈。这是非常经典的二十世纪对电脑的看法。


物联网真正的概念是:它是可以收集自身信息的信息技术。通常它使用这些信息去做一些事情,而并非是为了反馈给人们一个结果,它[仅仅]是做了一些事情。"噢,我的冰箱是空的,我的冰箱将会告诉我,‘我是空的’",这不是真正的物联网,物联网可以观察事物并在它的基础上采取一些行动,同时不用打扰到你。那才是我们真正要去实现的。


『物联网是用来连接数据的』


许多企业,包括重工业和制造业企业使用传感器连接电脑已经有一段历史了。现在他们正在从封闭的设备(他们像一个封闭的盒子,比如工业机器人,它有既定的程序,但不能共享信息,只能将信息存储在本地)向互联网设备(这种设备的信息是标准化的,它可以收集和发送信息到数据中心)转型。信息通过网络汇聚到数据中心,也就是我们称之为云的地方。数据可以分布在不同的节点,会有一些软件在某个地方访问这些信息并作出处理。


『关于拥有即时数据』


我们看到的另一个转型是不再认为数据只是存在于电子表格中的东西。二十世纪经典的商业数据表述是:我有一些数据系统。它可以是SPA,或者其他东西。你可以用它发布一些报告,基本上是指一个电子表格,或者将它导出到电子表格中。如果愿意,你甚至这些表格打印出来平铺在桌子上。你也可以把它变成一些饼图或一些PPT,展示给领导以作出决策。其实,这是一个可怕的数据处理方法,当然,在今日也不再有效,即使是在只有很少数据量的情况之下。

我们正在从传统的电子表格和它的分析方法转变为自动化的分析方法,它需要比家用计算机更多的计算能力。它还需要更多的信息,这就意味着任何经过授权的系统都可以访问它,并以该系统拥有的任何方式去处理它。


『标准不再重要』


标准是二十世纪的术语。很多人认为如果没有标准,物联网就不能快速蓬勃发展。


可现实却是我们已经生活在后Google时代了,如果你有足够的智能算法你就不需要标准。你可以分析数据,观察数据,对它做智能聚类分析和异常管理,并得到一个反馈回路,基于人们的反应来自动提升你的算法。你最终得到的是一个不需要标准的世界,因为算法能够计算出如何理解不通的来源。人们没有试图去规范自己来使得Google起作用,而是试图找出Google是如何运作的,以使得自己在Google的搜索结果中有更高的排名——这比标准的会议更加高效。

如果你有一个像Google或者Facebook那样每小时都在进化的算法,那么这个算法就是新的标准。


『别担心,我们还远没有接近奇点』


诚实地跟你说,这是胡扯。人工智能和圣经一样久远。从我们开始写作算起,或者还早于它。


我们总是认为认为创造的一些物种会比我们聪明,会吃掉我们,我们有这种原始恐惧。基本上这是我们的思维模式,我们害怕有人在认为创造一些物种。Steven Hawking和Elon Musk,他们都是非常聪明的人,但他们不是计算机科学家。他们只知道计算机能够做什么,他们却犯了同一个错误。我们确实不知道意识如何运作。如果没有意识,没有为自己设定目标的能力,也没有一个与同类合作的理论等等这些东西,那么人工智能是不可能成为现实并接管这个世界的,它只会存在于Hollywood的机器人中。我们到目前为止还没有所需要的基础科学和相关的技术来创造这样一种有目标设定和由意识驱动理论驱动的意识行为的机器。我们还差得很远呢。


物联网和其它的技术一样,是一种帮助人们生活得更好和更久的技术。我们人类是一种利用技术生存的物种,我们依靠技术来生存。


3
关于微软Azure
用Redis为ASP.NET应用加速


Azure Redis Cache是微软Azure提供的一项托管服务。该服务基于开源Redis缓存构建,能够利用Redis引擎低延迟、高吞吐量的特性提高应用程序的响应速度。


目前,Azure Redis Cache包含以下三个服务等级:


  • 基本服务:仅有一个缓存节点,适合开发/测试和非关键工作负载,无SLA。

  • 标准服务:有两个节点(主节点/备用节点),具备自动故障转移和自动复制功能,提供高可用SLA。

  • 高级服务(预览):包含标准服务的所有特性,性能更好,安全性更高,支持更大的工作负载及灾难恢复。


其中,基本/标准服务缓存上限为53GB,而高级服务的缓存上限为530GB。价格信息可以查看这里。


Scott Hanselman是微软Web平台&工具部门的一名项目经理。去年,他曾撰文介绍Azure Redis Cache的基本用法。近日,他又介绍了一种新的Azure Redis Cache应用场景,即将其作为ASP.NET应用的缓存。


据Scott介绍,ASP.NET现在提供了很好的Redis支持,可以从NuGet上下载Microsoft.Web.RedisSessionStateProvider库:

Install-Package Microsoft.Web.RedisSessionStateProvider

该库底层使用了StackExchange,但允许ASP.NET使用Session对象,并在Redis中保存结果,而不是在Web服务器的内存中。使用下面的代码在web.config中添加该库:

<sessionState mode="Custom" 
customProvider="FooFoo"> <providers>
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="hanselcache.redis.cache.windows.net"accessKey="THEKEY" ssl="true"port="1234" /></providers></sessionState>


从Redis Desktop Manager中可以看到存储在Redis中的ASP.NET Session数据,如下图所示:


Redis Cache不仅可以用于存储Session State,而且还可以用于Output Cache,即将整个HTTP响应缓存。相应的库在ASP.NET 4.x中的安装方法同Session State Provider类似:

Install-Package Microsoft.Web.RedisOutputCacheProvider

这样,当在MVC Controller中使用[OutputCache]属性或在Web Forms中使用OutputCache指令(如<%@ OutputCache Duration="60" VaryByParam="*" %>)时,响应就会通过Redis来处理。对于类似产品目录这样的应用,可使其响应速度提高4~10倍。


用户也可以通过编程使用Redis,微软提供了在.NET、Node.js、Java和Python中使用Azure Redis Cache的文档。如果不想在Azure甚或Linux上运行Redis,那么可以选用MSOpenTech的Redis on Windows分支。安装完成后,就可以通过命令行使用redis-cli.exe同Azure Redis Cache交互。而如果使用了本地Redis服务器(redis-server.exe),那么在部署到Azure的时候需要修改应用的Redis连接字符串。



  • 版权归属InfoQ,禁止商业用途抄袭转载



荐文



自荐


『 InfoQ原创作者招募第一期 』

如果你自信是技术人才,有领域专长,有从业经验,有职业态度,有观点灼见,来InfoQ原创专家作者团,写你感兴趣的文章,分享你独到的观点,给有共鸣的人看……

怎么加入?

联系微信[muyu4444]

添加请注明原创作者


 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 iOS地图定位使用几个小功能 使用 Rx 的计算和最大化线程处理并行任务 数据分析告诉你:Php最不安全,Nginx比Apache安全! 到底工资要多少合适? 黑客可通过照片复制指纹,这地球太危险了!