BSMdigest asked a variety of experts across the industry: What is the one piece of advice you would give someone about application performance management in the cloud?
Here are their answers ...
1. Make Sure Your Application Is Right for the Cloud
Not every application will perform well in the cloud so it is critical to check suitability before migration. Many problems can be resolved ahead of time - and if not, this may not be the right application to migrate.
In order to perform well, applications need the right architecture. For example, too much chattiness – communication back and forth – will be a problem in the cloud where network latency is greater. For very complex applications with a large number of tier dependencies, performance is also likely to degrade. On the other hand, applications with high levels of transaction or resource volatility may see an immediate performance improvement. It is important to perform cloud readiness checks ahead of time to identify the best candidates.
Vice President of Product Marketing, OpTier
Before moving applications to the cloud, an organization needs to catalogue its data center applications and build a service profile for each one to understand the components that make up that service and where the dependencies are. Those applications that require horizontal scale or high resiliency are usually the best candidates for migration to the cloud.
Senior Vice President of Marketing, ScienceLogic
2. Define Business Requirements
Managing Application performance in the Cloud actually needs to start at the beginning by properly defining and communicating the business requirements. This would include performance standards around availability, reliability, number of users, performance such as response times, etc.
Principal Consultant, Pink Elephant
3. Seek a Unified View Across the Hybrid Environment
Enterprises will abandon efforts to "pick and choose" point monitoring tools (both cloud and traditional) as mean-time-to-repair increases with the rising complexity of the business service stack. In order to proactively manage service quality and diagnostics, enterprises need to focus on monitoring cloud-enabled business processes from end to end – by creating a single, unified view across private cloud, public cloud and traditional services in a way that provides near real-time visibility into business processes to deliver the optimal user experience.
Vice President Strategic Marketing, HP Software
Having granular end-to-end visibility of the service delivery environment is a critical factor in assuring that the applications you are delivering are performing at peak levels and your users are happy.
Vice President of Marketing, NetScout
4. Deploy Analytics for Holistic Visibility
Private cloud infrastructure is inherently dynamic with little visibility creating significant management challenges. This is further compounded in large enterprises featuring multiple silos, platforms, and vendors monitored and managed by domain specific monitoring tools - each working autonomously. The ONLY way to achieve true cross domain insight is through automated, analytics-based monitoring solutions that analyze and correlate ALL of the data to intelligently detect anomalies before they impact critical applications. The question facing CTOs today is do I continue to monitor and manage domain specific tools, or do I start to look at end-to-end solutions focused on holistic visibility across the entire IT environment?
5. Consider How Infrastructure Resources Impact the Application
When considering cloud systems, it is imperative to understand that the performance of an application is not just dependent upon the software stack on which it is built, but also the underlying infrastructure resources that are required to support it.
For example, it is often the case that CPU and memory measurements are used as primary indicators, ignoring I/O for both network and storage. To ensure adequate application performance you must consider your I/O requirements. Especially with today's big servers with 64+ cores and 256 GB RAM it's very easy to be constrained, for example, by a single 10Ge network link shared for both storage and network I/O. To put it into perspective, if all your storage went through the 10Ge pipe it would be like having roughly the I/O equivalent of 10 commodity SATA disks which sounds great until you try running 100 VMs all competing for the same storage I/O. Imagine the performance of a server with 1/10th of the performance of a single commodity disk! Being able to correlate infrastructure resources to the applications they support, monitor those resources and measure key performance indicators will not only ensure application performance but also enable predictive performance management in the cloud.
Director, Service Automation and Cloud Solutions, IBM Tivoli
6. Focus on the Transaction
Cloud, like most new technologies, will take on different forms, including private and public cloud using co-location, IaaS, PaaS, and SaaS. Most organizations will end up with a hybrid model with on-premise capability in addition to various cloud implementations to deliver business services. Because cloud obscures the underlying infrastructure, the only way to effectively manage this new hybrid model is to focus on the transaction, the one element that is common regardless of the deployment model.
Focusing on the actual end-user transaction experience allows the business to clearly understand and manage service delivery as the transaction traverses the service delivery infrastructure. Transaction focused service assurance also protects the customer investment in software and operational practices as the enterprise deploys new technology both on premise and through cloud provided business services.
Vice President of Product Marketing, Service Assurance, CA Technologies
7. Monitor Performance from the End-User Perspective
In the cloud it's no longer about monitoring applications from the data center. It's about being able to monitor the end-user experience no matter where applications are sourced. Therefore, to fully understand how cloud applications are supporting what the business demands, IT organizations must use technology that is able to non-intrusively discover and track application transactions and measure application performance from the end-user perspective.
Vice President of Strategy, CTO Office, BMC Software
Solutions for monitoring the quality of end-user experience that are based on infrastructure monitoring are not as effective when deployed in cloud environments, as organizations do not have full control over infrastructure that is being used for delivering applications. For that reason, organizations should consider deploying real end-user monitoring solutions that are agnostic of where applications are being hosted and move monitoring points closer to end-users - to the Web browser or on an end-user device.
Effective user experience management within the more dynamic environment of cloud-based applications will require creating a clear mapping between end-user services and the various cloud and in-house components supporting the service. You need to correlate and tie together end-user experience measurements with the bottoms-up metrics from your IT infrastructure and cloud applications to monitor and verify the performance of services.
8. Understand the Virtual Platform
The single most important thing to know about managing application performance in the cloud: Being in the cloud creates a handful of new and previously unfamiliar problems. For example, dealing with the hypervisor and at the storage level. IT should use its APM products to identify bottlenecks caused by these and other components, and solve the root issues on the virtual platform. IT must also beware of misleading application performance symptoms. For instance, a slowdown on the I/O could be a database choking on storage, but it could also be the result of poorly configured virtual machine file system block size.
Executive Vice President, Precise
9. Track Linkages Between Virtual Services and Physical Devices
In a highly dynamic environment that by design, is constantly changing, you must be able to visually see the "as-is" state and be able to rapidly pinpoint the root cause when there is an impact event to your application. When you receive a complaint that the application is slow in the cloud, you now have to troubleshoot the virtual and physical layers to address. If you can track the linkages between the virtual services and the physical devices that power them and monitor the overall health of the service, you can greatly reduce the time needed to find the issue and get the right team involved to fix.
Cloud Technical Evangelist, Zenoss
10. Automate the Management Process
Managing an application in a cloud environment has the same issues as managing them in a normal environment - only on steroids. It is critical to understand the impact of each of the deployed application components on its performance, how it can be measured, and how it can be scaled, which in a normal environment could be done by a person. But in a cloud environment this must be resolved automatically, in real time with little or no human intervention.
Co-Founder and VP of Products, Neebula
11. Manage Workload and Resources in Real Time
The cloud's ability to deliver a lower TCO is entirely predicated on the ability to raise the infrastructure utilization WITHOUT adversely affecting application performance. This is a challenge - after all, clouds must manage higher rate of workload change events, and face more stringent constraints on workload processing. As a result, TCO improvements entirely depend on optimized dynamic workload distribution across all servers of the cloud. This can only be achieved with real-time proactive and automated management of workload and resources.
Prof. Yechiam Yemini
Co-Founder and Chief Scientific Advisor, VMTurbo
12. Track Behavior Over Time
Make sure you not only track individual transactions across multiple software elements (like shared services invoking each other), but also model transaction and application cross-element behavior over time. This allows you to isolate performance problems as soon as they arise by detecting changes in the behavior model and helps you understand trends that could affect your performance.
VP of Product Management, Correlsense
Good application performance monitoring in the cloud involves repeatedly monitoring and testing a few key areas that act differently in most cloud environments than they do in traditional situations. Tracking the resulting values over time allows you to track normal usage patterns and trends, and determine normal behavior for your provider's resources.
Co-Founder and CTO, GroundWork Open Source