Quantcast
Channel: Application Performance Monitoring Blog from AppDynamics » Application Performance Monitoring Blog from AppDynamics
Viewing all 142 articles
Browse latest View live

What’s new in the Summer ‘14 release for PHP & Node.js Developers

$
0
0
image_pdfimage_print

As part of AppDynamics’ Summer ‘14 release, we announced the general availability of our Node.js application performance management product module.  What does this news mean for Node.js developers?  Let’s take a closer look at how our best in class feature set enables developers to deliver better performing, higher quality Node.js apps regardless of framework.

Distributed transaction tracing for Node.js

Distributed transaction tracing allows customers to trace a transaction across a heterogeneous application environment.

Screen Shot 2014-08-12 at 3.45.50 PM

Whether you use PHP, Node.js, Java, or .Net you can drill-down into distributed application calls and get the visibility you need to find the root cause.

Process wide-snapshots for Node.js

Process wide snapshots give developers call graph visibility of all executing functions within the Node.js process that executed to understand exactly what is happening when debugging problems.

Screen Shot 2014-08-12 at 3.45.58 PM

Quickly hone in on the functions that are blocking the event loop and maxing out CPU in your Node.js applications.

Database / NoSQL visibility for Node.js

Developers can now correlate database performance to originating Node.js server business transaction performance metrics.

Screen Shot 2014-08-12 at 3.46.08 PM

View how database performance correlates to application performance in real-time to understand the root-cause of application performance issues.

Data collectors for PHP

AppDynamics has added support for data collectors in PHP to capture useful data from HTTP requests and cookie data.  This makes it really easy to query all transactions for a specific user.

Screen Shot 2014-08-12 at 3.46.17 PM

With data collectors for PHP developers can track and correlate data from user interactions to get a more complete picture of the applications and it’s users.  Understanding how users interact with the application gives developers the information they need to prioritize development efforts.

Real-time business metrics for PHP

AppDynamics has added support for real-time business metrics in PHP.  This allows developers to quickly configure and view important business metrics in real-time like how revenue correlates with different application events like code release.

Screen Shot 2014-08-12 at 3.46.24 PM

By automatically correlating application performance metrics with business metrics with no code changes required, developers get visibility into how the releases they work on positively affect the business.

Screen Shot 2014-08-12 at 3.46.33 PM

Test drive these new features yourself by signing up for a free trial today.

The post What’s new in the Summer ‘14 release for PHP & Node.js Developers written by Dustin Whittle appeared first on Application Performance Monitoring Blog from AppDynamics.


Transforming IT: Building a business-driven infrastructure for the software defined business

$
0
0
image_pdfimage_print

Executives charged with building business-driven applications have an extremely challenging task ahead of them. However, the cavalry has arrived with useful tools and strategies built specifically to keep modern applications working efficiently.

We partnered with Gigaom Research to carefully grasp, and articulate, how these modern methodologies are improving the lives of IT professionals in today’s software-driven businesses. Typically, this knowledge has been so fragmented it’s been hard to find all this helpful knowledge in one cohesive area. Several blogs and research reports touch on various aspects, but what we learned from our research has been astounding.

We carefully identified these challenges as the major hurdles facing IT today:

  • Customers are digital and connected
  • Business demand is growing
  • Apps are complex, distributed, and changing rapidly
  • Traditional app performance management is growing

Clearly these have become major issues affecting companies everywhere, however more importantly, these are affecting end-users and in turn company’s bottom lines. Customers have grown accustomed to expect things instantly and when apps are performing adequately, they will quickly take their business elsewhere.

Here are some key takeaways we noticed:

  • Customer experience is driving business performance
  • Proactively managing this experience requires new methods and tools
  • Modernize your infrastructure and approaches, but don’t forget the humans
  • Analytics is rapidly changing, fueled by the growth of big data

This report highlights the value of proactively managing the customer experience with new methods and tools built for modern, complex applications in order to help drive business performance.

Interested in the next-gen IT strategy and trends, check out the report!

The post Transforming IT: Building a business-driven infrastructure for the software defined business written by Dustin Whittle appeared first on Application Performance Monitoring Blog from AppDynamics.

The Incredible Extensible Machine Agent

$
0
0
image_pdfimage_print

Our users tell us all the time: The AppDynamics platform is amazing right out of the box. But everybody has something special they want to do, whether it’s to add some functionality, set up a unique monitoring scenario, whatever. That’s what makes AppDynamics’ emphasis on open architecture so important and useful. The functionality of the AppDynamics machine agent can be customized and extended to perform specific tasks to meet specific user needs, either through existing extensions from the AppDynamics Exchange or through user customizations.

It helps to understand what the machine agent is and how it works. The machine agent is a stand-alone java application that can be run in conjunction with application agents or separate from them. This means monitoring can be extended to environments outside the realm of the application being monitored. It can be deployed to application servers, databases servers, web servers — really anything running Linux, UNIX, Windows, or MAC.

Screen Shot 2014-08-21 at 9.03.06 AM

The real elegance of the machine agent is its tremendous extensibility. For non-Windows environments, there are three ways to extend the machine agent: through a script, with Java, or by sending metrics to the agent’s HTTP listener. If you have a .NET environment, you also have the capability of adding additional hardware metrics, over and above these three ways.

Let’s look at a real-life example. Say I want to create a extension using cURL that would give the HTTP status of certain websites. My first step is to look for one in the AppDynamics Exchange, our library of all the extensions and integrations currently available. It’s also the place one can request extensions that they need or submit extensions they have built.

Sure enough, there’s one already available (community.appdynamics.com/t5/AppDynamics-eXchange/idbp/extensions) called Site Monitor, written by Kunal Gupta. I decided to use it, and followed these steps to create my HTTP status collection functionality.

1. Download the extension to the machine agent on a test machine.
2. Edit the Site Monitor configuration file (site-config.xml) to ping the sites that I wanted (in this case www.appdynamics.com). The sites can also be HTTPS sites if needed.
3. Restart the machine agent.

That’s it. It started pulling in the status code right away and, as a bonus, also the response time for requesting the status code of the URL that I wanted.

Screen Shot 2014-08-21 at 9.02.55 AM

It’s great that I can now see the status code (200 in this case), but now I can truly use its power. I can quickly build dashboards displaying the information.

Screen Shot 2014-08-21 at 9.02.45 AM

