mirror of https://github.com/docker/docs.git
Update README to explain libswarm
This commit is contained in:
parent
e3cf0c416f
commit
f887982f22
65
README.md
65
README.md
|
@ -1,14 +1,58 @@
|
||||||
# Swarmd
|
# Libswarm
|
||||||
|
|
||||||
## Control a distributed system with the Docker API
|
## A library to orchestrate heterogeneous distributed systems
|
||||||
|
|
||||||
`swarmd` is a simple daemon which can control all machines in your distributed
|
*libswarm* is a lightweight, standardized abstraction for federating and orchestrating
|
||||||
|
distributed systems. It can discover and communicate with all machines in your system,
|
||||||
|
using a variety of backend adaptors, and expose them via a single, straightforward API.
|
||||||
|
|
||||||
|
This is very useful if your system spans multiple locations on the Internet (your home
|
||||||
|
network, office lan, colocated rack, cloud provider, etc.) and uses heterogeneous tools
|
||||||
|
for deployment, clustering and service discovery (manually configured IPs on your laptop,
|
||||||
|
zeroconf at the office, ssh tunnels + custom DNS on the rack, Mesos, Consul or Etcd/Fleet
|
||||||
|
on your cloud provider, etc.).
|
||||||
|
|
||||||
|
*libswarm* federates all these elements under a unified namespace and lets you orchestrate
|
||||||
|
them using a lightweight and flexible API.
|
||||||
|
|
||||||
|
Because the *libswarm* API is dead-simple to learn and built on standard components, there
|
||||||
|
is a growing ecosystem of tools already compatible with it, which you can use to manage
|
||||||
|
your swarm out of the box:
|
||||||
|
|
||||||
|
* `swarmctl` is a simple command-line utility which lets you easily compose any combination
|
||||||
|
of backends, and orchestrate them straight from the terminal.
|
||||||
|
|
||||||
|
* (coming soon) *Shipyard* offers a powerful web interface to manage any swarm-compatible
|
||||||
|
distributed system straight from the browser.
|
||||||
|
|
||||||
|
* (coming soon) *Swarmlog* is a logging tool which consumes all log streams from your swarm
|
||||||
|
and forwards them to a variety of logging backends.
|
||||||
|
|
||||||
|
* (coming soon) *Deis*, the popular Docker-based application platform, supports *libswarm*
|
||||||
|
natively, and can deploy applications to it out-of-the-box.
|
||||||
|
|
||||||
|
* (coming soon) *Drone.io*, the Docker-based continuous integration platform, can spawn
|
||||||
|
build and test workers on any swarm.
|
||||||
|
|
||||||
|
* (coming soon) *Fig*, the popular development tool, supports libswarm out of the box.
|
||||||
|
|
||||||
|
* (coming soon) *Docker*, the open-source container engine, has announced that they will
|
||||||
|
adopt *libswarm* as a built-in, and recommend it as the preferred way to orchestrate
|
||||||
|
and manage a Docker-based cluster.
|
||||||
|
|
||||||
|
|
||||||
|
## Testing libswarm with swarmd
|
||||||
|
|
||||||
|
Libswarm ships with a simple daemon which can control all machines in your distributed
|
||||||
system using a variety of backend adaptors, and exposes it on a single, unified endpoint.
|
system using a variety of backend adaptors, and exposes it on a single, unified endpoint.
|
||||||
|
|
||||||
swarmd uses the standard Docker API as its frontend, which means any tool which speaks
|
Currently swarmd uses the standard Docker API as its frontend, which means any tool which speaks
|
||||||
Docker can control swarmd transparently: dokku, flynn, deis, docker-ui, shipyard, fleet,
|
Docker can control swarmd transparently: dokku, flynn, deis, docker-ui, shipyard, fleet,
|
||||||
mesos... and of course the Docker client itself.
|
mesos... and of course the Docker client itself.
|
||||||
|
|
||||||
|
*Note: in the future swarmd will expose the Docker remote API as "just another backend", and
|
||||||
|
expose its own native API as a frontend.*
|
||||||
|
|
||||||
Usage example:
|
Usage example:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -25,7 +69,7 @@ For example:
|
||||||
|
|
||||||
## Backends
|
## Backends
|
||||||
|
|
||||||
`Swarmd` supports the following backends:
|
Libswarm supports the following backends:
|
||||||
|
|
||||||
### Debug backend
|
### Debug backend
|
||||||
|
|
||||||
|
@ -74,3 +118,14 @@ docker -H unix://b.sock ps
|
||||||
This last command should report 1 container: `myapp`.
|
This last command should report 1 container: `myapp`.
|
||||||
|
|
||||||
|
|
||||||
|
## Creators
|
||||||
|
|
||||||
|
**Solomon Hykes**
|
||||||
|
|
||||||
|
- <http://twitter.com/solomonstre>
|
||||||
|
- <http://github.com/shykes>
|
||||||
|
|
||||||
|
## Copyright and license
|
||||||
|
|
||||||
|
Code and documentation copyright 2013-2014 Docker, inc. Code released under the Apache 2.0 license.
|
||||||
|
Docs released under Creative commons.
|
||||||
|
|
Loading…
Reference in New Issue