Skip to main content

Diagram as Code in a declarative way using YAML for drawing cloud system architectures.

Project description

Diagram as Code in a declarative way 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.
  • And other generic things such as C4.

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.

Getting Started

How to install

As the project uses Graphviz to render the diagram, you need to install it:

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

To draw an architecture, call diagrams-yaml command line interface, providing a path to a YAML file with configurations:

$ diagrams-yaml examples/web-services-aws.yaml

The drawing will be saved in the folder the command line interface was executed from:

$ ls
├── ...
└── web-services-aws.png

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diagrams-yaml-0.0.11.tar.gz (9.5 kB view details)

Uploaded Source

File details

Details for the file diagrams-yaml-0.0.11.tar.gz.

File metadata

  • Download URL: diagrams-yaml-0.0.11.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/6.8.0 pkginfo/1.9.6 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.11.4

File hashes

Hashes for diagrams-yaml-0.0.11.tar.gz
Algorithm Hash digest
SHA256 aa40f114af592a975b523a54a9f54d6db77e9da5892b2b83801d705060fe4a21
MD5 7e6d0a9b656a02fef6141e76f633709a
BLAKE2b-256 d80ac1d87db6d8f368710ea3e64857cdfad0827908f8ec571768fbaf997e78c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page