数人云

数人云

数人云官网
用户手册

用户手册

数人云用户手册
Mesos中文文档

Mesos中文文档

开源, 欢迎大家修改优化

玩转数人云:10分钟建立wordpress集群网站

dataman 发表了文章 • 0 个评论 • 861 次浏览 • 2015-11-19 18:35 • 来自相关话题

玩转数人云第二辑:建立能够横向扩展、负载均衡的wordpress集群网站。
 
上一辑我们介绍了如何做一个无状态的2048小游戏,现在让我们用Wordpress为例,真正的来建立一个集群生产环境。

这也不复杂,基本上还是分两步走:

第一步 建立集群(应用发布环境)​

1.1 准备主机

需要准备至少两台主机,至少一台主机拥有公网IP(用于在外网访问搭建好的wordpress站网站)。
本文中使用了6台主机为大家更好的展现如何搭建集群环境。
 
注:主机既包括可以连接互联网的物理主机,也可以是阿里云、UCloud、 AWS、Azure、首都在线和华为云等公有云上购买的任意一台云主机。

1.2 建立集群

登录数人云 www.shurenyun.com ,在集群管理中,点击"新建集群"
填写集群名称"sales_demo",选择 3 Master 高级版集群,点击完成。(如图所示)

注:创建 3 Master 集群是为了防止单点故障,保障集群的高可用。生产环境为了保证服务的高可用,我们建议选择 3 Master 或 5 Master 集群。






1.3 添加主机

将6台主机分别添加到集群"sales_demo"中
不同主机选择不同的主机类型,并根据提示安装docker和Agent。
前三台主机为Master节点,主机类型请选择"计算节点";第四台主机选择计算节点,用于部署无状态应用;第五台主机选择计算节点和外部网关。该节点主要用于外部访问,需要配置外网 IP 或域名。第六台主机选择代理节点和数据节点。数据节点,用于部署有状态的应用,如 Mysql、Redis 等;选择代理节点,是为了对内让Wordpress应用可以对接Mysql数据库。
 
节点类型定义:(一个节点可同时为多个类型)
 
计算节点:作为集群中动态可支配的计算资源,运行各种无状态应用。数据节点:将作为集群中数据持久化的节点使用,请将有状态应用(Mysql,Redis等)部署于此节点。外部网关:将用作集群应用的外部访问入口,此节点需要有固定的公网IP。内部代理:将用作集群内部不同服务之间的访问。
 
提示:
实现本案例,所需最小规模集群为2台主机,一台为 Master 节点,另一台包括所有节点类型。本次操作选用6台主机是为了向大家模拟真实集群生产环境。向同一集群添加的主机应存在于同一网段内,暂不支持跨公网的主机组建集群。






1.4 确认集群环境正常

主机添加完成后,检查主机运行是否正常,如图所示:






第二步发布应用

部署 Wordpress 应用,首先需要部署 mysql 数据库,然后部署 WordPress 服务。

2.1 新建 Mysql 应用

点击"新建应用",按照如下提示,新建Mysql应用:
填写应用名称:mysql选择集群:sales-demo添加应用镜像地址:mysql (docker官方镜像地址)填写镜像版本:latest选择应用类型:有状态应用主机选择:DB-proxy。这里的主机只能从数据节点中选择,目前只有 DB-proxy;有状态应用不能迁移,只能固定在被选择的节点上;另外,有状态应用一次只能部署一个容器;容器目录:容器内的挂载目录 本例为:/var/lib/mysql主机目录:主机上的挂载目录 本例为:/var/lib/mysql选择容器规格: CPU:0.2 内存:256 MB
 
注:容器目录,主机目录。相当于使用 docker run -v 命令挂载本地目录





高级设置:
填写应用地址: 端口:3306,类型:对内 TCP选择“对内 TCP”方式,则该应用会向内部代理注册,内部代理对外暴露3306端口;填写环境变量参数:
Key:MYSQL_ROOT_PASSWORD Value:your-password





