workshop for newcomers

63
Telefónica Digital TELEFÓNICA DIGITAL Barcelona, March 26th 2014

Upload: almudena-vivanco

Post on 07-Jul-2015

89 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Workshop for newcomers

Telefónica Digital

TELEFÓNICA DIGITAL

Barcelona, March 26th 2014

Page 2: Workshop for newcomers

Architecture DesignWeb Performance OptimizationWeb Performance Optimization

Page 3: Workshop for newcomers

No instruments

Users Review

Late or none Performance Testing

No Real User Monitoring

Reactive Performance Tuning

Page 4: Workshop for newcomers

No tools, no performance dashboard, performance is for sysadmins and operatorsNo tools, no performance dashboard, performance is for sysadmins and operators

Page 5: Workshop for newcomers

Releases are costly and it may take several months of workReleases are costly and it may take several months of work

Page 6: Workshop for newcomers

Manual testing of each release after code freezeManual testing of each release after code freeze

Page 7: Workshop for newcomers

Non functional Requirements are most likely ignoredNon functional Requirements are most likely ignored

Page 8: Workshop for newcomers

In production there is no monitoring of the traffic and how it affects the businessIn production there is no monitoring of the traffic and how it affects the business

Page 9: Workshop for newcomers

Users feedback is usually negative and there is no interaction with developers and designersUsers feedback is usually negative and there is no interaction with developers and designers

Page 10: Workshop for newcomers

Application’s performance affects directly to market’s performanceApplication’s performance affects directly to market’s performance

Page 11: Workshop for newcomers

• Continuous Integration– Functional testing– Automation– Monitoring

Page 12: Workshop for newcomers

Continuous Integration for functional testing is working already in nightly buildsContinuous Integration for functional testing is working already in nightly builds

Page 13: Workshop for newcomers

Automation reduces time to market for the applicationsAutomation reduces time to market for the applications

Page 14: Workshop for newcomers

Monitoring the real user behaviour and not just healthcheck of serversMonitoring the real user behaviour and not just healthcheck of servers

Page 15: Workshop for newcomers

Error and risks managementError and risks management

Page 16: Workshop for newcomers

Tuning and bugfixingTuning and bugfixing

Page 17: Workshop for newcomers

Listening to user feedbackListening to user feedback

Page 18: Workshop for newcomers

The FutureThe Future

• Continuous Performance Integration– Performance tests integrated in Jenkins– Automation of the trend reports– Real User Monitoring Real time feedback

Page 19: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

AGILE PERFORMANCE

20

Page 20: Workshop for newcomers

Pruebas de RendimientoPruebas de RendimientoProactive Performance testing for each release. Load tests will discover the flaws and bottlenecks, the application or the systemProactive Performance testing for each release. Load tests will discover the flaws and bottlenecks, the application or the systemmay have in production environmentmay have in production environment

TestingTestingTestingTesting

Page 21: Workshop for newcomers

Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es La hipótesis de partida con más éxito.La hipótesis de partida con más éxito.Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es La hipótesis de partida con más éxito.La hipótesis de partida con más éxito.Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es La hipótesis de partida con más éxito.La hipótesis de partida con más éxito.Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es La hipótesis de partida con más éxito.La hipótesis de partida con más éxito.Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es La hipótesis de partida con más éxito.La hipótesis de partida con más éxito.Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es La hipótesis de partida con más éxito.La hipótesis de partida con más éxito.Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es La hipótesis de partida con más éxito.La hipótesis de partida con más éxito.Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es La hipótesis de partida con más éxito.La hipótesis de partida con más éxito.Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es Conocer el escenario productivo para tomar una buena decisión sobre cómo orientar las pruebas de rendimiento es La hipótesis de partida con más éxito.La hipótesis de partida con más éxito.High availability of the application and the system is the goal of a ready for service status. The application and the systems must be stable , High availability of the application and the system is the goal of a ready for service status. The application and the systems must be stable , efficient and dimensioned according to the usage.efficient and dimensioned according to the usage.

AvailabilityAvailabilityAvailabilityAvailability

