We just raised a $30M Series A: Read our story

Mirantis Container Cloud OverviewUNIXBusinessApplication

Mirantis Container Cloud is #1 ranked solution in top Container Virtualization tools and #6 ranked solution in Container Security Solutions. IT Central Station users give Mirantis Container Cloud an average rating of 10 out of 10. Mirantis Container Cloud is most commonly compared to Canonical LXD:Mirantis Container Cloud vs Canonical LXD. The top industry researching this solution are professionals from a computer software company, accounting for 29% of all views.
What is Mirantis Container Cloud?

Docker provides an integrated technology suite that enables development and IT operations teams to build, ship, and run distributed applications anywhere. Docker allows you to package an application with all of its dependencies into a standardized unit for software development. Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries, anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.

Mirantis Container Cloud was previously known as Docker .

Mirantis Container Cloud Customers

illumina, Groupon, PayPal, ebay, ING, New Relic

Archived Mirantis Container Cloud Reviews (more than two years old)

Filter by:
Filter Reviews
Industry
Loading...
Filter Unavailable
Company Size
Loading...
Filter Unavailable
Job Level
Loading...
Filter Unavailable
Rating
Loading...
Filter Unavailable
Considered
Loading...
Filter Unavailable
Order by:
Loading...
  • Date
  • Highest Rating
  • Lowest Rating
  • Review Length
Search:
Showingreviews based on the current filters. Reset all filters
RS
Transformation Leader at TEKsystems (ex Aston Carter)
Real User
Leaderboard
Enables us to run a different operating system and browser combination on a single machine of 16 GB Redhat 7

Pros and Cons

  • "You need to make an architectural runway before actually starting to implement Docker Compose, especially in a distributed environment."
  • "I find Docker easier to use, but I gave it to an inexperienced developer and it took him a lot of time to understand."

What is our primary use case?

We use Docker for the construction of container-based QA environments and the development environments as well.

How has it helped my organization?

On Selenium containers, we had about 550 test cases that we ran across 17 browsers and OS combinations. We could have run this on any of the third party products, but what we're able to do is done using Docker containers.

We were able to run a different operating system and browser combination on a single machine of 8 GB. We were able to run all the 550 test cases simultaneously on 16 OS and browser combinations just in the testing.

The required time was around five days for five test cases. With Docker, we were able to reduce it to two days.

What is most valuable?

The main Docker feature is the repository where you can store images.T he image is available and you can read parts of those images. You can use it for your local development and QAs. That's the most basic Docker basic feature. 

Secondly, we like the footprint that Docker requires to construct an environment. 

The third most important aspect is maintenance. You won't have to rely on third-party support. If you have the full environment control, you will be able to maintain Docker containers on your own. Or you can just destroy them and construct a new container, i.e. add them when you want to, ephemeral and mutable objects.

What needs improvement?

You need to be aware of the complete networking aspects of Docker across walled communications. That is something that you can simplify. For a developer, it is easy to understand if you have networking knowledge. 

If you are just a developer without networking knowledge, it's very difficult to understand how to communicate across walls using containers. Especially if you're in a call data center. That's the one aspect which I find very difficult.

I'm a coder. I've wanted to see an easy way to integrate seamlessly with other systems. For example, Jenkins has a Docker plugin. If you were to write an integration, you need to explicitly write code, especially for customizations. It's not easy to integrate unless you are a coder. 

If Docker can create some kind of workflow in generic fields, i.e. things that we can integrate with other out of the box tools, that would be great. OpenShift is an alternative to Kubernetes

I find Docker easier to use, but I gave it to an inexperienced developer and it took him a lot of time to understand.

For how long have I used the solution?

We have been using this solution for five years.

What do I think about the scalability of the solution?

Scalability with Docker is another aspect of adoption. Although we are using OpenShift and Kubernetes sparingly, I think we're able to achieve more with Docker. The developers can scale.

Beyond that, Docker requires a lot of discipline and also pushing cultural change. It is technical in that you need to educate people about it. In terms of scale, I find the scalability more of a culture and discipline issue in our environment, rather than a technical issue. 

There are three types of people who are using Docker:

  • The developers (those include QA as well), i.e. scrum teams.
  • The business analysts.
  • The product owners.

We have product roles: an implementation team and the architects. Those are the types of people who are using the Docker solution.

