Patterns of Multi-Container Composition for Service Orchestration with Docker Compose
- URL: http://arxiv.org/abs/2305.11293v2
- Date: Wed, 8 May 2024 08:36:06 GMT
- Title: Patterns of Multi-Container Composition for Service Orchestration with Docker Compose
- Authors: Kalvin Eng, Abram Hindle, Eleni Stroulia,
- Abstract summary: This work curates a dataset of successful projects that employ Docker Compose as an orchestration tool to run multiple service containers.
The collection of data and analysis enables the identification and naming of repeating multi-container composition patterns.
These patterns highlight how software systems are orchestrated in the real-world and can give examples to anybody wishing to compose their own service orchestrations.
- Score: 5.1861106408299635
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Software design patterns present general code solutions to common software design problems. Modern software systems rely heavily on containers for running their constituent service components. Yet, despite the prevalence of ready-to-use Docker service images ready to participate in multi-container service compositions of applications, developers do not have much guidance on how to compose their own Docker service orchestrations. Thus in this work, we curate a dataset of successful projects that employ Docker Compose as an orchestration tool to run multiple service containers; 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 multi-container composition patterns that are used in numerous successful open-source projects, much like software design patterns. These patterns highlight how software systems are orchestrated in the real-world and can give examples to anybody wishing to compose their own service orchestrations. These contributions also advance empirical research in software engineering patterns as evidence is provided about how Docker Compose is used.
Related papers
- Design and Implementation of Flutter based Multi-platform Docker Controller App [1.1443262816483672]
This paper focuses on developing a Flutter application for controlling Docker resources remotely.
The application uses the SSH protocol to establish a secure connection with the server and execute the commands.
An alternative approach is also explored, which involves connecting the application with the Docker engine using HTTP.
arXiv Detail & Related papers (2025-02-17T11:48:02Z) - Refactoring for Dockerfile Quality: A Dive into Developer Practices and Automation Potential [0.0]
This paper explores the utility and practicality of automating Dockerfile using 600files from 358 open-source projects.
Our approach leads to an average reduction of 32% in image size and a 6% decrease in build duration, with improvements in understandability and maintainability observed in 77% and 91% of cases.
arXiv Detail & Related papers (2025-01-23T23:10:47Z) - VisionCoder: Empowering Multi-Agent Auto-Programming for Image Processing with Hybrid LLMs [8.380216582290025]
This paper presents a multi-agent framework that collaboratively completes auto-programming tasks.
Each agent plays a distinct role in the software development cycle, collectively forming a virtual organisation.
By establishing a tree-structured thought distribution and development mechanism across project, module, and function levels, this framework offers a cost-effective and efficient solution.
arXiv Detail & Related papers (2024-10-25T01:52:15Z) - Codev-Bench: How Do LLMs Understand Developer-Centric Code Completion? [60.84912551069379]
We present the Code-Development Benchmark (Codev-Bench), a fine-grained, real-world, repository-level, and developer-centric evaluation framework.
Codev-Agent is an agent-based system that automates repository crawling, constructs execution environments, extracts dynamic calling chains from existing unit tests, and generates new test samples to avoid data leakage.
arXiv Detail & Related papers (2024-10-02T09:11:10Z) - SPViz: A DSL-Driven Approach for Software Project Visualization Tooling [0.0]
We propose a DSL-driven approach that allows software architects to define and adapt their own project visualization tool.
We demonstrate how SPViz can then automatically synthesize a customized, project-specific visualization tool.
arXiv Detail & Related papers (2024-01-30T14:41:40Z) - CRAFT: Customizing LLMs by Creating and Retrieving from Specialized
Toolsets [75.64181719386497]
We present CRAFT, a tool creation and retrieval framework for large language models (LLMs)
It creates toolsets specifically curated for the tasks and equips LLMs with a component that retrieves tools from these sets to enhance their capability to solve complex tasks.
Our method is designed to be flexible and offers a plug-and-play approach to adapt off-the-shelf LLMs to unseen domains and modalities, without any finetuning.
arXiv Detail & Related papers (2023-09-29T17:40:26Z) - Collaborative, Code-Proximal Dynamic Software Visualization within Code
Editors [55.57032418885258]
This paper introduces the design and proof-of-concept implementation for a software visualization approach that can be embedded into code editors.
Our contribution differs from related work in that we use dynamic analysis of a software system's runtime behavior.
Our visualization approach enhances common remote pair programming tools and is collaboratively usable by employing shared code cities.
arXiv Detail & Related papers (2023-08-30T06:35:40Z) - Studying the Practices of Deploying Machine Learning Projects on Docker [9.979005459305117]
Docker is a containerization service that allows for convenient deployment of websites, databases, applications' APIs, and machine learning (ML) models with a few lines of code.
We conducted an exploratory study to understand how Docker is being used to deploy ML-based projects.
arXiv Detail & Related papers (2022-06-01T18:13:30Z) - Concepts and Algorithms for Agent-based Decentralized and Integrated
Scheduling of Production and Auxiliary Processes [78.120734120667]
This paper describes an agent-based decentralized and integrated scheduling approach.
Part of the requirements is to develop a linearly scaling communication architecture.
The approach is explained using an example based on industrial requirements.
arXiv Detail & Related papers (2022-05-06T18:44:29Z) - OneLabeler: A Flexible System for Building Data Labeling Tools [48.15772261649084]
OneLabeler supports configuration and composition of common software modules to build data labeling tools.
A user study with developers provides evidence that OneLabeler supports efficient building of diverse data labeling tools.
arXiv Detail & Related papers (2022-03-27T07:22:36Z) - Merlion: A Machine Learning Library for Time Series [73.46386700728577]
Merlion is an open-source machine learning library for time series.
It features a unified interface for models and datasets for anomaly detection and forecasting.
Merlion also provides a unique evaluation framework that simulates the live deployment and re-training of a model in production.
arXiv Detail & Related papers (2021-09-20T02:03:43Z) - Collective Knowledge: organizing research projects as a database of
reusable components and portable workflows with common APIs [0.2538209532048866]
This article provides the motivation and overview of the Collective Knowledge framework (CK or cKnowledge)
The CK concept is to decompose research projects into reusable components that encapsulate research artifacts.
The long-term goal is to accelerate innovation by connecting researchers and practitioners to share and reuse all their knowledge.
arXiv Detail & Related papers (2020-11-02T17:42:59Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.