Timely notification of problems with systems, servers, or apps is the key to preventing outages, and as importantly, to ensuring a smooth, trouble-free end-user experience. New tools and techniques are available that help you strike the right balance between receiving too many notifications and not being alerted in time to nip potential problems in the bud.
Do you really want your phone to be buzzing you awake at 3:00 a.m. to let you know that average page loads on your company's site have increased from 1 second to 1.5 seconds? Not likely. If the site's pages aren't loading at all, well, that's a different story.
The four key system-management operations are monitoring, logging, reporting, and repairing. The first question is, Are you monitoring all necessary parameters -- and only the necessary parameters? A Stack Overflow post on web app monitoring best practices lists the components and operations that need to be tracked:
- The Internet connection to the server, particularly the number of connections to detect traffic spikes that may indicate an impending crash
- CPU, memory, disk space, and other server hardware components
- The performance of the app itself, as well as all related software
- Power (via a remote power reset capability)
- Workflow (via business-logic testing)
- Your backup, to ensure fast recovery from a catastrophic failure
Of particular importance is testing the end-user experience via an external connection by stepping through a simple workflow, such as conducting a search, adding a product to the cart, and submitting an order.
Making sure notifications are just 'pushy' enough
Notifications have become a way of life, but not all notifications are created equal. There are those you find important but not timely (a bank account balance), those that are timely but not important (a news alert), and those that are both timely and important (the site is down). In a Tech Crunch post, Semil Shah describes three levels of notification importance:
- Alerts with a red icon indicate timely events of little importance, such as a news app reporting a breaking story. The app runs in the background, but you're unlikely to open it separately.
- Alerts with a blue icon involve messaging, whether via Facebook Messenger or another messaging service. Email notifications tend to be so numerous they'll run down your phone's battery.
- Alerts with a green icon are SMS, which Shah calls the most "personalized" messages, and the messages we tend to pay closest attention to.
The best notifications have four characteristics, according to Shah: they're personalized, contextual, timely, and relevant. That's true of app-availability monitoring as well.
On the Ray Wenderlich site, Ali Hafizji describes how to use Apple Push Notification Services in iOS 6 to display a short text message, play a brief sound, and place a number in a badge on the app's icon. The process is broken into five steps:
- Enable push notifications in the app.
- Deliver a "device token" to the app (the notification address).
- Instruct the app to send the device token to the server.
- When a specified event occurs, have the server push the notification to the Apple Push Notification Service (APNS).
- APNS sends the push notification to the user device.
Push notifications for iOS apps use the Apple Push Notification Service and device tokens to communicate between the server and the app. Source: Ray Wenderlich
Similarly, on the AWS Official Blog, Jeff Barr explains how to use the Amazon Simple Notification Service to push notifications to mobile devices. The five steps for enabling push notifications in a mobile app are listed below:
- Create the app for the specific device and messaging API, such as Amazon Device Messaging, Apple Push Notification Service, or Google Cloud Messaging.
- Use SNS’s CreatePlatformApplication function to create a server-side representation.
- Call the SNS CreatePlatformEndpoint function to register devices as your server code becomes aware of them.
- Call the Publish function with the device’s Amazon Resource Name (ARN) to send messages directly to a specific device.
- Call the same Publish function, but use the ARN of a topic to send messages to all devices subscribed to that topic.
A fast, simple, and efficient approach to pushing server notifications to your mobile device is to create an alert via the Happy Apps service. Happy Apps lets you monitor apps, databases, and servers. You can create checks and alerts 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. It offers dependency maps that help you determine the impact IT systems have on other apps.
All Happy Apps server checks are collected in easy-to-read reports that can be analyzed to identify repeating patterns and performance glitches over time. If you would like to save time, trouble, and money when managing your servers, visit the Happy Apps site and sign up for a free account.