填写完成后,点击创建即可。

2.2 新建 Wordpress 应用

点击新建应用,按照如下提示,新建 Wordpress 应用:
填写应用名称:wordpress选择集群:salesdemo添加应用镜像地址:wordpress (docker官方镜像地址)填写镜像版本:latest选择应用类型:无状态应用选择容器规格: CPU:0.2 内存:256 MB容器个数:2 (可根据需要设置实例个数)






高级设置:

填写应用地址: 端口:80,类型:对外 HTTP,域名:your-website

注:由于 Wordpress 是 HTTP 应用,并需要对外服务发现,因此选择对外标准 HTTP,会对外暴露 80 端口;同时,需要填写域名:your-website;

填写环境变量参数:Key:WORDPRESS_DB_HOST Value:10.3.10.63:3306
Key:WORDPRESS_DB_USER Value:root
Key:WORDPRESS_DB_PASSWORD Value:your-password
 
注1:应用地址选择对外标准 HTTP 时,需要配置相应的域名或外网 IP 到对外网关节点,以确保可以通过公网进行访问;

注2:配置 mysql 地址的环境变量时,mysql 地址应该为内部代理的 IP 和 mysql 的映射端口,根据上述 mysql 配置,该地址为10.3.10.63:3306 (该地址可以在应用详情页的"配置"项中查看)。






WordPress集群网站建设完成!

在应有管理中,即可看到应用已正常运行。






打开浏览器,访问地址:yma.dataman-inc.com (替换成你的域名或者网关 IP),看到如下页面,则说明 Wordpress 应用已经成功运行。






恭喜,现在你已经拥有了一个小型的 Wordpress 站点,并且为 web server 创建了 2 个实例,实现了最基础的横向扩展和负载均衡! 查看全部
玩转数人云第二辑:建立能够横向扩展、负载均衡的wordpress集群网站。
 
上一辑我们介绍了如何做一个无状态的2048小游戏,现在让我们用Wordpress为例,真正的来建立一个集群生产环境。

这也不复杂,基本上还是分两步走:

第一步 建立集群(应用发布环境)​

1.1 准备主机

需要准备至少两台主机,至少一台主机拥有公网IP(用于在外网访问搭建好的wordpress站网站)。
本文中使用了6台主机为大家更好的展现如何搭建集群环境。
 
注:主机既包括可以连接互联网的物理主机,也可以是阿里云、UCloud、 AWS、Azure、首都在线和华为云等公有云上购买的任意一台云主机。

1.2 建立集群

登录数人云 www.shurenyun.com ,在集群管理中,点击"新建集群"
填写集群名称"sales_demo",选择 3 Master 高级版集群,点击完成。(如图所示)

注:创建 3 Master 集群是为了防止单点故障,保障集群的高可用。生产环境为了保证服务的高可用,我们建议选择 3 Master 或 5 Master 集群。

create-cluster2.png


1.3 添加主机

将6台主机分别添加到集群"sales_demo"中
不同主机选择不同的主机类型,并根据提示安装docker和Agent。
  • 前三台主机为Master节点,主机类型请选择"计算节点";
  • 第四台主机选择计算节点,用于部署无状态应用;
  • 第五台主机选择计算节点和外部网关。该节点主要用于外部访问,需要配置外网 IP 或域名。
  • 第六台主机选择代理节点和数据节点。数据节点,用于部署有状态的应用,如 Mysql、Redis 等;选择代理节点,是为了对内让Wordpress应用可以对接Mysql数据库。

 
节点类型定义:(一个节点可同时为多个类型)
 
  • 计算节点:作为集群中动态可支配的计算资源,运行各种无状态应用。
  • 数据节点:将作为集群中数据持久化的节点使用,请将有状态应用(Mysql,Redis等)部署于此节点。
  • 外部网关:将用作集群应用的外部访问入口,此节点需要有固定的公网IP。
  • 内部代理:将用作集群内部不同服务之间的访问。

 
