October 17, 2015

Tips for Optimizing Application Performance

Written by Tom

keyword icon Happy Apps, Performance monitoring

The best application in the world isn't doing anybody any good if it's not operating. To keep your apps up and running smoothly, you need a clear, complete, and timely view of their inner workings. The more widely distributed your apps' components, the more challenging it can be to deliver this kind of visibility and transparency. New app-performance monitors make it simpler than ever to create custom checks and alerts that help you minimize application downtime.

You can't monitor what you can't see. Gone are the days when all of an application's components resided on a single server, or in a single data center. Now the various pieces of your business's critical applications are likely to be dispersed far and wide. Just as ensuring application uptime becomes more critical, it becomes more difficult to determine how well the app is performing, particularly from a customer's perspective.

Difficult, yes. Impossible, no. New services are helping DevOps teams keep a close watch over the performance of their applications via custom checks and dashboard interfaces. They do so in a way that's simple, efficient, affordable, and reliable. Underlying these new approaches to maximizing uptime is a redefinition of what precisely constitutes "uptime."

It no longer makes any sense to boil application performance down to a single number. In a January 28, 2015, article, Diginomica's Phil Wainewright gives the example of a retail site experiencing a slowdown. Knowing that page loads slowed from one-tenth of a second to four or five seconds is less useful than knowing how many customers abandoned the site because of the slow page loads, how close those lost customers were to completing a purchase, and whether they ever returned.

Stop 'hugging servers' and start embracing immutability

Sometimes it takes time for the full impact of a new technology to sink in. The cloud frees organizations from hardware, but more importantly, it makes immutability possible. As Josha Stella writes in a June 9, 2015, article on O'Reilly Radar, the cloud's immutable infrastructure means that "once you instantiate something, you never change it."

Instead of updating the running instance, you replace it, as illustrated in the diagram sequence shown below.

At the build stage, the app and OS switch from out of service to in service in both the mutable and immutable models. Source: Josha Stella, via O'Reilly Radar

At the patch-app stage, the app and the OS are out of service in the mutable model, but in the immutable model, app v1 stays in service until app v2 is instantiated. Source: Josha Stella, via O'Reilly Radar

Likewise, in the patch-OS stage of the mutable model, the app and OS are out of service, while OS v1 stays in service in the immutable model until OS v2 is instantiated. Source: Josha Stella, via O'Reilly Radar

Stella identifies four principal benefits of immutable infrastructures:

  1. Simplified operations because you no longer have to track changes or otherwise maintain running instances; instead, you replace them in a way that makes rollbacks easy should any problems arise with the new instances.
  2. Fewer failures via continuous deployments; with an immutable infrastructure, you always know what's running and how well it's behaving.
  3. Fewer errors and alerts; replacing rather than maintaining instances reduces configuration drift and vulnerability surface, while making it easier to ensure compliance with service level agreements.
  4. Recovery from service failures is automated, which makes cloud reboots of underlying instances more graceful and application downtime less likely.

The most efficient way to monitor the availability and performance of apps, databases, and systems is the Happy Apps service, which lets you create checks for the web, MySQL, MongoDB, Redis, Riak, and ElasticSearch. Happy Apps is a robust app-management solution that supports SSH and agent-based connectivity to all your apps on public, private, and hybrid clouds. The service provides dependency maps for determining the impact your IT systems will have on other apps.

All checks performed on your apps are collected in easy-to-read reports that can be analyzed to identify repeating patterns and performance glitches over time. If you're looking for ways to save time, trouble, and money when managing your apps, visit Happy Apps to sign up for free.