GithubHelp home page GithubHelp logo

bhanditz / marathon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from airbnb/marathon

0.0 2.0 0.0 7.67 MB

Mesos framework for long running services

License: Apache License 2.0

Dockerfile 0.03% Shell 0.58% Scala 31.52% Java 0.15% CSS 0.53% HTML 0.03% JavaScript 67.15%

marathon's Introduction

Marathon is an Apache Mesos framework for long-running applications. Given that you have Mesos running as the kernel for your datacenter, Marathon is the init or upstart daemon.

Marathon provides a REST API for starting, stopping, and scaling applications. Marathon is written in Scala and can run in highly-available mode by running multiple copies. The state of running tasks gets stored in the Mesos state abstraction.

Try Marathon now on AWS with Elastic Mesos or with Mesosphere for Google Compute Platform and learn how to use it in Mesosphere's interactive Marathon tutorial that can be personalized for your cluster.

Marathon is a meta framework: you can start other Mesos frameworks such as Chronos or Storm with it to ensure they survive machine failures. It can launch anything that can be launched in a standard shell. In fact, you can even start other Marathon instances via Marathon.

Using Marathon versions 0.7.0+ and Mesos 0.20.0+, you can deploy, run and scale Docker containers with ease.

Documentation for installing and configuring the full Mesosphere stack with Mesos + Marathon is available on the Mesosphere website.

Features

  • HA -- run any number of Marathon schedulers, but only one gets elected as leader; if you access a non-leader, your request gets proxied to the current leader
  • Constraints - e.g., only one instance of an application per rack, node, etc.
  • Service Discovery & Load Balancing via HAProxy or the events API (see below).
  • Health Checks: check your application's health via HTTP or TCP checks.
  • Event Subscription lets you supply an HTTP endpoint to receive notifications, for example to integrate with an external load balancer.
  • Web UI
  • JSON/REST API for easy integration and scriptability
  • Basic Auth and SSL
  • Metrics: available at /metrics in JSON format

Setting Up And Running Marathon

Installation

Install Mesos

Marathon requires Mesos installed on the same machine in order to use a shared library. One easy way is via your system's package manager. Current builds for major Linux distributions are available from on the Mesosphere downloads page or from Mesosphere's repositories.

If building from source, see the Mesos Getting Started page or the Mesosphere tutorial for details. Running make install will install Mesos in /usr/local in the same way as these packages do.

Install Marathon

Full instructions on how to install prepackaged releases are available in the Marathon docs. Alternatively, you can build Marathon from source.

Building from Source
  1. To build Marathon from source, check out this repo and use sbt to build a JAR:

    git clone https://github.com/mesosphere/marathon.git
    cd marathon
    sbt assembly
    
  2. Run ./bin/build-distribution to package Marathon as an executable JAR (optional).

Running in Development Mode

Mesos local mode allows you to run Marathon without launching a full Mesos cluster. It is meant for experimentation and not recommended for production use. Note that you still need to run ZooKeeper for storing state. The following command launches Marathon on Mesos in local mode. Point your web browser to http://localhost:8080 to see the Marathon UI.

./bin/start --master local --zk zk://localhost:2181/marathon

For more information on how to run Marathon in production and configuration options, see the Marathon docs.

Developing Marathon

The Marathon Project Wiki contains documentation on simplifying local development and testing of Marathon including how to run a Mesos environment inside a preconfigured virtual machine and a list of recipes for launching applications that test specific Marathon features.

Running the development Docker

Build tip:

docker build -t marathon-tip .

Run it:

docker run marathon-tip --master local --zk zk://localhost:2181/marathon

If you want to inspect the contents of the Docker:

docker run -i -t --entrypoint=/bin/bash marathon-tip -s

Marathon Clients

Companies using Marathon

Not in the list? Open a pull request and add yourself!

Help

If you have questions, please post on the Marathon Framework Group email list. You can find Mesos support in the #mesos channel on freenode (IRC). The team at Mesosphere is also happy to answer any questions.

Authors

Marathon was created by Tobias Knaup and Florian Leibert and continues to be developed by the team at Mesosphere and by many contributors from the community.

githalytics.com alpha

marathon's People

Contributors

connordoyle avatar ssorallen avatar mlunoe avatar drexin avatar guenter avatar aquamatthias avatar florianleibert avatar ssk2 avatar solidsnack avatar everpeace avatar brndnmtthws avatar grampelberg avatar ceteri avatar stem avatar 0xroch avatar mohitsoni avatar hshoff avatar davidhoyt avatar johanatan avatar jplock avatar potto007 avatar olix0r avatar mohitsoni-ebay avatar mbabineau avatar kensipe avatar curzonj avatar nguyenvanthan avatar brianhicks avatar yemyatthein avatar michaeljin avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.