百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

使用docker 和marathon 构建一个带分析的web应用

moboyou 2025-07-16 19:53 3 浏览

你是否想过如何使用Docker和Marathon去创建一个包括分析功能的web应用?

本文将一步步向你展示如何去做。(在2015年阿姆斯特丹XebiCon上我曾经演示过一个早期的demo版本,如何你有兴趣看看。)

架构

这个应用叫m-shop,是一个虚构的商店,由web应用(nginx+Rdis)和以ELK实现的分析部分组成。架构如下:

注意system部分(包括 Mesos/Marathon和服务发现)和application部分。为了保持简单和易于复现,我选择Playa Mesos作为部署环境,它是一个预装了Mesos和Marathon的Vagrant盒子。

实践:从Marathon到ELK

如果你只是对实现部分感兴趣,下面的视频展示我是如何安装实现的。

如果你想自己试试,你需要做以下这些:

首先,安装Playa Mesos,并且下载GitHub 仓库mhausenblas/m-shop.

其次,通过在Vagrant box的/etc/mesos-dns/下创建config.js来准备Mesos-DNS.

现在,我们就已做好部署应用的准备了。

切换到你刚才复制的GitHub repo目录,我自己的目录是~/m-shop,执行下面的命令:

~/m-shop$ http PUT http:10.141.141.10:8080/v2/groups < mesos-dns/system.json

此时我们已部署好了系统和应用部分,打开浏览器,输入以下地址http://10.141.141.10:8080,

我们应当下面类似的界面:

刚才部署的m-shop.json和system.json这两个应用特定的文件,用于定义所有的组,应用程序和必须依赖:

服务发现部分需要注意的一点是,Marathon使用的应用程序ID,如/m-shop/site/webdis,是被Mesos-DNS翻译到RFC952的标准名称。 你可以通过Vagrant中一个普通的DNS工具来查看 :

上面是一个DNS查询,告诉你
webdis-site-m-sho.marathon.mesos服务在10.141.141.10:31000上是可用的,以及服务发现组件Sedi使用Mesos-DNS HTTP API 做些什么 。

从最终用户的角度来看,也许最感兴趣的部分是用nginx 实现的web 应用前端界面:

如果有兴趣试试你可以修改网站的内容。要注意的是你需要在m-shop.json中修改nginx Docker 映像为你自己的。

建立Docker映像,切换到frontend-static/目录,执行下面的步骤(用你自己的repo 名字):

~/m-shop/frontend-static $ docker build -t mhausenblas/m-shop-nginx .

~/m-shop/frontend-static $ docker push mhausenblas/m-shop-nginx

应用的分析部分,我使用现成的包括Elasticsearch,Logstash和Kibana一站式映像。一开始,ELK完成设置可能需要等2分钟,然后在/m-shop/site/nginx应用上执行一些交互操作,如单击等。

为了确认你有可供Kibana显示的数据,你可使用下面的命令查看Vagrant box的日志:

Ls –al /tmp/m-shop/nginx

当Kibana UI 启动后,选择logstash- 索引和@timestamp,你将看到如下界面:

我希望这个小的demo应用可以给你一个如何使用Docker和Marathon构建应用的想法,你或许希望以此作为探索这方面基础。 一些未来的实验值得去探索,包括增加一个负载均衡,把应用部署到Mesosphere Datacenter 操作系统上。

相关推荐

运维必备:掌握这3个存储技术(存储运维工程师面试题)

高级文件系统管理:LVM、RAID、NFS深度解析前言在现代企业级Linux环境中,文件系统管理是运维工程师必须掌握的核心技能。随着数据量的爆炸式增长和业务连续性要求的提高,传统的单磁盘文件系统已经无...

用于构建原生Wayland应用的全新C++工具包

Cosmoe是一个现代化的C++UI库,同时也是一个具有深厚历史底蕴项目的全新迭代版本,其根源可以追溯到历史上最优雅的图形用户界面之一。Cosmoe展现了几个令人印象深刻的特性。尽管这是一个刚刚发布...

