This is a technical guide that will walk you through a step-by-step process to building Business Applications within Device42. Once you have successfully performed discovery, apply the methods outlined below to create Affinity Groups and then leverage these groups to facilitate the process of building your Business Applications.
Viewing Discovery Data
After you have performed successful discovery, all discovered Application Dependency data can be viewed under the Apps section in the Device42 main menu.
The Services section will provide you list views of all your Services including Service Instances, Scheduled Tasks, Listener ports and Service communications. The Application Components section is where discovered infrastructure Application Components are stored. See a complete list of Device42’s supported applications here: https://d42docs.wpengine.com/enterprise-application-dependency-mapping/adm-supported-applications/.
When viewing a device record (select Devices from the main menu), its Topology view will display the inbound and outbound connectivity to that device.
The Global View (left pane) displays a high-level view of the device communication. The Local View (right pane) will drill down to display the services and applications that are building these connections. These are connections Device42 has detected to known (in Device42) devices since the very first time you performed the discovery.
To display connections to undiscovered devices, select Display Options above the topology view and uncheck Hide client IP addresses with no device, and any connections to undiscovered devices should appear.
Undiscovered Listening Services
In the Local view of the Topology, you may notice Undiscovered Listening Services appearing in the communication.
These services typically arise due to one of following conditions:
- Device42 is discovering the services/service connections on the client device, but are not actively discovering services/service connections on the listening device.
- Device42 is discovering the services on the listener side, but we lack adequate permissions to match the PID to a service name.
- It is such a short lived connection that we may see the client connecting to that port, but we cannot match the listening service to a PID/service name on the listener side while the connection is alive (typical of services listening on ephemeral ports).
For highly active servers and environments, these visuals can be quite noisy making it a challenge to identify the key relationships. To solve this, Device42 offers a feature known as Affinity Groups.
Affinity Groups are a result of a process that evaluates all the connections for a given device and constructs a more consumable view of its inter-dependencies. Through a process of Pinning, Staring, and Hiding Services, noise is limited to just meaningful connections to better understand the impact or dependency of a particular device. Please see: https://d42docs.wpengine.com/apps/affinity-groups/ to further understand this process.
Enabling Affinity Groups
Select Apps > Affinity Groups, and then select Configure at the right of the page.
Next, select the Enable Affinity Groups check box.
For Reports you can choose either Generate Impact Groups Only or Generate Impact and Dependency Groups. We recommend selecting Generate Impact and Dependency Groups to understand upstream and downstream relationships.
Leave the default selection for Saved DOQL Query, then select Save and Process Now.
Pinning, Starring, and Hiding Services
Now that we have enabled Affinity Groups, we must identify which services we want to Pin, Star and Hide to continue to build out our Affinity Groups. Pinning a service will make it a focus point and build an Affinity Group for that device. By default, all database services are assigned a Topology Status of Pinned and an Impact View is built for each discovered database server. Starring a service will include that service and its connection in an Affinity Group if applicable. It is recommended to limit Pinning to database services (done by default), web services (optional) and any custom services that belong to a Business Application.
- The easiest method to understanding the service connections that have been detected is execute the Service Dependency Report.
Navigate to Reports > Advanced Reporting, expand the Pre-Defined Reports folder, expand the Application Discovery folder and right click on the Service Dependency Report and select Export As > Excel.
This report displays each connection that has been detected through discovery. Enable filtering to each column to help with sorting the data. Record the services under the Listener Service and Client Service columns that are important to you as you will want to make sure to Star those services in the next step. Please record the devices these services are running on. If there are any services you would like to Hide from your Affinity Group views, make a note of these.
- When this is completed, there are two common options to Pinning, Starring and Hiding services
Option 1 (UI) – Navigate to Apps > Services > Services Instances to view a list of ALL the service instances.
Search for a name of one of the recorded services you want to Star, select one or more service instance by selecting their check box, and then use the drop-down Action menu to set their Topology status to Starred or Hidden (the example below shows a service instance search for Java).
To Pin or Unpin a service instance, select the corresponding option from the same drop-down Action menu.
Option 2 (Excel) – Navigate to Tools > Imports/Exports (xls) and scroll down to Create or update Service Instances. Select Download Current Data to the right.
Add a column at the end named topology_status. Set the column Service_display_name to be filterable, then locate the services you recorded from the Service Dependency Report you generated above and enter a value of either Starred or Hidden for their topology _status.
For any service instances you would like pinned, enter a value of yes under the pinned column.
After editing the Service Instances file, navigate back to Tools > Imports/Exports (xls) and import the XLS file back into Device42.
Once you have completed the process above, navigate back to Apps > Affinity Groups, select Configure then select Process Now.
After your Affinity Groups have processed, select the Chart button next to an Impact or Dependency to see the view.
You should see a Global View to highlight the relationships and arrows to represent the direction of communication. By selecting any of the lines, a Local View will display the services and any Application Components that exist in that relationship.
Hovering over the timeline above the view will allow you to identify changes to this Affinity Group. This process runs every night to calculate connections that took place each day. As changes are detected, blue checkpoints are created to demonstrate a change has occurred to better understand the changes that occur in your environment.
Building Business Applications
To build a Business Application, navigate to Apps > Business Applications, and then select Add Business Application at the top right of the page.
After you’ve given your Business Application a name, you should see a blank canvas with the ability to drag a Device or Affinity Group (on the left) over to start building your application. Select Affinity Group and drag it onto the canvas.
You have several options to search for an existing Affinity Group; in the below example we used a device name and then selected Search.
You should see that an Affinity Group was found along with the number of devices that are part of that group.
Select Add to add all devices that belong to this Affinity Group. Repeat this process if there are any other Affinity Groups or devices that need to be added to this Business Application.
Once you have successfully imported everything over, use the tool bars at the top and right of the screen to label and color code the objects
Select a box with a device name, then use the Style tab on the right to change the color of this box.
Double click a line or anywhere on the canvas to add text. Use this to represent a service, a port, or a logical name/grouping for the relationship.
Congratulations! You have now built a Business Application by leveraging Device42’s discovery and Affinity Group capabilities.
Tips & Tricks
- When viewing a service in the device Topology view, you can hover over a Service to Star or Hide this individual service instance.
- In the Add/Change Windows and *nix discovery job pages, you can expand the Miscellaneous section to apply Tags for discovered devices.
- If you know the servers that are part of your Business Application, you can tag them with the Business Application name, then easily search for these devices by this tag when you are building your Business Applications.
When creating a Business Application, drag the Device icon on the left, and then search for the tag to choose the devices you previously tagged in the discovery job.
- Affinity groups are generated by a saved DOQL query. There are times when choosing a different query to generate your Affinity Groups may be better suited for your environment. Navigate to Tools > Integrations > Saved DOQL Queries.
The name of the query provides some indication as to what the query is doing. Select the name to view the query itself.
To choose one of these queries to generate your Affinity Groups, navigate to Apps > Affinity Groups and then select Configure. Choose your preferred query from the Saved DOQL Query drop-down menu.