Deploying AppDynamics to its live operating environment introduces requirements and considerations beyond those applicable to an evaluation installation.
Security, availability, scalability, and performance all play an important role in production deployment planning. The system resources of the machine that hosts the Controller in a live environment must be able to support the expected workload.
For information on installing the Controller and App Agents, see Install and Upgrade AppDynamics.
This topic covers considerations applicable to deploying AppDynamics to its live environment.
A typical deployment of AppDynamics involves these tasks and considerations:
The following figure shows a sample deployment environment for AppDynamics. This sample illustrates some of the considerations highlighted in Deployment Tasks.
In this example, a primary and a secondary Controller are deployed to separate data centers. Notice that the primary and secondary Controllers maintain data consistency through MySQL replication. An F5 load balancer proxies traffic for the Controllers, including traffic from the App Agents that are deployed to the monitored applications. Alternatively, an Apache HTTP server or an Nginx server can serve as a reverse proxy for the Controller.
Deploying the Controller often calls for configuration changes to existing network components, such as to firewalls or load balancers in the network. If the Controller will reside behind a load balancer or reverse proxy, you need to set up traffic forwarding for the Controller. You may also need to open ports used by AppDynamics on firewalls or any other device through which traffic must traverse.
The following are general considerations for the environment in which you deploy AppDynamics. See Installation Cheatsheet for Small Environments for other network configuration requirements. For more about configuring a reverse proxy for the Controller, see Deploy with a Reverse Proxy.
AppDynamics adds a custom header to traffic in the monitored environment named singularityheader. This header enables AppDynamics to correlate traffic across tiers. It's important to ensure that any load balancer, proxy or firewall in the network between monitored tiers or between the tiers and the Controller preserves the header added by AppDynamics.
To ensure consistent event time reporting across the AppDynamics deployment, the App Agents attempts to synchronize its time with the Controller time.
It does this by retrieving the time from the Controller every five minutes. It then compares the Controller's time to its own local machine's clock time. If the times are different, whether ahead or behind, it applies a time skew based on the difference to the timestamps for the metrics it reports to the Controller.
If, despite the agent's attempt to report metrics based on the Controller time, the Controller receives metrics that are time-stamped ahead of its own time, the Controller rejects the metrics. To avoid this possibility, AppDynamics recommends maintaining clock-time consistency throughout your monitored environment.
The following topics provide much more information about securing your AppDynamics deployment: