See the Evolution of AppDynamics at AppD Summit New York

AppD Summit New York is in just three short days on October 19th and we couldn’t be more excited for the largest and most influential AppD Summit yet. If you haven’t registered, time is running short for a full day of learning, networking and fun.

We’ll kick things off with our morning keynote where we’ll be joined by industry leaders from Cisco, AWS, Carhartt and others, who will share how you and the company you work for can capitalize on the tremendous opportunities in our digitally transformed world. You’ll also get a glimpse of our vision for the future of APM and how advances in machine learning and automation will get us there. And of course, we’ll share news of the latest advances to the AppDynamics platform.

While there will be a number of exciting announcements taking place at Summit, there’s one thing I’m getting most excited for. At AppD Summit NYC, we’re unveiling the latest evolution of our visual identity for the first time. I can’t wait for attendees to experience it and to hear their feedback. AppDynamics’ technology and vision has evolved and grown over the last 9 years. And so it’s important that the visual expression of our product and authentic brand reflects who we are today and our vision for tomorrow.

I’m so passionate about our new brand identity that I can’t resist showing a bit of a sneak peak:

Want to see more? Then you need to register here to attend our one day event on October 19th at Pier 36 in New York City. We can’t wait to see you there and hear what you think of the new AppD.

Ryan Kam is a VP and Chief Creative Officer at AppDynamics.

Getting started with iOS using Swift and AppDynamics

It is no secret the mobile application market is continuing to grow at impressive rates with over 25% of the internet now being consumed from mobile devices. If you are only doing business on the web you are leaving a massive audience behind. The audience just got a bit easier to reach on the iOS platform that drives distribution to Apple devices like iPhones, iPads, and the new iWatch.

Swift: A new approach for iOS and OSX applications

If you have been paying attention to Apple this year you will have noticed they released a new programming language at WWDC called Swift. Swift is an innovative new programming language for building iOS and OSX applications. Apple says it makes writing code interactive and fun, and the syntax is concise yet expressive, and that apps will run lightning-fast.

Screen Shot 2014-09-22 at 4.25.19 PM

Any Objective-C developer will tell you that developing applications on the iOS stack is not as easy as it could be. Swift aims to solve that with a more modern and powerful language. Swift supports all the features you would expect for a modern programming language. Building Swift apps is pretty easy and Apple does a great job explaining how to get started with Swift development in the iOS developer library.

Sign up for AppDynamics Mobile EUM

AppDynamics supports any Swift based application and this blog is a crash course in how to monitor Swift applications with the AppDynamics iOS agent. AppDynamics Mobile End User Experience Management provides everything you need to understand the end users experience on iOS and Android mobile applications in production. If you haven’t already, you will need to sign up for a free trial of AppDynamics Mobile End User Experience Management to get a key.

Screen Shot 2014-09-22 at 4.25.26 PM

Dive into your first Swift application

For this example we will use an open-source Swift application called Swift Weather. The application is straightforward: it uses your geolocation to show you the current weather using the openweathermap.org api. It uses Swift, CocoaPods, and the excellent AFNetworking library as the foundation for the application all available via GitHub. Clone the code from GitHub and get started immediately by signing up for a free trial of AppDynamics Mobile End User Experience Management.

Screen Shot 2014-09-22 at 4.25.35 PM

Clone the project from GitHub: git clone https://github.com/JakeLin/SwiftWeather

Install the project dependencies with CocoaPods: pod install

Screen Shot 2014-09-22 at 4.25.44 PM

Download the AppDynamics iOS agent

The AppDynamics iOS agent is extremely easy to integrate into any existing Objective-C or Swift based application. The first thing you will need is to download the iOS agent and get an EUM key from the getting started wizard in the controller. See our detailed information in the iOS agent documentation in the AppSphere Community.

Screen Shot 2014-09-22 at 4.25.50 PM

Expose AppDynamics iOS agent with an objective-c bridging header

In order to expose the AppDynamics SDK to a Swift based application you simply need to configure an Objective-C bridging header. The easiest way to do that for an existing Swift app is to simply create a new Objective-C file in the project.

Screen Shot 2014-09-22 at 4.26.00 PM

Update the build settings for the swift compiler to reference the objective-c bridging header:

Screen Shot 2014-09-22 at 4.26.10 PM

Next, just add the import for the AppDynamics iOS Agent (ADEUMInstrumentation) to the objective-c bridging header which will expose the public methods to the Swift application:

#import < ADEUMInstrumentation/ADEUMInstrumentation.h >

Screen Shot 2014-09-22 at 4.26.19 PM

Finally initialize the AppDynamics iOS Agent with your application key in the AppDelegate.swift with a call to the exposed library ADEumInstrumentation.initWithKey( “XX-XXX-XXX-XXX” ).

Screen Shot 2014-09-22 at 4.26.28 PM
Make sure to link the libraries the AppDynamics iOS Agent depends on (libsqlite3, libz, SystemConfiguration, CoreTelephony):

Screen Shot 2014-09-22 at 4.26.41 PM

