How SAS is Using AppDynamics to Maintain a DevOps Environment

DZone 's Guide to

How SAS is Using AppDynamics to Maintain a DevOps Environment

Application Performance Monitoring (APM) solutions are typically associated with optimizaiton for applications. However, as SAS Principal Systems Engineer Peter Anderson explained, APMs can foster a strong DevOps cluture.

· DevOps Zone ·
Free Resource

DevOps is a movement fusing development and operations, and communication between devs and IT ops professionals. At the same time, software development should remain automated. Many major tech companies have adopted the tenants of DevOps, including analytics company SAS. Maintaining a DevOps environment means adopting tools and practices to foster such relationships.

Peter Anderson, Principal Information Systems Engineer at SAS, explored the overlap of DevOps and performance at the inaugural AppDynamics Meet Up on Feb. 25, 2016. “To support a DevOps culture you need to have tools for continuous delivery and application performance monitoring,” Anderson explained, in a talk given on SAS’s Cary, NC campus. Since deploying AppDynamics’ APM platform, SAS has used the unified monitoring solution to great benefit.

“Adopting DevOps culture and tools can maximize the effectiveness of your time” -- Peter Anderson

The flowmap presented for their ecommerce store clearly exhibited the power of the AppDynamics platform. It included an auto-generated flowmap, which stayed updated with application changes. Agile development, another key concept in the dev world, means that many systems are distributed, and constantly changing. By having an auto-generated flowmap, app changes are accounted for automatically. This, Anderson stated, was a huge plus for SAS.

“The first time I used a flowmap to solve a problem,” Anderson elucidated, “I was with the developer and we were deploying a second environment for a second application that was under development. The developer called me, and I think it was a Friday afternoon, everything breaks on a Friday afternoon.” Unfortunately, the wrong data was being displayed in the user interface (UI). Anderson and the dev ran down the list of standard checks: data source definitions, external property files, etc. The pair opted to try this new tool, AppDynamics, that had just been deployed. “Let’s check out this AppDynamics, maybe it can reveal some information we’re missing.” Once they’d pulled up the flowmap, it was soon apparent that the application was unfortunately talking to the wrong database. The developer was then able to diagnose and correct the problem.

AppDynamics has further helped quality assurance, Anderson allowed. A core global production app had a significant data load that was scheduled for weekend maintenance, and estimated to complete in 36 hours. The test environment yielded the potential for improved database queries. Developers were thus able to tune these queries, and go one step further: offering a concrete business impact using AppDynamics. Performance improvements during testing chipped five hours off of the expected data load completion time, with little to no impact on users.

Ever since the digital transformation hit, business has evolved to the point where every company is a software company. Regardless of whether a business produces software, or simply uses various tools, there’s an emphasis on IT and software development. The fusion of operations and development is DevOps. Monitoring is essential for maintaining a DevLosp environment, with the notions of collaboration, testing, reliability, and communication. Transparency hugely helps, and that’s where SAS is applying the AppDynamics platform: for optimizing DevOps culture. While APM solutions like AppDynamics might be associated more commonly with application optimization, as Anderson detailed, monitoring platforms are also crucial for allowing and encouraging a DevOps workplace.

apm ,devops ,performance ,sas

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}