CoBi Notfall-System 2024 v1.0 PE系统构建器(PE系统生成器)

CoBiNotfall-System2024v1.0(由ComputerBild提供):WinPE(WindowsPE)构建工具,基于"LiveSystemPro"。创...

每日一个Linux命令解析——nmap(linux nm)

nmap:nmap(NetworkMapper)是一款开源的网络扫描和主机探测工具,用于网络安全审计和主机发现。一、语法nmap[ScanType(s)][Options]{targets...

化繁为简,揭秘5款神奇桌面小工具

01跨平台提效神器项目eSearch是一个基于Electron框架开发的跨平台桌面应用程序,它不仅仅是一个截图工具,更是一个集OCR、搜索、翻译、贴图、以图搜图和录屏等功能于一身的神器。无论...

7款炫酷黑科技工具,让你意想不到的好用

都是特别好用的(。-ω-)zzzWord2ArtWord2Art是一个特别炫酷的制作词云工具。它里面包含有上百种模板,有各种炫酷的表情包,人的体型。你只需要输入文字,就可以马上生成炫酷的词云。它还有...

电脑系统崩溃也不怕了,一招把驱动都备份出来

很多人平时都没有备份驱动的习惯,一旦系统崩溃,重装系统后又要从网上下载新的驱动进行安装。有一些电脑上可能还装了一些比较特殊的驱动,去网上也不太好找,怎么办呢?其实还是有补救的办法的,我们可以进PE把...

秒杀一众PE系统,制作强大的U盘启动系统,自制新一代装机神器

安装电脑系统的方式有很多,是一个既复杂又简单的工作,有时候几分钟就可以装好,而有些时候却要折腾几个小时。重装系统的时候有很大一部分原因就是因为系统损坏,无法正常进入系统才选择的重装,就拿以前安装原版W...

GPT vs MBR硬盘分区世纪对决!老司机教你避坑选型绝招

一、你的硬盘正在被两种规则支配当你在Windows安装界面犹豫该"删除哪个分区"时,当你在Linux终端输入fdisk命令时,当你的Mac提示"磁盘无法初始化"时,这背...

WinPE疑难解答(winpe进去后无法访问c盘)

在使用WinPE的过程中难免遇到这样那样的问题,我们收集了其中一些典型“症状”及其解决方式,希望能对大家的使用有所帮助。●winPE下找不到硬盘一般来讲,应该是PC打开了AHCI模式,现在很多版本的...

新一代多系统启动U盘解决方案Ventoy

一款几乎可以在所有情况下启动的U盘启动盘神器Ventoy简介简单来说,Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘,你只需要把ISO/WIM/IMG/VHD...

U盘制作PE启动盘可见分区格式化成哪种格式比较好?

制作U盘PE的时候,各种PE系统都有一个可见分区格式选项,这个可见分区格式成什么格式比较好呢?格式化成什么格式,这个只要了解这3种格式的特点就好选了。1:FAT32FAT32这种FAT格式,因为发展较...

Win10预览版9879硬盘丢失的Linux解决方案

IT之家(www.ithome.com):Win10预览版9879硬盘丢失的Linux解决方案IT之家讯12月3日消息,最近IT之家论坛网友九仙仙总结了Win10预览版9879硬盘问题的解决方法,并...

只用U盘就能安装系统,教你怎么把系统放进U盘

你可曾想过,只用U盘就能安装系统,而且是随声携带的,走到哪里用上自己的系统,保护了自己的隐私,系统坏了,插上自己U盘系统,拷贝重要资料,也能轻松修复!来~小编教你怎么把系统放进U盘,下面介绍两种开源...

全干货!笔记本开箱验机测试全流程 经验分享

最近做了几期笔记本评测,今天专门写一遍关于新机拆箱验机测试流程,一些个人这方面的经验,共同分享交流。准备工具:1.一个不错的winpe,手中有现成的可以直接用,没有的话建议使用usbos或者edgel...