提示:
  • 实现本案例,所需最小规模集群为2台主机,一台为 Master 节点,另一台包括所有节点类型。本次操作选用6台主机是为了向大家模拟真实集群生产环境。
  • 向同一集群添加的主机应存在于同一网段内,暂不支持跨公网的主机组建集群。


add-host2.png


1.4 确认集群环境正常

主机添加完成后,检查主机运行是否正常,如图所示:

add-host3.png


第二步发布应用

部署 Wordpress 应用,首先需要部署 mysql 数据库,然后部署 WordPress 服务。

2.1 新建 Mysql 应用

点击"新建应用",按照如下提示,新建Mysql应用:
  • 填写应用名称:mysql
  • 选择集群:sales-demo
  • 添加应用镜像地址:mysql (docker官方镜像地址)
  • 填写镜像版本:latest
  • 选择应用类型:有状态应用
  • 主机选择:DB-proxy。这里的主机只能从数据节点中选择,目前只有 DB-proxy;有状态应用不能迁移,只能固定在被选择的节点上;另外,有状态应用一次只能部署一个容器;
  • 容器目录:容器内的挂载目录 本例为:/var/lib/mysql
  • 主机目录:主机上的挂载目录 本例为:/var/lib/mysql
  • 选择容器规格: CPU:0.2 内存:256 MB

 
注:容器目录,主机目录。相当于使用 docker run -v 命令挂载本地目录
add-mysql2.png


高级设置:
  • 填写应用地址: 端口:3306,类型:对内 TCP
  • 选择“对内 TCP”方式,则该应用会向内部代理注册,内部代理对外暴露3306端口;
  • 填写环境变量参数:

Key:MYSQL_ROOT_PASSWORD Value:your-password

add-mysql3.png


填写完成后,点击创建即可。

2.2 新建 Wordpress 应用

点击新建应用,按照如下提示,新建 Wordpress 应用:
  • 填写应用名称:wordpress
  • 选择集群:salesdemo
  • 添加应用镜像地址:wordpress (docker官方镜像地址)
  • 填写镜像版本:latest
  • 选择应用类型:无状态应用
  • 选择容器规格: CPU:0.2 内存:256 MB
  • 容器个数:2 (可根据需要设置实例个数)


add-wordpress1.png


高级设置:

填写应用地址: 端口:80,类型:对外 HTTP,域名:your-website

注:由于 Wordpress 是 HTTP 应用,并需要对外服务发现,因此选择对外标准 HTTP,会对外暴露 80 端口;同时,需要填写域名:your-website;

填写环境变量参数:
Key:WORDPRESS_DB_HOST Value:10.3.10.63:3306 
Key:WORDPRESS_DB_USER Value:root
Key:WORDPRESS_DB_PASSWORD Value:your-password

 
注1:应用地址选择对外标准 HTTP 时,需要配置相应的域名或外网 IP 到对外网关节点,以确保可以通过公网进行访问;

注2:配置 mysql 地址的环境变量时,mysql 地址应该为内部代理的 IP 和 mysql 的映射端口,根据上述 mysql 配置,该地址为10.3.10.63:3306 (该地址可以在应用详情页的"配置"项中查看)。

add-wordpress2.png


WordPress集群网站建设完成!

在应有管理中,即可看到应用已正常运行。

app-list.png


打开浏览器,访问地址:yma.dataman-inc.com (替换成你的域名或者网关 IP),看到如下页面,则说明 Wordpress 应用已经成功运行。

wordpress.png


恭喜,现在你已经拥有了一个小型的 Wordpress 站点,并且为 web server 创建了 2 个实例,实现了最基础的横向扩展和负载均衡!

玩转数人云:两步发布2048游戏应用