There also is the ability to hook the status code into custom health rules, which provide alerts when performance becomes unacceptable.

Screen Shot 2014-08-21 at 9.02.35 AM
Screen Shot 2014-08-21 at 9.02.14 AM

So there it is. In just a matter of minutes, the extension was up and running, giving me valuable data about the ongoing status of my application. If the extension that I wanted didn’t exist, it would have been just as easy to use the cURL command (curl –sL –w “{http_code} \\n “ www.appdynamics.com -o /dev/null).

Either way, the machine agent can be extended to support your specific needs and solve specific challenges. Check out the AppDynamics Exchange to see what kinds of extensions are already available, and experiment with the machine agent to see how easily you can expand its capabilities.

If you’d like to try AppDynamics check out our free trial and start monitoring your apps today!

The post The Incredible Extensible Machine Agent written by Charlie Lukens appeared first on Application Performance Monitoring Blog from AppDynamics.

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

$
0
0
image_pdfimage_print

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.

The post AppDynamics Supports Scala and the Typesafe Reactive Platform with Play2/Akka written by Dustin Whittle appeared first on Application Performance Monitoring Blog from AppDynamics.

Focusing on Business Transactions is a Proven Best Practice

$
0
0
image_pdfimage_print

In today’s software-defined business era, uptime and availability are key to the business survival. The application is the business. However, ensuring proper application performance remains a daunting task for their production environments, where do you start?

Enter Business Transactions.

By starting to focus on the end-user experience and measuring application performance based on their interactions, we can correctly gauge how the entire environment is performing. We follow each individual user request as it flows through the application architecture, comparing the response time to its optimal performance. This inside-out strategy allows AppDynamics to instantly identify performance bottlenecks and allows application owners to get to the root-cause of issues that much faster.
output_R1SFaZ

By becoming business transaction-centric application owners can ensure uptime and availability even within a challenging application environment. Business transactions give them the insight that’s required in order to react to quickly changing conditions and respond accordingly.

So, what exactly is a Business Transaction?

Simply: any and every online user request.

Consider a business transaction to be a user-generated action within your system. The best practice for determining the performance of your application isn’t to measure CPU usage, but to track the flow of a transaction that your customer, the end user, has requested.

