The high system utilization capabilities and improved performance allow containers to get the most out of an enterprise system’s infrastructure. With a common kernel among containers, OS management is far less impacted than for a VM-based system.
CI/CD and development operations
Containers offers significant benefits for CI/CD and development operations (DevOps). A key hurdle during application development is the point when finished code is turned over to the testing and production side. Often, an application that ran fine for the developer doesn’t run during production testing. Containers are well suited for application development since you can define all of the elements of an application environment within the container. This means if the application runs in the development container it will run in a final production container that matches it. With containers, testing can be accomplished without disrupting other applications. Container startup is much quicker than VMs, allowing on-demand execution of CI processes and quicker testing cycles. Application updates can also be facilitated through independent releases of many containerized micro-services. This agility allows for limited or dark releases and rollback changes at the micro-service level.
Containers and big data
The moving of processes or data might be optimized with containers. A new process container might be virtually created on a data storage container, or a data container can be created and filled on a process container. Much of Big Data is really Little Data buried inside huge amounts of unrelated data. A light-weight process may efficiently extract a small dataset and send it to a parallel computer such as a GPU for processing. Other processes might be characterized by both volume and type and need to request more storage for explosively growing processes.
Possible uses cases to provide big data and Analytics as a Service (AaaS) include:
- Data scientists that want to experiment and learn about big data technologies.
- Developers that need a locally accessible big data development environment.
- Users that want to share a big data application quickly and safely.
- Isolated users
- A container is like a real server, just very cheap
- Each user can have an individual versions of applications
- Much easier to administer
Consider a Linux server used to serve a bunch of services. You will have downtime for each service during OS update or setup failover cluster for each service to decrease downtime. Using OpenVZ, a server can be divided into several containers, one for each service. With live migration available for containers you can migrate your services to another service and return them back after upgrading server.
Having a separate physical server for each application is generally a good approach, it increases availability and improves security. However, separate servers lead to increased costs of hardware and collocation, and modern hardware is often underutilized in this scenario.
With OpenVZ, you can enjoy the benefits of dedicated server without such drawbacks. Create a container for each application and use the existing hardware more efficiently. This approach can be deployed totally transparently to users using OpenVZ.