load&performance%...

38
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Sebastian Cohnen,Founder & CTO StormForger.com 20160412 Load & Performance Testing the Cloud??!!

Upload: phamduong

Post on 12-Mar-2018

221 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

©  2016,  Amazon  Web  Services,  Inc.  or  its  Affiliates.  All  rights  reserved.

Sebastian  Cohnen,  Founder  &  CTO  StormForger.com2016-­04-­12

Load  &  Performance  Testing  the  Cloud??!!

Page 2: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

EHLO!

• 7+  years  consulting  and  development

• Focus  on  web  performance  and  architectures

• Founder  &  CTO  StormForger.com

Sebastian  Cohnen  (@tisba)

Page 3: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Performance

Page 4: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Performance

Performance  is  the  ability  of  a  system  to  fulfill  a  task  within  defined  dimensions.

It  is  a  measurement  for  efficiency and  can  describe  the  relative  capacity  of  a  system.

“1  instance can  handle  250  rps with  p99  at  50ms…”

Page 5: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Performance  &  Scalability

Page 6: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Performance…is  a  measurement  for  efficiency and  can  describe  the  relative  capacity  of  a  system.

“1  instance can  handle  250  rpswith  p99  at  50ms…”

Performance  &  Scalability

Scalability…will   tell  you  if  and  how  effectively  you  can grow  capacity by  adding  resources.

“10  instances can  handle2500  rps with  p99  at  50ms…”

Page 7: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Load  &  Performance  Testing

Page 8: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

“In  software  engineering,  performance  testing is  in  general,  a  testing  practice  performed  to  determine  how  a  system  performs in  terms  of  responsiveness  and  stability  

under  a  particular  workload.”  – Wikipedia

https://en.wikipedia.org/wiki/Software_performance_testing

Page 9: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Performance  Testing

• A  family  of  non-­functional   testing  methods…

• which  induce  a  well  defined workload• in  order  to  observe  the  systems behavior• in  order  to  verify and  understand its  characteristics

Page 10: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Performance  Testing  Family

• Load  Testing• Stress  Testing• Spike  Testing• Soak  &  Endurance  Testing• Resilience  Testing• Troubleshooting• Configuration  Testing• Scalability  Testing

Page 11: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Back  to  Topic:The  Cloud!

geek-and-poke.com

Page 12: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

The  AWS  Cloud

• IaaS,  PaaS,  …• APIs  and  automation• On-­demand• Cost-­effective• Scalable

Page 13: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Why  should  we  care?

Page 14: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

“The  Cloud  is  Scalable!”

Page 15: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Scaling  Resources  ≠Scaling  Applications

Page 16: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Scaling  Resources  ≠  Scaling  Applications

• Adding  resources  does  not  necessarily  scale  your  application

• e.g.  adding  more  EC2  Instances  won't  remove  the  bottleneck  at  your  RDS

Elastic  Load  Balancing

Amazon  EC2

MySQL  DB  instance

Auto   Scaling  group

Page 17: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

You  need  to  understand…

• Your  (distributed,  μService,  …)  Application• Your  Software  Architecture• Your  Cloud  Environment• Used  Services  and  their  behavior

Page 18: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Complexity

• Complexity  has  not  simply  vanished• XaaS &  Co  have  moved  it  “somewhere  else”• Impact  on  performance   is  still  very  important

Page 19: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Applying  load  tests  to  the  cloud…

Page 20: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Load  Testing

• Induce  normal/expected  workload  to  a  given  system  and  observe!

• Determine   latency,  throughput,  capacity,  …  of  your  system

• Ideally:  Figure  out  the  capacity  per  resource (e.g.  per  EC2  Instance)

Page 21: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Scalability  Testing

• How  does  my  capacity  increase with  additional  resources?

• Requirement  for  Capacity  Planning and  Cost  Estimation

Page 22: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Stress,  Spike  and  Soak  Testing

• How  does  your  system  and  environment  behave  under  serious  stress?  (Stress  Testing)

