阅读更多
摘要:Marathon 视为数据中心操作系统(简称DCOS)中的一款“杀手级应用”。它属于核心服务之一,被预装在 DCOS当中,而且目前已经被三星、Yelp、Verizon、迪士尼、Autodesk 以及其它众多知名厂商应用于生产环境当中。这些企业利用 Marathon 立足于公有云环境、内部数据中心乃至跨越多混合云环境管理着成百上千节点之上的大量容器。Marathon 支撑着一切基于容器应用程序的部署工作,从持续集成到物联网再到托管云服务可谓无所不包。

容器技术如今可谓如日中天,不少从业者甚至预测认为容器的广泛普及将给 IT 行业带来超越云计算的深远变革。相较于此前专门用于改进运营及开发效率的各类技术方案,容器技术能够真正提供极为出色的资源利用率、易配置性、更高部署速度以及更加灵活的开发流程。

不过如同单一虚拟机一样,单一容器本身并不足以承担如此重任。这意味着我们需要一套容器编排平台以部署并管理特定数量的容器系统。举例来说,一款采用微服务架构的现代应用程序可能包含有数十甚至上百套容器系统,这些容器跨越数十个物理节点以及彼此依存的容器化服务。在将大量组件与一套持续集成与交付系统相集成后,我们还需要一套集群作为其运行载体,并在日常代码测试工作当中每天启动并移除数百万的容器实例。

如果没有理想的容器编排平台作为辅助,那么实现这项目标绝对是一条漫长而艰难的道路。当然,随着容器数量的不断攀升,整套体系对于可扩展能力与传输带宽的要求也将随之增长。而且与 IT 结构中的其它事物一样,容器当中也存在着许多值得关注的核心要素,我们需要利用它们完成技术方案由开发到生产的整个推进流程。

希望在生产环境下运行容器的企业用户需要对大量炒作与夸张说辞进行分析,从而找到真正适合自己且值得信赖的容器业务流程平台。就目前而言,已经有一部分技术成果建立起庞大的开发者基础并以 GitHub 为平台进行传播。另一些成果则已经开始运行在生产环境当中,并被一部分全球规模最大的企业与极具创新能力的初创厂商用于支持下一代应用程序。我们的开源 Marathon 技术恰好属于后一种分类。



遇见 Marathon

我们将Marathon视为数据中心操作系统(简称DCOS)中的一款“杀手级应用”。它属于核心服务之一,被预装在 DCOS 当中,而且目前已经被三星、Yelp、Verizon、迪士尼、Autodesk 以及其它众多知名厂商应用于生产环境当中。这些企业利用 Marathon 立足于公有云环境、内部数据中心乃至跨越多混合云环境管理成百上千节点之上的大量容器。Marathon 支撑着一切基于容器应用程序的部署工作,从持续集成到物联网再到托管云服务可谓无所不包。 各家企业利用 Marathon 管理自身容器环境的具体方式也有所区别:
  • 三星公司利用 Marathon 支撑其 SAMI 联网设备平台的开发经验。
  • Autodesk 公司利用 Marathon 为其持续增长的云服务套件建立一套流事件平台。
  • Yelp 公司以 Marathon 为核心构建起了自己的一套完整生产性平台即服务(简称PaaS)环境。在该平台(简称为PaaSTA)与另一名为Seagull 的基于 Marathon 项目之间,Yelp 公司得以每天启动超过100万套 Docker 容器。

Marathon 以云为目标进行构建

最近推出的一系列强化也使得云服务供应商得以利用Marathon交付自己的交钥匙容器服务。举例来说,我们目前正与微软公司就其Azure Container Service(简称ACS)开展协作,其利用 Marathon 交付生产就绪型容器编排方案。Azure Container Service 在2015年9月发布的一篇官方博文当中提到:Azure Container Service 的默认配置包含 “Marathon、Chronos 以及Apache Mesos,旨在确保这些应用能够被扩展至数千甚至数万容器系统级别。” 目前,微软公司发布了 ACS 的公共预览版,这意味着任何 Azure 用户都能够访问该服务并将其与 Mesos 及 Marathon 一道纳入自身业务流程。希望直接在 Azure 实例或者其它云平台之上部署 DCOS 的企业客户也已经能够切实达成目标。

Marathon 为 DCOS 提供支持

不过着眼于 Marathon,其最大的亮点可能正是其与 DCOS 的结合。尽管容器编排已经成为一项愈发重要的能力,但其还仅仅是推动现代应用程序更加强大、更具可扩展能力且更为可靠道路上的一个侧面。有鉴于此,DCOS也做出相应调整以简化对高复杂性系统的安装、规模伸缩与管理,具体包括分布式数据库、大数据流水线以及持续集成平台等等——这一切都将同消费级 Web 应用程序与微服务一道运行在一套共享式集群之上。