For every 30 people, we have around three people supporting the pipeline. This makes sure that the Docker files are up to date. They're the gold standard. If we are using Docker Compose, Docker Compose will supply it. 

We use Docker a lot. With any required file, they just need to make sure that the changes are up to date and there are no conflicts. 

We started with one team. Now able to scale it. In the current project, we started eight months back. We started with a six-member team. Now, there are eight plus 64 members using this platform. 

We have plans to increase usage to 3000 developers.

How are customer service and technical support?

It's tough. We're not there yet for the Docker technical support. Docker's technical support is a struggling area. We're still not able to progress in that area.

Which solution did I use previously and why did I switch?

We were not using a different solution. We were using the VM-based solution from VMware in the data center for pipelines and Jenkins pipelines without container-based environments. 

Those are VM-based and the footprint is high. They're not maintainable. We need to rely on somebody else to maintain those environments. 

They are not self-contained or self-sufficient environments. That's the reason why we switched out to container-based solutions.

How was the initial setup?

The setup of Docker was very straightforward. Maybe for a beginner, it may be difficult. If you are in a Windows 7 environment, it's very difficult. Some of our systems are in Windows 7. As soon as we ran Windows 10, it was easy. If Docker was run on Linux, Mac, or any Unix product, it was pretty straightforward.

The entire pipeline is for eight teams. If you're pushing all the way through, it takes about four and a half hours including the test execution. There are around 100 test cases, including the unit tests, that need to be done for a simple change. That was taking about three days.

We were able to push through in four and a half hours by including NetWare. For our implementation strategy, we used a Docker-based continuous integration/continuous delivery pipeline.

What about the implementation team?

What is demonstrated on the laptop with Docker, we have full control of in the data center. When you translate to implementation, half the things don't work. 

In spite of the expertise, that's the problem with SIs, i.e. the promises versus what is delivered. That's one aspect that we're still struggling.

Docker is fairly stable because you just carry the artifacts, but in DEV it is highly unstable. There's a lot of discipline that we need to enforce on the developers. 

What was our ROI?

On the deployment front, we saved about six developers worth of effort for every 64 people. Six developers worth of effort for two months in a six-month project of 64 people. That's the ROI that we easily got once we stabilized.

Which other solutions did I evaluate?

We did not evaluate other options because the only one that we knew was Docker.

What other advice do I have?

I recommend using Docker. The most important thing is that you review your internal capability building before using this product. 

  • Look at what kind of skill sets are currently in the organization. 
  • Make sure that everybody understands what Docker means before implementing. 
  • Up-skill them and make sure that everybody understands why Docker is important in the scheme of things. 

Some organizations may think that Docker doesn't fit their culture. In general, I think that Docker is a good fit for 80% of the organizations that I've seen.

Internal capability building is the other thing that is very important in the setup. You need to make an architectural runway before actually starting to implement Docker Compose, especially in a distributed environment. 

For security aspects, we need to make sure that the security and monitoring for Docker are always in operation. 

I would rate this product a 7.5 out of ten because it solved many of my problems. If you're a developer, it's easy to understand. It is the way a developer should develop and deploy in the current environment, especially in a container-driven world.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
it_user1139148
Senior Front-End Developer at Oodrive
Real User
Reporting is fast and effective and I like that it is straightforward and powerful

Pros and Cons

  • "The initial setup was really easy and the deployment was fast and straightforward."
  • "I would also like to see more features inside Docker as well as more integration with different solutions."

What is most valuable?

What I like most about Docker is that it is straightforward and easy to use, yet powerful. The graphical interface is very user-friendly and reporting is fast and effective.

What needs improvement?

Sometimes it is difficult to access the quality of information on Docker. I also feel that it is not a 100% secure product and I'd say there is room for improvement in the security area and functionality. I would also like to see more features inside Docker as well as more integration with different solutions.

For how long have I used the solution?

I've been using Docker for three to four years now on premises.

What do I think about the stability of the solution?

The solution isn't always that stable.

What do I think about the scalability of the solution?

I believe Docker is scalable.

How are customer service and technical support?

I like their technical support but I mostly use their external documentation.

How was the initial setup?

The initial setup was really easy and the deployment was fast and straightforward. I did everything myself.

What's my experience with pricing, setup cost, and licensing?

We use the free version of Docker.

Which other solutions did I evaluate?

