Using Docker on a local machine or VM on an ad-hoc basis is OK. But as soon as you involve other team members and the delivery chain it simply cannot work. This is where orchestration tools come in. But they do not solve the infrastructure problem, which is still a major gap. That leaves you building an on-prem Docker container system, or hunting for a Docker container hub in the Cloud. Is Rancher the one?
What Rancher is doing is not new. At DockerCon15 it was clear that dotCloud is the number one favorite container hosting service by the Docker team. But that makes sense, as that is where Docker was born. However besides dotCloud there has been a rise in Docker hosting solutions in addition to Rancher. They include Tutum, Quay.io, StackDock, and of course AWS EC2 Container service.
All of them message that they are The Cloud for developers and containers. Using the famous keywords “continuous” everything, “orchestration”, and “dashboards”.
I am a firm believer that a service of this type is needed. But it cannot just be container hosting. It needs to add functionality like built in orchestration, dynamic container connectivity, a single view to see all active containers, a private library, etc. And they need to be more capable than or leverage Docker Swarm and or Machine functionality.
Rancher came into my radar from a developer friend of mine. He has “exceeded” the use of docker on his instances running in AWS. Not that it is not possible to build out a full end-to-end Docker system there. It simply is just not worth the setup and maintenance effort. He estimated he would have to spend more than a day to set it up. Which is contrary to the point of containers all together. He found Rancher among others, and is now trying to make a decision of what to do/user. So I decided to do some digging.
It might sound silly but my first impression was, “There is no FaviCon on their site!” – rookie mistake. That is like a twitter handle that is still an egg.
One thing they do that is unique is that they have their own Linux distro for the host operating system. Which from what I can tell is very similar to what CoreOS does, sans a key value store. They do promote a differentiator, which is the isolation of user containers from production ones. I’m not sure I understand the value of this. With proper naming/management there should not be a need to isolate user/ad-hoc containers versus production ones, it is just your container cloud period. I’m missing the use case, and all the ones I envision seem to be a management problem, not a technology one. However as far as networking goes the instance types do have a big difference.
Which is the next big feature. While you still have to manually setup the connections between containers, their UX drastically simplifies the process. It might not be the terminal window, comfort zone of most developers, but it is far more scalable. There are some non-hosting tools like Calm.io, and Fugue that take it a bit further. They have things like dynamic addressing, so concepts like dynamic provisioning is possible.
They also offer better tagging, as what is built into docker is horrible. I have to give them two thumbs up for this. And scheduling, which is getting closer to that data center as code concept.
What they lack is private libraries. Enterprises absolutely cannot work off public images. The risk here is huge. So I do think this is an important service. Although i’m sure it is possible to set it up, simply create container that is your library. I would love to see added library management functionality on the dashboard. Making their tagging even more beneficial. After All it is the dashboards that make everything more efficient.
Rancher looks like a cool tool. My research stops here, until they invite me to the beta.
Their biggest challenge is going to be the existing investment people have already made in their cloud service, probably AWS ( Rancher may even run on AWS i’m not sure). Having disparate data centers would be annoying, and likely would only make sense when the application team is isolated from all the other Cloud users, in larger organizations.
Developers, even though you can does not mean you should. Yes I know provisioning containers is easy. But as you measure actual effort cost to build and manage a 100% container driven environment, and expand to a larger team, it is not practical. For now at least I believe any organization fully embracing containers needs to find some cloud hosting solution. And Rancher seems to be a decent choice.