Patterns in Docker Compose Multi-Container Orchestration
Software design patterns present general code solutions to common software design problems. Modern software systems rely heavily on containers for organizing and orchestrating their constituent service components. Yet, despite the prevalence of ready-to-use Docker service images ready to participate in multi-container orchestration, developers do not have much guidance on how to develop their own multi-container Docker orchestrations. Thus in this work, we curate a dataset of successful projects that employ Docker Compose as an orchestration tool; then, we engage in qualitative and quantitative analysis of Docker Compose configurations. The collection of data and analysis enables the identification and naming of repeating patterns of deployment and orchestration employed by numerous successful open-source projects, much like software design patterns. These patterns highlight how software systems are orchestrated in the wild and can give examples to anybody wishing to develop their container orchestrations. These contributions also advance empirical research in software engineering patterns as evidence is provided about how Docker Compose is used.
READ FULL TEXT