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
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • AppOps with Kubernetes and Devtron - The Perfect Fit
  • Running SpringBoot Application On OpenShift
  • Java CI/CD: From Local Build to Jenkins Continuous Integration
  • Careers in DevOps For Non-Technical People

Trending

  • Docker Base Images Demystified: A Practical Guide
  • Docker Model Runner: Streamlining AI Deployment for Developers
  • Designing a Java Connector for Software Integrations
  • AI’s Role in Everyday Development
  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
28.8K 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, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • AppOps with Kubernetes and Devtron - The Perfect Fit
  • Running SpringBoot Application On OpenShift
  • Java CI/CD: From Local Build to Jenkins Continuous Integration
  • Careers in DevOps For Non-Technical People

Partner Resources

×

Comments
Oops! Something Went Wrong

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

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

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 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!