swan - A Distributed, Highly Available Mesos Scheduler, Inspired by the design of Google Borg

  •        15

Swan is a Mesos framework forcus on long running tasks, which inspired by Marathon, written with Golang and base on latest Mesos HTTP API.With Swan you can deploy long running application on mesos cluster, control lifecycle of the application, scale up or scale down any instances size you want, can also do rolling-update with new versions base on flexible health checks defined by you. Swan also designed for high avaliability which means any server crash wouldn't affect running applications. with service discovery and API gateway build-in, service discovery made easy.

https://www.shurenyun.com/product-swan.html
https://github.com/Dataman-Cloud/swan

Tags
Implementation
License
Platform

   




Related Projects

vagrant-mesos - Spin up your Mesos Cluster with Vagrant! (VirtualBox and AWS)

  •    Ruby

This spins up Mesos 0.22.1 cluster and also spins up a framework server node in which Marathon (0.8.2) and Chronos (2.1.0) are running. This means you can build your own Mesos+Marathon+Chronos+Docker PaaS with vagrant up!! Marathon works as distributed init.d and Chronos works as distributed cron!! If you wanted to deploy docker containers, please refer to the chapter "Deploy Docker Container with Marathon" in this blog entry. The mesos installation is powered by Mesos chef cookbook. Please see everpeace/cookbook-mesos.

chronos - Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules

  •    Scala

Chronos is a replacement for cron. It is a distributed and fault-tolerant scheduler that runs on top of Apache Mesos that can be used for job orchestration. It supports custom Mesos executors as well as the default command executor. Thus by default, Chronos executes sh (on most systems bash) scripts. Chronos can be used to interact with systems such as Hadoop (incl. EMR), even if the Mesos agents on which execution happens do not have Hadoop installed. Included wrapper scripts allow transfering files and executing them on a remote machine in the background and using asynchronous callbacks to notify Chronos of job completion or failures. Chronos is also natively able to schedule jobs that run inside Docker containers.

marathon - Deploy and manage containers (including Docker) on top of Apache Mesos at scale.

  •    Scala

Marathon is a production-proven Apache Mesos framework for container orchestration. DC/OS is the easiest way to start using Marathon. Issues are tracked in JIRA. 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.

nixy - nixy - nginx auto configuration and service discovery for Mesos/Marathon

  •    Go

Nixy is a daemon that automatically configures Nginx for web services deployed on Apache Mesos and Marathon. Install nixy from pre-compiled packages. Check releases page.

playa-mesos - Quickly build Mesos sandbox environments using Vagrant. Run apps on top!

  •    Shell

DEPRECATED This project is no longer actively maintained. Please see DC/OS Vagrant for all your Mesos test environment needs. Playa Mesos helps you quickly create Apache Mesos test environments. This project relies on VirtualBox, Vagrant, and an Ubuntu box image which has Mesos and Marathon pre-installed. The box image is downloadable for your convenience, but it can also be built from source using Packer.


bamboo - HAProxy auto configuration and auto service discovery for Mesos Marathon

  •    Go

Bamboo is a web daemon that automatically configures HAProxy for web services deployed on Apache Mesos and Marathon. Since Marathon API and behaviour may change over time, especially in this early days. You should expect we aim to catch up those changes, improve design and adding new features. We aim to maintain backwards compatibility when possible. Releases and changelog are maintained in the releases page. Please read them when upgrading.

Fenzo - Extensible Scheduler for Mesos Frameworks

  •    Java

Fenzo is a scheduler Java library for Apache Mesos frameworks that supports plugins for scheduling optimizations and facilitates cluster autoscaling.Apache Mesos frameworks match and assign resources to pending tasks. Fenzo presents a plugin-based, Java library that facilitates scheduling resources to tasks by using a variety of possible scheduling objectives, such as bin packing, balancing across resource abstractions (such as AWS availability zones or data center racks), resource affinity, and task locality.

Singularity - Scheduler (HTTP API and webapp) for running Mesos tasks—long running processes, one-off tasks, and scheduled jobs

  •    Java

Singularity is an API and web application for running and scheduling Apache Mesos tasks — including long running processes, scheduled jobs, and one-off tasks.It focuses on a batteries-included approach: Singularity and its components provide an entire Platform as a Service (PaaS) to end-users. It has many features which have been introduced to reduce developer friction and ensure proper operation and reliable deployment of tasks. Users may even be unfamiliar with and shielded from the details of Mesos.

