Building applications with container technologies like Docker or rkt allows for new architectures and decisions in application design. In this document we would like to start a discussion around this and share experiences.
We are mainly talking about cloud aware applications. Or as the cloud native foundations summarizes: modern distributed systems which will be container packed, dynamically managed and micro-services oriented.
The goal is to find and describe general applicable patterns for building applications of this type. The patterns should be container runtime agnostic but with concrete examples.
We currently assume that using several containers is a good idea. The reasons for this are manifold and won't be discussed in detail here. But just a couple of reasons by way of example: “Independent releasable”, "Reuse of domain / infrastructure components”, “Separate processing types”, “Different loads”, “POCs isolation”, "Composability", “Use different languages / versions / libraries”, “Enforce architectural boundaries”, “Robustness / crash isolation” or simply “Different teams”.
The current version is a discussion starter mainly taken from various feedback from the talks @luebken and @denderello have given. The latest version of the talk is from QCon London (March 2016). For the current state of this document please refer it's Github issues.
Currently most of the discussions are done in other channels. The first idea to consolidate this with issues. But feel free to suggest other channels.
!INCLUDE "SUMMARY.md"