Comment by ctvo
3 years ago
I'm not sure I understand. A system diagram from source code or infrastructure alone is difficult, but adding some constraints and boundaries may help?
What if we only cared about http based services and the boundary is at the service layer? A sidecar running alongside your deployed service keeps track of incoming and outgoing network requests. Each sidecar is configured with metadata: The service name, hierarchy -- it belongs to this even larger service, it's this architecture, and using this runtime, ....
Collecting all of this telemetry along with the metadata would allow you to generate a graph of services in the entire system, who their callers are, and what they call, right? Even that's helpful as a starting point, where I can then go in and fill in the details. When I add a new service, it shows up automatically and is flagged for me to review.
Yeah that makes a lot of sense, we definitely believe there are automated ways to help speed up the modelling/diagramming process. Such as automatically populating certain levels of the model from resources in reality as you described. Possibly integrating with something like backstage.io could also be super interesting. Then you can create diagrams quicker from a pre-populated model.
+1 for backstage.io. This is something that I hoped the backstage graph would evolve into...