Home

Awesome

The Container Ecosystem Project

The ecosystem of awesome new technologies emerging around containers and microservices can be a little overwhelming, to say the least. We thought we might be able to help: welcome to the Container Ecosystem Project. The goals of this project are (1) to clearly lay out the different types technologies that make up the growing container ecosystem and the microservices technology stack – starting from the lowest levels of core container technology, and rising up through layers of abstraction to full-blown container platforms and support tools – and (2) to put forth the latest and greatest examples of each type of technology.

This project is a living document - please submit edits/pull requests for suggested changes.

View this project as a webpage here:
http://www.sysdig.com/the-container-ecosystem-project/

Table of Contents

Core Container Technologies

Use these tools to run a small number of containers on a single host

Container specifications

An abstract definition of a standard "container", allowing an ecosystem of technologies to support a standard container with potentially multiple, interchangeable runtime implementations

Container runtimes

This is your actual running container (essentially an abstraction of Linux kernel components like namespaces and cgroups that allow virtualization on top of a shared kernel)

Container management

These tools abstract low level control of your container runtime adding further functionality and usability

Container definition

These tools allow you to define specific containers, so they can be saved, shared and reproduced

Registries

Repositories for storing and sharing container images

Operating systems

OS's that are designed for hosting containers

VM management

These tools help you manage the host virtual environments in which you run your containers

Distributed Container Technologies

Use these technologies to run applications on a distributed cluster of containers

Scheduling

These tools manage placement of new containers across abstracted underlying resources

Cluster definition

These tools allow you to define and manage a cluster of dependent containers as a single composable entity

Service discovery / Distributed configuration storage

These tools allow applications within different containers to discover each other and share configuration information (eg. IP addresses or application settings); usually implemented as a globally distributed key-value store

Dynamic configuration management

These tools let you dynamically update application settings based on changes to your distributed key-value store in applications that don't natively support this

Container Platform Technologies

Use these technologies as complete platforms for running distributed applications across clusters of containers

Container orchestration platforms

These platforms include or abstract away all of the core functionality (listed above) needed for container cluster management ("orchestration"), including container management, scheduling, cluster definition, and service discovery

Hosted container platforms

These platforms offer container hosting and orchestration as a service

Container platform management

These technologies add further abstracted management and control layers to distributed container environments, often through GUIs

Container-based PaaS

These platforms further abstract container-based infrastructures by managing application code deployment and offering PaaS-like user experiences

Container-Native Support Technologies

Use these additional container-native tools to support your container-based infrastructure

Networking

Monitoring / Visibility

Data layer

Log management

CI/CD

Security

Getting started aides

About the Container Ecosystem Project

Here at Sysdig, the container-native visibility company, we talk to a lot of people in the container ecosystem: both consumers and producers of technology. And wow, there is a LOT of cool technology out there – and so much more coming out all the time. It can be hard to keep up with, even if you're a seasoned expert, much less as a curious newcomer just trying to figure out where to start. There are plenty of great guides out there for various container technologies and use cases (see below for some links). But we had yet to find a clearly organized survey of the different core technologies that make up the container ecosystem and the typical microservices stack. So we decided to make one: the Container Ecosystem Project.

For each type of technology, we've tried to provide a brief description, as well as list examples currently available for that technology. We've separated out open source solutions from commercial offerings. Two of the leading open source container technology producers, Docker and CoreOS, each get their own sections. Throughout the doc, we've tried to mark beta technologies and parent technologies accordingly.

This framework is not, of course, a perfect science, and this will be a work in progress. If you have any suggested edits, please tweet us or submit edits/pull requests. We'll do our best to keep this document up to date and prune off deprecated or abandoned technologies as the ecosystem evolves.

Further Reading

Project created and maintained by Sysdig, the container-native visibility company.
http://www.sysdig.com/
http://www.sysdig.org/