阅读更多
摘要:目前分布式应用越来越普遍,而这股热潮似乎已涌入到数据中心管理领域。近日Apache Mesos联合创始人Benjamin Hindman撰文分析当前分布式应用的现状、开发者/运营者面临的困境及解决之道!

【编者按】 目前分布式应用越来越普遍,而这股热潮似乎也正在涌入到传统的数据中心管理领域。然而却不利于开发者/运营者,这是因为这些应用不再仅限于在一台服务器上工作,更多地会是在数据中心多个服务器之间进行工作。如此一来,加重了开发者/运营者的工作负担。近日,Benjamin Hindman撰文,详细分析了现在分布式应用的现状、开发者/运营者面临的困境及解决之道!

译文如下:



现在有很多新型应用层出不穷,这些应用不再仅限于在一台服务器上工作,更多地会是在数据中心多个服务器之间进行工作。例如集群计算系统Apache Hadoop和Apache Spark,消息处理系统Apache Kafka,键值存储数据库系统Apache Cassandra等。这些新型应用都属于分布式应用,同样地为数据中心编写分布式系统也日渐变得流行起来。但是,要开发者编写分布式系统是困难的,运营分布式系统对运营人员来说也是是困难的。为什么呢?因为开发者和运营者往往容易被一个错误的概念误导了:机器。

一、发展瓶颈 机器是错误的抽象概念

对于创建和运行分布式应用,机器概念的存在不啻是个绊脚石。为开发者带来了多余的工作负担,从而使开发者受限于机器类特性,例如IP地址和本地存储。这使得移动和重设应用变得困难甚至无法进行,同时使得数据中心的维护工作变得痛苦和漫长。

机器概念会使运行者进行系统部署时,以最简单和保守的单机单应用的方式进行。这不利于资源优化,因为机器和应用彼此之间没有做到精确匹配,数据中心变得非常静态化和低延展性。

同时企业也不得不聘用大量人员为这些单应用机器进行大量的人工操作,而人在这过程中会逐渐成为新系统新应用的发展瓶颈。

数据中心operating system(以下简称OS)正当其时

首先想象下以数据中心的方式来在个人电脑上运行程序。每当我们启动浏览器,我们不得不指定需要使用哪个CPU,需要寻址哪个内存模块等等。得益于强大的操作系统,我们都不必为这些而烦恼。

二、理想中的数据中心的操作系统应该是什么样的呢?

从运营者角度来说,数据中心OS可管控数据中心的所有机器并把它们聚集成一个巨型资源池来运行程序。所有应用都可在任意可用机器上运行。

从开发者角度来说,数据中心OS可作为应用和机器之间的中间件来运行,提供公共操作库来帮助和简化分布式应用的搭建。

它不需要直接替代用Linux或其它常用的主机OS,而应该是能够提供一个构建于主机OS之上的软件堆栈,用于进行资源管理和进程隔离。

数据中心Operating System API

该API将有助于分布式应用进行资源的分配和销毁,启动、监控、和销毁进程,等等。

基本操作示例

数据中心OS的两个基本操作是服务探索和服务协调。不同于单主机只有相当少的应用需要知道在同一主机上运行了多少个应用,服务探索是分布式应用的基本需求。换句话说,分布式应用应具有高可用性和高容错能力。

这两个基本操作一方面简化了部署工作,另一方面也增强了可移植性。它使得无需重写代码来变更底层实施方式。

部署应用的新方式

数据中心OS应提供一个软件接口来替代人工接口来与开发者进行交互,进行应用的部署工作。开发者借助数据中心OS(例如CLI或者GUI)来执行应用,程序执行则借助数据中心OS API。

这样的服务接口有助于分离运营者和用户的关注点:运营者为每个用户分配了具体的可用资源,用户可执行任意程序使用任意可用资源。由于大多数的分布式应用具有复杂的调度需求(例如Apache Hadoop)和特殊的错误修复需求(例如数据库),使用软件代替人工干预是对数据中心OS来说是有决定性意义的。

“云”不是一个OS

——我们为什么需要新的OS呢?IaaS和PaaS不是已经能解决这些问题吗?


IaaS目前还仅着重于机器层面的操作,被设计用于进行人工操作,提供的是虚拟机的操作。它可使一个机器变成多个机器,但是没有提供能够帮助开发者进行分布式应用搭建的基本操作。

PaaS虽然脱离了机器层面,但是仍然着重的是人工操作。很多PaaS解决方案都含有很多间接服务和整合能帮助搭建分布式应用,但是不能实现与其它PaaS方案的可移植操作。

分布式系统的核心:Apache Mesos