dataman 发表了文章 • 0 个评论 • 1300 次浏览 • 2015-11-18 19:47 • 来自相关话题

小编的话:用数人云可以做很多事,但凡是都从简单做起。让我们先通过发布一款2048小游戏来熟悉数人云吧。
 
第一步建立集群(应用发布环境)
 
只需要准备一台主机,建议选择带公网IP地址的主机。

主机可以是可以连接互联网的物理主机,也可以是阿里云、Ucloud、 AWS、Azure、首都在线、华为云等公有云上购买的任意一台云主机。
 
1. 新建集群
 
登录账户后,在集群管理中,点击"新建集群"
填写集群名称(2048-demo),选择初级版 1 Master集群,点击完成。(如图所示)





 
2. 添加主机

点击"添加主机",填写主机名"2048-host", 将主机类型设置为"计算节点"和"外部网关",并根据提示在您的主机上依次执行以下命令来安装Docker和Agent. 安装完毕后点击"完成"即可。(如图所示)

注:外部网关节点需要配置可访问域名或外网 IP,以便实现外网访问。






确认主机正常运行,如图所示:






第二步新建2048应用

找到镜像、发布应用就可以玩啦~

1. 找到或制作2048游戏镜像

我们选择Docker官方镜像库的2048游戏镜像,镜像地址是:

blackicebird/2048

2. 新建2048游戏应用

选择"应用管理"中的"新建应用"
填写"应用名称",选择集群"2048-demo"
填写镜像地址,镜像版本:latest
高级设置中将端口80,映射为"对外HTTP访问",映射到外部网关节点的域名或对外 IP ,如图所示:






确认应用正常运行,如图所示:






let's play !

通过主机的外网IP地址,或与该主机绑定的域名,就可以访问2048游戏啦!





感谢开发者:alexwhen 的支持,本教程使用的镜像源自于Docker Hub 镜像:alexwhen/docker-2048  查看全部
小编的话:用数人云可以做很多事,但凡是都从简单做起。让我们先通过发布一款2048小游戏来熟悉数人云吧。
 
第一步建立集群(应用发布环境)
 
只需要准备一台主机,建议选择带公网IP地址的主机。

主机可以是可以连接互联网的物理主机,也可以是阿里云、Ucloud、 AWS、Azure、首都在线、华为云等公有云上购买的任意一台云主机。
 
1. 新建集群
 
登录账户后,在集群管理中,点击"新建集群"
填写集群名称(2048-demo),选择初级版 1 Master集群,点击完成。(如图所示)

create-cluster2.png

 
2. 添加主机

点击"添加主机",填写主机名"2048-host", 将主机类型设置为"计算节点"和"外部网关",并根据提示在您的主机上依次执行以下命令来安装Docker和Agent. 安装完毕后点击"完成"即可。(如图所示)

注:外部网关节点需要配置可访问域名或外网 IP,以便实现外网访问。

add-host2.png


确认主机正常运行,如图所示:

add-host3.png


第二步新建2048应用

找到镜像、发布应用就可以玩啦~

1. 找到或制作2048游戏镜像

我们选择Docker官方镜像库的2048游戏镜像,镜像地址是:

blackicebird/2048

2. 新建2048游戏应用

选择"应用管理"中的"新建应用"
填写"应用名称",选择集群"2048-demo"
填写镜像地址,镜像版本:latest
高级设置中将端口80,映射为"对外HTTP访问",映射到外部网关节点的域名或对外 IP ,如图所示:

add-app2.png


确认应用正常运行,如图所示:

add-app3.png


let's play !

通过主机的外网IP地址,或与该主机绑定的域名,就可以访问2048游戏啦!

2048.png

感谢开发者:alexwhen 的支持,本教程使用的镜像源自于Docker Hub 镜像:alexwhen/docker-2048 

数人云可否用于devops?

prometheus 回复了问题 • 4 人关注 • 4 个回复 • 670 次浏览 • 2015-11-18 18:20 • 来自相关话题