I don't use any other software, given that Docker is our solution.

What other advice do I have?

My advice to others is to just do it. It is a no-brainer. I really recommend this solution and on a scale from one to ten, my rating is a nine.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PIERRE BOINNARD
CEO and owner at m3production
Real User
Leaderboard
Provide nice standardized brick to elaborate and maintain any sized application or SI

What is our primary use case?

We use the hybrid version of solution with public and on-premises. Our primary use case for Docker is to make it easier for us deploy and maintainon our applications. 

How has it helped my organization?

Well dockerized application are much easier to maintain, at a fewer cost.

What is most valuable?

Manage complex application architecture and installation procedure in simple text files.

What needs improvement?

Dynamic port association on active containers.

For how long have I used the solution?

I've been working on this solution for about two to three years now.

What do I think about the stability of the solution?

I think the solution is stable enough.

What do I think about the scalability of the solution?

The solution follows…

What is our primary use case?

We use the hybrid version of solution with public and on-premises. Our primary use case for Docker is to make it easier for us deploy and maintainon our applications. 

How has it helped my organization?

Well dockerized application are much easier to maintain, at a fewer cost.

What is most valuable?

Manage complex application architecture and installation procedure in simple text files.

What needs improvement?

Dynamic port association on active containers.

For how long have I used the solution?

I've been working on this solution for about two to three years now.

What do I think about the stability of the solution?

I think the solution is stable enough.

What do I think about the scalability of the solution?

The solution follows scalability of the application it handles. A monolite application will not become scalable as soon as it is dockerized without architecture change. 

How are customer service and technical support?

Good support, really active community.

How was the initial setup?

Initial setup of docker itself is very simple.

What about the implementation team?

We implement docker y ourself.

What's my experience with pricing, setup cost, and licensing?

We use the free version of this solution.

Which other solutions did I evaluate?

We did look around for other options but nothing could compare to this solution.

What other advice do I have?

My advice to others would be to start simple. On a scale of one to ten, I will rate Docker a nine. It is a compact, complete solution that performs well.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
ITCS user
Senior IT Consultant at .
Real User
Leaderboard
Ease of managing and deployment provides us a more scalable and agile environment

What is our primary use case?

We use this solution for the virtualization of monolithic apps, providing a better scalable and agile solution.

How has it helped my organization?

This solution has improved our organization with the agility, microservices approach, and scalable solutions for distributed systems.

What is most valuable?

The most valuable features of this solution are scalability and agility. It is easy to manage and deploy.

What needs improvement?

The orchestration and tracing should be improved.

For how long have I used the solution?

One year.

What is our primary use case?

We use this solution for the virtualization of monolithic apps, providing a better scalable and agile solution.

How has it helped my organization?

This solution has improved our organization with the agility, microservices approach, and scalable solutions for distributed systems.

What is most valuable?

The most valuable features of this solution are scalability and agility. It is easy to manage and deploy.

What needs improvement?

The orchestration and tracing should be improved.

For how long have I used the solution?

One year.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
Vinod-Gupta
CEO and Founder at Indicrypt Systems
Real User
Leaderboard
Facilitates rapid deployment and has thorough, easy to read documentation

Pros and Cons

  • "Docker is very helpful for taking the code from development and applying it to the end user."
  • "It would be very nice to have a GUI that can be used by any administrator, and not just people who have experience with Docker."

What is our primary use case?

My experience with Docker is in helping to provide solutions for my clients. Specifically, this involves continuous integration and continuous deployment for my clients' workflow.

How has it helped my organization?

We are using Docker for a client that we currently have in India. They are building a solution for the medical industry. Docker is very helpful for taking the code from development and applying it to the end user.

What is most valuable?

The most important thing that my clients focus on is rapid deployment. In this regard, Docker wins hands-down.

What needs improvement?

It would be very nice to have a GUI that can be used by any administrator, and not just people who have experience with Docker.

For how long have I used the solution?

Two years.

What do I think about the stability of the solution?

The stability of this solution is perfect. Five stars.

What do I think about the scalability of the solution?

This solution scales very well, and it can be scaled to the entire infrastructure when required.

Three of my clients are currently using Docker, and all of them are involved in software development. One of my clients is in the process of scaling up, moving from ten to one hundred and fifty developers within the next six months.

How are customer service and technical support?