伴随着每个新的DCOS版本,我们都会在其中围绕安全性、弹性、监控能力、管理能力以及其它要素添加新的能力。



Marathon 在行动

正如之前所提到,Marathon 帮助用户克服了一系列以可靠及可扩展方式开发并运营容器化工作负载时所出现的严峻挑战。对于初学者,Marathon 能够轻松利用自动化流程完成很多以往只能以手动形式解决的问题。富 Web UI 允许用户更便捷地启动并监控任何 Docker 镜像,同时对正处于运行当中的应用程序进行配置更新。 不过 Marathon 的适用范围并不局限于 Docker。事实上,它能够承载几乎任何现有应用程序,例如基于 JVM 的应用、Ruby 脚本或者简单的Bsh shell 脚本。这能够切实帮助用户完成从传统架构到全面容器化工作负载的过渡。 在典型设置当中,DevOps 人员需要以脚本化模式使用 REST API,从而将存在依赖性的多款应用乃至应用群组作为单一单元进行启动。考虑到Marathon 利用 Apache Mesos 在设备集群当中启动应用程序,因此其必须能够以自动化方式实现各集群节点对接并将负载扩散至某应用程序的多个实例当中。Marathon 能够直接完成这两项任务,同时利用 Mesos-DNS 实现服务发现、通过 Marathon-lb 实现负载均衡。 Marathon 的其它重要特性还包括:
  • 支持零停机时间部署,包括滚动部署、蓝绿部署与金丝雀部署模式。
  • 基于 HTTP、TCP 以及命令之应用程序运行状态检查。
  • 指标发送与收集集成(包括 Graphite、DataDog 以及StatsD)。
  • 具备一套强大的事件总线,使得 DevOps 人员以编程化方式通过定制化模式实现应用程序变更响应。
  • 具备用于应对网络与节点故障的弹性,且同时适用于 Marathon 本身及其管理的应用程序。
  • 包括用户认证以及基于角色访问控制在内的多种安全功能。
  • 采用一套灵活的插件架构,使得插件能够被定制化集成至现有企业IT环境当中。

特别值得强调的是,Marathon 能够轻松实现容器实例规模扩展。在去年8月召开的 MesosCon 大会上,DCOS 客户 Verizon 在现场做出了演示,其中 Marathon 在一分钟之内成功启动了5万套 Docker 容器系统。

正因为如此,当我们谈及将 DCOS 引入企业级生产环境并针对庞大规模Docker 容器作为可扩展管理选项时,我们对其能力充满信心。



Marathon 的未来更值得期待

之前说了这么多,介绍的主要是 Marathon 技术团队过去几年内通过辛勤努力实现的平台可靠性与功能集改进。展望未来,Marathon团队已经制定出极具野心的发展路线图——包括即将实现的数据库等状态化应用程序支持能力——旨在确保Marathon项目能够继续成为企业将容器化战略引入生产环境时的首选平台。

本文来自数人云独家授权发布
引用

2016年3月18日-19日,由CSDN重磅打造的数据库核心技术与实战应用峰会、互联网应用架构实战峰会将在上海举行。这两场峰会将邀请业内顶尖的架构师和技术专家,共同探讨高可用/高并发系统架构设计、新技术应用、移动应用架构、微服务、智能硬件架构、云数据库实战、新一代数据库平台、产品选型、性能调优、大数据应用实战等领域的热点话题与技术。

2月29日24点前仍处于最低六折优惠票价阶段,单场峰会(含餐)门票只需799元,5人以上团购或者购买两场峰会通票更有特惠,限量供应,预购从速。(票务详情链接)。
  • 大小: 129.7 KB
  • 大小: 143.7 KB
  • 大小: 321.6 KB