Now that we have a completely instrumented application we can click run in Xcode and see our application Swift Weather application running live in iOS Simulator.

Screen Shot 2014-09-22 at 4.26.51 PM

Congratulations your app is completely monitored with AppDynamics Mobile EUM!

The power of monitoring

Now that our application is fully instrumented with the best mobile performance management solution available in the market you can start to explore the full power of AppDynamics. Through the AppDynamics Mobile End User Experience dashboard you can fully understand how your application is performing for your real users around the world.

Screen Shot 2014-09-22 at 4.27.03 PM

With visibility into network requests from mobile apps to the server-side with snapshots that correlated the server-side interaction to make sure the backend is never a black box.

Screen Shot 2014-09-22 at 4.27.15 PM

With Crash Analytics that feature crash trends and snapshot you can get a clear understanding of what are the most impactful crashes and all the code details (symbolicated stack traces) to resolve issues as fast as possible.

Screen Shot 2014-09-22 at 4.27.26 PM

Screen Shot 2014-09-22 at 4.27.36 PM

AppDynamics makes it easier to gather intelligence about your users and better understand your demographics with mobile analytics that include custom timers and metrics to understand your users and business better than you thought possible.

Screen Shot 2014-09-22 at 4.28.11 PM

Screen Shot 2014-09-22 at 4.28.19 PM

Check out our white paper on best practices for going live with a mobile application or find out more about AppDynamics Mobile EUM.

Interested in trying AppDynamics Mobile RUM? Check out our FREE trial!

AppDynamics Partners with OpenShift by Red Hat to Empower DevOps

We’re proud to partner with OpenShift by Red Hat to help monitor their open-source platform-as-a-service (PaaS). Together we make it easier to scale into the cloud. The integration helps foster DevOps by increasing the visibility and collaboration between the typically fragmented development and operations teams throughout the product lifecycle. We caught up with Chris Morgan, Technical Director of Partner Ecosystem at Red Hat, to discuss all the ways Agile and rapid-release cycles have changed development and sped up innovation.

Morgan refers to these new DevOps tools as driving innovation and empowering developers by cultivating a constant feedback loop and proving end-to-end visibility while help scale applications.

 

“We have a great partner that’s able to provide [APM] to enhance the platform and make it more desirable to developers and for our customers. Ease of use and deployment is what everyone wants.”

“Using AppDynamics, we can monitor the existing application and understand how best it’s performing and then re-architect it so it can take advantage of the things that platform-as-a-service has to offer and you move to OpenShift.”

AppDynamics is excited to announce we are available in the OpenShift marketplace to make it easier than ever to add application performance monitoring to OpenShift based applications.

AppDynamics in the OpenShift Marketplace

AppDynamics in the OpenShift Marketplace

Announcing AppDynamics 2014 Spring Release

AppDynamics is excited to announce the  2014 Spring Release of the AppDynamics platform which continues our tradition of disruptive innovation and extends our leadership position through:

  • Expanded support for a wide range of applications and frameworks including Java, .Net, PHP, Scala, and now Node.js applications

  • Launches mobile application performance monitoring to include end to end visibility across iOS and Android

  • Launches support for Big Data + NoSQL databases with MongoDB and extensions for Cassandra, Couchbase, Hbase, and Redis

  • Launches Cloud partnerships with Azure, Amazon Web Services, Pivotal, and OpenShift by RedHat

  • Delivers over 50 new integrations and partnerships with infrastructure, and other 3rd party solutions including NetApp, Keynote, ServiceNow, Mulesoft, TypeSafe, Apica, Splunk, Boundary, Amazon Web Services and Google Compute Engine

“We chose AppDynamics because they are the proven leader in application intelligence,” said Ravi Nekkalapu, director of technology and infrastructure architecture, Wyndham Hotel Group. “The latest improvements including enhanced support for apps built in Java, .NET and PHP and brand new support for apps built in Node.js and Scala provide us better and deeper visibility into all our real time production applications and allows us to better manage and improve application performance 24/7. With AppDynamics Spring 2014 Release the company strengthens its leadership position in application performance management.”

At AppDynamics we strive to deliver an intuitive user experience that is useful not only for developers and operations professionals, but also the executive team as well. In this release we have improved the user experience of application flow maps to be more scalable for complex applications:

We provide the best APM solution in the market for Java, .NET, PHP, and now support Node.js, Scala, iOS and Android. The extensive new capabilities allow organizations to proactively monitor, manage and analyze the most complex software environments. All of this happens in real time, in production, giving increased visibility, understanding, and control across applications, infrastructure and user experience. By eliminating blind spots, IT can resolve issues faster reducing downtime costs.

AppDynamics Spring 2014 Release features expanded support for the Java ecosystem including support for the Scala language and the Typesafe Reactive Platform. Get complete visibility into applications built on top of Play/Akka:

“Our new partnership with AppDynamics provides end to end visibility into production applications running on the Typesafe Reactive Platform. With AppDynamics’ unique support of Scala, Akka and Play, developers will be able to build reactive applications in record time, troubleshoot issues in real-time, and most importantly be certain that every user has a great experience with their application,” said Dave Martin, Vice president of Worldwide Sales and Business Development, Typesafe