The documentation for this solution is excellent. So far, all of the problems that I have faced have been solved by looking at the documentation.

Which solution did I use previously and why did I switch?

We did not use another solution prior to this one.

How was the initial setup?

The setup was very straightforward. I just followed the documentation on the Docker website, and it went smoothly.

Implementation for the client was not very big. It was eight to ten developers, and it took between one and two days to complete. The most important thing on our end was to get our client's infrastructure up and running with Docker.

One person can handle the deployment and maintenance of this solution.

What about the implementation team?

We implement this solution for our clients using our in-house team.

What's my experience with pricing, setup cost, and licensing?

I am using the community edition, rather than the enterprise edition because I am operating on a very small scale at the moment. The community edition does not require a license and is completely free.

Which other solutions did I evaluate?

We did not evaluate options other than Docker.

What other advice do I have?

My advice to anybody who is implementing this solution is to read the documentation very carefully. That can give a lot of relief when the client needs a solution.

If Docker had a graphical user interface then it would be a perfect solution.

I would rate this solution and eight out of ten.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
reviewer1100100
User
Real User
Brings ease during development, testing, and deployment

What is our primary use case?

I use Docker during both development time when I write new applications and for production where we deploy our applications on platforms such as Kubernetes and Mesos.

How has it helped my organization?

Now it is easier to set up the development environment and also to test the applications on the pipelines.

What is most valuable?

The most valuables features are its ease of use and ease in setting up environments.

What needs improvement?

The solution would benefit in improvements made to the storage, cleaning up information from the disk, and reading logs.

For how long have I used the solution?

One year.

What is our primary use case?

I use Docker during both development time when I write new applications and for production where we deploy our applications on platforms such as Kubernetes and Mesos.

How has it helped my organization?

Now it is easier to set up the development environment and also to test the applications on the pipelines.

What is most valuable?

The most valuables features are its ease of use and ease in setting up environments.

What needs improvement?

The solution would benefit in improvements made to the storage, cleaning up information from the disk, and reading logs.

For how long have I used the solution?

One year.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
DV
Applications Lead at a comms service provider with 1,001-5,000 employees
Real User
Leaderboard
Easily deploys on various platforms and cloud providers

What is our primary use case?

I am using this as a lab costing application. It is pretty fast.

How has it helped my organization?

You can easily deploy it in different platforms and cloud providers. You are actually deploying container to container. 

What is most valuable?

The commissioning is very fast. 

What needs improvement?

I think this solution needs better security due to rising threats from the outside world. 

For how long have I used the solution?

One to three years.

What do I think about the stability of the solution?

The product is stable. 

What do I think about the scalability of the solution?

I am not scaling it very much at this time. I only have about 20 users at present. The roles of the users are information users, managers and middle managers. …

What is our primary use case?

I am using this as a lab costing application. It is pretty fast.

How has it helped my organization?

You can easily deploy it in different platforms and cloud providers. You are actually deploying container to container. 

What is most valuable?

The commissioning is very fast. 

What needs improvement?

I think this solution needs better security due to rising threats from the outside world. 

For how long have I used the solution?

One to three years.

What do I think about the stability of the solution?

The product is stable. 

What do I think about the scalability of the solution?

I am not scaling it very much at this time. I only have about 20 users at present. The roles of the users are information users, managers and middle managers.

How is customer service and technical support?

The tech support is pretty good. 

How was the initial setup?

It was straightforward for us. 

What's my experience with pricing, setup cost, and licensing?

The pricing and licensing really depends on what your needs are. You could be paying $100 a month to $100,000. It depends on the needs you have from the solution, and the agreement you make.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
JG
Cloud sales & support for rackspace with 11-50 employees
Real User
Leaderboard
A faster and flexible solution with excellent support systems

Pros and Cons

  • "The most valuable aspect is the excellent support. In addition, the billing system is really easy to understand."
  • "Sometimes the basic support is a bit difficult if you have a firewall and cloud servers behind the firewall and then try to implement the backup solution, it is a bit difficult to do by yourself."

What is our primary use case?

Our primary use case for this solution is for electronic commerce.

How has it helped my organization?

It took us 30% faster to implement the solutions that we used to have with other platforms, and the flexibility has increased by 50%.

What is most valuable?

The most valuable aspect is the excellent support. In addition, the billing system is really easy to understand.

What needs improvement?