显示出现错位怎么办?

dataman 回复了问题 • 2 人关注 • 1 个回复 • 510 次浏览 • 2015-11-18 15:30 • 来自相关话题

数人云公测啦~

dataman 发表了文章 • 2 个评论 • 312 次浏览 • 2015-11-18 15:16 • 来自相关话题

让大家久等啦! 云操作系统"数人云"即日起正式公测。我们期待与您交流,一同迈向美好的云时代~
 
注册试用:www.shurenyun.com 
 
 
不会用怎么办?
 
请参考数人云用户手册:doc.shurenyun.com
 
也可以直接在咱们数人之家提问哦:open.shurenyun.com 
 
 
有问题建议如何反馈呢?

直接在数人之家吐槽:open.shurenyun.com
 
发邮件给COO:xielebing@shurenyun.com 
 
 
  查看全部
让大家久等啦! 云操作系统"数人云"即日起正式公测。我们期待与您交流,一同迈向美好的云时代~
 
注册试用:www.shurenyun.com 
 
 
不会用怎么办?
 
请参考数人云用户手册:doc.shurenyun.com
 
也可以直接在咱们数人之家提问哦:open.shurenyun.com 
 
 
有问题建议如何反馈呢?

直接在数人之家吐槽:open.shurenyun.com
 
发邮件给COO:xielebing@shurenyun.com 
 
 
 

如何利用Mesos与Marathon最大程度发掘AWS公有云潜能

dataman 发表了文章 • 0 个评论 • 641 次浏览 • 2015-11-18 12:44 • 来自相关话题

【编者的话】Mesos往往以其在大规模生产环境下的成熟案例为大家所熟知。但其实Mesos对于互联网初创企业也是非常有用的。最显著的一点就是:从一开始就使用基于Mesos的云操作系统,让一套IT构架就能支撑不同阶段业务的飞速发展。并让技术人员更关注业务,而不是把精力花在服务器配置上。借用Rahman的一句话,"只要大家拥有一台以上的服务器,都有理由来尝试云操作系统。"

 美国初创公司Mattermark采用Mesos技术

Mattermark是一家专门面向私营企业交付数据的高人气初创企业。作为初创公司,其IT基础设施规模还是相对较小的。不过正是凭借着这种初创特质,其也得以顺利摆脱了众多规模更大且更为成熟的企业所难以解决的运营效率低下难题。与众多大型企业一样,Mattermark公司同样使用Apache Mesos以及Marathon框架来解决自身面对的独特问题。
 
这家诞生刚刚两年的年轻公司,仅仅运行着一些Amazon Web Services实例,存储着GB级别大小的数据,却认为他们的IT架构已经变得不可为继,会在不远的将来影响业务的发展。在这方面,最突出的实际难题就是数据处理任务,特别是Mattermark在日常运营当中不可避免的大量数据挖掘、机器学习以及索引工作——过去,这些工作一直在以缺乏充分理论指导的随意方式进行。

“我们拥有大量运行着重要工作内容的EC2实例,但没人了解其具体运行机制,”Mattermark公司机器学习工程师Samiur Rahman解释称。“这确实非常麻烦。”

该公司的管理层意识到,要想真正为各私营企业客户提供可靠的数据源,必须要对现有运营机制进行整顿。“我们很清楚,未来的一到两年内公司规模会出现持续扩张,”Rahman表示。“所以我们要么继续安于现有环境并不断加以构建,要么就像其它企业那样全盘淘汰现有设施并直接向现代基础设施转移。”
 
利用Mesos进行基础设施调度

Mattermark公司在几个月之前决定利用Mesos对自身基础设施进行重新设计,而且同时针对新系统提供了几项必须能够实现的特殊要求:
需要在开发人员与公司AWS实例之间建立一套抽象层。能够将任务分发至不同的AWS实例当中。能够根据特定任务的实际需要为其分配对应资源。面向任务调度实现高度细化的控制机制。对资源进行隔离以避免相邻实例争夺资源的问题。