AppDynamics is now available for mobile apps running on iOS and Android. Through AppDynamics Mobile APM you can get complete visibility into the end user experience of your iOS and Android users globally in real-time.

  • Crash Reporting – Understand the root cause of application crashes and hangs

  • Network Request Snapshots with server-side correlation  – Get end to end visibility from the mobile device all the way to multiple tiers on the server-side

  • Device & User Analytics – Analytics on device, carriers, OS, and application versions

AppDynamics Mobile APM features crash reports and network request snapshots to get to the root cause of performance problems whether on the mobile device or the server-side.

AppDynamics Spring 2014 Release features beta support for Node.js applications with support for all the core AppDynamics features users know and love including auto-discovery of business transactions, dynamic baselining, application flow maps  and transaction/process snapshots.

Understand exactly what is happening in your Node.js applications with process snapshots and support for PostgreSQL, MySQL, MongoDB, Riak, Cassandra, Memcache and Redis backends:

AppDynamics for Java continues to be the best APM solution in the market with new support for Google Web Toolkit, JAX-RS 2.0, Apache Synapse, Apple WebObjects. We have released Service Endpoints which enables customers with large SOA environments can define specific service points to track metrics and get associated business transaction information which helps service owners monitor and troubleshoot their own specific services within a large set of services.

AppDynamics for .NET continues to be the best APM solution in the market with new support for MVC5, RabbitMQ, and improved Windows Azure integration. We introduced support for async calls and added waterfall visualization to easily identify problems in your async applications:

AppDynamics for PHP is now available for PHP 5.2-5.5 with distributed transaction correlation. We introduced support for command line scripts, Redis and RabbitMQ backends.

 

AppDynamics End User Experience management has been greatly improved with client-side waterfall timing in browser snapshots and server -side correlation.

With the new waterfall client-side timings you get granular insight into performance on both the client-side and the server-side:

 

AppDynamics’ Spring 2014 Release includes new support for NoSQL Big Data stores including MongoDB and Hadoop, Couchbase and Cassandra.  NoSQL databases are growing in popularity because they allow for design simplicity, horizontal scaling and greater control over availability. AppDynamics for databases now supports MongoDB natively and can auto-detect replica sets and sharded clusters, monitor all queries and provides a drill down to query executions:

“Together with AppDynamics and MongoDB, organizations can now leverage application performance management solutions to gain further insight into their MongoDB-based applications. This partnership allows users end-to-end visibility for optimal performance in production, an important feature for companies as they scale their MongoDB deployments,” said Matt Asay, Vice president of Marketing and Business Development, MongoDB

AppDynamics formed strategic alliances with leading web infrastructure companies like NetApp, MongoDB, TypeSafe, and MuleSoft. The AppSphere community delivered over 50+ new extensions providing integrations to Keynote, ServiceNow, Splunk and Apica. Use our machine agent to track, graph, and correlate metrics from your underlying infrastructure (databases, caches, queues, hardware, etc.) in the AppDynamics metrics browser.

Enhanced support for major cloud providers including Amazon Web Services, Windows Azure, Pivotal, and OpenShift by RedHat. Monitor infrastructure and costs with Amazon Web Services and Google Compute Engine.  AppDynamics Amazon Web Services extension allows users to integrate CloudWatch into AppDynamics and have richer metrics around their Amazon cloud applications by combining both our own application metrics along with ones from CloudWatch. For example, by looking at CloudWatch’s billing metrics you can analyze the costs associated with various levels of performance.

“With our Spring 2014 Release, we are providing organizations enterprise-wide visibility into the performance and behavior of the applications that drive their software-defined business,” said Jyoti Bansal, founder and CEO of AppDynamics. “Once again, we are innovating with a new and enhanced set of capabilities that apply intelligence to instantly identify performance bottlenecks, anomalies, enable automatic fixes and continuously measure business impact. We do this in real time, in production, with cloud or on-premise deployment flexibility. This goes way beyond monitoring—it’s true application intelligence.”

We released far too many features and improvements to cover in one blog post so stay tuned for deep dives into what is new in Java & .NET, PHP & Node.js, and Mobile & End User Monitoring.

Take five minutes to get complete visibility into the performance of your production applications with AppDynamics Pro today.

 

Monitoring Apps on the Cloud Foundry PaaS

At AppDynamics, we pride ourselves on making it easier to monitor complex applications. This is why we are excited to announce our partnership with Pivotal to make it easier to deploy built-in application performance monitoring to the cloud.

 

Getting started with Pivotal’s Cloud Foundry Web Service

Cloud Foundry is the open platform as a service, developed and operated by Pivotal. You can deploy applications to the hosted Pivotal Web Services (much like you host apps on Heroku) or you can run your own Cloud Foundry PaaS on premise using Pivotal CF. Naturally, Cloud Foundry is an open platform that is used and operated by many companies and service providers.