Sometimes the basic support is a bit difficult if you have a firewall and cloud servers behind the firewall and then try to implement the backup solution, it can be a bit difficult to do by yourself. If you have a Rackspace engineer, it is easier, because they know the procedures, but that service is not cheap. It can be an extra $500 for that extra service, per month. It would be nice to see that cost decrease.

For how long have I used the solution?

One to three years.

What do I think about the stability of the solution?

The product is stable. Any problems that we have noticed have been with the customer doing something wrong. For instance, they may have two versions of the application that do not match, which will cause errors. But, we can never blame Rackspace Docker for this. It is an internal problem. 

What do I think about the scalability of the solution?

The scalability is a bit difficult. Rackspace has beautiful tools to make scaling pretty easy. Usually, it is our customer that is afraid to scale too fast. At times, we have to convince our clients to move towards the cloud, because the cloud function is very different from the on premise solutions. Once they understand this, they are eager to jump to the next level. 

We currently have two customers that have 8,000 users connected to the solution. They are in the automotive industry. The users are a combination of sales people, service representatives and executives.  There is a tremendous ability for Docker to support a lot of users.

How is customer service and technical support?

The customer service is good. 

How was the initial setup?

The setup was very easy, but if you get into something with the backup agent or the API, that is when you may begin to stumble. Sometimes this causes a slower time for implementation and ultimate deployment. 

Our standard procedure is to look at the requirements, set of a pilot, do some testing, and then release the solution. It can take several weeks, and it depends on understanding our customers' needs. We have our own staff who complete the process.

What's my experience with pricing, setup cost, and licensing?

At times, my customers are upset with the cost of the product. Other solutions seems inexpensive, in comparison. But, I tell my customers that once you start putting the solution together, will you realize that it will cost more than Rackspace Docker. 

Which other solutions did I evaluate?

We looked at VMware and Hyper-V, as well as Amazon. But, we stayed with Rackspace Docker becuas ewe already know that this is doing the best in terms of what it is offering.

What other advice do I have?

My advice is in regards to the security. Many of my customers do not care enough about security, they have a disbelief that once you are in a cloud, you are automatically secure. This sis not the case at all. You need to understand that nothing is guaranteed if you do not follow the right rules. You need proper monitoring tools to keep the work-site safe and secure. It may cost the customer more, but it is worth every penny.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Osama Mustafa
Cloud Expert | DevOps | Oracle Consultant at confidential
Consultant
Top 20Leaderboard
The most valuable is Docker images that allows you to build your own image and upload it to a repository

What is our primary use case?

Using Docker for most of the environments that I worked for. As an expert, I am working on different environments each time depending on the customer requirements. Development, staging, pre-production and production, each one of them having at least 25 servers implemented on different solutions sometimes like VMware, AWS, Azure and Oracle Cloud

Docker allows me to automate everything for these environments which saves a lot of time to sync the environment with each other and keep them up to date anytime. 

How has it helped my organization?

By using Docker and introducing this tool to different organizations, it provides repeatable development, build, test, and production environments, and allows every team member to work in a production parity environment, include to that, app isolation, simplicity, and faster configurations. And the most important benefits for most organizations is continuous deployment and testing.

What is most valuable?

Different features, but the most valuable is Docker images that allows you to build your own image and upload it to a repository, and use it again anytime. 

Another feature which is Docker scaling using a docker-compose file: It's very simple and easy to use in preventing any human interaction.

The last one is Docker Swarm that manages a cluster of Docker Engines.

What needs improvement?

  • I would love to see if more supported applications could be used under Docker.
  • Improving scalability, technical debt, and making it easier to troubleshoot and monitor.
  • One last thing which is the performance tuning issue.

For how long have I used the solution?

More than five years.

What do I think about the stability of the solution?

Using this solution for a production environment that should be working 24/7 is the biggest proof of stability.

What do I think about the scalability of the solution?

Very easy to use, all you need to have is the basic knowledge with Docker Compose.

How are customer service and technical support?

Since I've begun using Docker EE, I have full access to Docker's enterprise technical support team. I can manage cases, and view entitlements using the Docker support site.

Which solution did I use previously and why did I switch?

I started using Docker more than five years ago and before that, LXC (Linux Containers), also Google Kubernetes as I mentioned before. It all depends on the customer requirement and what they want from the application, and which features they will use. 

How was the initial setup?

