You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Containers are a way to package an application together with everything it needs to run (runtime, libraries, system tools, config), and execute it in an isolated environment on a shared operating system kernel.

Unlike a virtual machine, a container does not include a full operating system. It runs as a normal process on the host, isolated from the host and the other containers, sharing the single OS kernel from the host.

Old School Approach

Disadvantages:

  • High resource overhead
  • Slow startup
  • DevOps nightmare (installing / patching / maintaining many OS and applications)
  • Murky Devs and DevOps boundaries - "Works on my machine" problem

Container Approach

The main difference between container deployments seen in the industry is the orchestration (i.e. what is responsible for starting and stopping the containers amongst other tasks). The jtel container stack uses docker compose.

Advantages:

  • Lightweight - low resource overhead
  • Much higher density per host
  • Fast startup in seconds or less
  • DevOps greatly simplified - the same container runs on a dev laptop or in production reducing environment specific bugs
  • Clean Devs / DevOps Boundary



  • No labels