1) Sign up for a Pivotal CF account and AppDynamics Pro SaaS account

In the future, Pivotal Web Services will include the AppDynamics SaaS APM services, so you’ll only need to sign up for Pivotal Web Services and it will automatically create an AppDynamics account.

2) Download the Cloud Foundry CLI (Command Line Interface)

Pivotal Web Services has both a web based GUI as well as a full featured linux style command line interface (CLI). Once you have a PWS account, you can download a Mac, Windows or Unix CLI from the “Tools” tab in the PWS dashboard or directly for OSX, Linux, and Windows.

Pivotal Web Services CLI

3) Sign in with your Pivotal credentials

Using the CLI, log in to your Pivotal Web Services account. Remember to preface all commands given to Cloud Foundry with “cf”.  Individual Cloud Foundry PaaS clouds are identified by their domain API endpoint. For PWS, the endpoint is api.run.pivotal.io. The system will automatically target your default org (you can change this later) and ask you to select a space (a space is similar to a project or folder where you can keep a collection of app(s).

$ cf login

Cloud Foundry CLI 

Monitoring Cloud Foundry apps on Pivotal Web Services

Cloud Foundry uses a flexible approach called buildpacks to dynamically assemble and configure a complete runtime environment for executing a particular class of applications. Rather than specifying how to run applications, your developers can rely on buildpacks to detect, download and configure the appropriate runtimes, containers and libraries. The AppDynamics agent is built-in to the Java buildpack for easy instrumentation so if you have AppDynamics monitoring running, the Cloud Foundry DEA will auto-detect the service and enable the agent in the buildpack. If you start the AppDynamics monitoring for an app already running, just restart the app and the DEA will autodetect the new service.

1) Clone the Spring Trader demo application

The sample Spring Trader app is provided by Pivotal as a demonstration. We’ll use it to show how monitoring works. First git clone the app from the Github repository.

$ git clone https://github.com/cloudfoundry-samples/rabbitmq-cloudfoundry-samples

2) Create a user provided service to auto-discover the AppDynamics agent

$ cf create-user-provided-service demo-app-dynamics-agent -p “host-name,port,ssl-enabled,account-name,account-access-key”

Cloud Foundry CLI

Find out more about deploying on PWS in the Java buildpack docs.

3) Use the Pivotal Web Services add-on marketplace to add a cloud based AMQP + PostgreSQL database instance

$ cf create-service elephantsql turtle demo-db

$ cf create-service cloudamqp lemur demo-amqp

Cloud Foundry CLI

4) Bind PostgreSQL, AMQP, and AppDynamics services to app

$ git clone https://github.com/cloudfoundry-samples/rabbitmq-cloudfoundry-samples

$ cd rabbitmq-cloudfoundry-samples/spring

$ mvn package

$ cf bind-service demo-app demo-app-dynamics-agent

$ cf bind-service demo-app demo-amqp

$ cf bind-service demo-app demo-db

Cloud Foundry CLI

5) Push the app to production using the Cloud Foundry CLI (Command Line Interface)

$ cf push demo-app -i 1 -m 512M -n demo-app -p target/rabbitmq-spring-1.0-SNAPSHOT.war

Cloud Foundry CLI

Spring AMQP Stocks Demo App

Spring Trader

Pivotal Web Services Console

Pivotal PaaS CloudFoundry

 

 

Production monitoring with AppDynamics Pro

Monitor your critical cloud-based applications with AppDynamics Pro for code level visibility into application performance problems.

AppD Dashboard

Pivotal is the proud sponsor of Spring and the related open-source JVM technologies Groovy and Grails. Spring helps development teams build simple, portable, fast, and flexible JVM-based systems and applications. Spring is the most popular application development framework for enterprise Java. AppDynamics Java agent supports the latest Spring framework and Groovy natively. Monitor the entire Pivotal stack including TC server and Web Server, GreenPlum, RabbitMQ, and the popular Spring framework:

AppD

 

Take five minutes to get complete visibility into the performance of your production applications with AppDynamics today.

 

Bootstrapping DropWizard apps with AppDynamics on OpenShift by Red Hat

Getting started with DropWizard, OpenShift, and AppDynamics

In this blog post, I’ll show you how to deploy a Dropwizard-based application on OpenShift by Red Hat and monitor it with AppDynamics.

DropWizard is a high-performance Java framework for building RESTful web services. It is built by the smart folks at Yammer and is available as an open-source project on GitHub. The easiest way to get started with DropWizard is with the example application. The DropWizard example application was developed to, as its name implies, provide examples of some of the features present in DropWizard.

DropWizard

OpenShift can be used to deploy any kind of application with the DIY (do it yourself) cartridge. To get started, log in to OpenShift and create an application using the DIY cartridge.

With the official OpenShift quick start guide to AppDynamics getting started with AppDynamics on OpenShift couldn’t be easier.

1) Signup for an account on OpenShift by RedHat

2) Setup RedHat client tools on your local machine

$ gem install rhc
$ rhc setup

