Discover your application architecture with Plumbr
For almost six months Plumbr has been able to track user interactions throughout multiple Java Virtual Machines. Tracking the interactions throughout different nodes laid the foundation for mapping transactions and applications to underlying infrastructure components.
As of March 20, Plumbr is capable of plotting out the runtime architecture of your application, visualizing the sources of traffic, the paths in your infrastructure the traffic flows through and the nodes outside of the monitoring scope of Plumbr the traffic connects to.
Exposing your architecture: a simple example
Plumbr is discovering the architecture of the monitored application during runtime. The discovered architecture will be visualized using different types of nodes representing different elements in the architecture and the edges representing connectivity between the nodes:
Using the simple example, we can see that Plumbr has discovered the following nodes in the small application being monitored:
- Applications. The interfaces the end users are communicating with your systems through. For example you can have an application which is used externally via https://www.example.com, but the in-house users might be using it via http://example.internal:8080. In such case Plumbr discovers two applications.
- Java Virtual Machines. Different nodes the entire application consists of. In a simple situation, the deployment might consist of just two nodes, one for the front-end and one for back-end services.
- Downstream integrations. Different downstream services the JVMs are integrated with. Among these Plumbr is able to identify any service the JVMs are opening sockets or socket channels to. For example you could have a back-end Oracle database the JVMs connect to over 192.168.40.10:1521 and a SMTP server connected via 192.168.40.88:25.
Edges. You will also get to see how much traffic measured in end user interactions originates from which domains and how this traffic flows through different nodes. Plumbr is capable of exposing you the path of a single user interaction throughout your infrastructure. In addition, we are capable of listing which path the slow or failed interactions chose, making the discovery of most problematic nodes a breeze.
In the example above, it is visible that there have been 1,000 interactions with the frontend node, 900 of which originated from the https://www.example.com and 100 arrived via http://example.internal:8080. It is also visible that all the slow&failing transactions are originating from the backend node.
You should also pay attention that the architecture, equivalent to everything else in Plumbr for that matter, is dependent on the time range the architecture is viewed in. For example, when during a particular time period a particular node was not used, the node would not be present, nor would be the edges leading to/from the node.
Benefits of the exposure in the real world
Understanding the situation will have several obvious and some not-so-obvious benefits for our users:
- You will understand how your IT assets are being used. Every different domain your applications are exposed are now listed among with the traffic volume on the particular domain.
- You will get to see how your micro-services are actually communicating with one another. Among other things you start understanding through which edges in your infrastructure the most business critical transactions are flowing.
- You get a full overview of which back-end services your middleware is connected to. No more trial-and-error games when trying to figure out which services are actually connecting to a particular back-end data storage.
- Certain types of security issues are exposed to you. You will end up discovering test nodes connecting to production back-ends and the non-SSL access to the production sites you never thought was possible.
- You will end up discovering poor architectural decisions. For example the cyclical dependencies between different microservices are immediately exposed thanks to Plumbr.
Also, in case you question whether or not Plumbr is capable only in visualizing trivial architectural models as the one explained in the introduction – nope. We are able to expose complex dependencies between nodes in the real world, just as in the real-world example below:
So in case having such visibility seems valuable to you, I can only encourage you to test out what we are really capable of. To have such visibility, just grab your free Plumbr trial and gain the missing transparency.