来自: 极客头条
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 利用JavaScript创建模态非模态对话框

    利用JavaScript创建模态非模态对话框,其使用方法在本人的博客中有说明,在这仅给出其相关的示例程序

  • JavaScript窗口功能指南之创建对话框

    JavaScript窗口功能指南之创建对话框(作者:听风编译 2001年01月19日 11:35)  JavaScript支持几种内建的对话框:window.alert()、window.confirm()以及window.prompt()。当弹出一个对话框时,用户就不可以再聚焦到初始页面,除非对话框操作结束。换言之,对话框永远是被聚焦的。Internet Explorer支持一些方法,使用它们能

  • js实现自定义唤起文件选择窗口获取文件

    【代码】js实现自定义唤起文件选择窗口获取文件。

  • javascript打开选择对话框/保存对话框

    【引用地址】http://hi.baidu.com/rayshow/blog/item/9102258daac46810b31bbad3.html 在浏览器中虽然打开选择对话框和保存文件对话框的功能并不常使用,但有时仍然会用得上,比如一个web版的播放器,让用户选择本地的视频或音频文件等。对于打开选择文件对话框来说,相对比较简单,只需要在页面内放一个file标签,可以将其display设置为no

  • Javascript中打开文件对话框

          笔者在做一个项目中需要这样一个功能:在网页上按下一个按钮,然后打开一个“另存为”的对话框。       原来用VC做过这样的功能,在网页上实现还是头一回。上google、csdn和msdn搜索相关的方案,终于找到了。使用MSComDlg.CommonDialog完全可以满足这个功能。程序如下:

  • js 打开选择本地文件对话框 及 获取选择文件中的内容

    给按钮添加以下点击事件,点击后弹出选择本地文件的对话框: xml_openSelectionBox() { var inputObj=document.createElement('input') inputObj.setAttribute('id','my_inputObj'); inputObj.setAttribute('type','file'); .

  • javascript选择框和选择文本的创建与增加以及设置选中项

    【代码】javascript选择框和选择文本的创建与增加以及设置选中项。

  • js制作一个简易聊天对话框,javascript消息对话框

    可以实现实时交互文字以及语音聊天功能。

  • js弹出框、对话框、提示框、弹窗总结

    一、JS的三种最常见的对话框[javascript二、点击按钮时常用的6中提示框和操作[html] 三、弹出独立窗口[javascript] 参数解释:window.open 弹出新窗口的命令; ‘page.html’ 弹出窗口的文件名; ‘newwindow’ 弹出窗口的名字(不是文件名),非必须,可用空”代替;   height=100 窗口高度;   width=400 窗口宽度;   top=0 窗口距离屏幕上方的象素值;   left=0 窗口距离屏幕左侧的象素值;   toolba

  • javascript自定义的对话框

     自定义对话框,demo 最新版请查看这里:http://code.google.com/p/cyy0523xc/source/browse/trunk/cyyDialogBox/cyyDialogBox.js  /** * 显示对话框,包括自定义内容对话框和常见对话框(常见对话框可以设置按钮点击事件处理函数). * 参考了(特别是样式方面)http://www.lei

  • Javascript文件对话框

    function SaveToDisk(fileURL, fileName) { // for non-IE if (!window.ActiveXObject) { var save = document.createElement('a'); save.href = fileURL; save.target = '_blank';

  • 通过Javascript创建一个选择文件的对话框代码

    通过Javascript创建一个选择文件的对话框代码,需要的朋友可以参考下

  • js中三种对话框

    javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现与用户能进行交互的js代码。 alert()、confirm()、prompt()的区别和联系: 1.警告框alert() alert是警告框,只有一个按钮“确定”无返回值,警告框经常用于确保用户可以得到某些...

  • JavaScript 自制模态对话框

    预备知识:HTML CSS: position;opacity;z-index;margin...... JS:document.getElementById('id1').classList.remove('hide'); document.getElementById('id1').classList.add('hide');完整代码:<!DOCTYPE html> <html lang=

  • js中的三个对话框

    可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。一下的window都可以省略不写。 1.警告框 语法:window.alert(“sometext”); 参数一:警告框里的提示内容。 警告框经常用于确保用户可以得到某些信息。 当警告框出现后,用户需要点击确定按钮才能继续进行操作。 2.确认框 语法:window.confirm(“sometxt”) 参数一:确认框里的提示内容 返回值:布尔值 确认框通常用于验证是否接受用户操作。 当确认卡弹出时,用户可以点击 “确认” 或者 “取消”

  • js 基础 实现对话框

    js基础 实现对话框

  • JS对话框框架

    基本的对话框窗口是一个定位于视区中的覆盖层,同时通过一个 iframe 与页面内容分隔开(就像 select 元素)。它由一个标题栏和一个内容区域组成,且可以移动,调整尺寸,默认可通过 'x' 图标关闭。                中文帮助文档:http://aui.github.io/artDialog/doc/index.html     常见的js对话框框架有Jquery UI

  • JavaScript 练手小技巧:HTML5 的 dialog 标签制作对话框

    对话框,在应用中常常用来做(如,登录、删除信息等)。

Global site tag (gtag.js) - Google Analytics