3) Create a Do It Yourself application on OpenShift

$ rhc app create appdynamicsdemo diy-0.1
 --from-code https://github.com/Appdynamics/dropwizard-sample-app.git

Getting started is as easy as creating an application from an existing git repository: https://github.com/Appdynamics/dropwizard-sample-app.git

DIY Cartridge


% rhc app create appdynamicsdemo diy-0.1 --from-code https://github.com/Appdynamics/dropwizard-sample-app.git

Application Options
——————-
Domain: appddemo
Cartridges: diy-0.1
Source Code: https://github.com/Appdynamics/dropwizard-sample-app.git
Gear Size: default
Scaling: no

Creating application ‘appdynamicsdemo’ … done
Waiting for your DNS name to be available … done

Cloning into ‘appdynamicsdemo’…
Your application ‘appdynamicsdemo’ is now available.

URL: http://appdynamicsdemo-appddemo.rhcloud.com/
SSH to: 52b8adc15973ca7e46000077@appdynamicsdemo-appddemo.rhcloud.com
Git remote: ssh://52b8adc15973ca7e46000077@appdynamicsdemo-appddemo.rhcloud.com/~/git/appdynamicsdemo.git/

Run ‘rhc show-app appdynamicsdemo’ for more details about your app.

With the OpenShift Do-It-Yourself container you can easily run any application by adding a few action hooks to your application. In order to make DropWizard work on OpenShift we need to create three action hooks for building, deploying, and starting the application. Action hooks are simply scripts that are run at different points during deployment. To get started simply create a .openshift/action_hooks directory:

mkdir -p .openshift/action_hooks

Here is the example for the above sample application:

When checking out the repository use Maven to download the project dependencies and package the project for production from source code:

.openshift/action_hooks/build

cd $OPENSHIFT_REPO_DIR

mvn -s $OPENSHIFT_REPO_DIR/.openshift/settings.xml -q package

When deploying the code you need to replace the IP address and port for the DIY container. The properties are made available as environment variables:

.openshift/action_hooks/deploy

cd $OPENSHIFT_REPO_DIR

sed -i 's/@OPENSHIFT_DIY_IP@/'"$OPENSHIFT_DIY_IP"'/g' example.yml
sed -i 's/@OPENSHIFT_DIY_PORT@/'"$OPENSHIFT_DIY_PORT"'/g' example.yml

Let’s recap some of the smart decisions we have made so far:

  • Leverage OpenShift platform as a service (PaaS) for managing the infrastructure
  • Use DropWizard as a solid foundation for our Java application
  • Monitor the application performance with AppDynamics Pro

With a solid Java foundation we are prepared to build our new application. Next, try adding another machine or dive into the DropWizard documentation.

Combining DropWizard, OpenShift, and AppDynamics

AppDynamics allows you to instrument any Java application with by simply adding the AppDynamics agent to the JVM. Sign up for a AppDynamics Pro self-service account. Log in using your account details in your email titled “Welcome to your AppDynamics Pro SaaS Trial” or the account details you have entered during On-Premise installation.

The last step to combine the power of OpenShift and DropWizard is to instrument the app with AppDynamics. Simply update your AppDynamics credentials in the Java agent’s AppServerAgent/conf/controller-info.xml configuration file.

Finally, to start the application we need to run any database migrations and add the AppDynamics Java agent to the startup commmand:

.openshift/action_hooks/deploy

cd $OPENSHIFT_REPO_DIR

java -jar target/dropwizard-example-0.7.0-SNAPSHOT.jar db migrate example.yml

java -javaagent:${OPENSHIFT_REPO_DIR}AppServerAgent/javaagent.jar
     -jar ${OPENSHIFT_REPO_DIR}target/dropwizard-example-0.7.0-SNAPSHOT.jar
     server example.yml > ${OPENSHIFT_DIY_LOG_DIR}/helloworld.log &

OpenShift App

Additional resources on running DropWizard on OpenShift:

Take five minutes to get complete visibility into the performance of your production applications with AppDynamics Pro today.

As always, please feel free to comment if you think I have missed something or if you have a request for content in an upcoming post.

IT holds more business influence than they realise

A ‘well oiled’ organization is one where IT and the rest of the business are working together and on the same page. In order to achieve this there needs to be good communication, and for good communication there needs to be a common language.

In most organizations, while IT are striving to achieve their goal of 99.999% availability, the rest of the business is looking to drive additional revenue, increase user satisfaction, and reduce customer churn.

Ultimately everyone should be working towards a common goal: SUCCESS. Unfortunately different teams define their success in different ways and this lack of alignment often results in a mistrust between IT departments and the rest of the business.

Measuring success

Let’s look at how various teams within a typical organization define success today:

Operations:
IT ops teams are responsible for reducing risk, ensuring the application is available and the ‘lights are green’. The number ‘99.9’ can either be IT Ops best friend or its worst enemy. Availability targets such as these are often the only measure of ops success or failure, meaning many of the other things you are doing often go unnoticed.

