We have UML to describe classes, components, workflows. We have BPMN to describe business processes. We have more old-fashioned forms used in times past for structural diagrams.

Is there anything established or semi-established in the DevOps world? The information contained in a simple diagram should be something like:

  • Which containers are there in a containerized app, including their associations (i.e. which statically depends on which for building) and the (micro)services they provide?
  • How do they interact dynamically (networking etc.)?
  • What responsibility does each of the containers fulfill?
  • What requirements does each container have on the host, if relevant?
  • ... and so on.

I'm neither asking for a list of any private schemes somebody may fancy, nor about opinions on which is the most beautiful.

I'm strictly asking about whether there exist any that either by purpose are industry standards or have turned out to just be used in many places by chance/convention.

The purpose of using such a scheme would be to have something that would instantly be recognized by fellow DevOps people; or which could easily be shown in contexts where it is not appropriate to look into Dockerfiles or other Infrastructure-as-code sources (e.g., when scribbling on a board, or holding a more abstract presentation).

If you are in AWS, there is a very large native set of icons. Confluence has an imported drawing system (draw.io) that includes the AWS icons, it works but its a bit buggy. You can download the AWS icons. In Kubernetes there might be some new mapping tools. You can draw anything with FOSS Inkscape using imported icons. There are likely many other tools. At my shop developers just hack away at their own drawings and copy each other's style.

However I think you were asking for a UML-type of graphical language for cloud representation. Wouldn't it be great to have a 3D system that shows network flows and security connections? A startup for Kubernetes would be a great idea. I think New Relic and/or Datadog have some ability to map network flows, too.

The established method is infrastructure as code.

Want to find out what processes run in a container? Check the Dockerfile. Infrastructure dependencies? Check the Cloudformation template/Terraform blueprint. Interactions between containers? Check the docker-compose.yml or Kubernetes yaml file.

  • Yes, that is the implementation, but this question is about a graphical representation. "program code <=> UML" vs. "config files <=> ???". – AnoE Sep 21 '17 at 8:55

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.