大规模分布式存储如何优化?Facebook有绝招!

作者团队:Igor Kabiljo、Brian Karrer、Mayank Pundir、Sergey Pupyrev、Alon Shalita 、Alessandro Presta

Facebook此前在研究blog上发布了一篇文章,介绍了自己的超大规模图分区优化算法SHP。这是 Facebook 为了处理自己的规模过大的图分区问题开发的方法,而且在大规模优化问题中确实发挥了作用。这项研究的论文也已经被数据库领域著名国际会议 VLDB 2017(Very Large Data Bases)收录。

文章编译如下。

对Facebook来说,每天它要服务的用户是十亿级别的。为了支持这种规模的访问量,Facebook 需要在许多个不同的层次上设计分布式的负载。Facebook 在全球建立了多个数据中心来提升用户访问的可靠性、容错性,以及改善延迟。不过单个托管服务器的容量和计算资源总是有…

详细内容

这些Docker做不到或做不好的事,你知道几件?

Docker是一个很棒的工具。但是Docker容器并不是包治百病的方法。如果你真的想用好Docker,先必须了解其短处在哪里。

Docker容器在过去几年中已经大受欢迎,因为它们启动速度更快,扩展容易,并且比虚拟机消耗更少的资源。

 

但这并不意味着Docker容器是对每种类型的工作负载都是完美的解决方案。以下是Docker无法做到或做不好的事:

——像裸机服务器一样快地运行应用程序。Docker容器的开销比虚拟机少。但不是零开销。让应用程序获得真正的裸机速度的唯一方法是直接在裸机服务器上运行,不使用容器或虚拟机。

 

——提供跨平台的兼容性。在Windows上运行的Docker容器中的应用程序无法在Linux上运行,反之亦然。虚拟机则不受此限制。在由Windows和Linux服务器组成的高度异构环境中,这使得Docker的吸引力降低。

 

详细内容

想投资容器?那你得看看这个!

由于容器能够提供迄今为止最快开发和部署应用的能力,其企业级采用率在近几年呈爆炸式增长。在最基本的层面上,容器可以认为是对系统要求最精简的的极其轻量级的虚拟机。

容器更容易部署,更快地启动,并在较短的平均寿命期内运行。容器也是可移动的,占地面积小,这意味着服务器可以支持比虚拟机多得多的容器,从而降低基础架构成本。

企业正在享受容器的好处——在2017年的Portworx Annual Container Adoption调查中,32%的公司每年在容器技术许可和使用上的花费超过50万美元,远高于2016年的5%。这一快速增长有望持续,因为越来越多的企业希望使与成本和生产都紧密相关的DevOps流程更有效率。

 

学习曲线

容器是将敏捷交付添加到敏捷开发流程的好方法。通过提高开发人员效率并提供更轻松更快的部署来实现更快的应用开发和交付是进化的目标,容器朝这个目标又前…

详细内容

从分布式计算到分布式训练

对计算机来讲,所谓的计算,不过是将存储在各个地方的数据通过数据总线进行传输,然后经过算术逻辑单元执行一系列预设好的规则,最终再将输出写入到某个位置。

在计算能力有限、存储成本偏高的情况下,就需要利用好计算机的资源,让它的计算能力发挥出最大的价值,所以在编程初期用指令直接操作硬件,例如汇编语言中常见的操纵寄存器,本质上都是为了减少数据传输的时间,充分利用CPU的计算能力,避免因为数据的长时间传输导致CPU进行过长的等待。

分布式计算的到来

随着科技的发展,“数据存储”领域有了质和量的双向发展,除了稳定性、安全性的提升外,容量也呈指数级增长。因此可以在单机上直接构建整套服务,类似LAMP类似的这种一键搭建服务器的套装软件有了更多的应用场景。

然而随着业务的发展,另一个问题逐渐显现出来:虽然磁盘容量增加了,但是机器的访问速度并没有变快。

什么意思呢?举个例子:虽然2…

详细内容

为什么说开源应该是云原生环境的首选?

 

 

让我们回到20世纪90年代,专有软件占据统治地位,开源慢慢成长壮大。是什么导致了这种转变?更重要的是,当我们转向云原生环境时,可以从中学到什么?

基础设施“历史课”

首先是笔者对30年基础设施历史的梳理。

 

在20世纪90年代,大多数公司对Linux一无所知或带着嘲笑。你可以从很早就看到Linux好处的公司那里买到Linux产品,大部分是作为专有Unix的便宜替代品——当时部署服务器的标准方式是以Unix的专有形式或越来越多地使用Microsoft Windows NT。

这些工具的专有性质为专有软件提供了一个肥沃的生态系统。软件被包装在商店里销售。即使是开源产品也参与了包装好的游戏。你可以在货架上购买Linux,而不是从互联网免费下载。要得到软件,你得去商店或者找软件供应商。

