Containers

  • Method of packaging applications and all dependencies
  • Portable
  • Lightweight—doesn’t contain entire OS
  • Standardized format

VM Downsides

  • Generally an application per VM:
    • bleeding over of dependencies—different apps need different versions of same library
  • Complicated rollout
  • Underutilized hardware—resources required for OS

Container Upsides

  • Optimize infrastructure—bin-packing of applications
  • Optimize licence costs—multiple applications per VM/OS
  • Scalabilty
  • Portability
  • Agility
  • Customers want to leverage same tech on cloud as on-prem—familiarity

Container Candidates

Good Candidates

  • Web/logic tiers
    • LAMP, WordPress
    • J2EE middleware—WebSphere, Tomcat, JBoss
  • Low duty-cycle and burst workloads
    • Windows services, console apps
    • Batch jobs

Candidates Requiring Investigation

  • Dependency on specialized hardware—e.g. GPUs, TPUss
  • Requirement for elevated privileges
  • COTS software

Bad Candidates

  • Low-level networking requirements
  • Desktop apps—RDP, VDI

Why Containers for Legacy Apps?

  • Less risky—fewer code changes
  • Quick—days/weeks

Graph View