Docker技术——颠覆领域的技术!!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011500356/article/details/52902238

当然,今天咱聊的这个技术出现了很长时间了已经。以下是百度百科的简介:

1、百科简介。 

   是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(其实,现在还可以在Mac、Windows server 2016上)

2、官网介绍:

   Docker enables developers and IT admins to build, ship and run any application, anywhere。

  图示:

   

3、背景:

   Stop wasting hours setting up developer environments, spinning up new instances, and making copies of production code to run locally. With Docker, you simply take copies of your live environment and run them on any new endpoint running a Docker engine.

    The isolation capabilities of Docker containers free developers from constraints: they can use the best language and tools for their application services without worrying about causing internal tooling conflicts.

    Packaging an application in a container with its configs and dependencies guarantees that the application will always work as designed in any environment: locally, on another machine, in test or production. No more worries about having to install the same configurations into different environments.

   

4、做什么?

一言以蔽之:Build once,Run anywhere,Configure once,Run anything

   build:Docker allows you to compose your application from microservices, without worry about inconsistencies between development and production environments , and without locking into any platform or language.

   ship:Docker lets you design the entire cycle of application development,testing and distribution ,and mange it with a consistent user interface.

   run:Docker offers you the ability to deploy scalable services, securely and relably, on a wide variety of platforms.

5、简单原理?

   一个Docker容器包含了一个操作系统、用户添加的文件和元数据(meta-data)。我们可以看到,每个容器都是从镜像建立的。镜像告诉Docker容器内包含了什么,当容器启动时运行什么程序,还有许多配置数据。Docker镜像是只读的。当Docker运行一个从镜像建立的容器,它会在镜像顶部添加一个可读写的层,应用程序可以在这里运行。


6、Docker 和 虚拟机的对比:

   Virtual machines include the application, the necessary binaries and libraries, and an entire guest operating system -- all of which can amount to tens of GBs.

  Containers include the application and all of its dependencies --but share the kernel with other containers, running as isolated processes in user space on the host operating system. Docker containers are not tied to any specific infrastructure: they run on any computer, on any infrastructure, and in any cloud.

小结:

   现在,渐渐喜欢上了,直接在英文官网上去学习一些东西。尤其是新的技术,介绍很清楚!让人一看就知道这是要干什么的!慢慢的



展开阅读全文

IT领域的P2P技术

04-15

