A few times now, customers have asked me to brainstorm with them on the software architecture for their SaaS product. It is a typical question when there are issues with system scalability or performance, or when maintainability or serviceabilityleaves much to be desired.
The first thing you want to do is to understand the situation "as is": how does the application work at the moment?, which are the "moving parts" of the application?, how do these parts exchange information?, which (external) services or technologies are being used to fill in for the moving parts?
Time and again it turns out that there is no uniformity in presenting such an architecture visually and communicatively. You would expect the universal modelling language for software architectures, UML, to have an answer to this, but in practice UML is too complex for this task and, in my opinion, its focus is too much on completeness, rather than on communication or visualisation. A recent article on InfoQ seems to confirm this line of reasoning.
What I am looking for is the equivalent to a business model canvas, but in this case, for SaaS architectures. The Business Model Canvas makes something as "fluffy" as a business model, something visual and communicable, and gives you the possibility to attach a story to it. I would like to have something similar for SaaS architectures. Wouldn't it be great to have a standard set of building blocks that enables you to visualise 80% of your architecture in a relatively simple manner, allowing you to brainstorm, discuss alternatives, etc. without having to model for hours?
I am probably not the only one who has been dealing with this question on how to simply visualise SaaS architectures. How do you visualise your architecture and how do you make it communicable?
Source: Sirris Blog (Nick Boucart)