debugging,troubleshooting & monitoring distributed web & cloud applications at silicon...

46
Debugging, Troubleshooting Distributed Web & Cloud Applications Foothill College, Oct. 5 th , 2013

Upload: theo-jungeblut

Post on 15-Jan-2015

1.753 views

Category:

Technology


2 download

DESCRIPTION

In the past, applications where created as monolithic entities running on a single server. If this is the past for you, too, you will have experienced the downside of modern distributed and cloud applications, as debugging, troubleshooting, and monitoring is not easily accomplished with traditional approaches. Within this session, we will explore different possibilities for collecting and analyzing the needed information to solve issues on modern distributed application and discuss the advantages and disadvantages of each approach like debugger, log files, performance counter and third party solutions. The focus of this session will be on Developer and DevOps need, as increased release cycles and third party dependency more and more result in the need for troubleshooting also on production system, rather than in an isolated test environment. This session requires a solid understanding of distributed applications and knowledge of SOA, but most principles also apply to and can be beneficial for more traditional application design approaches. The used code examples are in .NET but the shown principles generally apply to other languages, too, and shown software is often available for a variety of environments.

TRANSCRIPT

Page 1: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Debugging, Troubleshooting

Distributed Web & Cloud Applications

Foothill College, Oct. 5th, 2013

Page 2: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Theo Jungeblut• Engineering manager & lead by day

at AppDynamics in San Francisco

• Coder & software craftsman by night

• Architects decoupled solutions tailored to business needs & crafts maintainable code to last

• Worked in healthcare and factory automation, building mission critical applications, framework & platforms

• Degree in Software Engineeringand Network Communications

• Enjoys cycling, running and [email protected]

www.designitright.net

Page 3: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Warning• Contains also proprietary

software

• This areas are pointed out

• Please walk away now,if that is not acceptable for you, it’s okay

Page 4: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Overview• Inquiry about the Status Quo • Some Facts -> Dev Process & Ops Reality• Monolithic Applications• Debugging & Logging• Distributed Applications• Side Effects you need to troubleshot• Performance Counter• Microsoft IntelliTrace• AppDynamics• Summary• Q & A

Page 5: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

We need YOU!

Page 6: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

How agile are You?

Page 7: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

The Impact of Process

* from Wikipedia: http://en.wikipedia.org/wiki/File:Agile-vs-iterative-flow.jpg

Page 8: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

How many releases do your company

have a year?

Page 9: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Typical Releases a Year*

58%

17%

21%3%

2+ monthsmonthlyweeklydaily

http://www.appdynamics.com/blog/2011/12/14/storm-clouds-in-2012-summary-of-appdynamics-apm-customer-survey/

Page 10: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Development + Operations = DevOps

* from Wikipedia: http://en.wikipedia.org/wiki/File:Agile-vs-iterative-flow.jpg

Page 11: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Difference between Dev & Ops

Dev• Getting / being agile: need for frequent updates

with new feature and bug fixes• Achieves stability trough running latest

Ops• Highest goal: stable execution flawless execution,

by knowing the environment and software• Achieves stability through careful rollouts

Page 12: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

“The Past/Present”*

WebServer DBUser

* or maybe still your present?

Page 13: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

“The Past/Present” - Architecture

Data Access Layer

Business Logic Layer

Presentation Layer

DB

Page 14: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

How are you troubleshooting?

Page 15: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Traditional Debugging

Page 16: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Traditional Debugging

Advantages• Visibility for executed code path

Disadvantages• Performance impact• Requires software installation• Often not possible in production• Typical does not find easily distributes issues• Only real time results

Page 17: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Low Impact Debugger & Crash Dump Debugging

http://www.windbg.info

Page 18: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Automatic Crash Dump Analysis

http://blogs.msdn.com/b/debugdiag/archive/2013/10/03/debugdiag-2-0-is-now-rtw.aspx

Page 19: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Low Impact Debugger & Crash Dump Debugging

Advantages• Low overhead• Dump collection can be done in production• Allows for offline analysis of dump files• Can be setup to automatically collect dump files for crashes• Allows very deep analysis and debugging

Disadvantages• Automatic analysis limited• Manual analysis has steep learning curve• Offline review requires to have precise dll version available

Page 20: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

The Book

http://www.amazon.com/Advanced-NET-Debugging-Mario-Hewardt/dp/0321578899

Page 21: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Log Files

Advantages• Output adjustable without restart• Accepted in Production

Disadvantages• Manual, time intense creation of log statements• Manual, time intense process of result review• Limited scope & visibility • Potentially high performance impact based on IO

Page 22: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

“The Present/Future”- Architecture

Microsoft MSDN: http://msdn.microsoft.com/es-es/architecture/gg189193