• What  happens  when  I'm  on  reddit/hacker  news?  (Spike  Testing)

• What  happens  over  longer  period  of  times?  (Soak  Testing)

Page 23: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Configuration  Testing

• How  does  the  behavior  change,  if  the  configuration  changes?

• Very  useful  to  learn  about  the  impact  of  environment   to  your  system

Page 24: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Configuration  Testing

• Instance  Types• Auto  Scaling• Throughput  Provisioning• Correct/Optimal  Service  usage?

• OS,  Web/App  Server  Configuration

Page 25: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Availability  &  Resilience  Testing

• (Zero-­Downtime)  Deployments  under  load• Infrastructure  changes• Understanding   failure  scenarios• Testing  failover  mechanisms• Chaos  Engineering

Page 26: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Is  this  different  from  what  it  used  to  be  pre-­cloud?

Page 27: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Yes  and  No!

• The  testing  needs  and  methods  have  not  changed!• BUT:  Multiple,  scalable  performance  test  environments  used  to  be  cumbersome  and  very  expensive

• You  should  utilize  automation  wherever  you  can:• Infrastructure,  Services,  Servers,  Code• Test  Data(!)

Page 28: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Conclusion

Page 29: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Conclusion

• Scaling  Resources  is  not  Scaling  Applications• Understanding   is  key,  and  testing  is  one  tool  to  get  there• Complexity  has  not  vanished,  it  has  been  shifted• Utilize  the  cloud  to  make  test  setups  simpler  and  achievable!

• …and…

Page 30: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Proof  of  Concept

• Design  architecture  on  AWS• Implement  a  prototype• Discuss  with  AWS  Solution  Architects

• Validate!Run  tests,  observe,   learn  and  improve!

Page 31: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Thank  you!Sebastian  Cohnen  –@tisba

StormForger.com

Page 32: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

©  2016,  Amazon  Web  Services,  Inc.  or  its  Affiliates.  All  rights  reserved.

AWS  Slide  Deck  Template

Page 33: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Deck  Guidelines

Fonts,  sizes,  colors,  and  layouts  are  all  pre-­built   in  this  template.

Color  palette  

Please  do  not  use  gradients,  shadows,  or  outlines  on  shape  elements.  Limit  color  use  for  chart  graphics  to  grayscale  plus  one  accent  color.

Page 34: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Helpful  Resources

AWS  Logo (logos  for  both  web  and  print)

AWS  Simple  Icons (product  and  simple  icons  for  architectural  diagrams)

Design  Request (AWS  Marketing  Design  wiki)Deck  Asset  Repository (up-­to-­date  deck  assets  and  templates)

Page 35: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Copy  &  Paste  Content

When  pasting  content  from  another  presentation  please  paste  using  “Destination  Theme.”

Note:  This  works  when  copying  entire  slides  from  other  presentations  as  long  as  the  source  presentation  is  also  16:9  

Page 36: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Copy  &  Paste  Code

When  pasting  content  Code  into  a  Code  template  please  use  the  “Keep  Text  Only  Function”  for  Windows  and  “Destination  Theme”  for  Macs.    If  any  additional  coloring  needs  to  be  done  to  your  code  type  please  do  it  after  pasting  it  into  your  slide.  

Page 37: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Assets  UsageMultiple  assets  can  be  combined  to  create  one  graphic  

Deck_Box-­Files.png Deck_Arrows1.png Deck_Buildings-­MediumBusiness.png

Deck_Buildings-­Enterprise.png

Deck_Buildings-­SmallBusiness.png

Deck_Laptop-­Dark-­Code.png Deck_Certification-­Badge.png

Deck_App2.png Deck_Lock.png

Page 38: Load&Performance% Testing%the%Cloudaws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/... · Performance%Testing • A familyof" nonEfunctional"testing"methods

Resizing  Assets

Always  hold  down  shift  key  and  drag  from  corner  when  scaling  assets

with Shift without Shift