TrustRadius Insights for Mirantis Kubernetes Engine are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Business Problems Solved
Docker has proven to be a versatile tool with a wide range of use cases. Users have found that Docker simplifies the packaging and deployment of applications and services, allowing developers to match their development environment to production and eliminate cross-cutting software dependencies. It has been utilized as the backbone of a hosted app infrastructure, where every element is broken down into microservices deployed on the AWS cloud. Additionally, Docker has been instrumental in creating specialized microservices such as a Selenium Grid for automated web-based testing.
Moreover, Docker has played a crucial role in maintaining environmental consistency and streamlining deployment processes. It has enabled users to swiftly containerize Continuous Deployment and Integration pipelines, facilitating easy deployment and updates of the system and its environments. With Docker, users have been able to quickly deploy and monitor servers, firewalls, switches, and other components, providing a consistent and efficient environment for prototyping and testing. Another notable use case is spinning up new databases for microservices using Docker, ensuring consistency and independence across different environments.
Furthermore, Docker has integrated seamlessly with orchestration frameworks like Apache Mesos and Mesosphere Marathon. This combination has allowed for more efficient application development and deployment through effective management of containers. Docker has also demonstrated its utility in building server deployment files and running tests, enabling consistent deployments and reliable testing procedures.
In addition to these technical applications, Docker has proved to be valuable in hosting MySQL databases for production websites. Its stability, security features, and easy provisioning of identical instances have made it a preferred choice for users. Moreover, Docker has been extensively used in CI builds as it enables the creation of custom Linux images and seamless deployment of the latest code from the Docker registry.
The flexibility offered by Docker comes to the forefront when it comes to testing practices. It provides a highly configurable environment that makes cross-platform testing significantly more efficient. Users have leveraged Docker for both automated website/application testing pipelines as well as creating flexible environments for manual testing. Moreover, Docker has acted as a viable alternative to custom build and deploy solutions, offering a more flexible and decentralized process.
Notably, Docker has been embraced by a large global financial services provider to enhance efficiency and agility in application development. This adoption has resulted in increased innovation and productivity within the organization. Another significant benefit of using Docker is its ability to provide identical application environments across multiple deployment environments, leading to the deployment of more stable applications.
Furthermore, Docker has played a role in differentiating between server/compute infrastructure and application infrastructure. Operations teams can efficiently manage the cluster of servers, while application developers can run containers on the cluster, ensuring a clear separation and easier management of the two layers.
Teams have leveraged Docker for various development and deployment practices. Engineers can build applications in the same environment, eliminating local configuration issues that often arise when working across different setups. Docker has been particularly useful for WordPress development, replacing tools like Vagrant and providing tighter integration with Windows Hyper-V and better performance.
One of the significant advantages of Docker is its ability to containerize applications, resulting in consistent deployment environments across different stages and compatibility with various cloud platforms. This has greatly simplified the deployment process for users and enhanced their productivity. Additionally, Docker has been highly beneficial for the development team in resolving issues related to different setups on Windows, Linux, and Mac operating systems, while also providing easy configurations for automation QA.
Docker's impact extends beyond software development into the realm of research reproducibility. Users have developed Docker containers to encapsulate research pipelines, leveraging GitHub and DockerHub as public repositories. This approach has effectively addressed the challenge of ensuring reproducibility in research experiments.
Moreover, Docker Swarm has been employed to deploy internal applications in a managed cluster, successfully tackling scaling and load balancing issues during peak business hours. The combination of Docker with Kubernetes has also gained popularity among teams for containerizing projects and facilitating the development of microservices.
Overall, Docker's value proposition lies in its ability to provide consistent development environments, prevent deployment issues, streamline configurations, enhance testing efficiency, and simplify the overall software packaging and deployment processes. Its widespread usage across various industries highlights its robustness, ease of setup, community support through open-sourced images, and its ability to create and test configurations as needed. Docker has become an indispensable tool for many organizations seeking to optimize their software development lifecycle while improving productivity and innovation.
It is used in a project in our enterprise. It helps us to scale individual components independently. Only a little times we faced issues with Mirantis Cloud Native Suite (Docker Enterprise). Rest of the time I assure that it worked properly. We can also keep it on autoscale. And it works really well at peak times as well.
Pros
Scale small components individually
Scale Independent native components
Creating docker images
Cons
More support for high level components need to be improved
Skewed scaling of conponents can be improved
Offline support
Likelihood to Recommend
Mirantis Cloud Native Suite (Docker Enterprise) is well suited for extracting docker images of large applications and test the application for various operating systems and all. It is well suited for business applications, customer applications etc. and not suited for financial applications because there may be security concerns so use it wisely
Docker Enterprise is quite a handy solution when it comes to containerizing your application making it lightweight and easy to spin and access. Currently, it is being used across the whole organization and [is a] solution for every kind of complex problem.
Pros
Easy to control.
Setting up network across different containers is quite easy.
Mapping of resources with host machine is easy.
Cons
Setting up networking from scratch is painful.
Resources required for setting Docker Enterprise are huge.
User interface needs to be improved and made more user friendly.
Likelihood to Recommend
Mirantis solution is really helpful when your critical application is containerised and if you are facing any kind of problems related to containers. You don't have to rely on the community for your issue, you can raise a ticket with the vendor and the resolution is quite fast. It [is] quite expensive when it comes to pricing and almost all the features can be utilized using the community edition which is free.
We use Docker for WordPress development. It has replaced Vagrant on our development systems. We like the tighter integration with Windows Hyper-V and the performance is better than VirtualBox-based solutions. We are able to jump-start many projects with the Docker Compose files people contribute and publish on GitHub. Using Docker Compose we are able to create reliable, consistent, development scaffolding.
Pros
High performance.
Easy to configure consistent development systems.
Eliminates the "It works on my machine" problem.
Cons
Tighter integration with Windows 10 and WSL.
Better support for MacOS.
Better documentation.
Likelihood to Recommend
It's excellent when you need to run several simultaneous containers and has much better performance than Vagrant or VirtualBox based solutions. It's easier to configure than VMWare. It doesn't seem appropriate if you need GUI access inside the container, I'm not sure that's even possible. SSH access is possible, but a little cumbersome.
VU
Verified User
Executive in Information Technology (Information Technology and Services company, 1-10 employees)
Docker is used for by both the dev team and the QA team on my project. For the dev team it's really useful as they had a lot of issues prior to using Docker with the different setups the devs had: Win/Linux/Mac. After switching to Docker these issues disappeared.
For me as an automation QA lead, it's mainly used for our Selenium Grid. Our grid is running on AWS, and I configured it via Docker. I use docker-compose to start it up and to scale how many browsers should be started. Using only Docker was already a huge help, as we didn't really have to worry about the configurations and it was easy to use the same setup for more instances, but combined with the scaling option of docker-compose it proved to be a really convenient.
Pros
Develop on multiple platforms. The same Docker image can be used on Linux/Mac/Windows.
Ease of configuration. It's very easy to create a base image for your project. There are a lot of already existing images you can use to start with.
Scalability. If you need more than just one instance of the same image, it's just a command to spin up more.
Cons
Finding the perfect configuration: it's very easy to find some basic configurations, but fine-tuning it can be challenging.
Understanding the concept can be difficult at first. Most of the question I get from colleagues are around: what's happening inside the docker, how we can see the logs what happens inside etc. One you have the concepts, you can easily do these, but this can be a rough beginning.
Sometimes difficult to set it up. I'm mainly hearing about this from colleagues using Windows.
Likelihood to Recommend
I most certainly would encourage everyone to try it. It might not be a good fit for their needs, but knowing about it definitely helps. For me it's very useful because of the way we can set up Selenium Grid with it. As official images are released for it, setting up a working Selenium Grid can be done in 1-2 single commands. If you use Docker Compose it's even easier to spin it up, just create a YML file describing the browsers you want to use, and with one single line you can spin up a grid with X number of different browsers and browser instances.
VU
Verified User
Engineer in Quality Assurance (Information Technology and Services company, 10,001+ employees)
We use Docker as the backbone of our hosted app infrastructure. Every element of our application is broken down into a microservice; these miniature services are then built into Docker containers and deployed directly to AWS cloud. Docker lets us deterministically build, distribute, and deploy all of our services without any ambiguity as to what's being deployed and why.
Pros
Deterministic application state and deployments.
Consistent version history for previous builds.
Easy distribution mechanisms across the team.
Cons
Docker does update quickly, sometimes the updates to the engine break older container images.
Some of the changes to the Dockerfile structure are confusing and incompatible with older versions, challenging teams.
Likelihood to Recommend
Docker is incredibly useful if you're deploying and hosting your own application infrastructure. It leads to reusable components that can be linked together in order to build a fully-functional, reusable system.
However, if your application is simpler and hosted on something like Elastic Beanstalk or AWS Lambda or RedShift, Docker might be overkill for the application development team.
We use Docker to provide us fast containerization of our Continuous Deployment and Integration pipelines. Once our code is good for shipping, we trigger a test pipeline which will in turn compile all its dockerfiles, upload them to hub.docker.com if needed and then upload/install an updated version of the system and its environments at DigitalOcean via Docker drivers and swarm. Our developers as well as our production servers use it as well, being our stack composed of a total of 4 different nodes, a MongoDB container; an elasticsearch container; a nodejs container and our discovery service container, comprising Consul key-value database to store all data from our slave nodes. It's solely maintained by our development team, but the system built within is widely used by our staff as well as the company's clients, spread throughout the world.
Pros
Its topology isolation is in my opinion an unbeatable feature. In our systems we have the need of parallel Java 7 and 8 versions to be running together. Without Docker that would not have been made possible.
Docker Swarm, taking care of our load-balance characteristics so needed for our systems is a must have.
Docker composer is a very powerful feature, therein I can have my containers scripted and each of its continuous integration and deployment separated with each of its own concerns isolated whilst all being nicely bootstrapped together under the same "docker-compose up" command.
Cons
Some commands are not very intuitive. In order to have an entire swarm properly functioning [specifically for the scenario we have at our company] wasn't a simple task, having to maintain a very wide range of environment variables safely and nicely kept and good for use. The pipeline to have such a topology ready wasn't simple to figure out how to come up with.
Some volumes, if not properly shut down when its necessary, will take up to all your disk space. The extra -v attribute wasn't too obvious to use when removing an specific volume leading us to a huge headache.
Some containers, though exposed as official ones at docker.hub.com, are very space and memory consuming. We have do figure out our own containers for pretty much everything, even though the services that were necessary in the containers were pretty vanilla.
Likelihood to Recommend
It's excellent for Continuous Integration and Continuous Deployment. Simple, savvy serviced based containers that can be fired at the simple script command. If you need to have your system promptly up and running, Docker is a perfect choice, even for the unskilled user, as it can be configured to run automatically via scripting by the technical staff. It provides a very elegant way of guaranteeing that all the environments are in sync throughout the company. A developer may have its own machine, but it will always match the production and staging servers.
We use docker in our CI builds from creating a custom Linux image to deploying our latest code from docker registry
Pros
Simplicity/ Efficiency
Isolation/ Separation of Concerns
Works well with cloud deployments using services like AWS
Supports build automation with docker registry
Cons
I understand docker is evolving very well, however wish there were more logging support
A Docker dashboard that gives insights and statistics
Likelihood to Recommend
Well suited when paired with cloud services. Helps regular automation too, however more handy while using shell scripts for AWS build automation.
If it is a simple project or just to set up developer environment as a local virtual machine, it might be an over kill. Wish it worked straight away on Mac