Availability targets don’t show business insight, or the positive impact you’re having on the business. For instance, how much did performance improve after you implemented that change last week? Has the average order size increased? How many additional orders can the application process since re-platforming? Is anyone measuring what the performance improvement gains were for that change you implemented last week?

Development:
Dev teams are focussed on change. The Business demands they release more frequently, with more features, less defects, less resources and often less sleep! Dev teams are often targeted according to the number of updates and changes they can release. But nobody is measuring the success of these changes. Can anyone in your dev team demonstrate what the impact of your last code release was? Did revenues climb? Were users more satisfied? Were there an increased number of orders placed?

‘The Business’:
The business is focussed on targets; last month’s achievements and end of year goals. This means they concentrate on the past and the future, but have little or no idea what impact IT is having on the business in the present. Consulting a data warehouse to gather ‘Business Intelligence’ at the end of the month does not allow you to keep your finger on the pulse of the business.

With everyone focussing on different targets there is no real alignment to the overall business goals between different parts of an organization. One reason for this disconnect is due to the lack of meaningful shared metrics. More specifically, it’s access to these metrics in real-time that is the missing link.

If I asked how much revenue has passed through your application since reading this blogpost, or what impact your last code release had on customer adoption, how quickly could you find the answers? How quickly could anyone in your organization find the answers?

What if answers to these questions only took seconds?

Monitoring the Business in Real-time

In a previous post, I introduced AppDynamics Real-time Business Metrics which enables you to easily collect, auto-baseline, alert, and report on the Business data that is flowing through your applications… as it’s really happening.

This post demonstrates how to configure AppDynamics to extract all checkout revenue values from every business transaction and make this available as a new metric “Checkout Revenue” which can be reported in real-time just like any other AppDynamics metric.

With IT Ops, Dev and Business Owners all supporting business critical applications that are responsible for generating revenue, it is a great example of a business metric that could be used by every team to measure success.

Let’s look at a few examples of how this could change the way you do business, if everyone was jointly focussed on the same business metric.

Outage cost
The below example shows the revenue per minute vs. the response time per minute of an application. This application has obviously suffered an outage that lasted approximately 50 mins and it’s clear to see the impact it has had on the business in lost revenue. The short spike/increase in revenue seen after the outage indicates users who returned to complete their transaction, but this is not enough to recover the lost revenue for the period.

RtBM - outage

Impact of agile releases
This example shows the result of a performance improvement program that has taken place. The overall response time has improved by over a second across three code releases and you can clearly see the additional revenue that has been generated as a result of the code releases.

RtBM - agile releases

Here a 1 second improvement in response time has increased the revenue being generated by the online booking system by more than 30%. The value a development team is delivering back to the business is clearly visible with each new release, allowing developers to focus on the areas that drive the most return and quantify the value they are delivering.

Marketing campaign
This example is a little more complex. At midday there is a massive increase in the number of people visiting this eCommerce website due to an expensive TV advertising campaign. The increased load on the system has resulted in a small increase in the overall response time but nothing too significant. However, despite the increased traffic to the site, the revenue has not improved. If we take a look at the Number of Checkouts, which is a second Business Metric that has been configured, it’s clear the advertising campaign has driven additional users to the site, but these users have not generated additional revenue.

RtBM - marketing

Common metrics for common success

With traditional methods of measuring success in different ways it’s impossible to to align towards a common goal. This creates silo’d working environments that make it impossible for teams to collaborate and prioritise.

By enabling all parts of the business to focus on the business metrics that really matter, organizations benefit from being able to proactively prioritise and resolve issues when they occur. It helps IT truly align with the priorities and needs of the business, allowing them to speak the same language and manage the bottom line. For example, after implementing AppDynamics Real-time Business Metrics Doug Strick, who is the Internet Application Admin at Garmin, said the following:

“We can now understand how the application is growing over time. This data will prove invaluable in guiding future decisions in IT.”
-Doug Strick, Internet Application Admin

AppDynamics Real-time Business Metrics enable you to identify business challenges and react to them immediately, instead of waiting hours, days or even weeks for answers. Correlating performance, user experience, and Business metrics together in real-time and in one place.

If you want to capture the business performance and measure your success against it in real-time , you can get started today with Real-time Business Metrics by signing up and taking a free trial of AppDynamics Pro here.

Monitoring Java Applications with AppDynamics on OpenShift by Red Hat

At AppDynamics, we are all about making it easy to monitor complex applications. That is why we are excited to announce our partnership with OpenShift by RedHat to make it easier than ever before to deploy to the cloud with application performance monitoring built-in.

Getting started with OpenShift

OpenShift is Red Hat’s Platform-as-a-Service (PaaS) that allows developers to quickly develop, host, and scale applications in a cloud environment. With OpenShift you have choice of offerings, including online, on premise, and open source project options.

OpenShift Online is Red Hat’s public cloud application development and hosting platform that automates the provisioning, management and scaling of applications so that you can focus on writing the code for your business, startup, or next big idea.

RedHat OpenShift