Depends on the environment and what you need to use. Most of the features have full online documentation with live examples.

What about the implementation team?

We are the vendor, so technically we are providing the solution for the client each time: different client, different requirements and different infrastructure. 

What was our ROI?

You will notice a big difference for sure. Also, the below link will allow you to calculate the ROI.

https://www.docker.com/roicalc....

What's my experience with pricing, setup cost, and licensing?

For the features and benefits of using Docker, the price is very reasonable, but the licensing is not easy. But to be honest this is a very promising technology, include to that a very fast growing technology. So within the next five years, the licensing will not be an issue. 

Which other solutions did I evaluate?

Google Kubernetes.

What other advice do I have?

I recommended the tech guys that haven't used it so far, or if their company is still using the transitional infrastructure, they should give it a try. 

Disclosure: I am a real user, and this review is based on my own experience and opinions.
ITCS user
Designer and Developer at a tech services company
Real User
The most valuable feature is creating your own image.

What is most valuable?

The most valuable feature of Docker is by far is creating your own image. By creating your own image, you can have an environment for whatever you are working on that is exactly how you want it.

The idea that you can create a machine this quickly, use it, destroy it if you want, build upon it, take things out, and rebuild very quickly is very useful.

For example, you could add a command that installs a certain tool to your Dockerfile and build that image. Your image now has that tool. If you want to get rid of that tool, you just get rid of the line from the Dockerfile, rebuild the image, and it’s like you never installed that tool.

It gives you a feeling of complete control. By comparison, doing the same thing with something like Vagrant would take a lot of time. With Docker, building an image is so fast that it’s practically disposable.

How has it helped my organization?

Docker has allowed me to have pre-defined working environments that can be moved to the cloud and I know they will be exactly the same. Something can be deployed to the cloud, but the overhead of running a virtual machine is wasteful. This is especially the case since on most clouds, an account is already contained by a virtual machine. Running a virtual machine within a virtual machine is possible, but not ideal.

What needs improvement?

Docker is already aware of how faulty their file system volume mounting technology is on the Mac. I see that they are making improvements in that area, but there is still a long way to go.

On the Mac, Docker is far from perfect. The program has issues communicating with the file system and receiving events. As a result, Docker’s volume features are very slow on the Mac. However, there is a workaround called Docker-sync. Docker sync goes around Docker’s weak volume support on the Mac by syncing files through the network using unison and rsync. Still, I would only give Docker a 10 if their volume experience were as good on the Mac as it is on Linux. I have used this product in a Mac environment as well as Linux.

For how long have I used the solution?

I have been using Docker since November, 2016. I started using it to see what all the talk was about. The initial learning curve was somewhat steep. What Docker does is simple. However, understanding what Docker does is important and not obvious. That’s why I took Lynda’s course on Docker. This course gave me a good practical understanding of Docker. After understanding the basics, the documentation actually became useful to read.

What do I think about the stability of the solution?

In my experience, Docker has been very stable.

What do I think about the scalability of the solution?

There have been no scalability issues. As a matter of fact, Docker itself can be used to help you scale up by allowing you to create a new environment quickly when you need more power, or if you want to deliver an instance closer to a customer.

How are customer service and technical support?

In term of technical support, the Docker community is very helpful and active. There are already a lot of answers to common questions on stack overflow.

Which solution did I use previously and why did I switch?

I previously used Vagrant. I switched because of Docker’s speed, ease of creating images, and its low overhead.

How was the initial setup?

The initial setup of Docker on the Mac is simple. There is a very friendly GUI installer. If you already have Homebrew installed, you can simply run “brew cask install docker”.

Installing Docker on Linux is a different story, since the versions supported by the default package manager sources are out of date. It’s necessary to follow somewhat lengthy instructions from Docker’s website.

What's my experience with pricing, setup cost, and licensing?

The Docker community edition is free. I don’t have any experience with their paid versions. I have not felt the need to upgrade.

Which other solutions did I evaluate?

I tried Docker because there was a bit of hype around it. I had been using Vagrant. I did not know about things like LXD before starting to experiment with Docker. If anything, I have learned about alternative container technologies that I might evaluate later.

What other advice do I have?

I think that Docker is the best among its peers. Creating, downloading, uploading, and sharing images is faster than doing the same on something like Vagrant.

