DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • AppOps with Kubernetes and Devtron - The Perfect Fit
  • Deploying a Scalable Golang Application on Kubernetes: A Practical Guide
  • Serverless vs Containers: Choosing the Right Architecture for Your Application
  • 7 Ways of Containerizing Your Node.js Application

Trending

  • Docker Hardened Images Are Free Now — Here's What You Still Need to Build
  • Zero-Downtime Deployments for Java Apps on Kubernetes
  • S3 Vectors: How to Build a RAG Without a Vector Database
  • Integrating AI-Driven Decision-Making in Agile Frameworks: A Deep Dive into Real-World Applications and Challenges
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. Container Types and Use Cases

Container Types and Use Cases

System and application containers in nested architecture: certified containers, elastic VPS, custom Docker images, native Docker Engine and Kubernetes cluster.

By 
Tetiana Fydorenchyk user avatar
Tetiana Fydorenchyk
·
Updated Aug. 06, 20 · Opinion
Likes (10)
Comment
Save
Tweet
Share
29.2K Views

Join the DZone community and get the full member experience.

Join For Free

There are two types of containers that are oriented to solve different problems.

  • System Containers — one of the oldest container types, which is quite similar to virtual machines. It is a stateful, operating system-centric solution that can run multiple processes. System containers are usually used for traditional or monolithic applications, as they allow to host architectures, tools, and configurations implemented for VMs. There are different implementations of system containers: LXC/LXD, OpenVZ/Virtuozzo, BSD jails, Linux vServer, and some others. 
  • Application Containers — a relatively new container type, which commonly runs a single process inside. It is a stateless microservice-centric solution that is easily scalable horizontally. Application containers are the most suitable for immutable and ephemeral infrastructures. Several application container implementations are available at the market: Docker, containers, CRI-O, and some others. 

main service

Talking about containers nowadays, people often think of Docker technology, as it was highly promoted and adopted during the last years. Most cloud vendors offer Docker application containers inside Virtual Machines. Each VM includes Guest OS with its memory, CPU, and disk footprint that increases the number of required resources to run the application and thus makes its hosting more expensive. In the case with Jelastic, Docker technology is running inside system containers within the same kernel. Thus they share OS resources from the host operating system and reduce consumption. And while being more lightweight than VMs, these nested containers are still highly isolated and secure.

system container

Jelastic PaaS uses Virtuozzo system containers and Docker application containers in a nested architecture. Within the platform, different container types can be used for various use cases:

  • Certified Managed Containers
  • Elastic Virtual Private Servers (Elastic VPS)
  • Custom Docker Containers
  • Docker Engine CE (Docker Native)
  • Kubernetes Cluster

Below we will review each case in detail, as well as provide some hints on what options can be more appropriate for your project.

Certified Managed Containers

The most common and recommended choice for Jelastic customers is certified containers. The platform offers multiple pre-configured and managed software stacks, that allow the creation of flexible topologies with the required application server (Java, PHP, Node.js, Ruby, Python, or Go), load balancer, databases, etc. 

tomcat

All of these certified containers are thoroughly tested and optimized specifically for the most common scenario within the platform. Jelastic team regularly updates these software stacks to the newest available stable versions or apply security patches to already released container images.

jelastic orchestrator

Usually, these containers also benefit from additional integrations, such as automated configuration based on the resource (cloudlet) scaling limits, automated SSL certificates installation, application deployment automation, built-in auto-clustering, managed delivery of security updates, and others. 

Virtual Private Servers (Elastic VPS)

The most straightforward example of a system container implementation is a virtual private server. Jelastic offers Elastic VPS containers with the following pre-installed operating systems: CentOS, Ubuntu, and Debian. It is a pure OS-based container without any additional customization or software installed. It can be considered as the most suitable option for containerizing legacy applications as it requires minimal to no changes while migration from VMs. 

elastic vps

Since it is practically “empty” after the installation, all the required configurations should be done by the end-user. To help you with this task, root access is provided to Elastic VPS containers. It’s almost like a virtual machine but more lightweight and with the advantages of automatic vertical and horizontal scaling.

Custom Docker Containers

The Custom Docker Container is a Docker image (based on the supported OS) deployed inside the Jelastic system container, which makes it compatible with the most (but not all) platform-distinguishing features, such as built-in vertical and horizontal scaling. In other words, the filesystem of your custom Docker image is unpacked inside the system container runtime.     

jelastic orchestrator

Compared to the certified managed containers, this option provides access to a wider choice of software stacks. You can select from a vast range of 3rd party Docker images available at the Docker Hub or any other compatible public or private container registry. However, software operability and compatibility within the platform cannot be guaranteed as it is managed by respective 3rd party image maintainers.

elasticsearch

Docker Engine CE (Docker Native)

Jelastic PaaS provides support for the Docker Engine Community Edition that is running inside system containers but at the same time has full compatibility to the native Docker ecosystem. 

jelastic orchestrator

Such integration makes it possible to work with the core tools of Docker container technology, namely:

  • Docker Engine — processes Dockerfile manifests or runs pre-built container images 
  • Docker Registry — stores and provides access to numerous public and private images, intended for deployment within Docker Engine
  • Docker Compose — helps to assemble applications, that consist of multiple components where all the required configurations are declared within a single compose file
  • Docker Swarm — represents several independent Docker nodes, interconnected into a cluster

Jelastic provides a pre-packaged version of the Docker Engine CE solution and Docker Swarm Cluster with integrated auto-clustering. 

docker engine

Kubernetes Cluster

Application containers can be run and managed with the help of the Kubernetes orchestration tool. It is an open-source platform designed for deployment and management of fault-tolerant containerized applications. It can handle complex tasks of container orchestration, such as deployment, service discovery, rolling upgrades, self-healing, and security management.

jelastic orchestrator

Jelastic PaaS Kubernetes implementation automates cluster installation, configuration, updates, and supplies multiple pre-integrated services (e.g. Weave CNI, CoreDNS, Traefik, etc.).

kubernetes cluster

In other words, we run Kubernetes with the help of Jelastic orchestration providing maximum interoperability for projects that were designed for Kubernetes from the beginning. The major benefit of Jelastic Kubernetes' implementation is the advanced pay-per-use model that solves the right-sizing problem and makes hosting of multiple containers more cost-efficient.  

Now, you know about various container types available at the cloud market, as well as their specifics within Jelastic PaaS. Hopefully, this will help you to choose the most suitable option for your project needs. 

Docker (software) Kubernetes operating system application

Published at DZone with permission of Tetiana Fydorenchyk. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • AppOps with Kubernetes and Devtron - The Perfect Fit
  • Deploying a Scalable Golang Application on Kubernetes: A Practical Guide
  • Serverless vs Containers: Choosing the Right Architecture for Your Application
  • 7 Ways of Containerizing Your Node.js Application

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook