本文讲的是剖析Docker Swarm和Mesos:是什么?如何结合?有什么优势?,【编者的话】本文来自Mesosphere,从生产环境的需求出发,简要介绍了Docker Swarm的诞生背景,以及其与Mesos、 Mesosphere DCOS之间的关系,同时,也阐述了Mesosphere管理大规模容器的方式以及它和Swarm是如何结合的。

在去年(2014)12月份的欧洲DockerCon上,Docker首席技术官Solomon Hykes说Mesos是生产环境下运行大规模可扩展容器集群的黄金标准,这对于每个使用Apache Mesos和Mesosphere Datacenter Operating System(DCOS,数据中心操作系统)的人来说应该感到万分的荣幸。

这也正是容器成熟的标志:现在Docker已经完成了,甚至我们都开始讨论大规模的容器应用。2006年, 谷歌第一次对外介绍容器化组件cgroups和namespaces,可以说这是现代Linux容器的开端。然而Docker的真正工作是简化容器的创建,并让这些容器可以作为开发人员和系统管理员标准化、配置、交付应用的最好方案。

今天宣布Docker Swarm的意义何在?

把一个容器放到生产环境中听起来很简单,然而却有很多事情要做。

Docker的确可以让你轻松的打包一个应用,但是你还想让应用在其它方面也变得简单,比如在运维方面。你还想要很容易就把应用扔到云里,比如Amazon、自己的硬件环境、私有云或是公有云,并且它可以按照需求运行很多次,永远不会宕机,也不会麻烦你。如果应用有了新版本,Docker可以让你以优雅的方式来升级。这才是开发人员所关心的(他们关心的是把代码推送到生产环境,然后应用就一直运行,既不需要带一个BP机,也不会有IT人员的打扰)。这些事情看起来简单却不容易做到。

Docker Swarm就是Docker提供的一个解决方案,它可以无缝管理容器集群,所以今天发布的Swarm就是真正的为了让企业用户能够部署和管理大规模容器。

我们认为Docker Swarm发布最酷的部分应该是“batteries included but swappable(可插拔式的架构)”。简单的说,这个意思就是当你需要规模化生产的时候,你可以开始使用Docker Swarm,并“换入(swap in)”Mesosphere。我们认为他们做了一个伟大的社区决定, 就是鼓励用户在容器集群调度和协调上面可以自我选择和创新,而不是只规定一种方式。

Mesosphere管理大规模容器的方法

Mesos和Mesosphere DCOS是专门设计用来管理大规模容器的。这些高性能的系统在一些世界上最大的数据中心的生产环境中已经身经百战很多年了,例如Twitter,几乎完全是在Mesos上面运行的。

在成百上千台机器上协调和调度大规模的容器,与在单台机器或者100台机器上运行容器是截然不同的。当你按比例增加已有的100台机器,可能的故障面和性能瓶颈就会以指数级复杂度增长。

在数据中心中,机器故障随时可能出现,磁盘故障随时可能出现,网络也随时可能出现.......管理故障以及把故障展现出来就需要像Mesos和Mesosphere DCOS这样高度专业的系统。从Mesoshere的立场来说,你是想把计算机的集群看成是一个黑盒,然后要把你的应用扔进去(例如使用Docker Swarm)并运行,如果一些不好的情况出现了,你希望系统可以自己去修复它。

Mesos和Mesosphere DCOS是专门设计在数据中心中管理容器, 并解决企业在运行生产级别的应用过程中所面临的挑战。例如,Mesoshpere的技术是:

  • 高可用性,生产环境中关键工作常常需要五个或五个9以上的可靠性,以及高度的自动化。为要达到这个要求,Mesos已经做了多年攻坚。
  • 容错,当一些不好事情发生时,一个服务器,一个机架,或者网络出故障了, Mesos有能力自动地辨别并处理这些故障。
  • 自我修复,当一些东西在Mesos或者Mesosphere
    DCOS集群中出现故障时,例如当一个机架坏了或者一些服务挂掉了,这些服务是可以自动被重启的,并且每一个都是可以自动重连接的,就像海星在没有人工干预的情况下,自己长出了另外一个手臂。

通过整合Docker Swarm和Mesophere,你可以使用Docker工作流(Docker workflow)来创建和打包你的应用,然后借助Mesosphere DCOS和Mesos协调和调度容器,你完全可以运行你的应用,并且它们是可扩展且高可用的。

数据中心规模的多组织用户管理

在传统系统中,在相同的数据中心运行多种类型的工作,需要运维团队为每种工作定制机器的集群。所以,比如说你想运行Docker Swarm和Spark,你需要为Docker Swarm创建一个集群,再为Spark创建一个集群。这就在数据中心中创建了很多仓库(silos),每个类型的工作都需要分开的集群管理,也不容易实现数据和资源的共享。

Mesos和Mesosphere DCOS是唯一有能力让Docker Swarm和其它应用给你运行在同一个集群上。包括大数据应用,例如Spark、Storm、Kafka以及Hadoop。这也提高了资源的使用,同时减少了消耗和复杂性。

使用了Mesosphere DCOS之后,你可以通过一个简单的命令把Docker Swarm安装为一个数据中心服务,并且Docker Swarm和其它数据中心服务一样运行在相同的集群上,例如大数据服务。大量的数据中心服务还可以同时运行,Mesos也会弹性地与Dokcer Swarm共享资源。

Mesos上的Docker Swarm是如何工作的