marathon-lb - Marathon-lb is a service discovery & load balancing tool for DC/OS

  •    Python

Marathon-lb is a tool for managing HAProxy, by consuming Marathon's app state. HAProxy is a fast, efficient, battle-tested, highly available load balancer with many advanced features which power a number of high-profile websites. Take a look at the marathon-lb wiki for example usage, templates, and more.

mesos-go - Go language bindings for Apache Mesos

  •    Go

Pure Go language bindings for Apache Mesos, under development. As with other pure implementations, mesos-go uses the HTTP wire protocol to communicate directly with a running Mesos master and its slave instances. One of the objectives of this project is to provide an idiomatic Go API that makes it super easy to create Mesos frameworks using Go. New projects should use the Mesos v1 API bindings, located in api/v1. Unless otherwise indicated, the remainder of this README describes the Mesos v1 API implementation.

Cook - Fair job scheduler on Mesos for batch workloads and Spark

  •    Clojure

Core concepts is a good place to start to learn more. Check the changelog for release info.

dcos - DC/OS - The Datacenter Operating System

  •    Python

The easiest way to run microservices, big data, and containers in production. Like traditional operating systems, DC/OS is system software that manages computer hardware and software resources and provides common services for computer programs.

Apollo - :rocket: An open-source platform for cloud native applications based on Apache Mesos and Docker

  •    Python

Apollo is an open source project to aid with building and deploying IAAS and PAAS services. It is particularly geared towards managing containerized applications across multiple hosts, and big data type workloads. Apollo leverages other open source components to provide basic mechanisms for deployment, maintenance, and scaling of infrastructure and applications.However, the majority of initial development is happening on AWS so most of our instructions and scripts are built around that. Stayed tuned for more cloud provider support! If you make it work on other infrastructure please let us know and contribute instructions/code. For more info on cloud support see our roadmap.

mesos-dns - DNS-based service discovery for Mesos.

  •    Go

Mesos-DNS enables DNS based service discovery in Apache Mesos clusters. mesos-N tags mark the start of support for a specific Mesos version while maintaining backwards compatibility with the previous major version.

faas-netes - Enable Kubernetes as a backend for OpenFaaS (Functions as a Service)

  •    Go

This is a plugin to enable Kubernetes as an OpenFaaS backend. The existing CLI and UI are fully compatible. It also opens up the possibility for other plugins to be built for orchestation frameworks such as Nomad, Mesos/Marathon or even a cloud-managed back-end such as Hyper.sh or Azure ACI.OpenFaaS is an event-driven serverless framework for containers. Any container for Windows or Linux can be leveraged as a serverless function. OpenFaaS is quick and easy to deploy (less than 60 secs) and lets you avoid writing boiler-plate code.

deimos - Mesos containerizer hooks for Docker

  •    Python

Deimos is a Docker plugin for Mesos, providing external containerization as described in MESOS-816. NOTE: Mesos 0.20.0 shipped with built in Docker support and this project is no longer actively maintained. More info on the Docker in Mesos 0.20.0 docs page.

Trafik - A Modern Reverse Proxy

  •    Go

Træfik (pronounced like traffic) is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS, and a lot more) to manage its configuration automatically and dynamically.

minuteman - A distributed Load Balancer

  •    Erlang

A distributed, highly available service discovery & internal load balancer for distributed systems (microservices and containers). You can use the layer 4 load balancer by specifying a VIP from the Marathon UI. The VIP must be specified in the format IP:port, for example: 10.1.2.3:5000. Alternatively, if you're using something other than Marathon, you can create a label on the port protocol buffer while launching a task on Mesos. This label's key must be in the format VIP_$IDX, where $IDX is replaced by a number, starting from 0. Once you create a task, or a set of tasks with a VIP, they will automatically become available to all nodes in the cluster, including the masters.

mesos-consul - Mesos to Consul bridge for service discovery

  •    Go

Mesos to Consul bridge for service discovery.Mesos-consul automatically registers/deregisters services run as Mesos tasks.

awesome-mesos - Everything about Apache Mesos

  •    

Everything about awesome Apache Mesos.