Do Framework
The Do Framework is a DevOps framework focused on simplicity, intuitiveness, and productivity. It helps you get more done.
Your project is NOT a Do Framework project if:
- you have to do more than one step to get something done
- you don't know how to get something done, without reading the documentation first
- you are not able to get your work done quickly
The Do Framework is defined by its philosophy and principles.
Philosophy
- Software development and operations should get simpler over time, regardless of the rising complexity of systems and technologies.
- Humans should be able to develop and operate systems intuitively, without need for extensive learning
- Humans should be able to get more done with less effort and faster over time
Principles
- Simplicity - favor simplicity, encapsulate complex functionality into single, simple, intuitive, and actionable artifacts; standardize artifacts across projects
- Flexibility - "batteries included, but swappable"; each project should come pre-configured with reasonable defaults which work out of the box, but should be completely customizable through centralized configuration
- Universality - generalize, build projects that solve problems universally, so when the same problem needs to be solved in a different setting (different cloud, operating system, processor, etc.), you don't have to build a new project.
Implementation
Any project that adheres to the philosophy of the framework and abides by its principles is considered to be a Do Framework project. The choice of a technology stack and tooling belongs entirely to the implementation. The Depend on Docker project is the first known Do Framework implementation.
"Depend on Docker" Project
The Depend on Docker project is a template for building Do Framework projects using Docker.
It is:
- Simple
- Creates a new project with a single command
- Depends only on Docker to go from source to production
- Standarizes user interaction through a set of intuitive action scripts:
./config.sh
,./build.sh
,./push.sh
,./pull.sh
,./run.sh
,./exec.sh
,./status.sh
,./logs.sh
,./test.sh
,./stop.sh
.
- Flexible
- Works with the included default settings, but is also fully customizable
- Universal
- Runs on Linux or Windows, locally or in the cloud
The Depend on Docker project challenges us to never install anything other than Docker directly on our machines. It helps us build and run containers instead.
Examples
Below is a list of open source Do Framework projects that have been built using the Depend on Docker template.