It can be requests such as:

  • logging in
  • adding an item to a cart
  • checking out
  • searching for an item
  • navigating different tabs
  • Shifting your focus to business transactions completely changes the game in terms of your ability to support application performance.

    Business Transactions and APM

    Business Transactions equip application owners with three important advantages.

    Knowledge of User Experience

    If a business transaction is a “user-generated action,” then it’s pretty clear how monitoring business transactions can have a tremendous effect on your ability to understand the experience of your end user.

    If your end user adds a book to a shopping cart, is the transaction performing as expected or is it taking 3 seconds longer? (And what kind of impact will that have on end users? Will they decide to surf away and buy books somewhere else, thus depriving your business of not just the immediate purchase but the potential loss of lifetime customer revenue?)

    Monitoring business transactions gives you a powerful insight into the experience of your end user.

    Service Assurance – the ability to track baseline performance metrics

    AppDynamics hears from our clients all the time that it’s difficult to know what “normal” actually is. This is particularly true in an ever-changing application environment. If you try to determine normal performance by correlating code-level metrics – while at the same time reacting to frequent code drops – you will never get there.

    Business transactions offer a Service Assurance constant that you can use for ongoing monitoring. The size of your environment may change and the number of nodes may come and go, but by focusing on business transactions as your ongoing metric, you can begin to create baseline performance for your application. Understanding this baseline performance is exactly what you need in order to understand whether your application is running as expected and desired, or whether it’s completely gone off the rails.

    For example, you may have a sense of how your application is supposed to perform. But do you really know how it performs every Sunday at 6 p.m.? Or the last week of December? And if you don’t, how will you know when the application is deviating from acceptable performance? It’s figuring out “normal” in terms of days, weeks, and even seasons that you need to truly understand your application’s baseline performance.

    Triage & Diagnosis – always knowing where to look to solve problems

    Finally, when problems occur, business transactions prevent you from hunting through logs and swimming through lines of code. The transaction’s poor performance immediately shines a spotlight on the problem – and your ability to get to root cause quickly is dramatically improved.

    If you’re tracking code-level metrics in a large environment instead of monitoring business transactions, the chances are that the fire you’re troubleshooting is going to roar out of hand before you’re able to douse it.

    Summary

    Application owners are under extraordinary pressure to incorporate frequent code changes while still being held responsible for 100% application uptime and performance. In a distributed and rapidly changing environment, meeting these high expectations becomes tremendously challenging.

    A strong focus on business transactions becomes absolutely essential for maintaining application performance. Transaction-centric monitoring provides the basis for a stable performance assurance metric, it delivers powerful insights into user experience, and it ensures the ability to know where to hunt during troubleshooting.

    The right APM solution can automate much of this work. It can help application owners identify and bucket their business transactions, as well as assist with triage, troubleshooting, and root cause diagnosis when transactions violate their performance baselines. In this way, business transactions are essential to ensuring the success of Developers, Operations, and Architects – anyone with a stake in application performance.

    The post Focusing on Business Transactions is a Proven Best Practice written by Kevin Goldberg appeared first on Application Performance Monitoring Blog from AppDynamics.

    Customer Success 2.0 Secret Ingredient: Culture

    $
    0
    0
    image_pdfimage_print

    We’ve emphasized the value and importance of executing customer success methodologies here previously. But how do you leverage this model and have it deliver maximum benefit for the customer and the company? How do you develop company-wide participation and excitement for customer success?

    We think customer success comes from a variety of inputs, but above all, it’s about culture.
    Plain and simple, customer success has to be baked into your corporate culture. Everyone in the company — not just the obvious customer-facing roles — needs to be a champion of customer success so you can successfully drive your efforts to empower your customers and grow your business. This is not the task of an individual team. It needs to be ingrained in everyone throughout the entire company.

    How do you do this? It’s simple — and complicated. And it’s hard work.

    1. Align responsibilities.
    2. In Customer Success 2.0, everyone has the same goal: making your customers incredibly, ridiculously successful. Start collecting the right customer usage data and metrics on success. Once you do this, make KPIs visible for all teams to focus and align responsibilities. Every function has a role to play. To help everyone improve each other’s effectiveness, align the responsibilities based on the data. At AppDynamics, we also incentivize team members to drive success through various ways detailed here.

      Screen Shot 2014-09-02 at 8.29.53 AM

    3. Drive accountability.
    4. Technical support resolves customer issues quickly, effectively, and graciously. Relations teams are proactive and identify critical accounts at adoption and when there’s renewal risk. Professional services and education teams deliver seamless, relevant training and services that bring ROI for the customer. Customer success is not one singular department. Each and every department drives success. And it is only through the committed, synergistic, integrated efforts of all departments that Customer Success 2.0 is achieved.
    5. Take pride in your efforts.
    6. You are directly impacting your company’s top line!

    Always remember: This is not just a feel-good exercise. There are real and significant financial benefits to be realized. You’ll reduce the cost of sales as you expand into your existing customer base. It’s cheaper to sell to an existing customer than a new one, a fact that is compounded when customers have the best experience possible. You’ll reduce churn and increase loyalty. Customer advocates bring greater value — and revenue — to your business by buying more and telling others about your awesome product.

    The same idea goes with your internal culture, where transparency is key for success. Customer success teams should have a regular feedback loop cadence between their team, the customer, and upper management. Teams also should accurately report on the health of their accounts so if an account becomes critical, all hands start helping. Over-communication should never be an issue.

    Last but not least, when you’ve pushed your culture in the right direction and your teams are pulling together and it all starts working, celebrate your success! At AppDynamics we send an email to the entire company with every account win. Though the salesperson’s name is tied to the account, they acknowledge every person who helped drive the sale — sales engineer, customer success, executive team, legal, administrative — everybody.

    By aligning teams and responsibilities with key business metrics that drive business growth, you’ll soon see a sense of pride and camaraderie swell within your organization. Each team will take ownership of directly impacting and influencing the success of the customer base — and who wouldn’t want to be a part of that excitement? Each individual will celebrate the advancement of a new customer since they have in some way, large or small, made an impact.

    The post Customer Success 2.0 Secret Ingredient: Culture written by Hatim Shafique appeared first on Application Performance Monitoring Blog from AppDynamics.

    Introducing the AppDynamics C/C++ Agent!

    $
    0
    0
    image_pdfimage_print

    We’re excited to announce the Beta version of our C/C++ agent, adding to our existing portfolio of monitored-languages and bringing end-to-end visibility across entire environments! Though we already monitor Java, .NET, PHP, and Node.js, we’ve come across several environments who have legacy applications written in C/C++.

    Why C/C++?

    These applications are especially tricky to understand because they were often written by an engineer no longer with the company. It’s also common to see these applications patched and re-patched over time, resulting in even less understanding over specific uses. When issues arise, it’s difficult to predict how they will affect the end-user and cause serious performance problems. Since several of these legacy C/C++ applications are mission-critical, we took it upon ourselves to not only create an industry standard SDK, but also create an industry-first dynamic agent for C/C++.

    Screen Shot 2014-09-03 at 11.18.18 AM

    Two Options for C/C++ Monitoring

    C++ Dynamic Agent:

  • You want an industry-leading monitoring solution that only requires run time configuration.
  • You may or may not have access to the application source code e.g third-party libraries.
  • You are unable or unwilling to recompile the code.
  • You are familiar enough with your application to make decisions about what methods to instrument.
  • C++ Agent SDK:

  • You want to use an industry-standard compile and deploy monitoring solution.
  • You have access to your application source code.
  • You are willing to modify the source to include the C++ Agent SDK and recompile.
  • You don’t want to instrument third-party libraries for which you don’t have the source code.
  • What’s especially exciting about our C/C++ monitoring is the seamless integration it will have with the rest of your AppDynamics experience. In a single pane of glass view your entire environment, despite running applications in different languages. The C/C++ APM will also have all the same features you’re used to — view load and response times, error rates, application interactions, etc.

    Interested in becoming a part of the Beta program for C/C++? Click here.

    The post Introducing the AppDynamics C/C++ Agent! written by Amod Gupta appeared first on Application Performance Monitoring Blog from AppDynamics.

    AppDynamics Announces Astounding Net Promoter Score: Obsessive Focus on Customer Satisfaction Pays Off

    $
    0
    0
    image_pdfimage_print

    From the very first days of AppDynamics, I have been hyper-focused on customer satisfaction. Our amazing portfolio of customers is the reason AppDynamics is one of the fastest-growing enterprise software companies on the planet.

    The leading measure of customer satisfaction and loyalty is the Net Promoter Score (NPS)®. The NPS is based on a single, concise question: “On a scale of 1-10, how likely are you to recommend the vendor to a friend or colleague?” Responses fall into the following categories:

  • Score of 9-10 = Promoters
  • Score of 7-8 = Passive
  • Score of 0-6 Detractors
  • The “net” score is calculated by subtracting the detractors from the promoters.

    Today, we are proud to announce that our customers have awarded us an NPS score of 84. To put our score into perspective, the average enterprise software company has an NPS of 19. Publicly disclosed scores for competitors in the APM segment range from single- and low double-digits to roughly 50. In 2012, CA Technologies had an NPS of just 18.

    A multitude of factors contribute to the satisfaction of our customers. I can say for certain our NPS would not be so impressively high without the dedication and commitment of the hundreds of “AppDynamos” around the world who work tirelessly day and night to deliver a stellar product that meets the unique needs of each customer.

    I could not be more pleased with the work of the AppDynamics team. It is because of them that our NPS is nearly quadruple that of our counterparts in the APM space. As the company continues its meteoric growth, I expect our NPS to continue to continue to eclipse that of other companies in our space, as we continue our obsessive focus on understanding and addressing our customers’ needs.

    We have achieved a lot so far this year at AppDynamics: continued record growth, $120 million in growth financing, and released more new category-leading products. However, this accolade is of particular significance to us because it is from our customers. The fact that a vast majority of our customers would recommend AppDynamics to a friend or colleague — 9s and 10s! — is the best validation we could receive, and the reason we continue to reach new heights of success together.

    The post AppDynamics Announces Astounding Net Promoter Score: Obsessive Focus on Customer Satisfaction Pays Off written by Jyoti Bansal appeared first on Application Performance Monitoring Blog from AppDynamics.


    Compuware Private Equity buyout: why you should be worried as a customer

    $
    0
    0
    image_pdfimage_print

    I had the unique experience of working for a private equity-backed software company for several years. There are a few things that set apart that experience for me from any I have had before in my 20+ years working in the high tech sector. However, those few things have had a lasting impact and memory on my career since then.

    Private Equity Pump and Dump?

    First of all, the news that Compuware has been taken private by Thoma Bravo is interesting but not surprising. In my opinion, PE companies don’t buy companies in the midst of a growth story, they buy companies that are floundering and try to inflate the value for another suitor…that is their history, it’s what they do. Often, these companies are carrying some amount of debt which the PE company will cover, and to gain some return on their investment, they will do whatever to even out the books for some liquidity event.

    In my experience, once a PE company takes control, the innovation stops. There’s no reason to risk any time, resources, or money on R&D. Which, at the end of the day means customers won’t be getting cutting-edge technology or new features. Furthermore, there is often an exodus of top talent. Again, this can strain development, and more importantly, customer success.

    What About the Customers?

    If you are a prospective or existing customer of Compuware, you should deeply consider your position after this news. My experience working at a major PE portfolio company is new customers will be forgotten as a result of this acquisition and existing customers…well good luck there too. Innovation and development will take an enormous hit in the next 6-12 months as the tendrils of new centric management philosophies take hold. A lot of times, this new philosophy is based on EBITDA.

    What is an EBITDA centric philosophy? It’s simple, it’s when company employees are incentivized for improving EBITDA instead of other customer centric measures of success. EBITDA is focused solely on corporate profitability!

    I watched my company, which was agile, nimble, and aggressive with updates severely lose their development velocity. That’s not conducive to innovation and it’s not even tolerable when it comes to bug fixes.

    During my tenure after the buyout, I watched as several large strategic customers decided to move on with other, more innovative technologies.The lack of innovation in the market segment and the collapse of customer care were defining attributes in my recollection of them moving on. The bottom line is if you stop innovating and forget about your customers in the high-tech world you are dead.

    Based upon my experience, I’ve personally vowed to never work for another PE-backed company again. I wish all the current Compuware customers the very best in their journey with their newly privatized vendor but unfortunately I know there is pain on the horizon.

    Have you ever worked for a company taken private by a PE company? Is my experience unique or do you have a similar story to share? I’d love to hear about all experiences in the comments below to try and keep this dialogue as accurate as possible.

    The views and opinions expressed herein are those of the author and may not reflect the views of AppDynamics, Inc. or its affiliates.

    The post Compuware Private Equity buyout: why you should be worried as a customer written by Travis Cella appeared first on Application Performance Monitoring Blog from AppDynamics.

    Best Practice for ITSM Professionals Using Monitoring and Alerting

    $
    0
    0
    image_pdfimage_print

    I’ve only been with AppDynamics a few months and wish I knew 10 years ago what I know now. Using technology, businesses have moved on leaps and bounds, but the fundamental enterprise IT challenges remain the same — just with increased complexity.

    10 years ago, as the Director of IT Business and Service Management with a large european investment bank., I was tasked with IT governance and control environment. My main goal was to ensure IT had full visibility of the service it provided to the business.

    The goal of the program was to ensure IT managed every business-critical application issue:

  • Restoring an issue while informing the customer about the problem and the business impact of the issue
  • Notifying the customer of application issues and expected mean-time-to-resolution (MTTR)
  • This seems so easy when condensed into 2 sentences, and it really should be in the modern world of IT in an investment bank. However, those who have experienced this it’s anything but and the tasks were more accurately:

  • Knowing all the technical intricacies for every business service
  • Knowing the underlying configuration items (CI’s) that supported each technical service
  • Monitoring the performance and status of every CI
  • Every time the configuration of the IT estate changed I needed to know the impact that this would have on the business service
  • Historically, in an ideal world

    To help with our role, we deployed an application discovery and dependency-mapping tool, which continually monitored the topology of our estate. This tool populated our configuration database (CMDB) with all the changes, and also reconciled them to the approved state of the estate, informing us on any deviations.

    We implemented monitoring tools on all of the CI’s to ensure proper performance. To help us receive proper notifications, we configured the tools to alert us any time there was a performance issue with any of the CI’s — in theory updating the technical and business services. The IT service owner would then confirm the service was restored and create a problem record.

    Once the problem record was created, the IT team would analyze and look for the root cause of the issue and create (or log) and error. This ideal procedure would foster a balanced IT situation within the bank. However, the situation was anything but ideal.

    In principle, this all seems relatively simple but the maintenance and manual control of the environment was unachievable.

  • The CMDB was not updated accurately
  • The alerting system was not continuously integrated
  • The technical service were not updated with any changes
  • Often, the root cause analysis was not confirmed
  • It was unlikely the errors were logged
  • Why was this the case, considering we had (in essence) deployed an out of the box ITSM environment based on an ITIL best practice? Simply put, here’s why:

  • Alerting was based on static thresholds
  • The estate changed rapidly and we couldn’t model the CMBD quickly enough
  • Lack of dynamic baselines resulted in inaccurate alert storms and an impossible root cause analysis
  • Without knowing the root cause, we couldn’t correctly log the errors
  • No changes were made without authenticating the errors
  • How AppDynamics helps IT

    Don’t get me wrong, we weren’t completely incompetent, we still had manual governance and control over the critical business process and service. However, all we had was a state of the art ITSM solution adhering to an ITIL best practice, and we went about our day jobs in pretty much the same way as we had before. Like having a Ferrari sitting in your garage collecting dust.

    So this brings me back to where I am today, working at AppDynamics and a little smarter than I was 10 years ago. With AppDynamics:

  • Monitor business transactions at a code level
  • Provide a continuously updated topology of the business service
  • Receive alerts based on dynamical baselines
  • Using the AppDynamics flow map, update the business and technical services to improve the overall quality
  • Easily see the root cause within the environment
  • Update the problem records in a service management toolset
  • If we had had AppDynamics at the bank our lives would have been much easier and the bank would be performing optimally, instead of the bottleneck and broken flow we had mapped out.

    This is the benefit of next generation application intelligence tools. They make the important measurable, not the measurable important. Please check out my white paper on dynamic ticketing with our integration with ServiceNow here.

    The post Best Practice for ITSM Professionals Using Monitoring and Alerting written by Keith O'Kelly appeared first on Application Performance Monitoring Blog from AppDynamics.

    Top 5 Mobile APM Myths: Myths 1 & 2

    $
    0
    0
    image_pdfimage_print

    Mobile is now regarded as the most explosive source of revenue growth, employee productivity improvement, and customer engagement. GigaOm research reports that mobile users represented 40 percent of eBay’s 36 million new users in 2013, accounting for $35 billion in enabled commerce volume (ECV) — an astounding increase of 88 percent over the prior year.

    However, mobile engagement is a very tricky one. Because the mobile user is so focused on the mobile app while interacting with it, it is an intense interaction over a rather small screen. With so many alternative choices at their fingertips, the user has almost no tolerance towards ill-designed or poorly performing mobile applications. The last I heard the iTunes App Store has 1.2 million apps. For the Android user, there are about 1.3 million apps to try from. Loyalty needs to be earned, and cannot be taken for granted. Plus, a lot of your brand value and revenue/cost savings are at stake.

    It is not as hopeless as it sounds, however. Remember, mobile users are also known for rewarding a great experience; it took the Angry Birds app only 35 days to reach 50 million users! The total franchise value including merchandise, etc. had exploded to a few billion dollars at their peak. Mobile is a high velocity market. The first mover’s advantage is tremendous, and you need to take charge of your experience with the right mobile application performance monitoring (mAPM or mobile APM) tools at hand.

    There is a lot of confusion in the market today. So in this blog post, I’d like to dispel some key myths around mobile apps. And how, with the right mAPM tool, you can nail your mobile app experience — both interactivity-wise and performance-wise — and thereby win the market.

    Myth #1: Unforgiving app ratings on the app store are an unfortunate reality

    There is no such thing as bug-free code. Any sufficiently complex code will have bugs, and so will your mobile app. Your users understand this reality but are looking for well thought-out designs that have fewer performance and crash issues. Customers are also amenable to quick fixes and are willing to give chances to organizations that are responsive to bugs, performance issues, and crashing issues. The critical success factor here is the turnaround time.

    In order to avoid brutal app ratings, you need to a ship a good product, but more importantly show you are willing to respond to your user problems and fix them promptly. Use state of the art crash analytics and network request analytics to understand how your app is performing. The ideal mAPM tool should show the crashes and their stack traces in near real-time as they happen. For fastest response time, the mAPM tool should group these crashes based on common patterns and uniqueness. The same mAPM tool should also provide network request latencies at group levels as well as individual request levels. Resolution of information should not be lost when troubleshooting performance and crash issues.

    Screen_Shot_2014-08-04_at_4.21.16_PM-960x0

    Myth #2: Backend services are black boxes of performance bottlenecks and I should just give up on them

    I keep observing the finger pointing between mobile developers and the IT Ops teams. Those mobile developers who use mobile-only APM tools have visibility only till the point where a network request is made from the mobile app. Anything beyond is pretty much a black box which is usually the main cause for performance delays and mobile app’s poor response time. For the lack of better information, the mobile developer is quick to blame the back end service. On the other hand, the IT Ops team that has invested in legacy APM solutions that are unable to distinguish mobile-originating transactions from the others. They often struggle to isolate the mobile transaction delays caused by their services and get defensive.

    A modern end-to-end APM solution that delivers context-awareness for transactions originating from mobile devices all the way to the backend database or even storage would completely take away the guesswork in performance troubleshooting. And if the entire infrastructure can be managed with a single pane of glass, there will be no information lost in translation and the mobile dev and IT Ops team can collaborate to focus on nailing down the end-user experience rather than play the blame game.

    network_request_snapshot1-960x0
    This is the most critical requirement we hear from our customers time and again.

    Stay tuned for the next installment of the series where I’ll cover myths 3-5:

  • Users are an enigma that I can never really understand
  • I’m going to spend the rest of my life certifying my mobile app on the infinite permutations and combination of device types, OS types, and network carriers/types
  • There’s no way to know the business impact of performance issues of my mobile app
  • Interested in trying AppDynamics Mobile EUEM? Check out our FREE trial!

    For a introduction to AppDynamics Mobile End-User Experience Management, watch our On-Demand Webinar now.

    The post Top 5 Mobile APM Myths: Myths 1 & 2 written by Maneesh Joshi appeared first on Application Performance Monitoring Blog from AppDynamics.

    Cost of Performance Issues [INFOGRAPHIC]

    $
    0
    0
    image_pdfimage_print

    We all know performance issues — application crashes, stalls, slow downs, etc. — can hurt our business and reputation. However, how can we put an exact dollar amount to these issues, and are other companies experiencing the same problems? Surely Fortune 500 companies can’t afford to have performance issues, right?

    Wrong. Everyone experiences issues, it’s about limiting these problems and resolving them as quickly as possible to curb the impact to your bottom line.

    99% uptime, or more commonly known as “two nines” in the IT world, still means you’re down over three and a half days per year. If one of those days happened to be Cyber Monday or another peak period, Amazon, Walmart, or Best Buy would definitely be able to see the actual cost and consequences of performance issues.

    So we decided to do some research and create this infographic around the prevalence of performance issues and how they impact the bottom line. What we found might surprise you:

    Don’t wait to be reactive with your performance issues, check out a FREE trial of AppDynamics today!

    The post Cost of Performance Issues [INFOGRAPHIC] written by Kevin Goldberg appeared first on Application Performance Monitoring Blog from AppDynamics.

    Top 5 Mobile APM Myths: Myths 3-5

    $
    0
    0
    image_pdfimage_print

    If you’re just tuning in, please check out my previous post where I dispel myths 1 & 2, bad app ratings are uncontrollable and it’s impossible to understand your backend services.

    Typically, mobile app developers accept some things they feel they can’t change — ratings, end-to-end visibility, user experience, and so on. However, these can all be avoided and under your control with the right mAPM solution to give you the proper insights to give your users a seamless experience.

    Now, on to the myth busting…

    Myth #3: Users are an enigma that I can never really understand

    You cannot nail down the mobile end-user experience unless you know your audience. You need to understand where the end user is spending time while using your application. Are they spending time scrolling down search results to find what they want? In other words, are you presenting the most relevant information at the top? Are they abandoning the shopping cart at any specific points in the checkout process? Is there funnel friction that you need to optimize your app against?

    The modern mobile APM tools have some great capabilities to understand your end user and their behavior. You can inject timers across any two arbitrary points and measure times taken for a collection of any number of steps. For example, you can measure how long it takes your user from conducting the first search to purchasing a product or a service. This can be done at an individual user or at aggregate levels. You can measure how much time users spend on which screen. This will give you great insights into who your typical user is and what interactions do they indulge in with your application. You can then optimize the app experience for those common patterns.
    prod-meuem_a-960x0

    Myth #4: I’m going to spend the rest of my life certifying my mobile app on the infinite permutations and combinations of device types, OS types, and network carriers/types

    This is where you need concrete data to understand your user demographics. A good mAPM solution will give you detailed breakdown of who your core audience is. What device types they prefer, what OS’s (iOS vs Android) they run, and which networks they mostly originate from. A good APM solution will also allow you to correlate this information with revenue or engagement information to determine your highest-value audience.

    With all this valuable information, you can prioritize development, testing, and certification of your mobile app. You can even optimize your app experience and test for performance bottlenecks for the high-value audience. And lastly, you can focus on retaining them by delivering on their roadmap demands over the lesser engaging ones.
    Usage_stats-960x0

    Myth #5: There’s no way to know the business impact of the performance issues of my mobile app

    Most mAPM tools in the market today are too developer-centric. They deliver crash analytics and performance delays caused by delayed response from backend services but little else. Often times, the mobile channel is an enabler of some business goals such as better customer engagement, additional revenue streams, cost savings from productivity or efficiency gains. Plus, it’s the broader context that feeds investments into the mobile channel. Ignoring the business context is like missing out on half the picture.

    The right tool needs to deliver full context on the mobile application. The full context should include what impact the app has on business metrics such as revenues, cost savings, customer engagement KPIs, etc. A comparative chart that shows performance impact of mobile app on these business metrics can be incredibly powerful to raise awareness among the organization.
    Screen_Shot_2014-08-04_at_4.29.55_PM-960x0
    With these myths dispelled, I hope you have gotten a different perspective on your mobile app initiatives and are rethinking your approach to mobile APM. Feel free to leave comments and share your thoughts.

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

    For a introduction to AppDynamics Mobile End-User Experience Management, watch our On-Demand Webinar now.

    The post Top 5 Mobile APM Myths: Myths 3-5 written by Maneesh Joshi appeared first on Application Performance Monitoring Blog from AppDynamics.

    AppDynamics Partners with OpenShift by Red Hat to Empower DevOps

    $
    0
    0
    image_pdfimage_print

    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

    The post AppDynamics Partners with OpenShift by Red Hat to Empower DevOps written by Dustin Whittle appeared first on Application Performance Monitoring Blog from AppDynamics.

    Getting started with iOS using Swift and AppDynamics

    $
    0
    0
    image_pdfimage_print

    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 EUEM? Check out our FREE trial!

    The post Getting started with iOS using Swift and AppDynamics written by Dustin Whittle appeared first on Application Performance Monitoring Blog from AppDynamics.


    Monitor your apps with AppDynamics Mobile Real-User Monitoring (RUM) for free and get mobile crash analytics free forever

    $
    0
    0
    image_pdfimage_print

    Companies are increasingly becoming mobile-first, catering to users constantly on the go. That’s why we’re making it even easier for mobile developers by releasing AppDynamics Mobile Real-User Monitoring (RUM) with a free trial. Plus, we’re making mobile crash analytics capabilities free forever with a data retention plan for an industry-best 365 days.

    Mobile Real-User Management is our disruptive, next-generation solution for collecting mobile application behavioral analytics and managing the 24/7 performance of mobile applications in real-time.

    AppDynamics Mobile Real-User Management includes:

    Mobile Business Transaction Correlation. Mobile developers no longer need to subscribe to the misperception that backend services are a black box full of performance delays. The deep metrics provided by AppDynamics Real-User Monitoring allow mobile developers and IT operations to drill down into individual lines of code across every hop in a business-critical transaction; collaborate to resolve performance issues faster than ever before; and together win customer satisfaction.

    Mobile Crash Analytics. Best-in-class AppDynamics crash analytics capabilities allow mobile developers to quickly identify unique and recurring crashes for specific devices, operating systems, or carrier types, and fix them before they become pervasive and do serious damage to their ratings in the app stores. With data retention for a 365-day period, mobile developers can flashback up to a year to learn from historical trends and patterns.

    Screen_Shot_2014-08-04_at_4.21.16_PM-960x0 (1)

    Enhanced Mobile End-User Experience Management Capabilities. With the new enhancements, mobile developers receive critical insights into the impact of network request latencies on the end-user mobile experience. In addition, they can now collectively time any number of interactions, such as time taken to browse a catalog, or time taken from the first search to a purchasing decision.

    prod-meuem_a-960x0 (1)

    Mobile Behavioral Analytics. With these brand new capabilities, mobile developers can now measure and benchmark business information, such as the average dollar value of a mobile shopping cart, or behavioral patterns such as the frequency of customers adding items to the shopping cart, all in real time. With these in-depth insights into actual user data, mobile developers can prioritize their mobile app certification across a complex multi-dimensional matrix of device, OS, and network carrier by easily identifying and focusing on the highest-value users.

    Usage_stats-960x0 (1)

    Available as Software-as-a-Service (SaaS) and On-Premise. AppDynamics Mobile Real-User Monitoring is the only mobile application performance monitoring solution offering SaaS or on-premise deployment flexibility. The SaaS and on-premise products have 100 percent feature parity, with no loss in functionality while moving from one to another.

    AppDynamics Mobile Real-User Management is the industry’s most powerful mobile application performance monitoring, with enhanced mobile end-user experience management, mobile behavioral analytics, deep visibility into every business transaction originating from any mobile device and traveling across the most complex, multi-tier backend services and application orchestrations, and mobile crash analytics data.

    So if you’re a mobile application owner or developer, we’ve just made it easier for you to stay on top of mobile commerce, mobile app adoption, usage patterns, and performance. In short, we’re taking the guesswork out of delivering superior mobile experiences, whether it’s the latest game or a business enterprise app. And it’s free, so no more waiting for a purchase authorization or trying to get more funding — you can start building better experiences into your mobile apps right now.

    Get started with for FREE with Mobile RUM today!

    The post Monitor your apps with AppDynamics Mobile Real-User Monitoring (RUM) for free and get mobile crash analytics free forever written by Maneesh Joshi appeared first on Application Performance Monitoring Blog from AppDynamics.

    How to Run AppDynamics in Microsoft Azure

    $
    0
    0
    image_pdfimage_print
    “Is it possible to run the AppDynamics controller within my own Microsoft Azure IaaS?”

    I hear this question fairly regularly and would like to walk you through how to host the controller in your own Azure cloud. First off, the pros of having AppDynamics with Azure:

  • Have full control and ownership of the data collected by AppDynamics
  • Provide additional security to access the data (for example, lock it down to a corporate VPN only).
  • Enable easy integration between AppDynamics and your services, such as Active Directory for authentication or internal bug tracking system for alert notifications. These would typically require opening custom ports when you leverage the AppDynamics SaaS environment.
  • AppDynamics works by placing an agent running on your servers which reports to the controller. It’s common to have several agents monitoring your applications. To further the ease of use, we monitor Java, .NET, PHP, Node.js, and now, C++ all in one single pane of glass. Your Azure architecture might look something like this:

    Screen Shot 2014-09-24 at 3.32.03 PM
    A unique feature for AppDynamics is flexible deployment. Typically, legacy APM solutions rely on on-premise deployment, whereas newer companies are Saas-only. At AppDynamics you can run the controller on-premise, leverage the AppDynamics SaaS option, or deploy a hybrid mixture.

    To run the controller in your Azure IaaS you can leverage the security of the on-premise deployment option and install the controller the same way as if you would in your datacenter. This allows you to have full control over the your data and be the gatekeeper to access that data.

    Important to note:

  • Properly size the controller — you can estimate the CPU/memory/disk requirements based on number of agents you are going to deploy. This is covered in the AppDynamics online documentation.
  • Configure the VM for maximum I/O.
  • The second is very important to configure as the controller installs a database which requires high I/O throughput. The recommended best practice is to treat the VM the same as you would be running a SQL server on it. http://msdn.microsoft.com/en-us/library/azure/dn133149.aspx

    If you forget to do this, you run the risk that the performance of the controller will slow down. This will not slow down your monitored applications as the agents are implemented to be non-blocking. However, the slowness will cause controller UI to lag and hard to visualize the collected data.

    Hope this helps and you can choose the option which works the best for your organization! Try it out now, for FREE!

    The post How to Run AppDynamics in Microsoft Azure written by Alex Fedotyev appeared first on Application Performance Monitoring Blog from AppDynamics.

    Why Now is the Perfect Time to Upgrade to Java 8

    $
    0
    0
    image_pdfimage_print

    This past March, Oracle released their most anticipated version in almost decade, Java 8. The latest version had a growing buzz since it had been announced, and companies of all sizes were eager to upgrade. Our partner, Typesafe conducted a Java 8 adoption survey of 2,800 developers and found 65% of companies had already committed to adopting within the first 24 months of the release date.

    Typesafe’s survey corroborated InfoQ’s survey of developers who stated 61% were devoted to adopting Java 8. Their handy heatmap below displays how excited developers were to get started with Java 8 and utilize the new features such as lambda expressions, date and time, and the Nashon JavaScript engine. In my opinion, the lambda expressions are by far the most exciting new Java 8 feature.

    Screen Shot 2014-09-25 at 2.19.42 PM

    So, why are folks so excited for Java 8?

    Lambda Expressions and Stream Processing

    What are they?

    Lambda expressions are arguably the most exciting and interesting new feature with the Java 8 release. Not only is the feature itself exciting for engineers, the implications will have resounding effects on flexibility and productivity.

    A lambda expression is essentially an anonymous function which can be invoked as a named function normally would, or passed as an argument to higher-order functions. The introduction of lambdas opens up aspects of functional programming to the predominantly object-oriented programming environment, enabling your code to be more concise and flexible.

    Why is it useful?

    Consider the task of parsing Twitter data from a given user’s home stream. Specifically, we’ll be creating a map of word length to a list of words of the same length from a user’s home stream.

    For instance:

    Screen Shot 2014-09-25 at 2.21.04 PM

    Should yield:

    {
      2=[so, an], 
      3=[are, for], 
      4=[wont, here, some, tips], 
      7=[extreme], 
      8=[programs, makeover], 
      9=[sometimes, uninstall], 
      11=[misbehaving, application]
    }
    

    And of course, for many tweets this data is aggregated.

    Using traditional Java loop constructs, this could be solved as follows:

    Screen Shot 2014-09-29 at 12.05.09 PM

    Lets break down what’s happening step-by-step:

    • Fetch the Twitter home timeline
    • For each status
      • Extract text
      • Remove punctuation
      • Gather in one big list of words
    • For each word
      • Filter HTTP links and empty words
      • Add word to mapping of length to list of words of same length

    Now, lets consider the solution using stream processing and lambdas:

    Screen Shot 2014-09-29 at 12.05.20 PM

    The lambda solution follows the same logic, and is significantly shorter. To boot, this solution can be very easily parallelized. Listed below is the next version performing the same processing in parallel below:

    Screen Shot 2014-09-29 at 12.05.26 PM

    Though a contrived example for purposes of illustration, the implications here are profound.

    By adding lambda expressions, code can be developed faster, be clearer, and overall more flexible.

    Flexible Code

    As mentioned earlier, the implications of adding lambda expressions are huge. Flexible code is one of the biggest advantages of this feature. In today’s Agile and rapid-release engineering environment, it’s imperative for your code to be amenable to change. Java has finally begun to close the gap on other more nimble programming languages.

    As another example, let’s consider an enhancement request for our Twitter processor. In abstract, we wish to procure a list of Twitter timeline statuses which are deemed “interesting”. Concretely, the retweet count is greater than 1 and the status text contains the word “awesome”. This rather straightforward to implement, as outlined below:

    Screen Shot 2014-09-29 at 12.05.32 PM

    Now, at some later point in time, suppose product management decides to change what it means for a tweet to be interesting. Specifically, we’ll need to provide a user interface where a user can indicate based on an available set of criteria how a Tweet is deemed interesting.

    This poses an interesting set of challenges. First, a user interface should provide some representation of an available set of filter criteria. More importantly, that representation should manifest in the Twitter processor as a formal set of filter criteria applied in code. One approach, is to parameterize the filter such that calling code specifies that criteria. This strategy is illustrated as follows:

    Screen Shot 2014-09-29 at 12.05.38 PM

    This grants calling code the ability to specify arbitrary filter criteria, realized by the UI component.

    By disambiguating how the timeline is filtered from what criteria is imposed, the code is now flexible enough to accept arbitrary filter criteria.

    Full code details can be found at the following Github repository.

    Summary

    In short, lambda expressions in Java 8 enable development of clear, concise code while maximizing flexibility to remain responsive to future changes.

    Engineers, and entire companies, work better when they can spend more time innovating on new products on features rather than focusing a majority of their time firefighting existing problems and squashing bugs. With AppDynamics Java 8 support, you’re finally able to gain some of time back, become more efficient, and starting innovating again.

    After implementing AppDynamics throughout their Java environment, Giri Nathan, VP of Engineering at Priceline.com stated, “The AppDynamics APM solution increases our agility by letting us instrument any new code on the fly,” says Nathan. “We can monitor everything from servlets and Enterprise JavaBeans entry points to JDBC exit points, which gives us an end-to-end view of our transactions.”

    Interested to see how you can get the most out of the new Java 8 features with AppDynamics? Start a FREE trial now!

    The post Why Now is the Perfect Time to Upgrade to Java 8 written by Anthony Kilman appeared first on Application Performance Monitoring Blog from AppDynamics.

    Too Big To Scale – Data Visualizations at Web Scale

    $
    0
    0
    image_pdfimage_print

    Big news last week was about the JPMC data breach that could potentially impact millions of customers. This news brought about the return of “banks that are too big to fail” discussions on a much smaller scale then we saw during the financial crisis a few years back. The fact is, we live in a world where data breaches can and will happen and the response to these incidents becomes critically important to the company as well as the consumer.

    Data at Web Scale

    This sequence of events got me thinking about just how big many of our enterprise and consumer applications have become and the problems associated with this new world of “Web Scale”. From a monitoring tool perspective, web scale means collecting massive amounts of data, making sense out of this data using analytics, and visualizing this data using a combination of analytics and new technologies.

    At AppDynamics, we’re monitoring single application environments with up to 15,000 components delivering mission critical application services. This is a very unique challenge and one that requires the right combination of analytics and visualization tools. In August we announced the fact that we had brought big data technologies into our summer release (http://www.appdynamics.com/blog/news/appdynamics-summer–2014-release/) and this blog post shows the result with real customer data.

    Visualization of a massive application environment

    While other APM companies are busy re-architecting their platforms to figure out how to scale their data collection technology to meet the demands of web scale, AppDynamics is years past that challenge and solving the analytics and visualization hurdles. As you can see in the screenshots below, we’ve got great technology that automatically determines what details should be shown and what details should be hidden as you zoom in and out on application flow map.

    image013

    Shifting the flowmap into fullscreen mode let’s you easily visualize your entire web scale application as seen below.

    image014

    Clicking on any node in the flow map shows more detail about the health of the associated components along with information useful for troubleshooting problems.

    image012

    Zooming in on fewer application components automatically shows a much higher level of detail to ensure you have all of the information you need to solve problems.

    image011

    Built to scale

    Monitoring web scale applications is difficult! Trying to retrofit old technology with architectural band-aids just doesn’t scale in today’s modern application environment. If you’ve got web scale applications or if they’re even on your roadmap then you need a system that was built to scale with your business. Try AppDynamics for free today and see what a modern application monitoring platform can do for you.

    The post Too Big To Scale – Data Visualizations at Web Scale written by Jim Hirschauer appeared first on Application Performance Monitoring Blog from AppDynamics.

    A UNIX Bigot Learns About .NET and Azure Performance – Part 1

    $
    0
    0
    image_pdfimage_print

    This blog post is the beginning of my journey to learn more about .NET and Microsoft Azure as it applies to performance monitoring. I’ve long admitted to being a UNIX bigot but recently I see a lot of good things going on with Microsoft. As a performance monitoring geek I feel compelled to understand more about these technologies at a deep enough level to provide good guidance when asked by peers and acquaintances.

    The Importance of .NET

    Here are some of the reasons why .NET is so important:

  • In a 2013 Computer World article, C# was listed as the #6 most important programming language to learn along with ASP.NET ranking at #14.
  • In a 2010 Forrester article .NET was cited as the top development platform used by respondents.
  • .NET is also a very widely used platform in financial services. An article published by WhiteHat Security stated that “.NET, Java and ASP are the most widely used programming languages at 28.1%, 25% and 16% respectively.” In reference to financial service companies.
  • The Rise of Azure

    .NET alone is pretty interesting from a statistical perspective but the rise of Azure in the cloud computing PaaS and IaaS world is a compounding factor. In a “State of the Cloud” survey conducted by RightScale, Azure was found to be the 3rd most popular public cloud computing platform for Enterprises. In a report published by Capgemini, 73% of their respondents globally stated that Azure was part of their cloud computing strategy with strong support across retail, financial services, energy/utilities, public, and telecommunications/media verticals.

    Developer influence

    Not to be underestimated in this .NET/Azure world is the influence that developers will have on overall adoption levels of each technology platform. Microsoft has created an integration between Visual Studio (the IDE used to develop on the .NET platform) and Azure that makes it extremely easy to deploy .NET applications onto the Azure cloud. Ease of deployment is one of the key factors in the success of new enterprise technologies and Microsoft has definitely created a great opportunity for itself by ensuring that .NET apps can be easily deployed to Azure through the interface developers are already familiar with.

    The fun part is yet to come

    Before I started my research for this blog series I didn’t realize how far Microsoft had come with their .NET and Azure technologies. To me, if you work in IT operations you absolutely must understand these important technologies and embrace the fact that Microsoft has really entrenched itself in the enterprise. I’m looking forward to learning more about the performance considerations of .NET and Azure and sharing that information with you in my follow-up posts. Keep an eye out for my next post as I dive into the relevant IIS and WMI/Perfmon performance counters and details.

    The post A UNIX Bigot Learns About .NET and Azure Performance – Part 1 written by Jim Hirschauer appeared first on Application Performance Monitoring Blog from AppDynamics.

    Viewing all 142 articles
    Browse latest View live