AppDynamics Supports Scala and the Typesafe Reactive Platform with Play2/Akka

In the AppDynamics Spring 2014 release we added support for the Scala language and the TypeSafe Reactive Platform with support for Play2 and Akka based applications. We are excited to announce a strategic partnership with TypeSafe to provide the best APM solution in the market for Reactive applications.

“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

Reactive Applications

Reactive applications are a new class of applications that are becoming more and more prevalent in both Consumer and Enterprise-facing environments. Reactive applications are fundamentally different to the traditional web-based or mobile applications seen today and are distinguished by having one or more of the following defining traits:

  • Event-Driven: Enables parallel, asynchronous processing of messages or events with ease.
  • Scalable: Can scale within and across nodes elastically to provide compute power on-demand when it’s needed.
  • Resilient: The ability to recover and repair itself automatically in order to provide seamless business continuity.
  • Responsive: Rich, engaging, single page user interfaces that provide instant feedback based on user interactions and other stimuli.

Typesafe Reactive Platform

The Typesafe Reactive Platform is a JVM-based runtime and toolset for building Reactive applications. The Typesafe Reactive Platform is a suite of integrated products consisting of Play Framework, Akka, and Scala.

Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way.  It smoothly integrates features of object-oriented and functional languages, enabling Java and other programmers to be more productive.

Akka is a runtime for building highly concurrent, distributed, and fault tolerant event-driven applications.

Play Framework is an MVC based web framework that focuses on developer productivity, modern web and mobile applications, and predictable, minimal resource consumption resulting in highly performant, highly scalable applications.

Slick is a modern database query and access library for Scala, where you can write your database queries in Scala instead of SQL, thus profiting from the static checking, compile-time safety and compositionality of Scala.

Spray is a toolkit for building REST/HTTP-based integration layers on top of Scala and Akka.  Being asynchronous, actor-based, fast, lightweight and modular it’s a great way to connect Scala applications to the outside world.

 

Bootstrapping with TypeSafe Activator

Typesafe Activator gets you started with the Typesafe Reactive Platform, Play Framework, Akka and Scala. A unique, browser-based tool that helps developers get started with Typesafe technologies quickly and easily. Activator is a hub for developers wanting to build Reactive applications. Unlike previous developer-focused offerings that are delivered simply via a website, Activator breaks new ground by delivering a rich application directly to the desktop. Activator updates in real-time with new content from Typesafe and value-add third parties, helping developers engage and adopt Typesafe technologies in an entirely frictionless manner.

The rich developer content in Typesafe Activator is dynamic and customizable. New templates are published regularly on the Typesafe website.

To get started we will use the Reactive Stocks Activator Template:

Adding the AppDynamics Agent

Java Agent

 

To enable the AppDynamics agent simply download and configure the AppDynamics Java Agent and update your ‘framework/build’ environment with the -javaagent switch:

JAVA_OPTS="$JAVA_OPTS -javaagent:/opt/appdynamics/java-agent/javaagent.jar"

Monitoring the TypeSafe Reactive Platform with the AppDynamics

AppDynamics provides application performance management for Java and Scala applications. Get end to end visibility from the end user to the server side.

Jamie Allen, Director of Consulting at Typesafe talks about the mutual benefits of Typesafe partnering with AppDynamics:

 

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

Application Monitoring with JConsole, VisualVM and AppDynamics Lite

What happens when mission critical Java applications slow down or keep crashing in production? The vast majority of IT Operations (Ops) today bury their heads in log files. Why? because thats what they’ve been doing since IBM invented the mainframe. Diving into the weeds feels good, everyone feels productive looking at log entries, hoping that one will eventually explain the unexplainable. IT Ops may also look at system and network metrics which tell them how server resource and network bandwidth is being consumed. Again, looking at lots of metrics feels good but what is causing those server and network metrics to change in the first place? Answer: the application.

IT Ops monitor the infrastructure that applications run on, but they lack visibility of how applications actually work and utilize the infrastructure. To get this visibility, Ops must monitor the application run-time. A quick way to get started is to use the free tools that come with the application run-time. In the case of Java applications, both JConsole and VisualVM ship with the standard SDK and have proved popular choices for monitoring Java applications. When we built AppDynamics Lite we felt their was a void of free application monitoring solutions for IT Ops, the market had plenty of tools aimed at developers but many were just too verbose and intrusive for IT Ops to use in production. If we take a look at how JConsole, VisualVM and AppDynamics Lite compare, we’ll see just how different free application monitoring solutions can be.