Mesos上的Docker Swarm直接使用Mesos的API,这就意味着它可以完全兼容Mesosphere DCOS,这也使得Docker Swarm同Marathon、 Cronos、Spark、Storm、Hadoop以及Cassandra一样成为Mesos和Mesosphere生态系统里面的一等公民。

使用Mesos API集成Docker Swarm的好处是在保持对Docker Swarm的完全兼容的情况下,使用Mesos特性过程中可以提供最大的灵活性。在Mesos上的Docker Swarm可以使用最新的Docker Swarm特性,同时可以利用Mesos和Mesosphere DCOS的特性以及可扩展的架构。

原文链接:Docker Containers at Scale (Our Take on Docker Swarm)(翻译:左伟 校对:郭蕾)

===========================
译者介绍
左伟,就职于IBM,软件工程师,现从事于DevOps相关的研究,实现和推广。

原文发布时间为:2015-02-28
本文作者:左伟 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:剖析Docker Swarm和Mesos:是什么?如何结合?有什么优势?

剖析Docker Swarm和Mesos:是什么?如何结合?有什么优势?相关推荐

  1. Azure正式对外发布容器服务,支持Swarm和Mesos

    在2015年9月29日举办的AzureCon大会上,微软曾对外宣布将会发布Azure Container服务(ACS),基于此服务,微软将会把Mesos.Docker和Azure整合在一起.紧接着在2 ...

  2. Docker(六):Docker 三剑客之 Docker Swarm

    实践中会发现,生产环境中使用单个 Docker 节点是远远不够的,搭建 Docker 集群势在必行.然而,面对 Kubernetes, Mesos 以及 Swarm 等众多容器集群系统,我们该如何选择 ...

  3. 别了,Docker Swarm !你好,K8s !

    毫无疑问,Kubernetes已经成为容器编排事实标准.除了已经拥抱Kubernetes的Google.BAT.京东.奇虎360等巨头大厂外,更多的企业也都在向Kubernetes迁移.容器技术大势所 ...

  4. 如何使用Docker Swarm管理更多容器

    by nolan grace 通过诺兰·格雷斯 如何使用Docker Swarm管理更多容器 (How to manage more containers with Docker Swarm) Sca ...

  5. docker和k8s发展史--理解oci/cri/cni/docker swarm/containerd/runc/dockershim

    1. docker和k8s的爱恨情仇 1.1 PaaS的普及和难点 2013年,伴随着 PaaS 概念的逐步普及,以 Cloud Foundry 为代表的经典 PaaS 项目,开始进入基础设施领域的视 ...

  6. docker三剑客之 Docker Machine Docker Compose Docker Swarm

    Docker 三剑客 一.docker machine 1.Docker Machine 简介 2.Docker Machine实践 二.docker-compose 1.docker-compose ...

  7. Docker容器化实战第七课 容器编排Docker Compose、Docker Swarm 和 Kubernetes

    19 如何使用 Docker Compoe 解决开发环境的依赖? 前两个模块,我们从 Docker 的基本操作到 Docker 的实现原理,为你一步一步揭开了 Docker 神秘的面纱.然而目前为止, ...

  8. 部落战争:Docker Swarm向左,Kubernetes向右

    本文讲的是部落战争:Docker Swarm向左,Kubernetes向右[编者的话]本文对Kubernetes 1.4的发布做了分析,并对未来Kubernetes和Docker的发展了预测. 分析 ...

  9. 第20 章 Docker Swarm 集群实践

    Docker Swarm 集群实践 文章目录 Docker Swarm 集群实践 **Swarm介绍** **Swarm 特点** **Swarm架构** **Swarm关键概念** 1)Swarm ...

最新文章

  1. 5 用python进行OpenCV实战之图像变换2(旋转)
  2. vue 点击事件执行多次
  3. DataWorks V2使用PyUdf
  4. 自律到极致-人生才精致:第6期
  5. 成功解决schedule.ScheduleValueError: Invalid time format
  6. 【Java】6.4 final 修饰符
  7. IP地址与网络上的其他系统有冲突
  8. Android測试APP工具(一)
  9. 鸿蒙os全面升级,华为突然宣布,鸿蒙OS正式版6月底全面升级,幸福来得太突然...
  10. [另开新坑] 算导v3 #26 最大流 翻译
  11. python sys模块详解_python之sys模块详解
  12. zmap扫描mysql_基于zmap 的应用层扫描器 zgrab (一)
  13. Google Borg论文
  14. 是指可以显示网页服务器或者文件,浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件。...
  15. B站网页下载视频(flv格式)
  16. Android性能优化系列篇(二):启动优化
  17. stm32h7内存分配_【STM32H7教程】第25章 STM32H7的TCM,SRAM等五塊內存基礎知識
  18. [bzoj3998]弦论
  19. 过年了JAVA类编写烟花爆竹——学习分享下笔者的经验
  20. 企业知识管理平台的作用及功能

热门文章

  1. Linux 下安装 jdk-7u75-linux-x64.gz,jdk1.7.0_75,jdk1.7步骤:
  2. 学习笔记7-C语言-进制转换、原返补、位运算、函数
  3. leetcode130. 被围绕的区域
  4. leetocde 225. 用队列实现栈
  5. 机器学习基础-吴恩达-coursera-(第一周学习笔记)----Introduction and Linear Regression
  6. 《Java8实战》笔记(12):新的日期和时间API
  7. 数据库 流量切分_私域流量之社群运营技巧,社群运营技巧解析
  8. Java基础——深入理解ReentrantLock
  9. 健康丨汗从哪里出 病从哪里来
  10. 新手如何准确的控制油门