37
AppDynamics: Making Healthcare Perform

AppDynamics User Group

Embed Size (px)

DESCRIPTION

My user group presentation.

Citation preview

Page 1: AppDynamics User Group

AppDynamics: Making Healthcare Perform

Page 2: AppDynamics User Group

Mike RuangutaiDirector, Platform EngineeringCornerstone Ondemand

Who the hell is this guy?

Page 3: AppDynamics User Group

We’re hiring15 folks in some of the following roles:● API Architect● Lead engineer● Sr. Engineer, Platform● Sr. Engineer, Data

Page 4: AppDynamics User Group

In my prior lives...

Director of Engineering

Technical Director

We’re going to talk about this one primarily.

Page 5: AppDynamics User Group

At Kareo...

Director of Engineering

● Responsible for…

○ Technology architecture, management, strategy, and culture.

○ Scaling team

■ Built out Java team, and stood up offshore teams.

Page 6: AppDynamics User Group

Philosophy

Goals is to get around this circle as

quickly as possible.

Page 7: AppDynamics User Group

Philosophy

Which means deploying more quickly

and frequently.

Page 8: AppDynamics User Group

Diametric oppositionHumans are at the root of all mistakes that happen in software.

Page 9: AppDynamics User Group

Diametric oppositionHumans are the root of the creative process.

Page 10: AppDynamics User Group

Diametric opposition...So let’s put in some gates to increase trust.

Page 11: AppDynamics User Group

Diametric opposition● QA

o Paid to question changes● Operations

o Paid to prevent changes● Software Engineers

o Paid to make as many changes as possible.

Page 12: AppDynamics User Group

Diametric opposition

Oh wait, and we want to do this Agile thing too.

Page 13: AppDynamics User Group

Diametric opposition

Agile or Safeis easy.

Page 14: AppDynamics User Group

Diametric opposition

Agile or Safeis easy.

Page 15: AppDynamics User Group

Diametric opposition

Agile and Safeis hard.

Page 16: AppDynamics User Group

Invest in tools

How do we employ tools at each step

so we can be both agile and safe and

ultimately increase trust?

Page 17: AppDynamics User Group

Invest in toolsDevelopment operations

● Team City, Jenkins● Chef, Puppet● Selenium

Technology metrics● Gomez● Pingdom● AppDynamics● Splunk, Sumologic

Product metrics● Mixpanel● Flurry● Google Analytics● AppDynamics

EUM

Use Product + Technology metrics to get high up Maslow’s Hierarchy of needs.

Page 18: AppDynamics User Group

Hierarchy of Needs

At minimum, get to this point.

Hell yeah! Like a boss!

Page 19: AppDynamics User Group

The Kareo circumstance

What is Kareo?

● Multi-tenant SaaS for small office healthcare providers, .NET / SQL Server

● .NET desktop client for practice management, aka billing, scheduling

● Growing like gangbusters in all measures:

○ Organization

○ Revenue

○ Users

○ Etc.

Page 20: AppDynamics User Group

Bet the farm

● Move from thick desktop client to web platform, aka new architecture.

● Evolve the engineering culture

● Hire, hire, hire!

….And one more thing.

Page 21: AppDynamics User Group

Bet the farm

While you’re doing all that, let’s go ahead and acquire an EHR (electronic health

records) system that:

● Puts us in direct competition with our partners, aka significant source of

revenue

● Is already browser-based and iOS

● Is completely on Java/Oracle stack and a foreign architecture

● ...Needs to work seamlessly with our .NET application in < 9 months with no team

in place.

● Oh and hire them in secret.

Page 22: AppDynamics User Group

.NET Architecture

Page 23: AppDynamics User Group

Java Architecture

Page 24: AppDynamics User Group

Integration Architecture

Page 25: AppDynamics User Group

So why AppDynamics?

AppDynamics was the only solution that gave us the

confidence needed to launch such an ambitious project.

No other solution supported an architecture predicated on

message queues.

Page 26: AppDynamics User Group

Us vs. Them

vs.

Page 27: AppDynamics User Group

Crappy response times

● EHR system was notoriously slow; sometimes 1o seconds to

login

● Significant barrier to adoption and usage

Page 28: AppDynamics User Group

Never climbing the mountain.

We couldn’t even get here.

Page 29: AppDynamics User Group

Improved response times

Using a combination of Gomez, Apache log analyzer, and

AppDynamics…

● Quickly identified clusters of slow business transactions

● We reduce a Gomez six step workflow from > 20 seconds to ~ 6

seconds

● Sales calls were no longer painful

Page 30: AppDynamics User Group

Identify and triage

● Lots of chatty calls

o Several thousand JDBC calls

o Superfluous JMS calls

● Application areas loading unnecessary data

● Correlating product use to performance metrics, removing

functionality

● Identified JRuby bottlenecks

● Uncovered masked exceptions, HTTP errors

o Third party API integration response times and service

failures

Page 31: AppDynamics User Group

Ultimately led to...

Architecture redesign.

Called Project Galvatron

Page 32: AppDynamics User Group

Trust

● Engineering, QA, and Operations using same tools,

looking at the same data.

● Less guessing, less finger pointing

Page 33: AppDynamics User Group

Next...

● Implement AppDynamics End User Monitoring

● OpsCode Chef

● Sumologic

Page 34: AppDynamics User Group

Learnings

● Implementing an APM like AppDynamics is a large commitment

o Application configurations

o Business transaction analysis

Which are most important?

What are the thresholds? Standard deviation? Absolute

value?

o Internal training and SOP

o Identifying appropriate actions, i.e. Pager Duty, running

scripts

o Know your architecture

Page 35: AppDynamics User Group

RecapDevelopment operations

● Team City, Jenkins● Chef, Puppet● Selenium automation

Technology metrics● Gomez● Pingdom● AppDynamics● Splunk, Sumologic

Product metrics● Mixpanel● Flurry● Google Analytics● AppDynamics

EUM

Use Product + Technology metrics to get high up Maslow’s Hierarchy of needs.

Page 36: AppDynamics User Group

Repeat buyer

Could use some AppDynamics at Cornerstone Ondemand.

Page 37: AppDynamics User Group

Thanks!

Q&A