Mantl is a modern, batteries included platform for rapidly deploying globally
Table of Contents
- Consul for service discovery
- Vault for managing secrets
- Mesos cluster manager for efficient resource
isolation and sharing across distributed services
- Marathon for cluster management of
long running containerized services
- Kubernetes for managing, organizing, and scheduling
- Terraform deployment to multiple cloud providers
- Docker container runtime
- Traefik for proxying external traffic
- mesos-consul populating Consul
service discovery with Mesos tasks
- Mantl API easily install supported
Mesos frameworks on Mantl
- Mantl UI a beautiful
administrative interface to Mantl
- ELK Stack for log
collection and analysis
- GlusterFS for container volume storage
- etcd distributed key-value store for Calico
- Calico a new kind of virtual network
- collectd for metrics collection
- Chronos a distributed task scheduler
- Kong for managing APIs
addons/ directory for the most up-to-date information.
- High availability
- Rapid immutable deployment (with Terraform + Packer)
The base platform contains control nodes that manage the cluster and any number
of resource nodes. Containers automatically register themselves into DNS so
that other services can locate them.
The control nodes manage a single datacenter. Each control node runs Consul
for service discovery, Mesos leaders for resource scheduling and Mesos
frameworks like Marathon.
In general, it's best to provision an odd number (at least 3 or 5) of control
nodes to achieve higher availability of services. The Consul Ansible role will
automatically bootstrap and join multiple Consul nodes. The Mesos role will
provision highly-availabile Mesos and ZooKeeper environments when more than one
node is provisioned.
Resource nodes launch containers and other Mesos-based workloads.
Edge nodes are responsible for proxying external traffic into services running
in the cluster.
All development is done on the
master branch. Tested, stable versions are
identified via git tags. To get started, you can clone or fork this repo:
normalgit clone https://github.com/CiscoCloud/mantl.git
To use a stable version, use
git tag to list the stable versions:
git checkout 1.0.2
A Vagrantfile is provided that provisions everything on a few VMs. To run,
first ensure that your system has at least 2GB of RAM free, then just:
- There is no support for Windows at this time, however support is planned.
- Use the latest version of Vagrant for best results. Version 1.8 is required.
- There is no support for the VMware Fusion Vagrant provider; hence your
provider is set to Virtualbox in your Vagrantfile.
The only requirements for running Mantl are working installations of Terraform
and Ansible (or Vagrant, if you're deploying to VMs). See the "Development"
sections for requirements for developing Mantl.
Deploying on multiple servers
Please refer to the Getting Started
Guide, which covers
All documentation is located at
To build the documentation locally, run:
normalsudo pip install -r requirements.txt
Note: The most up-to-date list of Mesos frameworks that are known to work with
Mantl is always in the mantl-universe
- Manage Linux user accounts
- Authentication and authorization for Consul
- Authentication and authorization for Mesos
- Authentication and authorization for Marathon
- Application load balancer (based on Traefik)
- Application dynamic firewalls (using consul template)
- Logging (with the ELK stack)
- Metrics (with the collectd addon)
- In-service upgrade with rollback
- Autoscaling of worker nodes
- Self maintaining system (log rotation, etc)
- Self healing system (automatic failed instance replacement, etc)
Community Supported Platforms
Please see milestones for
more details on the roadmap.
If you're interested in contributing to the project, install
Terraform and the Python modules
requirements.txt and follow the Getting Started instructions. To
build the docs, enter the
docs directory and run
make html . The docs will
be output to
Good issues to start with are marked with the low hanging
If you encounter any issues, please open a Github
Issue against the project. We review
We also have a gitter chat room. Drop by
and ask any questions you might have. We'd be happy to walk you through your
Cisco Intercloud Services provides support
for OpenStack based deployments of Mantl.
Copyright © 2015 Cisco Systems, Inc.
Licensed under the Apache License, Version
2.0 (the "License").
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.