该公司目前在Mesos之上运行有Chronos与Marathon,而此举已经带来了理想的回报。Mattermark公司如今能够以受控方式对批量任务进行调度,同时以智能化方式将不同类型的任务运行在同一资源池中,从而提高AWS的资源利用率。举例来讲,其能够将多个低资源型网页获取任务与其它内存与CPU使用率较高的机器学习任务运行在同一个实例当中。

“能够切实完成此类资源分配(即允许这些工作负载在同一资源之上共存)的解决方案非常重要,”Rahman指出。如此一来,Mattermark公司不仅能够通过一套可靠的方式实现任务流程自动化,同时也能够在工作效果不变的前提下减少AWS实例使用量并由此降低使用成本。

相较于以往的服务器监控最佳实践,即企业需要从起始阶段就要考虑到资源占用率趋近100%时的应对措施,“我们的监控机制有所不同,因为如今80%到90%才是理想的资源利用率,”他解释道。“这意味着我们能够更加充分地利用已有资源。”

尽管Mattermark公司目前仍有一部分工作负载运行在由Elastic Load Balancer支持的AWS裸机实例当中(即非Mesos工作节点),但Rahman强调称那些需要高可用性保障的任务已经运行在Mesos-Marathon环境之内。随着Mattermark公司不断推出新的工作负载与任务类型,其也将全部由新系统负责承载。

“我们致力于让各类工作负载与任务运行在Mesos当中,”他指出。而且由于Mattermark公司已经开始广泛利用预配置Docker容器作为应用程序运行环境,其目前能够以相对简单的方式完成各类进程由纯AWS实例迁移至运行在AWS实例之上的Mesos集群中的工作。
 
以“积极态度”迎接大数据挑战

不过就Mattermark公司的情况而言,Mesos的真正价值在于允许其保持基础设施规模与业务发展同步扩张——反之亦然。换言之,让IT资源随着业务的发展而平滑增加,这样既不会让IT架构成为业务发展的瓶颈,也不会因需要预留大量IT资源而造成浪费。

尽管目前规模仅为150 GB的MySQL数据库很难被定义为“大数据”,但Rahman表示Mattermark公司计划在未来几年当中对其规模进行显著拓展。而其中最突出的理由就是,Mattermark公司的从业时间越长,其需要在数据库内为每家企业客户保存的数据量也就越大。

但从更具战略意义的角度出发,Mattermark公司希望能够将其数据库涵盖能力由100万家企业扩展到全球范围内的数亿家企业。随着企业客户数量的增长,其当然也希望为每位客户提供更加丰富的数据类型——包括员工数量、网站流量、融资信息、相关新闻以及社交媒体关注度等等。

“我们的业务规模取决于我们实现数据更新的速度以及将更多企业客户纳入数据库的能力,”Rahman指出。

在他看来,Mesos能够从多个角度带来助益,使得Mattermark公司更为轻松地引入各类必要的新型数据处理技术,包括Kafka以及Spark等,并在运行大规模处理任务时快速添加对应容量。总而言之,该公司在基础设施与任务之间的契合度方面投入的精力越少,那么其专注于在正确时间对正确数据进行访问、分析以及交付的能力也就越强。

初创公司也要勇于尝试Mesos或数据中心操作系统

着眼于未来,Rahman表示他希望看到Mattermark公司将运营体系由开源Mesos迁移至Mesosphere数据中心操作系统(国内的朋友可以选择数人云哦),这在很大程度上意味着摆脱软件组件更新以及漏洞修复等工作带来的困扰。尽管目前尚在对DCOS的Early Access版本进行早期实验,但他已经可以在30分钟之内设置起一套以往通常需要数个星期才能搭建完成的系统。

