Docker Swarm - feature rich, simple to maintain
Claudio Fernando Maciel | TrustRadius Reviewer
March 06, 2018

Docker Swarm - feature rich, simple to maintain

Score 10 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with Swarm

We currently have an array of microservices, and faas, spread out, and deployed in different instances of our servers, all of which have the benefit of Docker containers. We are currently taking advantage of the Docker Swarm concept for maintaining our decentralized infrastructure, as well as our data, in order to seamlessly keep the cohesion among the data services, as well as for making our up/down scaling process easier to achieve.
  • Up and Down scaling of decentralized microservice instances
  • Remote maintenance and deployment of the existing docker based services
  • Smallest possible down time of our services upon the necessity of deployment, and maintenance routines
  • Simpler diagnostics: Today, with both Docker and Swarm, although it offers all the necessary diagnostics tools, as well as infos. The task of taking down one failing service, which in turn has failed due to some problem with some specific container, image, or network, seems a little bit of overhead. One needs to go all the way down the chain, find find by name or ID, until we get to the root of the problem. I think we could use a more 'intuitive' way of reaching the real cause of the problem, without the need to have to go through such a big stack of different commands.
  • Monitoring and logging tools: this one can arguably go together with the previously mentioned diagnostics 'issue'. Today, one can only find third party diagnostic, and monitoring tools. Sometimes, with the lack of a good indication, one has to go with lower-than-optimal tools whereby the job of logging and monitoring can be achieved.
  • Better, or more pervasive community, with some more in-depth whitepapers, documentation, or tutorials. Sometimes it's a little hard to come up with the solution for a particular requirement, for the lack of more in-depth documentation out there. Also, it's still discussed in some communities that Swarm is not yet 100% ready for business critical solutions. I think this kind of opinion/fear could be better dismissed, if more substantial documentation support could have been provided.
  • Faster Deployment: we have achieved a full deployment cycle with a substantially lower time by using docker swarm concepts. Which in turn has rendered a significant improvement on our crisis management, down time, and maintenance routines. Down time servers is now a thing of the past, and our customers have grown to trust our 'release days' a lot more.
  • Docker swarm has played a beautiful role when partnering its tools with our infrastructure as a code policies. Having a brand new service, or an entire solution spawned, as well as up/down scaling our already existing ones, have become a breeze. Our sales team are more confident now, since our 'ready for usage' window has shrank down substantially.
  • Hard to find skilled DevOps professionals: with the adoption of docker Swarm, we have added an extra level of difficulty by finding the right professionals that can be hands-on with our solutions, since it's a fairly new technology, as well as it requires a somewhat steep learning curve.
When compared to Kubernetes, Docker Swarm becomes easier to adopt, since it's more intuitive, or 'native' to the Docker Containers technology, as it's the native option. Also, it's a lot easier to set up. Although Docker Swarm has a somewhat steep learning curve, when compared to Kubernetes, it becomes a lot simpler to adopt, and use. Docker swarm is free of use, and requires no specific specialized paid service.
Microservices and FAAS continuous Integration is the keyword which comes to my mind when I think of the best reason why someone should use Swarm in one's project. The ease of having one's solution deployed is basically a no brainer by having at one's disposal the stack deployment tools.

Small solutions, where there the necessity of having a decentralized architecture does not come to play, in my opinion, would not take full advantage of using Docker in Swarm mode, since with the extra stack also comes the necessity of an extra amount of proficiency to both come up with, and maintain such an infrastructure.