How Dynamic is Start Anywhere Application Modeling? (SAAM)
You might like to look at anywhere application modeling where I explain how it is dynamic. I have added a slight variant of that text to the documentation too.
Also, watch this webinar recording: https://communities.bmc.com/community/bmcdn/discovery/blog/2017/02/15/discovery-webinar-saam-tips-and-tricks#comment-100…
The models produced with start anywhere application modeling are simple to create and work on the basis of data that has already been discovered from your network, data that is held in the BMC Discovery data store. This does not mean that the models are static, rather, they update automatically to reflect the current data. So, if you scan the application and a new component of the application is discovered, it is automatically linked to the existing components and reflected when you view the model again. If the new component is one that you have excluded from the model, it is still in the data store, but not included in the application model.
Below is a model definition for a simple three tier application using Start Anywhere Modeling.
- DB - MSSQL Server and host.
- APP - Application Server and Host.
- IIS Server and Host.
I created this Map in four easy steps:
- I searched for the DB Host (SQL0100), Visualized it, Removed all stray Software Instances, Added the remaining to Items to a new Model.
- I searched for APP Host (app0100). Visualized it, Removed all stray Software Instances, Added the remaining to Items to the existing Model.
- I searched for APP Host (iis0100). Visualized it, Removed all stray Software Instances, Added the remaining to Items to the existing Model.
- Published the Model.
This is what I see as My Application Instance.
How dynamic is the resulting Model? (So CAM scores 7/8 for "Dynamic Capability)
|Questions||CAM Answers||CAM Thoughts||SAAM Answers||SAAM Thoughts|
If another Software Instance (for an Item that is relevant to my Map) is installed on one of these three hosts, will it be automatically included? (This would be good)
(For example; Another App Server instance on the Application Host).
|Yes||if you build the Selection Criteria to look for SIs of a certain Type||Yes|
As long as it has a relationship to something that is in the model.
If another Software Instance (for an Item that is irrelevant to my Map) is installed on one of these three hosts, will it be automatically included? (This would be bad)
|A second HA Web Host (iis0101) is added. It has Observed Communication with the App Server Host. Will it be Automatically Added with the Correct SI?||Yes||I would dispute your eyes for CAM here. You can achieve it with CAM, but most real-world CAM models would not do so.||Yes||TBD|
|A second MSSQL Instance and Host is Added for Reporting Purposes. The database is replicated from the first host. It has Observed Communication with the first DB Host. Will this New Host and DB Instance be added?||No||It is theoretically possible to build a map just in case a Report Server is added, but unlikely.||Yes|
|Can you use a Named Value to dynamically map DEV, TEST, and PROD at the same time?||Yes||N/A||No||SAAM identifies instances of applications, not types of applications. This is a key philosophical difference between SAAM and CAM. A lot of the complexity of CAM is in the (rarely understood) need to define named values and identify instances.|
|If The MS SQL Server changes from SP3 to SP4, would the model reflect the change with SI||Yes||if The SI "type" attribute remains constant and the Map is built using this attribute||Yes||If the version changes, the existing SIs are updated, not replaced?|
The database gets corrupted and has to be wiped and there is no backup. The database is then recreated via discovery.
The model or maps have been saved and are re-imported. Will the Application Instances get recreated with no Issues? (downloaded and opened a .model file and saw a lot of node ids and keys.)
|Yes||?(Need Answer)||As long as you have discovered the same data, the models will be imported with no problems. The node ids and keys you see in the saved file are for tracking purposes, but it will successfully find the replacement nodes if all the nodes and keys are different.|
|Will the Map automatically include the new SI for the new Version?|
|Will the maps automatically update and contain the new hosts?|
The Top Business Layer composed of the BusinessApplicationInstances (BAIs) and the functional components FC(s). The Business Layer is Dynamic if you code in Search Expressions that look for Key words dictating by the company naming standards embedded in Instance Names, Directory Names.
The top Business Layer is completely static. This might change depending on BMC Develop the SAAM Functionality. In SAAM there are no FC(s). The BAI connects directly to a few chosen Anchor points which are chosen by the user. The Anchor points are identified in SAAM using the Node key or Node id. Currently, the Business Case around using SAAM revolves around its ease of use, the fact that it is 50% faster to perform the mapping. I certainly found that the BAs who are in our Mapping Team was much more comfortable using SAAM.
In a SAAM model, the BusinessApplicationInstance node has direct containment relationships to just the "top" nodes (I think that is what you mean by "anchor points"). But these nodes are not chosen by the user. They are chosen by the system, based on the chain of relationships that show how nodes impact each other. As the system scans and nodes are added and removed from the model, the system re-evaluates the top nodes. For example, imagine you have a trivial application with two web servers and a database. SAAM automatically links the web servers to the top: Now I scan a third host that is discovered to be running another web server connected to that database. SAAM automatically updates my application to look like this:
|Discovery Layer||CAM Maps (and SAAM Maps) also have the Discovered Layer composed of Database Detail (DDs) and software components (SCs) all linked down to the Hosts and Network Devices. This layer is also Dynamic - in the sense that ADDM will link up all the components if ADDM Detects communication links between both Hardware and Software Components. ADDM will also link in new Items if and when they are discovered.||SAAM models change over time. Automatically. They are not at all static. Every time a host finishes scanning, the system re-evaluates any SAAM application models that may have been affected and adds and removes nodes from them as a result.|
|Static Network device point in time||IP Pools, Load Balancer|
BMC Professional Services provided following Key concepts:
- Anchor Nodes in SAM. Anchor nodes should be at the Software Layer - not Hosts. ( I like the term "Anchor" nodes; it explains so much.)
- SAM maps typically take ~50% of the time to build. With CAM you need more seed data and longer up-front conversations with Support. With SAM, you can start with only a little seed data - but there may be more iterations where Support visually check the Map. [I am also thinking that we can possibly get some Support teams to build their own maps with SAM; this would be impossible with CAM].
- The "Review Suggested" feature and how SAM alerts you to Dynamic changes to the map.
- The new exclusions rules in version 11.1
SAAM remember your initial Query that you use to start the map.
search SoftwareInstance where * has subword 'TrueSight'
When you Select - All | "Visualize / Model". If I then Click on "Show / Hide".
If I change my Query and traverse to the hosts and run the Query in the Explore -> Query menu:
search SoftwareInstance where * has subword 'TrueSight' traverse RunningSoftware:HostedSoftware:Host:Host
Now, Select - All | "Visualize / Model" and get a count of the items using "Show / Hide", my model has entirely different counts: 9 Candidate SIs; 12 Hosts; 1 Software Component; 83 Software Instances; and 4 Virtual Machines; vs the pop-up GUI says that I have: 2 Candidate SIs; 8 Hosts; 1 Software Component and 41 SIs.
Here is an example of mapping a very simple App with 4 tiers: one SI and one Host in each Tier. Mapping my Application using both SI nodes and Host nodes as my "Anchor" points.
Here are the two Queries that you can used to model in SAAM:
|Search SoftwareInstance WHERE name in ['Software Server 1','Software Server 2','Software Server 3','Software Server 4']||List of SI and server has anchors|
If you start your visualization from SI and host(s), it does show you all the SIs on that Host, because that is the most reasonable thing to show for a Host. For each of those SIs, it shows all the related software things and their Hosts, and so on.
That is why to model an application using SAAM, it is usually best to start your model from a visualization that has software nodes as its root nodes, rather than Hosts. If you start from Hosts, you have to manually trim off all the software you don't care about that's on the Hosts. By all means, start looking for your application based on the hosts, but before you start your model, click through to one of the SIs to remove the irrelevant SIs that are sharing the Hosts.
|Search Host WHERE name in ['Host1,'Host2','Host3','Host4']||List of Host and Host Details like drives and files|
The fact that you see different things starting from Hosts that starting from SoftwareInstances is not primarily about SAAM and application modeling. It is based on how the visualizations work when you are just looking at data. SAAM is essentially a way to save a visualization and have it kept up to date with changes in the model, but everything stems from the behavior of visualizations. The visualizations (and hence SAAM) always try to show you something "useful" starting from whatever node or nodes you start from. (Note that I'm talking about the Software-Connected focus here -- the other focuses follow different relationships.
To understand what is going on, view the visualization of a single node. If you start from a single software instance, you see that SI and other software things related to it (contained SoftwareComponents, communicating SoftwareInstances, and so on). For each SI that is shown, you also see the Host it is running on, to give you context about its Host. You do not see any other software running on the same Hosts (unless they are shown already because they are communicating) because that is probably not pertinent to the SI you started from.
When SAAM automatically updates a model, it does not remember the query you used to start. There may not even have been a query because you might have clicked and navigated all over the place looking for a good starting point. All SAAM has to work on are the nodes that are currently in the model. Essentially what it does to update is take all the non-Host nodes as the starting point for a new visualization, and sees if any new nodes arrive. (It should be clear why it uses non-Host nodes -- if it used the Hosts as some of the starting points, it would bring in all the SIs on those hosts, rather than just ones that are otherwise connected up by communication etc.)
SAAM identifies instances of applications, not types of applications. This is a key philosophical difference between SAAM and CAM. A lot of the complexity of CAM is in the (rarely understood) need to define named values and identify instances. In BMC Discovery (all of it, not just SAAM), SoftwareInstances represent pieces of running software. Basically, an SI is a process running on a Host. In the CMDB world, these are BMC_SoftwareServer CIs.
Most of the Software Instances you need to care about will be identified automatically based on the standard TKU patterns. If there is an important process in your environment for which the standard TKU patterns do not create a SofwareInstance, you can use Model > Software to define a simple new pattern that does identify it. (The system automatically identifies things that you might care about, and creates CandidateSoftwareInstances for them.)
Part 2 of this series: How Dynamic is SAAM? - Part 2