Page 22: Workshop for newcomers

Not only the response time is important, an intelligent use of the resources is needed to grow in the future. Efficiency, understood as Not only the response time is important, an intelligent use of the resources is needed to grow in the future. Efficiency, understood as capacity to dispose of the system resources to achive an objective, in our case response time and uptimecapacity to dispose of the system resources to achive an objective, in our case response time and uptime

VelocityVelocityVelocityVelocity

Page 23: Workshop for newcomers

Being able to grow depending on the necessities of the market, users and new technologies is one of the questions to which a performance Being able to grow depending on the necessities of the market, users and new technologies is one of the questions to which a performance engineerfor will have to answerengineerfor will have to answer

ScalabilityScalabilityScalabilityScalability

Page 24: Workshop for newcomers

A performance test is easy. It is easy to design non realistic scenarios. It is easy to collect irrelevant data. Even with a good scenario and A performance test is easy. It is easy to design non realistic scenarios. It is easy to collect irrelevant data. Even with a good scenario and Appropiate data, it is easy to use and incorrect statistic method to analysis the results. Appropiate data, it is easy to use and incorrect statistic method to analysis the results. - Alberto Savoia- Alberto Savoia

WorkLoadsWorkLoadsWorkLoadsWorkLoads

Page 25: Workshop for newcomers

One of the most important parts of a good performance test design is to have an appropiate load test environment, as similar as possible to One of the most important parts of a good performance test design is to have an appropiate load test environment, as similar as possible to Production at all levels, networking, systems and application architecture.Production at all levels, networking, systems and application architecture.

PreProductionPreProductionPreProductionPreProduction

Page 26: Workshop for newcomers

Otro título

EscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenariosEscenarios

To know the production environment is key to take good decisions about how to design a performance test plan. Designing a plan according To know the production environment is key to take good decisions about how to design a performance test plan. Designing a plan according To real traffic and usage of the platform is key in creating validation criteriaTo real traffic and usage of the platform is key in creating validation criteria

MonitoringMonitoringMonitoringMonitoring

Page 27: Workshop for newcomers

DevelopersDevelopers, , DBA's,DBA's, QA's, DevOps, product owners ... All the team is part of performanceQA's, DevOps, product owners ... All the team is part of performance

Performance TeamsPerformance TeamsPerformance TeamsPerformance Teams

Page 28: Workshop for newcomers

Otro título

There are many tools available in the market for load testing and monitoring. An effort in evaluating these tools will benefit at long term the There are many tools available in the market for load testing and monitoring. An effort in evaluating these tools will benefit at long term the Execution of the tests. However, the most important part is how the reports are generated and who is going to interpret them. Execution of the tests. However, the most important part is how the reports are generated and who is going to interpret them.

ToolsToolsToolsTools

Page 29: Workshop for newcomers

Otro título

Mas puntos

Not only unique users or session times are important. How the users work with the application and the psicology of the them are key to Not only unique users or session times are important. How the users work with the application and the psicology of the them are key to Understand the results and how it affects to business. Understand the results and how it affects to business.

Real User MonitoringReal User MonitoringReal User MonitoringReal User Monitoring

Page 30: Workshop for newcomers

Keep it simple, use cache wisely, invest in testing and monitoring, create a culture of performance in all the organizationKeep it simple, use cache wisely, invest in testing and monitoring, create a culture of performance in all the organization

Best PracticesBest PracticesBest PracticesBest Practices

Page 31: Workshop for newcomers

Users vs request

• Yeah right … but how many users?

Page 32: Workshop for newcomers

SCENARIOS: Identify the scenarios that are most commonly executed or most resource-intensive

Page 33: Workshop for newcomers

METRICS: Only well-selected metrics that are analyzed correctly and contextually provide information of value.

Page 34: Workshop for newcomers

WORKLOAD MODEL: User Session Duration in average. It is important to define the load levels that will translate into concurrent usage, overslapping users, or user sessions per second.

Page 35: Workshop for newcomers

THINK TIMES: User thinktimes Pause between pages during a User Session depending on the User Type*

