Difference between revisions of "Use cases"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
(VPS->VE)
(update scenarios)
 
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
OpenVZ has a number of unique features that can be effectively used in the following scenarios:
 
  
== Improved security ==
+
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.
  
Consider a Linux server used to serve mail, web site, and DNS. There are at least three different applications listening to and handling network requests, and any of them can contain security holes. Using OpenVZ, a server can be divided into three [[VE]]s, one for each application. Thus, if the DNS server is compromised, the other applications will still be left intact due to complete isolation between VEs.
+
== CI/CD and development operations ==
  
== Server consolidation ==
+
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.
  
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.
+
== Containers and big data ==
  
With OpenVZ, you can enjoy the benefits of dedicated server without such drawbacks. Create a VE for each application and use the existing hardware more efficiently. This approach can be deployed totally transparently to users using OpenVZ.
+
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.
  
== Development and testing ==
+
Possible uses cases to provide big data and Analytics as a Service (AaaS) include:
  
Developers often need access to several different Linux distributions to develop an application. Testing also needs to be performed on various software configurations. Therefore, testing and development groups often require a lot of hardware. Alternatively, using OpenVZ developers and QAs can create multiple partitions with different Linux distributions and configurations residing on one physical server. Each VE can have its own set of packages, system libraries, configuration files.
+
* 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.
  
A better way is to use OpenVZ. You can use different Linux distributions for different [[VE]]s residing on one physical server. Each [[VE]] can have its own set of packages, system libraries, configuration files.
+
== Hosting ==
  
== Hosting ==
 
 
* Isolated users
 
* Isolated users
* A VE is like a real server, just very cheap
+
* A container is like a real server, just very cheap
* Each user can have his own versions of applications
+
* Each user can have an individual versions of applications
* Much easier to admin
+
* Much easier to administer
 +
 
 +
== Server consolidation ==
 +
 
 +
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 [[container]]s, one for each service. With [[Checkpointing and live migration|live migration]] available for [[container]]s 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.
 +
 
  
== Educational ==
+
== See also ==
  
With OpenVZ, a separate VE can be created for every student. Thus, each student gets their own root account and can do everything on their own server, e.g. experiment with firewall configuration rules (iptables).
+
* [[Success stories]]
 +
* [http://h20195.www2.hp.com/V2/getpdf.aspx/4AA5-9251ENW.pdf?ver=1.0 Technical white paper: Linux container technology]

Latest revision as of 14:27, 5 August 2015

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[edit]

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[edit]

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.

Hosting[edit]

  • 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

Server consolidation[edit]

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.


See also[edit]