IT领域的点对点技术rnrn  点对点技术(peer-to-peer,简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad Hoc连接来连接节点。这类网络可以用于多种用途,各种文件共享软件已经得到了广泛的使用。P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。rn  纯点对点网络没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其它节点充当客户端和服务器。这种网络设计模型不同于客户端-服务器模型,在客户端-服务器模型中通信通常来往于一个中央服务器。rn  有些网络(如Napster, OpenNAP, 或IRC @find)的一些功能(比如搜索)使用客户端-服务器结构,而使用P2P结构来实现另外一些功能。类似Gnutella 或Freenet的网络则使用纯P2P结构来实现全部的任务。rn[编辑本段]历史rnP2P 架构体现了一个互连网技术的关键概念,这一概念被描述在1969年4月7日第一份RFC文档“RFC1,主机软件”[1]中。而最近,在不用中心索引服务器结构实现多媒体文件交换的背景下,这个概念已经变得非常普遍了。rn  分类rn  依中央化程度rn  纯P2P:rn  * 节点同时作为客户端和服务器端。rn  * 没有中心服务器。rn  * 没有中心路由器。rn  * 如Gnutella。rn  杂P2P:rn  * 有一个中心服务器保存节点的信息并对请求这些信息的要求做出响应。rn  * 节点负责发布这些信息(因为中心服务器并不保存文件),让中心服务器知道它们想共享什么文件,让需要它的节点下载其可共享的资源。rn  * 路由终端使用地址,通过被一组索引引用来取得绝对地址。rn  * 如最原始的Napster。rn  混合P2P:rn  * 同时含有纯P2P和杂P2P的特点。rn  * 如Skype。rn  依网路拓扑结构rn  结构P2P:rn  * 点对点之间互有连结资讯,彼此形成特定规则拓扑结构。rn  * 需要请求某资源时,依该拓扑结构规则寻找,若存在则一定找得到。rn  * 如Chord、CAN。rn  无结构P2P:rn  * 点对点之间互有连结资讯,彼此形成无规则网状拓扑结构。rn  * 需要请求某资源点时,以广播方式寻找,通常会设TTL,即使存在也不一定找得到。rn  * 如Gnutella。rn  松散结构P2P:rn  * 点对点之间互有连结资讯,彼此形成无规则网状拓扑结构。rn  * 需要请求某资源时,依现有资讯推测寻找,介於结构P2P和无结构P2P之间。rn  * 如Freenet。rn[编辑本段]P2P网络的优势rnP2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽,存储空间和计算能力。因此,当有节点加入且对系统请求增多,整个系统的容量也增大。这是具有一组固定服务器的Client-Server结构不能实现的,因为在上述这种结构中,客户端的增加意味着所有用户更慢的数据传输。rn  P2P网络的分布特性通过在多节点上复制数据,也增加了防故障的健壮性,并且在纯P2P网络中,节点不需要依靠一个中心索引服务器来发现数据。在后一种情况下,系统也不会出现单点崩溃。rn  当用P2P来描述Napster 网络时,对等协议被认为是重要的,但是,实际中,Napster 网络取得的成就是对等节点(就像网络的末枝)联合一个中心索引来实现。这可以使它能快速并且高效的定位可用的内容。对等协议只是一种通用的方法来实现这一点。rn[编辑本段]应用rn点对点技术有许多应用。共享包含各种格式音频,视频,数据等的文件是非常普遍的,即时数据(如IP电话通信)也可以使用P2P技术来传送。rn  有些网路和通信渠道,像Napster,OpenNAP,和IRC@find,一方面使用了主从式架构结构来处理一些任务(如搜索功能),另一方面又同时使用P2P结构来处理其他任务。而有些网路,如Gnutella和Freenet,使用P2P结构来处理所有的任务,有时被认为是真正的P2P网路。尽管Gnutella也使用了目录伺服器来方便节点得到其它节点的网路地址。rn  学术性P2P网络rn  最近,宾夕法尼亚州立大学的开发者,联合了麻省理工学院开放知识行动,西蒙弗雷泽大学的研究人员,还有第二代互连网P2P工作组,正在开发一个 P2P网络的学术性应用。这个项目称为LionShare,基于第二代网络技术,更详细地说是 Gnutella模型。这个网络的主要目的是让众多不同学术机构的用户能够共享学术材料。LionShare网络使用杂P2P网络类型,混合了 Gnutella分散的P2P网络和传统的C/S网络。这个程序的用户能够上传文件到一个服务器上,不管用户是否在线,都能够持续的共享。这个网络也允许在比正常小得多的共享社区中使用。rn  这个网络与当前正在使用的其他P2P网络的主要不同是LionShare网络不允许匿名用户。这样做的目的是防止版权材料在网络上共享,这同时也避免了法律纠纷。另一个不同是对不同组有选择性的共享个别的文件。用户能个别选择哪些用户可以接收这一个文件或者这一组文件。rn  学术社区需要这种技术,因为有越来越多的多媒体文件应用在课堂上。越来越多的教授使用多媒体文件,象音频文件,视频文件和幻灯片。把这些文件传给学生是件困难的任务,而这如果用LionShare这类网络则容易的多。rn[编辑本段]争议rnrn  法律方面rn  在美国法律中,“Betamax判决”的判例坚持复制“技术”不是本质非法的,如果它们有实质性非侵权用途。这个因特网广泛使用之前的决定被应用于大部分的数据网络,包括P2P网络,因为已得到认可的文件的传播也是可以的。这些非侵犯的使用包括发放开放源代码软件,公共领域文件和不在版权范围之内的作品。其他司法部门也可用类似的方式看待这个情况。rn  实际上,大多数在P2P网络上共享的文件是版权流行音乐和电影,包括各种格式(MP3,MPEG,RM 等)。在多数司法范围中,共享这些复本是非法的。这让很多观察者,包括多数的媒体公司和一些P2P的倡导者,批评这种网络已经对现有的发行模式造成了巨大的威胁。试图测量实际金钱损失的研究多少有些意义不明。虽然纸面上这些网络的存在而导致的大量损失,而实际上自从这些网络建成以来,实际的收入并没有多大的变化。不管这种威胁是否存在,美国唱片协会和美国电影协会正花费大量的钱来试着游说立法者来建立新的法律。一些版权拥有者也向公司出钱希望帮助在法律上挑战从事非法共享他们材料的用户。rn  尽管有Betamax判决,P2P网络已经成为那些艺术家和版权许可组织的代表攻击的靶子。这里面包括美国唱片协会和美国电影协会等行业组织。 Napster 服务由于美国唱片协会的投诉而被迫关闭。在这个案例中,Napster故意地买卖这些并没有从版权所有者那得到许可发行的音像文件。rn  随着媒体公司打击版权侵犯的行为扩大,这些网络也迅速不断地作了调整,让其无论从技术上还是法律上都难于撤除。这导致真正犯法的用户成为目标,因为虽然潜在的技术是合法的,但是用侵犯版权的方式来传播的个人对它的滥用很明显是非法的。rn  匿名P2P网络允许发布材料,无论合法不合法,在各种司法范围内都很少或不承担法律责任。很多人表示这将导致更多的非法材料更容易传播,甚至(有些人指出)促进恐怖主义,要求在这些领域对其进行规范。而其他人则反对说,非法使用的潜在能力不能阻止这种技术作为合法目的的使用,无罪推定必须得以应用,象其他非P2P技术的匿名服务,如电子邮件,同样有着相似的能力。rn  重要案例:rn  * 美国法律rn  o Sony Corp. vs Universal City Studios ( Betamax判决)rn  o MGM vs Groksterrn  安全方面rn  许多P2P网络一直受到怀有各种目的的人的持续攻击。例子包括:rn  * 中毒攻击(提供内容与描述不同的文件)rn  * 拒绝服务攻击(使网络运行非常慢甚至完全崩溃)rn  * 背叛攻击(用户或软件使用网络却没有贡献出自己的资源)rn  * 在数据中插入病毒(如,下载或传递的文件可能被感染了病毒或木马)rn  * P2P软件本身的木马(如,软件可能含有间谍软件)rn  * 过滤(网络运营商可能会试图禁止传递来自P2P网络上的数据)rn  * 身份攻击(如,跟踪网络上用户并且进行不断骚扰式的或者是用合法性地攻击他们)rn  * 垃圾信息(如在网络上发送未请求的信息--不一定是拒绝服务攻击)rn  如果精心设计P2P网络,使用加密技术,大部分的攻击都可以避免或控制,P2P网络安全事实上与拜占庭将军问题有密切联系。然而,当很多的节点试着破坏它时,几乎任何网络也都会失效,而且许多协议会因用户少而表现得很失败。rn  2007年4月23日,CA公司发表资安警讯,指出Foxy、BitComet、eDonkey、µTorrent、Ares、Azureus、 BearShare、Lphant、Shareaza、Hamachi、exeem lite、Fpsetup、Morpheus、iMesh等14个P2P软体都存在安全威胁,这些P2P软体的潜在威胁来源包括可能会覆写档案、为档案重新命名、删除档案、被第三方植入恶意程式等。rn[编辑本段]计算技术展望rnrn  技术上,一个纯P2P应用必须贯彻只有对等协议,没有服务器和客户端的概念。但这样的纯P2P应用和网络是很少的,大部分称为P2P的网络和应用实际上包含了或者依赖一些非对等单元,如DNS。同时,真正的应用也使用了多个协议,使节点可以同时或分时做客户端,服务器,和对等节点。完全分散的对等网络已经使用了很多年了,象Usenet(1979年)和FidoNet(1984年)这两个例子。rn  很多P2P系统使用更强的对等点(称为超级对等点(Super Node))作为服务器,那些客户节点以星状方式连接到一个超级对等点上。rn  在1990年代末期,为了促进对等网络应用的发展,升阳 (SUN)公司增加了一些类到Java技术中,让开发者能开发分散的实时聊天的applet和应用,这是在即时通信流行之前。这个工作现在有JXTA工程来继续实现。rn  P2P系统和应用已经吸引了计算机科学研究的大量关注,一些卓越的研究计划包括Chord计划, ARPANET, the PAST storage utility, P-Grid(一个自发组织的新兴覆盖性网络),和CoopNet内容分发系统。rn[编辑本段]限制rnrn  中华人民共和国rn  P2P技术在中国法律方面处于空白状态,原则不受中国政府的官方限制。但由于P2P技术会大量占用网络带宽,并且由于中国的网络设施的现状和中国对网络管理的态度,都不同程度的对P2P通讯方式有所限制。rn  目前中国各大ISP对网络接入都进行了限速,通常为512K/s以下,对占用带宽的应用比如P2P,会采取措施,常用的手段有限制TCP连接数,封锁P2P协议,限制下载/上传速度等。但是由于这些行为大部分都是秘密进行,因此中国众多P2P使用者称,此举严重侵犯了他们的知情权和使用权。在中国,被限制最多的P2P软件是BitTorrent系列软件和eMule。rn  此外,中国出于对国内产业支持和信息控制的考量,也会限制一些P2P方式的即时通讯软件。中国信息产业部曾发文要求VOIP只能在指定的网络运营商进行试验,并有地区封杀skype,不过也有官员对此否认并说明只是针对PC-Phone[2]。rn  日本rn  在日本,根据日本现行著作权法,日本境内一切免费提供商业软件/或其他数据下载的网站均属非法。违法情节严重的可被判处有期徒刑,同时处以罚款。 BitTorrent系列软件和eMule均被禁止。但是,P2P技术在日本仍然流行。这多亏了Share和Winny软件的发明。这两款软件都采用了 IP加密和数据加密的技术,目前日本有几百万人使用这两款软件来交流动画,游戏,音乐,软件等数据,但显然警方已经掌控了追查使用者的方法。2008年5 月9日,三名在share上发布大量版权保护作品的职人遭到逮捕。这两款软件的流行也带来了一些负面问题,比如机密资料的泄漏和计算机病毒的传播。rn 论坛

双核技术---服务器领域[转载]

06-22

rn最近这段时间,随着Intel正式发布其双核心XEON处理器和国内外多家厂商的积极跟进,人们对双内核这个已经一度冷淡下来的技术似乎又提起了很大的兴趣。 rn 什么是双核技术,相信大部分人都可以理解,但是为什么要使用双核?它能够给我们带来哪些好处?怎么用才能发挥双核的真正威力?这些问题还是缺少比较明确的答复。其实国内几个专业媒体也发表了一些技术文章探讨过这方面的话题,不过都有点以DIY的角度去分析双核这种味道。我们觉得,双核处理器在个人电脑上的应用价值和普及速度应该是远赶不上这种技术用于服务器领域,因此,今天笔者就完全站在服务器应用的立场,结合自己的一些观点,给大家谈谈双核技术:rnrn什么是双核技术?rnrn 采用一种比较容易被大家接受的说法,双核处理器就是基于单个半导体的一个处理器上拥有两个一样功能的处理器核心,但是,这种说法很难在本质上解释双核心诞生的的原因,如果要追究双核的起源,还得从一些物理和电子的基础知识谈起:rnrn无法克服的功耗和发热量rnrn 现在的芯片都是在单晶硅大圆片上制成的,大面积的圆片本身也难免存在一些缺陷,生产中的流程有时候也会给硅晶体带来缺陷。另外虽然工厂的清洁程度非常之高,但在生产过程中还是免不了带入一些杂质,互连层在制造中也会引入自己的缺陷形式。这样大规模的芯片很难保证全无任何缺陷。现在半导体进入90纳米以下的工艺,缺陷和杂质带来的影响就更为普遍,晶体管的尺寸已经和某些缺陷或杂质的尺寸在一个量级,甚至晶体管尺寸更小。一般来说,非致命的缺陷会造成电路性能下降,为弥补缺陷带来的损失,就需要给电路更高的电压和更大的电流,许多缺陷在降低晶体管性能的同时还会增加晶体管的功耗,以前CMOS数字电路的主要功耗是工作时的动态功耗,但到了90nm工艺以后,情况发生了很大变化,许多原来基本可以忽略不计的功耗因素现在都占据了较大的比重,例如电路互连损耗,泄漏损耗。其中,泄漏损耗的影响急剧增加。这就是为什么采用0.09微米工艺之后,各种处理器的发热量和功耗还是一路呈攀升趋势的原因,高频的Prescott处理器功耗将近100W,要知道,一个可以把焊锡快速融化的电烙铁也不过50W左右,因此,高功耗和吓人的发热量成为CPU继续向高频挺进的一大障碍,当时就有很多人预言,4GHz的处理器诞生之后,大家将可以通过CPU散热片来煮鸡蛋。rnrn高频之外的解决方案rnrn 既然无法通过继续提升频率来实现更高的频率,那么用户对产品性能提升的需要应该如何得到满足?rnrn 第一种做法当然是使用64位技术,为什么64位运算会比32位运算性能强大,这个比较好理解,例如你使用32位的CPU,要向外输出一个64位的数据,需要消耗两个时脉,但是如果你使用64位的CPU,只要一个时脉就完成了。rnrn 另外一种做法就是使用多路对称技术,其基本理论当然就是用两个处理器去完成一个处理器做的事,看上去就跟磁盘阵列技术一样,RAID 0就是使用两块硬盘来同时存取一个文件,各存取一半,因此花费的时间减半,假如使用4块硬盘,就是每块各存取1/4,所需时间自然更短;CPU的多路对称工作原理也是这样的,因此,中高端的服务器很多都使用4路、8路配备,就是为了提高产品性能。rnrn多路对称的难处rnrn 要通过2个甚至4个硬盘实现高性能的阵列存储并不难,安装RAID控制器驱动即可,因为RAID控制器会自动控制各块硬盘的工作方式,程序员或者说CPU只要告诉RAID控制器要读出或写入什么数据,具体怎么分拆数据,几块硬盘如何分配读写等问题根本不需要计算机用户、编程人员考虑,因此原有操作系统和软件都不需要进行改动;但是CPU的多路对称工作就不同了,因为计算机的所有指令都是经CPU去执行的,要是编程人员只下令CPU去执行什么指令而不告诉计算机哪颗CPU去执行这条指令,那么就会天下大乱,而且如果是两颗CPU,指令的调度分配还比较好设计,如果是4-8颗,那么情况就非常复杂,就像两台电梯的联合控制程序容易写,但是4台电梯的联合控制程序非常难写一样,因为他们之间是2的2次方跟4的2次方这种关系。rnrn 另外,由于多内核芯片将两个或更多的独立CPU核心集成在一块硅片上,一些人怀疑它们致命的弱点会是这些CPU核心之间的数据移动,当多内核系统运行争夺同一条I/O路径的不同应用程序时,存在一些性能瓶颈。不过到目前为止,这些瓶颈的影响很小。rnrn如何用好多路对称rnrn 多路对称工作模式需要程序员设计的软件本身就能支持多个CPU的指令调度,这样所有CPU才是以最合理最高效的调度安排去协同工作。由于应用软件大多都是采用大量的API函数开发的,所以担任指令-机器交互角色的操作系统就是多路对称开发的根本和关键所在,一套操作系统能不能很好的协调多个CPU之间的工作关系,是多路模式能否成功发挥其性能的关键。rnrn 微软的SERVER级操作系统都支持多路模式,最新的2003 SERVER还改进了多路对称的指令调度设计,使服务器在多路模式下性能可以更加出色。另外,应用程序本身的设计也是多路对称工作效果的决定性因素,例如,现在的3D游戏都是基于单线程开发的,也就是说游戏运行时不会调用操作系统的多线程函数,这样的话即使是使用支持多路对称的操作系统,仍然无法提升应用程序的执行效率,因此,大家可以注意到,至今为止多路设计还是只出现在服务器、工作站等高端领域,因为从成本和效果上看,在个人消费领域使用多路设计都是很不明智的。rnrn双核的优势:rnrn双核的难处rnrn 双核技术的思想跟多路对称是一样的,只不过它实现的方式不再需要两个CPU和两个CPU插槽,而是跟普通单路配置一样,一颗CPU搭载两个核心,也就是1 die 2 cores,在一片单晶硅上集成了2个核心,当然,这在制作上难度是相当大的,因为双核设计意味着晶体管的数量将倍增,因此,在生产工艺没有太大改进的前提下,成品率会降低。rnrn 另外,双核心既然需要更多的晶体管,就意味着它的发热量会更大,如何解决CPU的散热问题也是非常令处理器厂商头痛的,正如大家所见,目前市面上的双核处理器基本都不敢出高频版本,其中一个重要因素就是发热量的问题;只有当厂商改进生产工艺,减少CPU内部由于瑕疵引起的功率损耗和电泄漏问题之后,才有可能往高频的版本发展。rnrn 还有一个问题,就跟多路对称一样,双核也需要操作系统和应用软件的支持才能发挥其性能,虽然现在的服务器操作系统可以为双核提供不错的支持,很多分布式应用软件在双核模式下也取得了令人满意的成绩,但是,对于双核的软件计费却成为令人头痛的问题,一些数据库系统和应用软件厂商之前对于多路服务器的多个处理器是有额外许可证收费设计的,三家最大的软件厂商采取了不同的许可方式:IBM将根据不同的情况做出许可决定,Oracle将双内核芯片算为两个芯片,微软则打算将双内核芯片作为单个芯片来对待。rnrn双核的优势rnrn 既然推广双核技术有着如此大的难度,那么,双核技术的优势究竟何在?rnrn 首先,双核可以提供跟双路一样出色的科学计算性能和多线程处理能力,这就是为什么我们一直强调说多核处理器应该先在服务器领域推广,而不是先用于个人消费领域,毕竟科学计算中针对多线程开发的软件还是非常多的。rnrn 另外,AMD和Intel的双核都可以与目前的平台架构兼容,它们的双核心处理器均能在对应的单核主板上正常工作,这就意味着用户升级到双路和多路的成本可以得到很大的节省,因为一块支持双路的主板售价要比一块单路的主板贵80-100%,如果采用双核处理器,用户就可以使用单路的主板实现双路的性能,而成本上却节省了不少,这对于那些需要高性能多路产品的用户来说无疑是一大福音。rnrnrnrn 论坛

没有更多推荐了,返回首页