When using Docker on the Mac, I only used it to create a local development environment. I also have a Docker installation running in production on a production environment being used as the backend for an iOS app.

I would advise people to take the Lynda course on Docker. In my experience, the documentation only becomes useful after understanding the basics and the general idea.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
it_user185772
Senior Software Architect with 5,001-10,000 employees
Vendor
Docker v. CFEngine v. Puppet Data Center Automation v. Chef v. Ansible
Originally posted at http://technologyconversations.com/2015/08/26/configuration-management-in-the-docker-world/ Anyone managing more than a few servers can confirm that doing such a task manually is a waste of time and risky. Configuration management (CM) exists for a long time and there is no single reason I can think of why one would not use one of the tools. The question is not whether to adopt one of them but which one to choose. Those that already embraced one or the other and invested a lot of time and money will probably argue that the best tool is the one they chose. As things usually go, the choices change over time and the reasons for one over the other might not be the same today as they were yesterday. In most cases, choices are not based on available options but by the…

Originally posted at http://technologyconversations.com/2015/08/26/configuration-management-in-the-docker-world/

Anyone managing more than a few servers can confirm that doing such a task manually is a waste of time and risky. Configuration management (CM) exists for a long time and there is no single reason I can think of why one would not use one of the tools. The question is not whether to adopt one of them but which one to choose. Those that already embraced one or the other and invested a lot of time and money will probably argue that the best tool is the one they chose. As things usually go, the choices change over time and the reasons for one over the other might not be the same today as they were yesterday. In most cases, choices are not based on available options but by the architecture of the legacy system we are sworn to maintain. If such systems are to be ignored or someone with enough courage and deep pockets would be willing to modernize them, today’s reality would be dominated by containers and microservices. In such a situation, the choices we made yesterday are definitely different from choices we could make today.

CFEngine

CFEngine can be considered father of configuration management. It was created in 1993 and revolutionized the way we approach server setups and configurations. It started as an open source project and become commercialized in 2008 when the first enterprise version was released.

CFEngine is written in C, has only few dependencies and is lightning fast. Actually, as to my knowledge, no other tool managed to overcome CFEngine’s speed. That was, and still is its main strength. However, it had its weaknesses with requirement for coding skills being probably the main one. In many cases, an average operator was not able to utilize CFEngine. It requires a C developer to manage it. That did not prevent it from becoming widely adopted in some of the biggest enterprises. However, as youth usually wins over age, new tools were created and today rarely anyone chooses CFEngine without being “forced” to do so due to the investment the company made into it.

Puppet

Later on Puppet came into being. It also started as an open source project followed by the enterprise version. It was considered more “operations friendly” thanks to its model driven approach and small learning curve when compared to CFEngine. Finally there was a configuration management tool that operations department could leverage. Unlike C utilized by CFEngine, Ruby proved to be easier to reason with and more accepted by ops. CFEngine’s learning curve was probably the main reason Puppet got its footing into the configuration management market and slowly sent CFEngine into history. That does not mean that CFEngine is not used any more. It is and it doesn’t seem it will disappear any time soon in the same way as Cobol is still present in many banks and other finance related businesses. However, it lost its reputation for being the weapon of choice.

Chef

Then came Chef promising to solve some of the nuances of Puppet. And it did, for a while. Later, as popularity of both Puppet and Chef continued increasing, they entered the “zero sum game”. As soon as one of them came up with something new or some improvement, the other one adopted it. Both feature an ever increasing number of tools which tend to increase their learning curves and complexity. Chef is a bit more “developer friendly” while Puppet could be considered more oriented towards operations and sysadmin type of tasks. Neither has a clear enough advantage over the other and the choice is often made based on personal experience than anything else. Both Puppet and Chef are mature, widely adopted (especially in enterprise environments) and have a huge number of open source contributions. The only problem is that they are too complicated for what we are trying to accomplish. Neither of them was designed with containers in mind. Neither of them could know that the “game” would change with Docker since it didn’t exist at the time they were designed.

