Docker Swarm: a boost in your network potential
This post is also available in: Spanish
Docker is developing a new protocol they’re (quite logically) denominating “Docker Swarm“. According to Docker’s new documentation section specific to this add-on Swarm is literally a “native clustering for Docker. It turns a pool of Docker hosts into a single, virtual Docker host. Because Docker Swarm serves the standard Docker API, any tool that already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts.”. This sounds really nice and promises to be a very powerful tool to further squeeze potential out of Docker.
In order to create these clusters, Docker offers various possibilities for swarm implementation, but your best bet is probably to create clusters through the Docker Machine which creates an official image built by Docker and updated through an automatic build. You can actually run Swarm clusters from a normal container, or if you’re more of an expert, you can always create them manually on binary.
To install Swarm you also get a variety of options, since Swarm must be present on the network to transform those multiple hosts into that beautiful single virtual host that we can obtain now. The easiest of these is again, to install Swarm on a preexisting Docker Machine. On the other hand, you can do this manually and install swarm directly onto your network using a Docker client to have Docker Swarm run on all your network nodes independently. This last method will require a bit of more work because you’ll need to follow a few steps:
- Open a TCP port per node to maintain communication with the swarm manager (which we’ll briefly explain now)
- Install Docker on each node
- Create and manage TLS Certificates to secure the swarm environment you’re creating.
Swarm promises also to be quite flexible, allowing any tool that communicates with the Docker Daemon normally to scale onto multiple hosts. All of this is accompanied by the possibility to switch backends on Swarm for large scale production deployments or any purpose that requires more powerful backends than the scheduling backend defaulted on Swarm.
Since Swarm is so powerful it also comes with a very complete management system which relies on a primary manager and replicas. This has a positive side which is that the management system is responsible for the entire cluster and it also manages the resources on multi-docker hosts at a scale. The downside is that if the manager or one of its replicas dies then you have to manually create a new one and maybe suffer downtime on your network or a service interrupt (where clients may be affected).
The fact of the matter is that with this new and very powerful tool already online, along with Docker Cloud (where Docker is quickly entering the terrain of providing SaaS) we’ll be able to get new performance levels from an already very powerful piece of software. We’re not quite sure about this but with the capacity offered to provision clusters from the Docker machine or manually, we wouldn’t discard the chance that Docker themselves are using Swarm to provide that new cloud service we’re seeing come around (since Tuesday March 1st when it was announced to be coming out).
So at this height of the article you might be thinking “Sure, this is interesting, but what does it have to do with Pandora FMS?” Well, we’re going to try to answer that question just right below.
With Pandora FMS you will be able not just to monitor or get availability reports of your entire application ecosystem (which by the way may be your business) but to provision and scale your Dockerized infrastructure in a smart and efficient way.
[schema type=”product” name=”Docker Swarm” brand=”Docker” manfu=”Docker” ]
Have you tried Docker Swarm? Could you give us your feedback?