OpenShift is a platform as a service (PaaS) by RedHat ideal for deploying large distributed applications. With the official OpenShift quick start guide to AppDynamics getting started with AppDynamics on OpenShift couldn’t be easier.

1) Signup for a RedHat OpenShift account

2) Setup RedHat client tools on your local machine

$ gem install rhc
$ rhc setup

3) Create a JBoss application on OpenShift

$ rhc app create appdynamicsdemo jbossews-2.0 --from-code https://github.com/Appdynamics/appdynamics-openshift-quickstart.git

AppDynamics @ OpenShift

Get started today with the AppDynamics OpenShift getting started guide.

Production monitoring with AppDynamics Pro

Monitor your critical cloud-based applications with AppDynamics Pro for code level visibility into application performance problems.

OpenShift App

Take five minutes to get complete visibility into the performance of your production applications with AppDynamics Pro today.

Going live with a mobile app: Part 4 – Monitoring your mobile application

In the third part of this series I discussed preparing to launch a mobile application with load testing and beta testing and highlighted the differences between the iOS and Android ecosystems. In this post I will dive into monitoring your production mobile application.

Production consideration: Crash and Error Reporting

Crash and error reporting is a requirement not only for the development of your application, but also for testing and production. There are quite a few crash-reporting tools available including AppDynamics, Crashlytics, Crittercism, NewRelic, BugSense, HockeyApp, InstaBug, and TestFlight. All of these tools have are capable of reporting fatal errors in your application to help developers track down the root cause of bugs. The problem with crash and error reporting is that it only tracks issues after they have affected users. Both the Apple App Store and the Google Play Store provide basic crash reporting metrics.

The harsh reality is that mobile applications have a fickle audience that is heavily reliant on curated app stores and reviews. Reviews can make or break a mobile application, as can being featured in an app store. A common best practice is to allow in-app feedback to preempt negative reviews by engaging the user early on. There are a variety of services that make it easy to provide in-app feedback like Apptentive, Appboy, and Helpshift.

This is why being proactive with quality assurance and production monitoring has a significant impact on the success of an application. Not only must the application work as designed, but also the experience must be polished. The expectation in the mobile community is significantly higher than on the web.

Production consideration: Analytics & Instrumentation

Smart executives are data driven and mobile applications can be a plethora of business intelligence. When it comes to instrumentation the earlier you instrument and more metrics you track, the better informed you will be. Analytics and instrumentation are crucial for making informed and smart decisions about your business.

Who is your audience? What platforms and devices do they use? What user flows are the most common? Why do users abandon? Where are users located? What is the performance of your application?

appdynamics_mobile

Tracking important demographics of your audience like operating systems, devices, carriers, application versions, and geography of users is key. These metrics allow you to target your limited resources to where they are needed most. There are quite a few analytics platforms built for mobile including Google Analytics, Flurry, Amazon Analytics, FlightPath, MixPanel, KissMetrics, Localytics, and Kontagent.

All of these tools will give you better insights into your audience and enable you to make smarter decisions. There are important metrics to track like total # of installations, average session lifetime, engagement and growth, and geography of your users. Once you have basic user demographics you can use MixPanel or KissMetrics to track user activity with custom event tracking. The more instrumentation you add to your application the more metrics and customer intelligence you will have to work with.

Production consideration: Application Performance Monitoring

Application performance management tools enable you to discover the performance of your mobile and server-side applications in production. APM allows you to understand your application topology, third party dependencies, and the performance of your production application on both the client-side and the server-side. Modern application performance management solutions like AppDynamics track crashes and errors, the performance of the mobile application, and correlates performance to your backend platform, while providing rich user demographics and metrics on the end user experience. With modern business reporting tools you can evaluate the health of your application and be proactive when performance starts to deteriorate.

appdynamics_mobile_apm

End User Monitoring allows you to understand the application experience from the eyes of your real users. There are quite a few solutions to monitoring the end user experience in the market place. AppDynamics, Crittercism, New Relic, and Compuware allow you in instrument your application and gain visibility into production performance problems.

Business consideration: Real-time business metrics

Once you have launched a successful mobile experience you need to understand how that experience affects your business. If you have a business critical application like the Apple Store Checkout application or the Fedex Package Management application your business is dependent on performance and use of your application. You can gain valuable insight into your business if you track and correlate the right metrics. For example, how does performance affect revenue, or what is the average price for a checkout transaction. Understanding your core business metrics and correlate them to your mobile experience for maximum business impact.

appdynamics_business_metrics

Business consideration: Monetization

Your plan is to retire off this application, so you need to have a monetization strategy. The most common ways to make money from applications are Pay to play (charge a fee for your application), freemium (offer a free and pro upgrade), offer in-app purchases (like levels, tokens, and credit), and traditional advertising. There are many services to enable mobile advertising like Apple’s iAds, Google’s Admob, Amazon’s Mobile Ads, Flurry, inMobi, Millennial Media, and moPub. All of these strategies require precision execution, but some strategies work better for specific types of apps. Experiment with multiple strategies and do what works best for your business.

Moving forward

