AWS Bites Podcast

70. How do you create good AWS diagrams?

Are you ready to level up your software architecture skills? In this episode, we deep-dive into the world of diagrams and show you why they are essential for creating robust and scalable cloud architectures!

Starting with the basics, we explain why diagrams are so important and why you should be using them in your work. We'll discuss different approaches to creating diagrams mentioning the popular C4 method and some alternative approaches.

In the context of AWS we will share some insider tips about using AWS icon sets to enhance your architecture diagrams and make them look as professional as possible.

Next, we'll take you for a tour of the various tools you can use to create diagrams, from manual drag-n-drop tools like Visio, DrawIo, Excalidraw, and LucidCharts, to programmatic tools like Mermaid, Python diagrams library, and Kroki. We will also share some exciting insights into generating diagrams from infrastructure using tools like CfnDiagrams and the Terraform graph command.

Finally, we'll close this episode by showing you how to share your diagrams and collaborate effectively with others.

AWS Bites is sponsored by fourTheorem, an AWS Consulting Partner offering training, cloud migration, and modern application architecture.

In this episode, we mentioned the following resources:

Let's talk!

Do you agree with our opinions? Do you have interesting AWS questions you'd like us to chat about? Leave a comment on YouTube or connect with us on:

00:04:04

So I would say that maybe think about individual stacks or deployments, individual microservices, diagram those using your AWS icons, and then look at higher level block diagrams to show the picture one level up from that. So when we're talking about AWS icons, we see lots of different flavors of AWS icons. It's a bit of a bugbear of mine for some reason, but you do have older diagram icon styles and newer ones. I think they came up with a release in 2017, 2019, and 2021. The 2017 ones look pretty outdated by now, but you still see them a lot in the wild and sometimes mixed with the new styles. I think it's a good idea to use the latest style where available and also to include the labels because it's not obvious to everybody what all those icons mean, especially when you've got 50 different orange icons that look subtly different, just put the label on there. But those are available on the AWS website. So this PowerPoint version, there's PNG and SVG download available. And most of the tools include them embedded in, or you can import them. Maybe before we talk about tools, I would say that the last thing, and one thing I've heard the C4 advocates talk about quite often, which is a really good idea, is always put a title and description with your diagrams. I've been guilty of creating diagrams in the past and I go back to read them myself. And because I didn't put a title and description, I'm not sure exactly what the scope is and what story it's trying to tell. That really helps. And if people read a title and a two line description, it'll sometimes really do wonders for making sure that people are communicating at the right level. So that's really what we're trying to achieve. We're trying to communicate at that level. And the question is, how do you create them? What are the tools to produce them? Where do we start with that?

00:14:54

And then the outcome of that is that it's going to render kind of a screenshot of an architectural diagram for you. There are other ones. There is one called Pikchr, which is spelled P-I-K-C-H-R. And another one called Kroki, which are online tools. And I don't remember exactly what Pikchr does, but Kroki is kind of something that does it all. It basically supports all the most common programmatic tools for diagrams and basically allows you to easily see examples of each and every one of them. And also a very nice feature that basically allows you to render all the different kinds of diagrams that are supported by just constructing a URL that contains basically the entire content of the diagram as code. And then you can easily share that URL with anyone and they will see the diagram rendered. So definitely an interesting tool to explore if you just want to easily give a preview to somebody for an architectural diagram, or maybe if you want to embed this in a repository just to get a preview of that particular diagram. Now, in general, we'll say that the advantage of using these tools is that you can easily keep the diagrams together with your code because effectively it is code that is text that you can keep in your code base and version it. And the disadvantage, of course, is that you will need to learn the specific language of that tool. Like everyone has a slightly different flavor and it might take a while to get used to the semantics of that particular language and be proficient withit. So maybe there is a bit of a learning curve, but I think eventually there is a lot of value that you will unblock by using some of these tools. The next category is generating diagrams from your infrastructure as code. Do you know any tool for that, Eoin? There's a couple I've used quite recently, actually, that I think are pretty impressive.

Help us to make this transcription better! If you find an error, please submit a PR with your corrections.