订阅内容

A systems architect's role is to communicate a vision through diagrams, presentations, robust documentation, and other methods. The perfect tool can mean the difference between success and chaos, as even the smallest tool can have a tremendous impact on your productivity and happiness.

Diagrams serve as a powerful common language to document the current state of a system or envision a future one. There are seemingly an infinite number of diagram types and tools, and as with language, you need to decide which one you want to speak.

[ Check out Red Hat's Portfolio Architecture Center for a wide variety of reference architectures you can use. ]

Among all of the architectural diagramming tools, there are a few that rise to the top. Here are five that you might want to consider. And whichever you pick, remember that good notation is essential to ensuring someone understands what you're trying to convey in a diagram.

C4 model

An architectural diagram in C4

The C4 model (or C4 notation) is a technique created by software architect Simon Brown for modeling the architecture of software systems. Relying on older modeling techniques like Unified Modeling Language (UML) and Entity Relations Diagrams (ERD), C4 breaks a system into architectural building blocks to help explain relationships between things like containers and components.

The C4 model is derived from physical maps: You can look at a location from a high level, like a country, and see your city in the context of other cities and countries. Then you can zoom in to a city level and see major roads and the city's structure. Take another step, and you can see your district or neighborhood; finally, you might zoom down to a street view. C4 mimics this approach, starting with the general context in which your system works and ending with class diagrams.

[ Learn how IT modernization can help alleviate technical debt. ]

Diagrams.net

Diagrams.net interface with sample diagram and icon menu on left side

Where do you even begin with Diagrams.net, formerly known as Draw.io? Besides being free of charge, it also has a low learning curve, so anyone can quickly start creating diagrams or whiteboards. Many people use Diagrams.net for diagramming business processes, data flows, and networks. You can also modify elements without having to change the entire diagram with this tool.

Because you can download your diagrams as simple text files, you can save them to standard file storage like Google Drive or a Git repository, create backups, and share. Diagrams.net supports external libraries, including one that implements the C4 model.

Excalidraw

Screenshot of Excalidraw diagram

If you're feeling brave and want to try a virtual whiteboard, Excalidraw is an excellent alternative to Diagrams.net. It's especially nice if you appreciate more of a hand-drawn feel. It is not super-flexible, but it is intuitive to start using and has a color set that helps you create good-looking diagrams in no time.

As your system evolves, you must update your diagrams to reflect those changes. Because Excalidraw is a browser-based tool, you have to open a browser tab and make changes visually, which can be inconvenient. You also can't easily see your history of changes. While Excalidraw has fans, I prefer a text-based diagram tool.

[ Learn how to build a flexible foundation for your organization. Download An architect's guide to multicloud infrastructure. ]

PlantUML

An architectural diagram in PlantUML

PlantUML is an open source tool and syntax that allows you to make sequence, use case, class, object, and other diagrams from code. It also supports non-UML diagrams like JSON and YAML. In addition, it enjoys support from ArchiMate, ERD, Business Process Modeling Notation (BPMN), and other common notation styles. Its simple, plain-text definitions make creating, sharing, and modifying diagrams straightforward. You can store the diagram sources next to your code and update them in the same pull request. PlantUML also supports custom sprites, so you can add icons where they are missing.

Mermaid

An architectural diagram in Mermaid

Like PlantUML, Mermaid follows the diagrams-as-code model. It is supported by GitHub and uses Markdown-style notation to create and modify diagrams. This makes diagramming with Mermaid very convenient if you're developing software on GitHub.

Other tools

Diagramming tool choices are very personal to the architect using them. If you have a great diagramming tool to add to this list, email us at enable-architect@redhat.com to let us know!


关于作者

Vladimir is a Senior Engineering Manager at Bolt with a solid solution architecture background. He shares his experience through articles, videos, and blog posts.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Original series icon

原创节目

关于企业技术领域的创客和领导者们有趣的故事