It is no longer enough just to have a presence on the web. In fact more and more companies are going mobile first. The mobile landscape is constantly evolving and the mobile market is seeing continued growth year over year.

Want to start monitoring your iOS or Android application today? Sign up for our beta program to get the full power of AppDynamics for your mobile apps. Take five minutes to get complete visibility into the performance of your production applications with AppDynamics Pro today.

As always, please feel free to comment if you think I have missed something or if you have a request for content in an upcoming post.

Going live with a mobile app: Part 3 – Launching a mobile application

In the second part of this series I discussed developing a mobile application and choosing a backend platform and building for various network conditions. In this post I will dive into some considerations when launching a mobile application.

Mobile app audiences are a notoriously fickle bunch and a poor first impression often results in a very harsh app store review that will negatively impact your apps growth. When an app store rating can make or break your application you have to be diligent in making sure every user has a stellar experience. The best way to do this is thoroughly test your mobile experience and load testing your backend to ensure you can handle peak traffic.

The key to a successful launch is great planning and testing. Launching mobile applications are significantly more difficult than the common web application. Not only is the audience more fickle, but you also have to adhere to third-party processes and procedures. Thorough quality assurance, crash and error reporting, load testing, and proactive production monitoring are essential to launching a successful mobile application.

Launch consideration: Testing native applications across mobile devices

Testing mobile applications is notoriously difficult due to the vast number of devices. There are a few services that make this easier for engineers. I have seen a few strategies for testing mobile devices – usually you go to Amazon and buy the top twenty devices for Android and iOS and manually test your application across every device manually. Mobile device labs of this sort are quite expensive to setup and maintain and often require some level of automation to be productive. Alternatives to setting up your own mobile lab is to use a mobile app testing platform like TheBetaFamily. They offer an easy way to test your native application across many different devices and audiences with ease.

Launch consideration: Capacity planning and load testing

Capacity planning is key to the successful launch of any web application (or mobile backend). If you want to understand what can go wrong look no further than the failure to launch of healthcare.gov. Understanding your limits and potential capacity is a requirement for planning how much traffic you can handle. Making an educated assumption about potential growth and you can come up with a plan for how many concurrent users you might need to support.

mobile_distributed_app

Once you understand your maximum concurrent users you can test your backend infrastructure to be sure your mobile experience doesn’t suffer. There are quite a few tools available to help you load test and evaluate the scalability of your backend platform. Apica, Soasta, and Blazemeter offer services that allow you to simulate your mobile application being used at high levels of concurrency.

Launch consideration: Beta testing

Beta testing is the last quality assurance step before you can make your app generally available. Testflight, HockeyApp, and Ubertesters allow you to distribute your application for testing to a select group of users. When it comes to beta testing the more users you can convince to give feedback and the larger distribution of devices the better. These beta testing and distribution tools enable you to easily gather feedback early on about what isn’t working in your application and save you from the embarrassment of negative app store reviews due to obvious problems. A/B testing is also a great way to find out which flows work best as part of your beta testing experience. This is an essential step to a successful launch – the more beta testers you can find the better.

Launch consideration: Hard launch or Soft launch?

Once you have beta tested and decided you have a great application that is battle tested for production you need to decide how to launch. The real question is hard launch or soft launch. The traditional hard launch is straightforward. Your app is approved in the app store and you go live. There are a few different strategies for soft launches of major applications. The most common is to soft launch outside of your primary market. If you are planning to release in the USA you can easily pick another region with similar characteristics like Canada, Australia, or the United Kingdom. The benefit of soft launching in a secondary market means you can validate assumptions earlier and beta testing your key audience. Soft launching can validate product/market fit, app experience, usability, and app/game/social mechanics. The result is your first experience with your key demographic will be based on the data you learned from your sample audience. The end result will be a much more polished and proven app experience.

Launch consideration: App store submission process

The application submission process varies greatly depending on the app store. This is where you get to sell your application with a marketing description, search keywords, and screenshots of your app in action. You can specify pricing and what regions/markets you want your app to be available in.

ios_app_submission

With Apple it is customary to wait up to two weeks for Apple to review your application and approve it for production. Apple routinely rejects applications for being low quality, using unsupported APIs, and for not following design guidelines. Google on the other hand offers a streamlined release process that takes less than one hour, but doesn’t offer the first line of protection that Apple provides by not allowing apps with obvious flaws.

Mobile insights with AppDynamics

With AppDynamics for Mobile, you get complete visibility into the end user experience across mobile and web with the end user experience dashboard. Get a better understanding of your audience and where to focus development efforts with analytics on device, carriers, OS, and application versions:

AppDynamics For Mobile

AppDynamics For Mobile

Want to start monitoring your iOS or Android application today? Sign up for our beta program to get the full power of AppDynamics for your mobile apps.

Mobile APM

In the next post in this series I will dive into monitoring a production mobile app and the various tools that are available. As always, please feel free to comment if you think I have missed something or if you have a request for content in an upcoming post.

Take five minutes to get complete visibility into the performance of your production applications with AppDynamics Pro today.