AWS Cloud Operations Blog

Improve visibility of hybrid applications with AppDynamics and AWS Service Catalog AppRegistry

Co-Authored By James Schneider, Sr. Solutions Architect at AppDynamics

As organizations innovate and grow, they require modern application architectures and a vast landscape of tools to scale and manage their operation. As the operation continues to expand, it becomes increasingly difficult to identify distributed services and resources that are associated with specific processes or business outcomes. By having access to application details, including its performance metrics, IT teams have visibility and control of the operation, enabling them to scale resources as needed. In many cases this requires managing their applications across multiple stacks, including on-premises and on AWS.

Understanding the tools

AppDynamics, an AWS Advanced Technology Partner, enables end-to-end monitoring of cloud-native/hybrid applications and accelerates migrations to AWS with seamless, real-time performance monitoring across both on-premises and AWS environments. AppDynamics does this by deploying agents that monitor the performance of application code, runtime, and behavior, which are sent back to the AppDynamics controllers as actionable metrics and detailed performance activity.
Conversely, the AWS Service Catalog AppRegistry empowers developers by providing (in a programmatic way) a list of their applications, the resources associated with those applications, and the metadata that provides context for application management. AppRegistry provides application context at the resource level, such as for Amazon Elastic Compute Cloud (Amazon EC2) instances or Amazon Relational Database Service (Amazon RDS) databases building on AWS primitives like resource groups and tags. AppRegistry is also used thttps://aws.amazon.com/rds/o define applications in an AWS environment.

In this blog post, we explain how you can export application metadata information from the AppDynamics controllers and programmatically register your on-premises applications on AWS. The integration of AppDynamics and AppRegistry adds a complementary view of all of the applications customers have running, regardless of whether they reside on-premises, on AWS, or both.

Diagram displays integration between AppDynamics, AppRegistry, AWS Service Catalog, application telemetry, partner integration, and dev, test, and prod environments.

Figure 1: Integration of AppDynamics and AppRegistry

Application: A new application object to which you associate your application resources.
Resources: Application resource collections (AWS CloudFormation stacks).
Attribute groups: JSON files that contain application metadata.

Publishing an application monitored by AppDynamics

The AppDynamics controller stores the application design, including metadata about business transactions, application tiers, and associated policies. The controller is updated in real time, even in complex applications with thousands of agents.

These are the steps we follow to publish the application data in the AppDynamics controller using AWS Service Catalog AppRegistry:

  1. Export the application. Pull the AD-Travel sample application from the AppDynamics controller and create the same application in AppRegistry.
  2. List the applications found in AppRegistry to show that the AD-Travel application has been added with the JSON model of the app as an AppReg attribute group.
  3. Query an attribute group from AWS.

Exporting the application information

We will be exporting the AD-Travel sample application. Figure 2 shows the application flow map using the AppDynamics user interface:

The AD-Travel flow map dashboard displays graphs for load, response time (ms), and errors. It also displays events, business transaction health, security events, and a transaction scorecard.

Figure 2: Application flow map

This GitHub repo has a sample application-config.yaml file that you can use to pull the application information from the AppDynamics controller and push it to AWS using AppRegistry. You can use the following command:

java -DappConfigFilePath=/home/ec2-user/environment/application-config.yaml -DappAction=create -jar /home/ec2-user/environment/AppD-AWS-AppRegistry.jar

This will be the output:

Create AD-Travel in AppRegistry

Figure 3: Command output

List the applications created on AWS

Use the following command to get application information and tags from the CLI:

aws servicecatalog-appregistry get-application —application AD_Travel

Query application attributes

Use the following command to get the application’s associated attribute groups:

aws servicecatalog-appregistry list-associated-attribute-groups —application AD_Travel

To obtain the detailed attribute group metadata, use the attribute group ID from the previous output:

aws servicecatalog-appregistry get-attribute-group --attribute-group <group id from previous command> --query 'attributes'

Group attribute details

Figure 3: Group attribute details

 For the full list of API calls for AWS Service Catalog AppRegistry, see servicecatalog-appregistry in the AWS CLI Reference.

Conclusion

When you use this application data export from AppDynamics into AWS, you make it possible for different teams to query and update information in a programmatic way for all applications, even if they are not hosted on AWS. This means your organization can automate application updates and scale your operation. Mutual customers can standardize application observability information across their fleets, both on-premises and on AWS.

 


About the authors

As a Principal Solutions Architect, Todd spends his time working with strategic customers to define business requirements, provide architectural guidance around specific use cases, and design applications and services that are scalable, reliable, and performant. He has helped launch and scale the reinforcement learning powered AWS DeepRacer service, is a host for the AWS video series “This is My Architecture”, and speaks regularly at AWS re:Invent, AWS Summits, and technology conferences around the world.

 

Remek is a Senior Cloud Infrastructure Architect with Amazon Web Services Professional Services. He works with AWS financial enterprise customers providing technical guidance and assistance for Infrastructure, Security, DevOps, and Big Data to help them make the best use of AWS services. Outside of work, he enjoys spending time actively, and pursuing his passion – astronomy.