Diagrams as a code: declarative configurations using YAML for drawing cloud system architectures.
Project description
Diagrams as a code
: declarative configurations using YAML
for drawing cloud system architectures.
Table of content:
Introduction
This project lets you draw the cloud system architecture in a declarative way with widely used YAML
syntax which is de
facto a standard for infrastructure and configurations so here habitual approaches are met and industry best practices
are aligned as well. It allows you to track an architecture's diagram changes with a version control system such as
Git
.
Currently, the following components are provided:
- Major cloud providers: AWS, Azure, GCP, IBM, Alibaba, Oracle, OpenStack, DigitalOcean and so on.
- On-Premise, Kubernetes, Firebase, Elastic, SaaS.
- Programming languages and frameworks.
Basically, with the project, you just define set of resources, compose them into groups and/or clusters and set relationships, anything else is done under the hood.
Roadmap
- Add support of C4.
- Add support of Custom.
- Add IDEs plugins and/or web user interface for live editing.
- Research Confluence integration to update images from the CI-builds directly.
- Research ChatGRT integration.
Getting Started
How to install
As the project uses Graphviz to render the diagram, you need to install it:
- For
Linux
— https://graphviz.gitlab.io/download/#linux - For
Windows
— https://graphviz.gitlab.io/download/#windows - For
macOS
— https://graphviz.gitlab.io/download/#mac
After, you can install the project itself with the following command using pip3
:
$ pip3 install diagrams-yaml
Examples
You can find examples of YAML
configurations in the examples
folder. Below are placed are few of them (click on the name to redirect to the configurations file).
Web Services on AWS | Web Services On-Premise | Exposed Pods on Kubernetes |
---|---|---|
Message Collecting on GCP | Events Processing on AWS | Workers on AWS |
---|---|---|
Usage
Command Line Interface
To draw an architecture, call diagrams-yaml
command line interface, providing a path to a YAML
file with
configurations. The drawing will be saved in the folder the command line interface was executed from.
$ diagrams-yaml examples/web-services-aws.yaml
Disclaimer
diagrams-yaml
is a wrapper around original diagrams. The original diagrams
lets you draw the cloud system architecture in Python
code. It was born for prototyping a new system architecture
design without any design tools. Under the hood, diagrams-yaml
parse a YAML
file and map to specific set of
diagrams
's functions and classes, and executes them in proper order.
But you don't have to worry about diagrams
because diagrams-yaml
is self-contained and encapsulates it well.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.