使用Docker、CoreOS、Mesos部署可扩展的Web应用

介绍

让我们先来讨论一下为什么我决定使用这些软件来展示如何创建一个可扩展的Web基础架构。

为什么选择Docker?

那问题来了,为啥要选择Linux容器?因为相比于虚拟机,Linux容器拥有更低的计算和存储开销。

Docker简化了人们使用Linux容器的方式,并且提供一些非常实用的特性,比如Dockerfiles、Docker Hub、分层文件系统。在本文中,我将使用使用Amazon S3 API的VIPR搭建私有的Docker Registry以存储镜像(如我以前的帖子中描述)。

为什么选择CoreOS?

所有的组件都会在Docker容器中运行,所以你可能会说,操作系统并没有那么重要。但是,CoreOS有很多的优势,具体如下:

以一个单元的形式自动更新整个系统,而不是一个包接着一个包的更新(如果你的基础设施没有SPOF,甚至要重启系统)

包含用于发现服务的etcd,也使用Vulcand(甚至设置中需要mesos)

包含了systemd和fleet,一个可以以一个init系统呈现你整个集群的工具。在这个设置中我不使用fleet,但是在其它方面我有使用它,比如几秒内启动elastic search集群。

为什么选择Vulcand?

我看到有关如何部署容器或虚拟机的很多教程,但我总是惊讶地看到,他们很少涉及基础设施的负载均衡部分。

在我看来,负载均衡是一个可扩展的Web应用架构的重要组成部分。如果用户不能正常访问你的应用,那还搞什么自动化?

Vulcand是一个为HTTP API管理和微服务而设计的反向代理工具。Vulcand会监控etcd,并自动检测到它需要实现新的规则,所以你不需要重新加载任何服务。只需在etcd添加正确的密钥,然后你的服务/应用程序就可以被使用了。

为什么选择Mesos?

有三种不同的方式来自动化部署Docker容器,具体如下:

Fleet:Fleet是一个通过Systemd对CoreOS集群进行控制和管理的工具。如果你想启动容器或者手动指定映射到主机的端口,那Fleet是一个不错的选择(译者注:Fleet的更多资料可以阅读本文)。

Kubernetes:这可能是最佳的选择之一,但现在Kuernetes还太年轻。

Mesos:Mesos目前已经支持Docker,它已经是一个相对稳定的平台,并且可以用来部署其它软件,例如Hadoop。

为什么选择对象存储?

我们可以通过上面介绍的软件来部署可扩展和高可用的应用。但是,数据怎么处理?

结构化的内容可能会被存储到分布式数据库中,例如MongoDB。非结构化的内容一般会存储在一个本地文件系统、NAS或者对象存储。

本地文件系统并不适合现在的场景,因为容器可能会被部署到集群的任何一个节点上。

理论上NAS共享方案可行,但是特别复杂的。例如,NAS共享需要挂载到所有的主机上,所以你需要为每个容器指定Volume,并在特权模式下运行容器...当容器启动而NAS共享不可用时,容器内的应用程序需要能够处理相关问题。

然而,对象存储却可以在任何容器的任何应用中使用,并且是高可用的,因为我们使用了负载均衡器,它不需要任何配置,这也可以加快应用程序的开发周期。为什么了?因为开发者不需要考虑数据的存储方式、目录结构管理等。

我已经开发了一个Web应用程序,它展示了一个应用程序如何不通过数据路径处理上传和下载,我会在下面运行这个应用程序。


上图展示了几个不同的组件,以及我如何设置3个节点的CoreOS集群。

1.png

我使用Keepalived来确保公共 IP 10.64.231.84是可用的,不管对应在coreos1还是coreos3节点上。

Vulcand会运行再每个节点上,以均衡用户和Web应用程序之间的负载,同事也可以平衡应用程序和不同的VIPR节点。

私有的Docker Registry在coreos1节点上运行,并使用Amazon S3 API在VIPR上存储镜像。

Mesos主节点(Master)和Marathon运行在coreos2节点上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335

推荐阅读更多精彩内容