Docker 'swarm mode' aims to steal Kubernetes' thunder

Docker 'swarm mode' is out to steal Kubernetes' thunder

The newest revision of Docker's core product aims to widen its appeal by adding a native app orchestration and clustering system

Welcome to the latest version of Docker, the software containerization tool that's taken IT by storm -- or maybe, in the case of version 1.12, by swarm.

Swarm mode, the newest addition to the core Docker product, provides a built-in way for Docker users to run multi-container applications across multiple hosts, without the need for additional software like Kubernetes to orchestrate or manage them. It's yet another example of Docker learning from its ecosystem and building in the kind of functionality typically found elsewhere, but simplified for a quick start.

Here comes the swarm

When enabled, swarm mode uses a multi-master protocol (thus ensuring no single point of failure) to allow containers to organize and schedule themselves. The admin provides the swarm with declarations about what the desired state of the app is, and the swarm does its best to keep those expectations fulfilled -- e.g., always having this many nodes of this particular of app ready to fulfill or route requests.

Swarm traffic is also encrypted end-to-end for security, and the system provides its own load balancing across nodes as well.

The term "swarm" may sound familiar because it echoes the existing Docker Swarm clustering system. Swarm mode obviates the need to download and set up Docker Swarm, a separate product, since it includes all of Docker Swarm's functionality and then some.

That said, Docker figures many people aren't going to  immediately make that leap, so swarm mode is disabled by default and Docker Swarm will continue to be supported going forward. Another equally crucial point is that swarm mode, while included by default, can be superseded by other orchestration tools if needed.

All things to all people

Swarm mode is not just included by default with Docker, it's also easy to set up and maintain. Docker Swarm already had an advantage over products like Kubernetes in that respect, as Hector Paz of Codepicnic pointed out, and it's likely swarm mode will take that advantage even further.

A big part of Docker's growth hasn't just been as a result of refining existing features or even adding new ones. Docker has learned from other products created for the container ecosystem and distilled their essence back into the core product.

Most successful software products work like that; the hard part is striking a balance. Add too much back into the core, and you end up with an overstuffed suitcase of a product -- an accusation commonly levied against Microsoft Office. Add too little, and you're heavily dependent on third-party functionality to do even basic things, which is a criticism about JavaScript's minimal standard library.

Docker's approach has been to add strategically important functionality to complement the growth of the product. Now that Docker's salad days are behind it and it's being taken seriously as a production tool, Docker wants its product to appeal to users other than the enterprises willing to experiment with a new technology to gain a competitive edge.

There are two key things to watch for with Docker from here on out. First is whether users with more modest demands will gravitate toward simplified versions of the features that originally attracted enterprise-level customers. Second is what shape Docker will take if and when it becomes a total commodity. Or, to put it another way, how many batteries will be included in its "batteries included but optional" approach.

From CIO: 8 Free Online Courses to Grow Your Tech Skills
View Comments
Join the discussion
Be the first to comment on this article. Our Commenting Policies