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

本文讲的是剖析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:是什么?如何结合?有什么优势?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

濮阳第二届创客机器人比赛_咸阳市举行第二届机器人大赛暨第一届创客大赛

11月14日,由陕西省教育信息化管理中心指导,市教育局主办,咸阳师范学院、市少工委协办的咸阳市第二届机器人大赛暨第一届创客大赛在咸阳师范学院举办。各个学校的同学展示自己的发明创造。咸阳日报全媒体记者 马沅聪 摄据悉,来自各…

MP3文件格式解析

1, MP3简介 MP3是今天一种常见的音乐格式,但恐怕除了工作要求之外,有兴趣对此进行研究的人恐怕不多。所以,当我打算做MP3解码方面的工作时,在找资料时也颇费了一番周折,同时也觉得很有趣。所以想在这里分…

懒汉式(线程安全,同步代码块儿)

懒汉式(线程安全,同步代码块儿) 代码演示 // 懒汉式 (线程安全_ 同步放法_) class Singleton{private static Singleton instance;private Singleton() {}// 提供一个静态的公有方法 加入了同步处理的代码// 解决线程安全问题// 即懒汉式// 我们在这里加一个关键字 synchroni…

同余定理证明

转载于:https://www.cnblogs.com/cmyg/p/7206474.html

非常抱歉,

非常抱歉,好长一段时间没写了,但是我在博客园偶尔还会写写这个行业必须不断地学才不会被淘汰,幸好我是主动接受知识,我喜欢这个。。。。。。。。。。转载于:https://blog.51cto.com/52770825/1962949

乘基取整法是什么_深入理解计算机系统(六):进制间的转换原理

目录1、进制的介绍2、二进制转换成其他进制3、十进制转换成其他进制4、十六进制转换成其他进制5、总结上一篇博客我们讲解了信息的在计算机中是如何存储以及如何表示的。但是对于各个进制的转换只是一笔带过了,后来作者仔细研究了进制转换的原理,发现还是…

单例设计模式-双重检查

双重检查 双重检查应用实例 代码演示: class Singleton{private static volatile Singleton singleton;private Singleton(){}// 提供一个静态公有方法public static Singleton getInstance() {if (instance null) {synchronized (Singleton.class) {if (instance null) {…

symbian系统开发教程(一)

第一章:Symbian OS简介作者:谢兴 enigma19971hotmail.com---转载需注明出处 下载word文档1.1. Symbian系统简介当前有很多手机运行Symbian OS,数量甚至超出您的想象。到目前为止已经有超过7500 万、100 多种型号的手机运行Sym…

小谈c#数据库存取图片的方式

第一种方式 文件夹与数据库配合 /// <summary>/// 上传图片/// </summary>/// <param name"FUSShopURL">FileUpload对象</param>/// <param name"UpladURL">图片要放到的目录名称</param>/// <returns>如果Fi…

c#课程设计简单题目_《C#项目案例》课程设计题目

1《C#项目案例》课程设计题目一、课程设计的基本目标1、通过本次课程设计&#xff0c;熟练掌握开发语言C#和开发环境——.NET。开发语言的熟练需要通过编写一定长度的代码(1000&#xff5e;2000行代码)才能达到&#xff0c;开发环境的熟练需要反复的程序调试训练。2、加深对软件…

笔记吧

map的第一个为关键值&#xff0c;只可读&#xff0c;不可写。第二个为对应值&#xff1b;vector的消除有很大的困扰&#xff0c;感觉存在很大的局限性&#xff1b;问题——不能够复杂话&#xff0c;一个问题先从较浅的方面想起&#xff0c;其实在现有基础和请况下&#xff0c;不…

单例设计模式-静态内部类

静态内部类 静态内部类应用实例 代码演示 package com.atguigu.principle.singleton.type07;/** * author victor * site https://victorfengming.github.io/ * company XDL * project java_mode * package com.atguigu.principle.singleton.type07 * created 2021-02-02 20…

Symbian系统开发教程(二)

第二章&#xff1a;数据类型与语法 作者&#xff1a;谢兴 enigma19971hotmail.com 转载需注明出处 下载word版本 Symbian系统已经提供了一套已经定义好的内置的数据类型。为了保证你的代码是编译器无关的&#xff0c;应当使用下面symbian系统提供的数…

design php 如何使用ant_Ant Design Pro初探—添加面包屑

Ant Design Pro初探—添加面包屑上次咱们说了新建页面&#xff01;页面建成了&#xff0c;开始填充页面 新建面页面不会的看上一片文章:Ant Design Pro初探—新建页面首先是需要添加家面包屑&#xff0c;上代码&#xff1a;import React, { PureComponent } from react;import …

C++主要操作符重载的定义和总结

C中预定义的运算符的操作对象只能是基本数据类型&#xff0c;实际上&#xff0c;对于很多用户自定义类型&#xff0c;也需要有类似的运算操作。例如&#xff1a; class complex { public: complex(double r0.0,double I0.0){realr;imagI;} void display(); private: do…

原生JS数组去重的几种方法

有时候我们做项目的时候往往会需要把数组里面一些重复的项去掉&#xff0c;但是原生JS有排序&#xff0c;有筛选等等&#xff0c;但是就是没有数组去重怎么办呢&#xff1f;这能怎么办&#xff0c;自己手动实现嘛。&#xff08;以下代码直接在原型上添加的的方法&#xff0c;为…

单例设计模式-枚举

枚举 枚举应用实例 代码演示 package com.atguigu.principle.singleton.type08;/** */ public class SingletonTest08 {public static void main(String[] args) {Singleton instance Singleton.INSTANCE;Singleton instance2 Singleton.INSTANCE;System.out.println(inst…

抛物线交点式公式_抛物线交点式

以下是范文网www zhuodaoren com 分享的6 已知抛物线与轴两交点在轴同侧&#xff0c;它们的距离的平方等于&#xff0c;则的值为( )&#xff0c;希望能帮助到大家!(一)6 已知抛物线与轴两交点在轴同侧&#xff0c;它们的距离的平方等于&#xff0c;则的值为( )函数与一元二次方…

学习的动力

要有自学的意识&#xff0c;这是一个知识不断更新、不断涌现的时代&#xff0c;大学里的很多知识是过时的&#xff0c;就算入校时是热门行业的但很可能四年后毕业找工作时已经变成了夕阳产业&#xff0c;学习是一种能力&#xff0c;但首先是一种态度&#xff0c;一个人想在快速…

java面向对象之父类的引用指向子类的对象

1 package Text; 2 3 public class Job { 4 public void dowork(){ 5 6 } 7 } 1 package Text; 2 3 public class Luosidao extends Job{ 4 public void dowork(){ 5 System.out.println("螺丝刀拧螺丝。。。"); 6 } 7 } 1 packa…