GithubHelp home page GithubHelp logo

spigad / mesos-cluster Goto Github PK

View Code? Open in Web Editor NEW

This project forked from indigo-dc/mesos-cluster

0.0 1.0 0.0 142 KB

INDIGO-Datacloud PaaS exploits Apache Mesos and its frameworks

License: Apache License 2.0

mesos-cluster's Introduction

Mesos Cluster

The INDIGO-DataCloud PaaS relies on Apache Mesos for:

  • managed service deployment
  • user applications execution

The instantiation of the high-available Mesos cluster is managed by the INDIGO Orchestrator in a fully automated way as soon as a user request described by a TOSCA template is submitted. Once the cluster is up and running, it can be re-used for successive requests.

Mesos is able to manage cluster resources (cpu, mem) providing isolation and sharing across distributed applications (frameworks)

Marathon and Chronos are two powerful frameworks that can be deployed on top of a Mesos Cluster.

Sophisticated two-level scheduling and efficient resource isolation are the key-features of the Mesos middleware that are exploited in the INDIGO PaaS, in order to run different workloads (long-running services, batch jobs, etc) on the same resources while preserving isolation and prioritizing their execution.

INDIGO PaaS uses:

  • Marathon to deploy, monitor and scale Long-Running services, ensuring that they are always up and running.
  • Chronos to run user applications (jobs), taking care of fetching input data, handling dependencies among jobs, rescheduling failed jobs.

Features

  • Automatic deployment through Ansible recipes embedded in TOSCA and HOT templates
    • All the services run in docker containers;
  • High-availability of the cluster components:
    • Leader election among master nodes managed by Zookeeper;
    • HA Load-balancing; -Service discovery through Consul that provides also DNS functionality and health checks;
    • services are automatically registered in Consul as soon as they are deployed on the cluster
  • The external access to the deployed services is ensured through load-balancers in HA (unique entrypoint: cluster Virtual IP)
  • Cluster elasticity and application auto-scaling through CLUES plugin

INDIGO achievements

  • Ansible roles and TOSCA templates for cluster set-up featuring high-availability, service-discovery and load-balancing;
  • Integration with the INDIGO Orchestrator
    • Job submission and service deployment requests are described through TOSCA templates
  • Definition of custom TOSCA types for describing Chronos jobs and Marathon application
  • Cluster elasticity through EC3/CLUES plugin
  • Zabbix monitoring probes for Mesos, Marathon and Chronos;

Components

The core components are:

  • Consul for service discovery
  • Mesos cluster manager for efficient resource isolation and sharing across distributed services
  • Chronos a distributed task scheduler
  • Marathon for cluster management of long running containerized services
  • Docker container runtime
  • mesos-consul populating Consul service discovery with Mesos tasks
  • marathon-consul bridging Marathon information to Consul KV
  • haproxy-consul for dynamic haproxy configuration using Consul

These components are distributed on the cluster nodes as shown in the diagram below.

alt mesoscluster

  • Master nodes
    • On every master node the following (dockerized) components run: zookeeper, mesos master, consul server, marathon, chronos
  • Slave nodes
    • On every slave node the following (dockerized) components run: mesos slave, consul agent
  • Load-balancers
    • On the two load-balancers the following (dockerized) components run: keepalived and haproxy-consul. keepalived ensures the high-availability of the load-balancer managing the cluster Virtual IP.

Ansible roles

The following roles are available in Ansible Galaxy:

These ansible roles can be installed through ansible-galaxy command: ansible-galaxy install indigo-dc.rolename

Releases

Release Component version
indigo_1 Mesos 0.28.0
Marathon 1.1.1
Chronos 2.4.0
indigo_2 Mesos 1.1.0
Marathon 1.4.1
Chronos 3.0.2

References

mesos-cluster's People

Contributors

maricaantonacci avatar

Watchers

 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.