Apache Mesos是由加州大学伯克利分校的AMPLab首先开发的一款开源群集管理软件,其提供了一个便捷的API用来创建和运行分布式应用程序。目前已经有不少的分布式系统直接构建于Mesos之上,包括:Apache Spark,Apache Aurora,Airbnb’sChronos以及Mesosphere’s Marathon。除此以外,还有多个流行系统与Mesos相连运行于其之上,例如:Apache Hadoop,Apache Storm,Google’s Kubernetes等。Twitter和Airbnb等企业已经开始把Mesos应用于数据中心的运营中。(推荐阅读:Mesos渐入主流

然而Mesos还在发展中暂时不能算一个完全独立的数据中心OS,现在还需要与其它分布式系统配合使用。从模块化的角度来说,以Mesos为基础的数据中心OS的构成是这样的:核心(Mesos),分布式初始化脚本(Marathon/Aurora),计划任务工具(Chronos)等。

PS:数据中心对操作系统的需求正在不断增加,但真正关于数据中心操作系统的开发仍然众说纷纭。 

英文出自:Radar.oreilly
  • 大小: 23.5 KB
来自: CSDN
0
0
评论 共 1 条 请登录后发表评论
1 楼 xiongxiongxion 2014-12-10 09:29
不知所云。。。。

发表评论

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

相关推荐

  • mesos:Apache Mesos

    Apache Mesos是一个群集管理器,可提供有效的资源隔离和跨分布式应用程序或框架的共享。 它可以在动态共享的节点池上运行Hadoop,Jenkins,Spark,Aurora和其他框架。 请访问访问我们。 邮件列表 () () 文献...

  • mesos-site:Apache Mesos网站

    Apache Mesos网站 content目录包含可在为该站点部署的实际文件。 请不要手动编辑content目录中的任何文件。 有关如何更新content目录的说明,请参阅 。

  • mesos-python-examples:Apache Mesos的Python框架示例

    mesos-python-examples Apache Mesos的Python框架示例。

  • awesome-mesos:关于Apache Mesos的一切

    awesome-mesos:关于Apache Mesos的一切

  • minimesos:Apache Mesos的实验和测试工具-不再需要维护!

    迷你游戏 Apache Mesos的实验和测试工具注意:不再维护! 网址: : 来源: : 邮件列表: 松弛: 文件: 推特: 影片MesosCon 2016丹佛-minimesos-Apache Mesos的实验和测试工具,作者:Frank ScholtenMinimesos简介...

  • mesos-ui:Apache Mesos的替代Web UI,使用和React.JS构建

    Mesos用户界面 使用Node.js,React.js构建的Apache Mesos响应式实时仪表板。单独使用,同时保留默认的Mesos UI。 您可以通过docker以独立模式运行和部署此应用,例如: docker run -p 5000:5000 -e ZOOKEEPER_...

  • ansible-mesos-cluster:Ansible剧本,用于构建多节点Apache Mesos集群

    ansible-mesos群集Ansible剧本,用于构建多节点Apache Mesos集群。集群配置在运行剧本之前,您需要在group_vars/all修改变量。 mesos_pkg_version是由mesos_pkg_version发布的Debian软件包。 marathon_pkg_version是...

  • mesos-vagrant:一个用于玩弄 Apache Mesos 和 Marathon 的流浪开发环境

    流浪者一个用来玩 Apache Mesos 和 PAAS Marathon 的流浪开发环境。 该框架由 HA 中的 duel mesos masters、四个 mesos slaves、一个私有托管的 docker register 和 Jenkins docker build (hub101) 组成。 您可以在 ...

  • perl-mesos:Apache Mesos的Perl绑定

    perl-mesos:Apache Mesos的Perl绑定

  • mesos-wildfly:Apache Mesos上的Jboss WildFly-正在进行中

    Apache Mesos上的Jboss WildFly 该项目的目标是提供使用单个命令在具有多个节点的域模式下运行Jboss WildFly的Mesos框架。 进展中的项目-即将推出我考虑使用WildFly Swarm。

  • reading-and-annotate-mesos-1.2.0:Apache开源分布式资源管理框架mesos原始代码注释分析,添加mesos_framework_demo,带详细注释

    阅读并注释mesos-1.2.0 Apache开源分布式资源管理框架mesos原始代码注释分析,添加mesos_framework_demo,带详细注释相关参考资料: LXC原始代码分析参考: docker源码注释分析参考:

  • 分布式计算平台架构及调度策略研究——基于Mesos的实践探索

    Mesos是一个由Apache基金会贡献给Apache孵化器的分布式系统内核框架,用于管理集群资源,支持多种编程语言运行环境的应用程序部署、弹性扩展等功能。作为一种集群管理软件,Mesos拥有完整的生命周期管理、资源隔离、...

  • mesoslxc:适用于LXC容器的Apache Mesos外部容器化器和执行器

    中观适用于LXC容器的Apache Mesos外部容器化器和执行器

  • 玩转大数据18:大规模数据处理与分布式任务调度

    大规模数据处理与分布式任务调度是大数据领域中至关重要的技术之一。随着数据量的不断增长和数据处理需求的日益复杂,如何有效地管理和调度大规模数据成为了一个亟待解决的问题。在这个领域,采用合适的工具和技术...

  • QoSon:Mesos框架通过分布式遥测解决网络退化

    服务质量 Mesos框架通过分布式遥测解决网络退化

  • paasta:开放的分布式平台即服务

    PaaSTA是一个高度可用的分布式系统,用于使用容器和Apache Mesos构建,部署和运行服务! 想更多地了解PaaSTA为何与众不同的背后观点? 查看。 注意:PaaSTA在Yelp的生产环境中已经运行了很多年,并且在代码库中...

  • storm-marathon:Apache Storm 0.9.3-rc1 Docker 集群使用 Marathon 部署在 Apache Mesos 上

    在高可用性模式下运行 Apache Storm 0.9.3... Docker 允许我们在 Apache Mesos 上部署任何版本的应用程序(在我们的例子中是 Storm),同时隔离进程。 类似的方法可用于以高可用性模式在 Apache Mesos 上部署任何其他分

  • polylearn-0.1.dev0-cp35-cp35m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

Global site tag (gtag.js) - Google Analytics