Page 36: Workshop for newcomers

User Types: Identify the User … new, revisiting or both.

Page 37: Workshop for newcomers

Performance Acceptance Criteria: Response time, System load, Throughput ...

Page 38: Workshop for newcomers

Tuning

Techonology develops at high speed. To bring out the best of our product, business and techonology need to evolve by the hand. Investing in Techonology develops at high speed. To bring out the best of our product, business and techonology need to evolve by the hand. Investing in Performance research is crucial to keep up with other internet competitors. Performance research is crucial to keep up with other internet competitors.

InnovationInnovationInnovationInnovation

Page 39: Workshop for newcomers
Page 40: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Establish the Funnel

41

Page 41: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Determine the session navigation

42

Page 42: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Establish the Session time

43

Page 43: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Test Strategies

Load Test: Stepping Increasing

Goal: Determine the maximum throughput attainable without errors and loss of responsiveness

Model: threadsMetrics: Throughput

44

Page 44: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Test Strategies

Load Test: Variance/Uniform

Goal: determine the maximum throughput for a fixed number of threads in a fixed time span

Model: Threads/throughputMetrics: Max Number of threads, Max throughput

45

Page 45: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Test Strategies

Load Test: Soak/Avalanche

Goal: determine the limits and bottlenecks of the system during a peak load.

Model: Threads/throughputMetrics: Time to Manage the Peak of Requests

46

Page 46: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Test Strategies

Load Test: Spike

Goal: determine the limits and bottlenecks of the system during a sudden peak load under load circumstances

Model: throughputMetrics: Time to Manage the Peak of Requests

47

Page 47: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Test Strategies

Load Test: Endurance/Robustness

Goal: determine if the system looses performance during a long period of stationary load

Model: ThroughputMetrics: Optimized Throughput

48

Page 48: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Understand the Project Vision and Context

Project Vision

Project Context

Understand the system

Understand the Project Environment

Understand the Performance Build Schedule

49

Page 49: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Improved way of working

Improve performance unit testing by pairing performance testers with developers.

Assess and configure new hardware by pairing performance testers with administrators.

Evaluate algorithm efficiencyMonitor resource usage trends, and usage of profilers in dev/qa

environmentsMeasure response times in production and trends in dev/qa

environmentsCollect data for scalability and capacity planning.

50

Page 50: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Configure the Test Environment

Set up isolated networking environment

Procure hardware as similar as possible to production or at least keeping ration amongst all elements

Coordinate bank of IP’s for IP spoofing

Monitoring tools and operating systems like production

Load generation tools or develop your own

51

Page 51: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Identify and Coordinate Tasks

Work item execution method

Specifically what data will be collected

Specifically how that data will be collected

Who will assist, how, and when

Sequence of work items by priority

52

Page 52: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Execute Task(s)

Keys to Conducting a Performance-Testing Task

• Analyze results immediately and revise the plan accordingly.

• Work closely with the team or sub-team that is most relevant to the task.

• Communicate frequently and openly across the team.

• Record results and significant findings.

• Record other data needed to repeat the test later.

• Revisit performance-testing priorities after no more than two days.

53

Page 53: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Analyze Results and Report

 pause periodically to consolidate results

conduct trend analysis

create stakeholder reports,

pair with developers, architects, and administrators to analyze results

54

Page 54: Workshop for newcomers

But … what are you actually doing day by day?But … what are you actually doing day by day?

Page 55: Workshop for newcomers

Telefónica DigitalProduct Development & Innovation

Case of STUDY

56

Page 56: Workshop for newcomers

• HTML5 trends using Yslow and Firebug with Selenium

Page 57: Workshop for newcomers

• API testing using JMeter

Page 58: Workshop for newcomers

• BackEnd services using LoadUI reusing functional tests from soapUI

Page 59: Workshop for newcomers

• Streaming Content

Page 60: Workshop for newcomers

Branches comparison

Page 61: Workshop for newcomers
Page 62: Workshop for newcomers
Page 63: Workshop for newcomers