Diagnosability versus The Cloud, Redwood Shores 2011-08-30

Post on 29-Nov-2014

287 views 3 download

description

In our increasingly virtualized environments, it's ever more difficult to diagnose application defects—especially performance defects that affect response time or throughput expectations. Runtime diagnosis of defects can be an unbearably complicated problem to solve once the application is sealed up and put into production use. But having excellent runtime diagnostics is surprisingly easy if you design the diagnostic features into the application from its inception, as it is being grown, like you would with any other desired application feature.

transcript

Diagnosability  versus  The  Cloud

Cary  MillsapMethod  R  Corporationcary.millsap@method-­‐r.com  /  @CaryMillsap

OTN  Architect  Day,  Redwood  Shores10:00a–10:30a  Tuesday  30  August  2011  

1985–19871988–19891990–19921993–19951996–19992000–20032004–20082009–20102011–

0 25 50 75 100

Teaching Consulting Business Method Software

Cary  Millsap

Q What  does

The  Cloudmean  to  you?

Somebody  else’s  capital  expenditure.Somebody  else’s  hardware.Somebody  else’s  so8ware.Somebody  else  backs  it  up.Somebody  else  upgrades  it.Somebody  else  fixes  it  when  it  breaks....

Q What  does

Diagnosabilitymean  to  you?

You  can  find  problems  efficiently.

You  can  fix  problems  efficiently.

What  is  “easy  to  diagnose”?

It’s  easy  to  diagnose  when  it’s  easy  to  answer…

Which  system?Which  program?

...Which  line  of  source  code?

Q How  many  of  you  areperformance  people?

Here’s  how  you  can  tell...

Q Do  you  prefer  a  fast  system?

Or  a  slow  system?

Then  you’re  a  performance  person.

To  do  implement  a  successful  application  system,(whether  in  The  Cloud  or  otherwise,  but  especially  in  The  Cloud)

there  is  a  list  of  specific  technical  tasksthat  you  have  to  do  well.

I  will  talk  about  one  of  those  today.

One  goal  of  The  Cloud  is  to  hide  detail.

But...

If  the  details  of  where  time  is  being  spentare  concealed  from  your  technical  people,it’s  a  problem.

(You  do  still  have  technical  people,  right?)

Some  of  diagnosability’s  natural  enemies:

n-­‐tier  architectures

multiplexing  architecturesconnection  pooling,  session  pooling,  ...

service-­‐X  architecturesX  ∈  {bus,  oriented,  …}

The  Cloud

http://en.wikipedia.org/wiki/File:ESB.svg

SOA

http://en.wikipedia.org/wiki/File:SOA_Metamodel.svg

http://en.wikipedia.org/wiki/File:Cloud_computing.svg

No  matter  how  your  software  fits  together,  to  manage  performance,  you  must  be  ableto  follow  how  time  flows  through  all  the  code  that  services  your  requests.

http://en.wikipedia.org/wiki/File:Restaurant-­‐UML-­‐SEQ.gif

The  sequence  diagram  helps  youconceptualize  time  flow...

The  key  to  accounting  for  time  flow:

Instrumentation

Instrumentation  is  codethat  marks  each  task  so  you  can

1.  identify  it2.  measure  its  time

The  Oracle  Database  gets  it  right.

mark...dbms_session,  dbms_application_info,  OCIAttrSet,  setEndToEndMetrics,  ...

measure...dbms_monitor,  ASH,  AWR,  ADDM,  ...

http://www.method-­‐r.com/downloads/doc_details/72-­‐mastering-­‐performance-­‐with-­‐extended-­‐sql-­‐trace

Diagnosability  begins  with  the  Oracle  Database’s  superb  tools  for  marking  tasks.

My  message…

1/6

No  matter  how  much  you  test,  you  can’t  know  how  an  application  is  going  to  behave  until  after  you’re  using  it  in  production.

2 /6

You  can  reduce  your  operational  costs  significantly  if  you  can  make  your  application  easy  to  diagnose.

3 /6

The  Oracle  Database  has  superb  diagnostic  hooks  built  in,  but  your  application  has  to  be  designed  to  use  them.

4 /6

If  you’re  using  prepackaged  software,  diagnosability  is  a  feature  on  which  you  need  to  insist.

5 /6

If  you’re  building  your  own  software,  diagnosability  is  not  that  difficult;  it’s  just  another  software  feature.

6 /6

Forethought  and  understanding  about  instrumentation  saves  you  money  and  yields  better  performance  and  availability.

Instrumentation  saves  you  money  and  yields  better  performance  and  availability.

http://method-­‐r.com

http://carymillsap.blogspot.com

http://twitter.com/CaryMillsap