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

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

wptr33 2025-05-28 20:45 7 浏览

你是否想过如何使用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 操作系统上。

相关推荐

数据库基础:mysql主从集群搭建

文章首发于微信公众号:java架构师进阶之路前言:Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的...

Mysql-cluster搭建

前期准备准备五台虚拟机:ip地址分别为:192.168.1.211管理节点192.168.1.64SQL节点192.168.1.65SQL节点192.168.1.70数据节点192.168.1...

mysql 主从数据库搭建

一、创建目录在dev/htb下面创建文件夹master01htb]#mkdirmysql/master01-p2)进入master01...

从零搭建高可用的 MySQL 主从复制架构(基于 Linux 实战指南)

背景在生产环境中,单点MySQL数据库容易成为性能瓶颈或单点故障源。搭建MySQL主从复制架构,可以实现读写分离、高可用,提升系统的整体稳定性与扩展性。...

「MySQL 8」MySQL 5.7都即将停只维护了,是时候学习一波MySQL 8了

MySQL8新特性选择MySQL8的背景:MySQL5.6已经停止版本更新了,对于MySQL5.7版本,其将于2023年10月31日停止支持。后续官方将不再进行后续的代码维护。另外,...

Mysql启动选项和配置文件

Mysql启动选项和配置文件Mysql启动方式下面的启动命令都需要依赖在Linux环境下配置的Mysql环境变量...

centos安装mysql操作手册

1.下载Mysql首先去Mysql官网下载安装包,网址https://dev.mysql.com/downloads/mysql/推荐大家下载Linux通用版本的,便于管理安装位置,也方便一台服务器...

MySQL安装

MySQL的安装过程因操作系统的不同而有所差异。以下是在几种常见操作系统上安装MySQL的基本步骤:Windows下载MySQL:访问MySQL官方网站下载页面:MySQLDownloads...

MySQL数据库安装教程

前言今天就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。...

MySQL学到什么程度?才有可以在简历上写精通

前言如今互联网行业用的最多就是MySQL,然而对于高级Web面试者,尤其对于寻找30k下工作的求职者,很多MySQL相关知识点基本都会涉及,如果面试中,你的相关知识答的模糊和不切要点,基...

一起免费考 MySQL OCP 认证啦

前言:在1995年,首个MySQL版本发布,为庆祝MySQL诞辰30周年,OracleUniversity在限定期间内推出了多个MySQL的免费培训课程与认证,其中也包括My...

教程2 | 制作用户管理系统

一、项目简介用户管理系统是一个基于C/S模式的小型管理系统,使用了GUI技术来实现管理系统的页面效果,该管理系统可以对用户的信息,比如姓名、年龄、密码和地址等进行增删改查操作。用户管理系统通过JDBC...

红帽Linux中安装mysql8详细步骤

注意:我写的解压路径和截图路径不一致,仅供参考先前往官网下载mysql8下载地址:https://dev.mysql.com/downloads/选择指定版本和系统下载命令...

MySQL主从配置

主从原理MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的。...

mysql的主从搭建以及实现主从切换方法

主从搭建的方法:a.准备两台服务器...