小数点分享: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项目能够继续成为企业将容器化战略引入生产环境时的首选平台。
原文链接: MEET MARATHON: PRODUCTION-READY CONTAINER ORCHESTRATION AT SCALE
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。