“初创企业应该了解DCOS,因为它能够让运营工作变得更为轻松,”他解释称。另外,初创企业不必因为的自己运营规模并不像Yelp、苹果或者是Twitter那么庞大,而害怕尝试DCOS或者是开源Mesos组件。

“Mesos天然具备的开发者自由空间与良好运营效率让我们从系统重新设计当中获得了切实回报,”Rahman总结称。“只要大家拥有一台以上的服务器,都有理由在这方面做出尝试。”
“我们希望运营体系能够时刻为规模伸缩做好准备,从而帮助我们获取更多数据并从其中发掘出更多有价值信息,”Rahman表示。“另外,我们也希望能够继续保持向客户交付数据的速度。”
 
英文原文:https://mesosphere.com/blog/2015/10/27/mattermark-mesos-aws/  查看全部
【编者的话】Mesos往往以其在大规模生产环境下的成熟案例为大家所熟知。但其实Mesos对于互联网初创企业也是非常有用的。最显著的一点就是:从一开始就使用基于Mesos的云操作系统,让一套IT构架就能支撑不同阶段业务的飞速发展。并让技术人员更关注业务,而不是把精力花在服务器配置上。借用Rahman的一句话,"只要大家拥有一台以上的服务器,都有理由来尝试云操作系统。"

 美国初创公司Mattermark采用Mesos技术

Mattermark是一家专门面向私营企业交付数据的高人气初创企业。作为初创公司,其IT基础设施规模还是相对较小的。不过正是凭借着这种初创特质,其也得以顺利摆脱了众多规模更大且更为成熟的企业所难以解决的运营效率低下难题。与众多大型企业一样,Mattermark公司同样使用Apache Mesos以及Marathon框架来解决自身面对的独特问题。
 
这家诞生刚刚两年的年轻公司,仅仅运行着一些Amazon Web Services实例,存储着GB级别大小的数据,却认为他们的IT架构已经变得不可为继,会在不远的将来影响业务的发展。在这方面,最突出的实际难题就是数据处理任务,特别是Mattermark在日常运营当中不可避免的大量数据挖掘、机器学习以及索引工作——过去,这些工作一直在以缺乏充分理论指导的随意方式进行。

“我们拥有大量运行着重要工作内容的EC2实例,但没人了解其具体运行机制,”Mattermark公司机器学习工程师Samiur Rahman解释称。“这确实非常麻烦。”

该公司的管理层意识到,要想真正为各私营企业客户提供可靠的数据源,必须要对现有运营机制进行整顿。“我们很清楚,未来的一到两年内公司规模会出现持续扩张,”Rahman表示。“所以我们要么继续安于现有环境并不断加以构建,要么就像其它企业那样全盘淘汰现有设施并直接向现代基础设施转移。”
 
利用Mesos进行基础设施调度

Mattermark公司在几个月之前决定利用Mesos对自身基础设施进行重新设计,而且同时针对新系统提供了几项必须能够实现的特殊要求:
  • 需要在开发人员与公司AWS实例之间建立一套抽象层。
  • 能够将任务分发至不同的AWS实例当中。
  • 能够根据特定任务的实际需要为其分配对应资源。
  • 面向任务调度实现高度细化的控制机制。
  • 对资源进行隔离以避免相邻实例争夺资源的问题。


该公司目前在Mesos之上运行有Chronos与Marathon,而此举已经带来了理想的回报。Mattermark公司如今能够以受控方式对批量任务进行调度,同时以智能化方式将不同类型的任务运行在同一资源池中,从而提高AWS的资源利用率。举例来讲,其能够将多个低资源型网页获取任务与其它内存与CPU使用率较高的机器学习任务运行在同一个实例当中。

“能够切实完成此类资源分配(即允许这些工作负载在同一资源之上共存)的解决方案非常重要,”Rahman指出。如此一来,Mattermark公司不仅能够通过一套可靠的方式实现任务流程自动化,同时也能够在工作效果不变的前提下减少AWS实例使用量并由此降低使用成本。