随着LAMP堆栈(…

详细内容

Linux的任督二脉:进程调度和内存管理

目录

  1. 穆赫兰道与内陆帝国

  2. 带着问题上路

  3. 试图回答这些问题

    1. 吞吐vs响应

    2. CPU消耗型 vs IO消耗型

    3. 分配vs 占据

    4. 隔离vs 共享

  4. 思考大于接受

《穆赫兰道》与《内陆帝国》

 

我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU、内存资源等的真正分布,具体的工作机制,这使得他们对很多问题的分析都摸不到方向。

比如进程的调度延时是多少?linux能否硬实时?多核下多线程如何执行?系统的内存究竟耗到哪里去了?我写的应用程序究竟耗了多少内存?什么是内存泄漏,如何判定内存是否真的泄漏?CPU速度、内存大小和系统性能的关联究竟是什么?内存和I/O存在着怎样的千…

详细内容

导致安全问题的5大容器错误

 

 

许多公司关注容器技术的潜力以及如何最好地利用这项技术,然而我们还需要大量关于容器的试验。

开发人员正在自己的沙盒中工作,在笔记本电脑上装好,然后将其投入生产。 但是,问题在于如果容器在没有安全措施的情况下完成,那么你可能并没有得到有正确控制权的敏捷性。

因此,即使容器工具越来越多,未知内容仍可能集中在容器中。RedHat的安全策略师Kristen Newcomer表示,在将容器投入生产之前,你需要问:管理这个有什么正确的流程?如何确保它与其他应用程序一样受到控制和管理?

 

Newcomer认为,你需要系统化容器的使用,以便可以通过适当的控制来实现所需要的灵活性。应该由安全部门与业务伙伴合作来提高安全性和灵活性。

 

容器允许你在不同环境中打包和部署一切。但是,公司必须确保已经为安全建立了坚实的基础,如…

详细内容

容器部署的未来是什么?

容器并不是一个新概念:迈向Linux容器的第一步在1979年就出现了。从那时起,应用程序的容器部署出现了十几个新的进化步伐,并且还没完。容器与其支持技术(如DevOps)和竞争对手(如虚拟机)进行交互,推动所涉及的所有技术进步。未来的容器将与现在的容器非常不同,但用户仍然可以跟踪趋势并充分利用每一步。

所有的容器架构都与VM架构不同——容器旨在虚拟化硬件和至少基本的平台软件,而不仅仅是硬件。这意味着容器应用程序共享操作系统和一些中间件,而VM模式需要为每个虚拟机复制所有软件。容器方法减少开销,允许每个服务器运行更多的应用程序。

从容器部署开始

早期的容器部署假定用户和应用程序运行良好,不需要相互保护或安全措施。这可能出现导致稳定性和安全性问题的错误或恶意做法。因此,在容器发展的头十年里,重点是改善容器的隔离。这开始于几个“监狱”概念,主要侧重于隔离容器的文件系统,…

详细内容

边缘计算:可能比云计算影响更大的下一波计算浪潮

编者按:事物的发展往往呈现出波浪式前进、螺旋式上升的特点。螺旋式上升意味着事物的发展趋势不会是按照一个方向一成不变。

 

Blockstack的联合创始人Muneeb Ali运用了这种哲学思想,通过总结过去几十年的计算史认为,在经过了中心化(大型主机)、去中心化(桌面计算)以及再次中心化(云计算)之后,下一波计算浪潮将再次朝着去中心化演进。这将会成为比桌面计算和云计算影响更加深远的技术革命,在这场革命中大型技术公司的势力将会被极大削弱,而用户将成为自己的主人。

 

创业者、技术投资者以及政策制定者花费了可观的的时间用于思考计算的未来。在本文中,我将就下一波计算浪潮会是什么提出我的预测。

 

要想预测未来,我们首先必须理解过去。

 

早期计算机非常的笨重,往往要塞满整个屋子。1960年代以及1970年代的…

详细内容

OpenStack就该走“私有化”路线

 

在短短七年的时间里,OpenStack从零开始,成为开源私有云的领先平台。目前看来,它在私有云中的发展势头远超公有云。

 

你可以说HPE、思科这样的大厂商也没能把OpenStack服务做得能挑战AWS。AWS仍然统治着公有云的世界,但OpenStack可能具备长期的优势。

 

内部世界领导者

OpenStack最早是NASA的内部项目,得到了Rackspace的大力帮助。该项目始于NASA的Nebula系统,旨在支持基于标准硬件的基础设施即服务(IaaS)云服务,并迅速共享,产生了一个强大而富有创意的社区。

起初,看起来好像OpenStack可以提供较AWS公有云更开放的替代方案,并且众多的公有产品纷纷涌现。像思科和HP(现在的HPE)这样的大企业希望OpenStack能够为它们提供进入公有云市场的平台,…

详细内容