Page 23: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

“The Present/Future”ASP.NET MVC 3/4

(IIS)User

WAS Tomcat

Azure Web Role

SQL Server MySQL

Active Directory

Azure Worker Role

WAS

3rd Party Web Services

JavaApplication

MongoDB

3rd Party Web Services

HTTP/JSON

LDAP

WCF

WCF HTTPJDBC

ADO.NET

.NET Service Bus

.Net Service Bus

HTTP

ADO.NET

HT

TP

Page 24: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

The (Netflix) Distributed Reality *

* http://techblog.netflix.com/2012/06/netflix-operations-part-i-going.html

Page 25: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

What has all this to do with Debugging

and Troubleshooting?

Page 26: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Who does really know how their application

is performing?

Page 27: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

What impactsApplication

Performance?

Page 28: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Concurrency

http://en.wikipedia.org/wiki/File:Smithposter.jpg

• Deadlocks• Raise Conditions• Unexpected complexity• …

Page 29: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Data Volume

http://en.wikipedia.org/wiki/File:Smithposter.jpg

• constantly increasing• Volume hides details• Handling volume

impacts resources• …

Page 30: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Resources

http://blog.laptopmag.com/amd-cries-foul-but-tests-show-battery-life-inferior-to-intels/battery_morpheus

• are limited• Danger of Starvation• …

Page 31: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Who is Performance Testing

every release?

Page 32: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

http://www.slideshare.net/appdynamics/what-can-devops-learn-from-formula-1

Page 33: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Dev + Ops = Success• DevOps has to be a combined approach• Mostly no visibility in real performance

& production state

Page 34: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

IntelliTrace™• “Flight Recorder” for your Process• Records configurable details• Allows offline analysis• Microsoft specific Tool in Visual Studio• Java Flight Recorder within the Oracle world

IntelliTrace http://msdn.microsoft.com/en-us/library/hh398365.aspx

Java FlightRecorder: http://gotocon.com/dl/goto-aar-2013/slides/RickardBckman_JavaFlightRecorderNextGeneration

DiagnosticsAndProfiling.pdf

Page 35: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Summary IntelliTrace

Advantages• Allows great visibility into single process/AppPool• Allows to play back test or production issue

Disadvantages• Limited to Single Process / AppPool Visibility• Should be only temporally enable in production• Requires configuration effort for balance between

details & performance

Page 36: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Performance Counter / Perfmon

http://msdn.microsoft.com/en-us/library/aa645516(v=vs.71).aspx

Page 37: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Performance Counter• Collect machine wide and process

specific data• Allows on- and offline analysis• Microsoft specific tool build into

Windows

http://www.codeproject.com/Articles/8590/An-Introduction-To-Performance-Counters

Page 38: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Summary Performance Counter

Advantages• Huge OOTB support in Windows/IIS/etc.• Low overhead• Extensible

Disadvantages• Collecting application specific data requires

source code changes

Page 39: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

AppDynamics

• Application Performance Management• Optimized for Production• Monitoring instead of investigating• Providing the “Right-Data”

Let’s take a look

http://www.appdynamics.com/products-editions.php

Page 40: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Summary AppDynamics

Advantages• Works in production on high performance sides• Monitors, Notify, Troubleshoot• Allows instance handling in cloud environments• Free lite version• Collects required application details

Disadvantages• Full version not free• Does not include every application detail

Page 41: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Build your own Opinion (for Free)

• Lite Version free but limited

• 30 days free Trial of Pro & Azure Version

http://www.appdynamics.com/products-free-download.php

Page 42: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Summary

• Understand Dev Impact to Ops Execution• Understand the business impact of

production issues• Monolithic is simpler to Troubleshoot• Distributed is more complex• The right tools can make a Big Difference

Page 43: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Downloads, Feedback & Comments:

Q & A

Graphic by Nathan Sawaya courtesy of brickartist.com

[email protected] www.speakerrate.com/theoj

www. slideshare.net/theojungeblut

Page 44: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Blog, Rating, Slides

http://www.DesignItRight.net

www.speakerrate.com/theoj

www.slideshare.net/theojungeblut

Page 45: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

Time to say Thank You!

The OrganizersFoothill College (team)

The volunteers (how about you?)The

Spon

sors

Pict

ures

from

htt

p://

blog

.sili

conv

alle

y-co

deca

mp.

com

Page 46: Debugging,Troubleshooting & Monitoring Distributed Web & Cloud Applications at Silicon Valley Code Camp (10/05/2013)

… thanks for you attention!

And visit and support the

www.siliconvalley-codecamp.com

Please fill out the feedback, and…

www.speakerrate.com/theoj