相较于以往的服务器监控最佳实践,即企业需要从起始阶段就要考虑到资源占用率趋近100%时的应对措施,“我们的监控机制有所不同,因为如今80%到90%才是理想的资源利用率,”他解释道。“这意味着我们能够更加充分地利用已有资源。”

尽管Mattermark公司目前仍有一部分工作负载运行在由Elastic Load Balancer支持的AWS裸机实例当中(即非Mesos工作节点),但Rahman强调称那些需要高可用性保障的任务已经运行在Mesos-Marathon环境之内。随着Mattermark公司不断推出新的工作负载与任务类型,其也将全部由新系统负责承载。

“我们致力于让各类工作负载与任务运行在Mesos当中,”他指出。而且由于Mattermark公司已经开始广泛利用预配置Docker容器作为应用程序运行环境,其目前能够以相对简单的方式完成各类进程由纯AWS实例迁移至运行在AWS实例之上的Mesos集群中的工作。
 
以“积极态度”迎接大数据挑战

不过就Mattermark公司的情况而言,Mesos的真正价值在于允许其保持基础设施规模与业务发展同步扩张——反之亦然。换言之,让IT资源随着业务的发展而平滑增加,这样既不会让IT架构成为业务发展的瓶颈,也不会因需要预留大量IT资源而造成浪费。

尽管目前规模仅为150 GB的MySQL数据库很难被定义为“大数据”,但Rahman表示Mattermark公司计划在未来几年当中对其规模进行显著拓展。而其中最突出的理由就是,Mattermark公司的从业时间越长,其需要在数据库内为每家企业客户保存的数据量也就越大。

但从更具战略意义的角度出发,Mattermark公司希望能够将其数据库涵盖能力由100万家企业扩展到全球范围内的数亿家企业。随着企业客户数量的增长,其当然也希望为每位客户提供更加丰富的数据类型——包括员工数量、网站流量、融资信息、相关新闻以及社交媒体关注度等等。

“我们的业务规模取决于我们实现数据更新的速度以及将更多企业客户纳入数据库的能力,”Rahman指出。

在他看来,Mesos能够从多个角度带来助益,使得Mattermark公司更为轻松地引入各类必要的新型数据处理技术,包括Kafka以及Spark等,并在运行大规模处理任务时快速添加对应容量。总而言之,该公司在基础设施与任务之间的契合度方面投入的精力越少,那么其专注于在正确时间对正确数据进行访问、分析以及交付的能力也就越强。

初创公司也要勇于尝试Mesos或数据中心操作系统

着眼于未来,Rahman表示他希望看到Mattermark公司将运营体系由开源Mesos迁移至Mesosphere数据中心操作系统(国内的朋友可以选择数人云哦),这在很大程度上意味着摆脱软件组件更新以及漏洞修复等工作带来的困扰。尽管目前尚在对DCOS的Early Access版本进行早期实验,但他已经可以在30分钟之内设置起一套以往通常需要数个星期才能搭建完成的系统。

“初创企业应该了解DCOS,因为它能够让运营工作变得更为轻松,”他解释称。另外,初创企业不必因为的自己运营规模并不像Yelp、苹果或者是Twitter那么庞大,而害怕尝试DCOS或者是开源Mesos组件。

“Mesos天然具备的开发者自由空间与良好运营效率让我们从系统重新设计当中获得了切实回报,”Rahman总结称。“只要大家拥有一台以上的服务器,都有理由在这方面做出尝试。”
“我们希望运营体系能够时刻为规模伸缩做好准备,从而帮助我们获取更多数据并从其中发掘出更多有价值信息,”Rahman表示。“另外,我们也希望能够继续保持向客户交付数据的速度。”
 
英文原文:https://mesosphere.com/blog/2015/10/27/mattermark-mesos-aws/