All of the configuration management tools we mentioned thus far are trying to solve problems that we should not have the moment we adopt containers and immutable deployments. The server mess that we had before is no more. Instead of hundreds or even thousands of packages, configuration files, users, logs, and so on, we are now trying to deal with a lot of containers and very limited amount of anything else. That does not mean that we do not need configuration management. We do! However, the scope of what the tool of choice should do is much smaller. In most cases, we need a user or two, Docker service up and running and a few more things. All the rest are containers. Deployment is becoming a subject of a different set of tools and redefining the scope of what CM should do. Docker Compose and Kubernetes are only a few of a rapidly increasing number of deployment tools we might use today. In such a setting, our configuration management choice should value simplicity and immutability over other things. Syntax should be simple and easy to read even to those who never used the tool. Immutability can be accomplished by enforcing a push model that does not require anything to be installed on the destination server.

Ansible

Ansible tries to solve the same problems as other configuration management tools but in a very different way. One important difference is that it performs all its operations over SSH. CFEngine and Puppet require clients to be installed on all servers they are supposed to manage. While Chef claims that it doesn’t, its support for agent-less running has limited features. That in itself is a huge difference when compared to Ansible that does not require servers to have anything special since SSH is (almost) always present. It leverages well defined and widely used protocol to run whatever commands need to be run in order to make sure that the destination servers comply with our specifications. The only requirement is Python that is already pre-installed on most Linux distributions. In other words, unlike competitors that are trying to force you to setup servers in a certain way, Ansible leverages existing realities and does not require anything. Due to its architecture, all you need is a single instance running on a Linux or MacOS computer. We can, for example, manage all our servers from a laptop. While that is not advisable and Ansible should probably run on a “real” server (preferably the same one where other continuous integration and deployment tools are installed), laptop example illustrates its simplicity. In my experience, push based systems like Ansible are much easier to reason with than pull based tools we discussed earlier.

Learning Ansible takes a fraction of the time when compared to all the intricacies required to master the other tools. Its syntax is based on YAML (Yet Another Markup Language) and with a single glimpse over a playbook, even a person who never used a tool would understand what’s going on. Unlike Chef, Puppet and, especially CFEngine that are written by developers for developers, Ansible is written by developers for people who have better things to do than learn yet another language and/or DSL.

Some would point out that the major downside is Ansible’s limited support for Windows. The client does not even run on Windows and the number of modules that can be used in playbooks and run on it is very limited. This downside, assuming that we are using containers is, in my opinion, an advantage. Ansible developers did not waste time trying to create an all around tool and concentrated on what works best (commands over SSH on Linux). In any case, Docker is not yet ready to run containers in Windows. It might be in the future but at this moment (or at least the moment I was writing this text), this is on the road map and with questionable results. Even if we ignore containers and their questionable future on Windows, other tools are also performing much worst on Windows than Linux. Simply put, Windows architecture is not as friendly to the CM objectives than Linux is.

I probably went to far and should not be too harsh on Windows and question your choices. If you do prefer Windows servers over some Linux distribution, all my praise of Ansible is in vain. You should choose Chef or Puppet and, unless you already use it, ignore CFEngine.

Personal choice

If someone asked me few years ago which tool should we use I would have a hard time answering. Today, if one has the option to switch to containers (be it Docker or some other type) and immutable deployments, the choice is clear (at least among tools I mentioned). Ansible (when combined with Docker and Docker deployment tools) wins any time of the day. We might even argue whether CM tools are needed at all. There are examples when people rely completely on, let’s say, CoreOS, containers, and deployment tools like Docker Swarm or Kubernetes. I do not have such a radical opinion (yet) and think that CM continues being a valuable tool in the arsenal but. Due to the scope of the tasks CM tools needs to perform, Ansible is just the tool we need. Anything more complex or harder to learn would be an overkill. I am yet to find a person who had trouble maintaining Ansible playbooks. As a result, configuration management can easily become responsibility of the whole team.I’m not trying to say that infrastructure should be taken lightly (it definitely shouldn’t). However, having contributions from the whole team working on a project is a big advantage for any type of tasks and CM should not be an exception. CFEngine, Chef and Puppet are an overkill with their complex architecture and their steep learning curve. At least when compared with Ansible.

The four tools we briefly went through are by no means the only ones we can choose from. You might easily argue that neither of those is the best and vote for something else. Fair enough. It all depends on preferences and objectives we are trying to archive. However, unlike the others, Ansible can hardly be a waste of time. It is so easy to learn that, even if you choose not to adopt it, you won’t be able to say that a lot of valuable time was wasted. Besides, everything we learn brings something new and makes us better professionals.

Disclosure: I am a real user, and this review is based on my own experience and opinions.