SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Ensuring Performance in a Fast-
Paced Environment
Martin Spier
Performance Engineering @ Netflix
@spiermar
mspier@netflix.com
Martin Spier
● Performance Engineer @ Netflix
● Previously @ Expedia and Dell
● Performance
○ Architecture, Tuning and Profiling
○ Testing and Frameworks
○ Tool Development
● Blog @ http://overloaded.io
● Twitter @spiermar
Agenda
● How Things Worked
○ Pass/Fail Testing, Manual
● How Netflix Works
○ Development Model, Freedom & Responsibility
● Rethinking Performance
○ Tools, Methodologies, Canary Analysis,
Performance Test Framework, Public Cloud,
Automated Analysis
The Early Days
The Dawn of a New Era
Manual Automated
● World's leading Internet television network
● ⅓ of all traffic heading into American homes at
peak hours
● > 50 million members
● > 40 countries
● > 1 billion hours of TV shows and movies per
month
● > 100s different client devices
● Culture deck* is TRUE
○ 11M+ views
● Minimal process
● Context over control
● Root access to everything
● No approvals required
● Only Senior Engineers
Freedom and Responsibility
* http://www.slideshare.net/reed2001/culture-1798664
Independent Development Teams
● Highly aligned, loosely coupled
● Free to define release cycles
● Free to choose use any methodology
● But it’s an agile environment
● And there is a “paved road”
Development Agility
● Continuous innovation cycle
● Shorter development cycles
● Continuous delivery
● Self-service deployments
● A/B Tests
● Failure cost close to zero
● Lower time to market
● Innovation > Risk
Cloud
● Amazon’s AWS
● Multi-region Active/Active
● Ephemeral Instances
● Auto-Scaling
● Netflix OSS (https://github.com/Netflix)
● Not a part of any development team
● Not a shared service
● Through consultation improve and maintain the
performance
● Provide self-service performance analysis utilities
● Disseminate performance best practices
Performance Engineering
What about Performance?
Not Just Another
Checklist Item!
● 5-6x Intraday
● Auto-Scaling Groups (ASGs)
● Reactive Auto-Scaling
● Predictive Auto-Scaling (Scryer)
Auto-Scaling
Red/Black Pushes
● New builds are rolled out as new
Auto-Scaling Groups (ASGs)
● Elastic Load Balancers (ELBs)
control the traffic going to each
ASG
● Fast and simple rollback if issues
are found
● Canary Clusters are used to test
builds before a full rollout
Squeeze Tests
● Stress Test, with Production Load
● Steering Production Traffic
● Understand the Upper Limits of Capacity
● Adjust Auto-Scaling Policies
● Automated Squeeze Tests
Simian Army
● Ensures cloud handles failures
through regular testing
● The Monkeys
○ Chaos Monkey: Resiliency
○ Latency: Artificial Delays
○ Conformity: Best-practices
○ Janitor: Unused Instances
○ Doctor: Health checks
○ Security: Security Violations
○ Chaos Gorilla: AZ Failure
○ Chaos Kong: Region Failure
Canary Release
“Canary release is a technique to reduce the risk
of introducing a new software version in
production by slowly rolling out the change to a
small subset of users before rolling it out to the
entire infrastructure and making it available to
everybody.”
Automatic Canary Analysis (ACA)
Exactly what the name implies. An automated
way of analyzing a canary release.
ACA: Use Case
● You are a service owner and have finished
implementing a new feature into your application.
● You want to determine if the new build, v1.1, is
performing analogous to the existing build.
● The new build is deployed automatically to a canary
cluster
● A small percentage of production traffic is steered to the
canary cluster
● After a short period of time, canary analysis
is triggered
Automated Canary Analysis
● For a given set of metrics, ACA will compare
samples from control and canary;
● Determine if they are analogous;
● Identify any metrics that deviate from the
baseline;
● And generate a score that indicates the overall
similarity of the canary.
Automated Canary Analysis
● The score will be associated
with a Go/No-Go decision;
● And the new build will be
rolled out (or not) to the rest
of the production
environment.
● No workload definitions
● No synthetic load
● No environment issues
When is it appropriate?
What about pre-
production Performance
Testing?
Not always!
Sometimes it doesn't make sense to run
performance tests.
Remember the short release cycles?
With the short time span between production builds,
pre-production tests don’t warn us much sooner.
(And there’s ACA)
When it brings value. Not just because is
part of a process.
So when?
When? Use Cases
● New Services
● Initial Cluster Sizing
● Large Code Refactoring
● Architecture Changes
● Workload Changes
● Proof of Concept
● Instance Type Migration
Use Cases, cont.
● Troubleshooting
● Tuning
● Teams that release less frequently
○ Intermediary Builds
● Base Components (Paved Road)
○ Amazon Cloud Images (AMIs)
○ Platform
○ Common Libraries
Who?
● Push “tests” to development teams
● Development understands the product, they
developed It
● Performance Engineering knows the tools
and techniques (so we help!)
● Easier to scale the effort!
How? Environment
● Free to create any environment configuration
● Integration stack
● Full production-like or scaled-down environment
● Hybrid model
○ Performance + integration stack
● Production testing
How? Monitoring
● We developed our own
tools
● Commercial tools did
not work for us
● Open source
● Atlas and Vector
How? Test Framework
● Built around JMeter
How? Test Framework
● Runs on Amazon’s EC2
● Leverages Jenkins for orchestration
How? Analysis
● In-house developed web analysis tool and API
● Results persisted on Amazon’s S3 and RDS
How? Analysis
● Automated analysis built-in (thresholds)
● Customized alerts
● Interface with monitoring tools
Manual vs. Automated Analysis
Learn and Understand
Pass and Fail
vs.
Takeaways
● Canary analysis
● Testing only when it brings VALUE
● Leveraging cloud for tests
● Automated test analysis
● Pushing execution to development teams
● Open source tools
Martin Spier
mspier@netflix.com
@spiermar
http://overloaded.io/
References
● culture deck (http://www.slideshare.
net/reed2001/culture-1798664)
● servo (https://github.com/Netflix/servo)
● hystrix (https://github.com/Netflix/Hystrix)
● scryer (http://techblog.netflix.com/2013/11/scryer-
netflixs-predictive-auto-scaling.html)
SHIP IT

Weitere ähnliche Inhalte

Was ist angesagt?

TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...chiportal
 
Android Continuous Integration and Automation - Enrique Lopez Manas, Sixt
Android Continuous Integration and Automation - Enrique Lopez Manas, SixtAndroid Continuous Integration and Automation - Enrique Lopez Manas, Sixt
Android Continuous Integration and Automation - Enrique Lopez Manas, SixtDroidConTLV
 
LCA13: Android Infrastructure Automation Improvements
LCA13: Android Infrastructure Automation ImprovementsLCA13: Android Infrastructure Automation Improvements
LCA13: Android Infrastructure Automation ImprovementsLinaro
 
Blazing Fast Feedback Loops in the Java Universe
Blazing Fast Feedback Loops in the Java UniverseBlazing Fast Feedback Loops in the Java Universe
Blazing Fast Feedback Loops in the Java UniverseMichał Kordas
 
LCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure UpdateLCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure UpdateLinaro
 
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopHadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopWisely chen
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarPascal Larocque
 
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.UA Mobile
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
Cloudstack Continuous Delivery
Cloudstack Continuous DeliveryCloudstack Continuous Delivery
Cloudstack Continuous Deliverybuildacloud
 
Safe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and SpinnakerSafe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and SpinnakerMihnea Dobrescu-Balaur
 
Coscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoopCoscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoopWisely chen
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal infoSynapseindiappsdevelopment
 
The Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack WayThe Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack WayiWeb (group INAP)
 
Introduction to GOCD - Amulya Sharma
Introduction to GOCD - Amulya SharmaIntroduction to GOCD - Amulya Sharma
Introduction to GOCD - Amulya SharmaAmulya Sharma
 
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
TDD for APIs @ Europython 2015, Bilbao by Michael KuehneTDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
TDD for APIs @ Europython 2015, Bilbao by Michael KuehneMichael Kuehne-Schlinkert
 
The Right Tool for the Right Project
The Right Tool for the Right ProjectThe Right Tool for the Right Project
The Right Tool for the Right ProjectOri Bendet
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itFarooq Ali
 

Was ist angesagt? (20)

TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
TRACK H: Using Formal Tools to Improve the Productivity of Verification at ST...
 
Android Continuous Integration and Automation - Enrique Lopez Manas, Sixt
Android Continuous Integration and Automation - Enrique Lopez Manas, SixtAndroid Continuous Integration and Automation - Enrique Lopez Manas, Sixt
Android Continuous Integration and Automation - Enrique Lopez Manas, Sixt
 
LCA13: Android Infrastructure Automation Improvements
LCA13: Android Infrastructure Automation ImprovementsLCA13: Android Infrastructure Automation Improvements
LCA13: Android Infrastructure Automation Improvements
 
Blazing Fast Feedback Loops in the Java Universe
Blazing Fast Feedback Loops in the Java UniverseBlazing Fast Feedback Loops in the Java Universe
Blazing Fast Feedback Loops in the Java Universe
 
LCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure UpdateLCE13: Linaro Infrastructure Update
LCE13: Linaro Infrastructure Update
 
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopHadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoop
 
Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
 
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
Критика "библиотечного" подхода в разработке под Android. UA Mobile 2016.
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Cloudstack Continuous Delivery
Cloudstack Continuous DeliveryCloudstack Continuous Delivery
Cloudstack Continuous Delivery
 
Safe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and SpinnakerSafe deployments with Blue-Green and Spinnaker
Safe deployments with Blue-Green and Spinnaker
 
Supervise your Akka actors
Supervise your Akka actorsSupervise your Akka actors
Supervise your Akka actors
 
Coscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoopCoscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoop
 
SynapseIndia drupal presentation on drupal info
SynapseIndia drupal  presentation on drupal infoSynapseIndia drupal  presentation on drupal info
SynapseIndia drupal presentation on drupal info
 
The Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack WayThe Key Components of Adopting CI The OpenStack Way
The Key Components of Adopting CI The OpenStack Way
 
Introduction to GOCD - Amulya Sharma
Introduction to GOCD - Amulya SharmaIntroduction to GOCD - Amulya Sharma
Introduction to GOCD - Amulya Sharma
 
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
TDD for APIs @ Europython 2015, Bilbao by Michael KuehneTDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
TDD for APIs @ Europython 2015, Bilbao by Michael Kuehne
 
The Right Tool for the Right Project
The Right Tool for the Right ProjectThe Right Tool for the Right Project
The Right Tool for the Right Project
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating it
 

Ähnlich wie TestIstanbul 2015

Aws uk ug #8 not everything that happens in vegas stay in vegas
Aws uk ug #8   not everything that happens in vegas stay in vegasAws uk ug #8   not everything that happens in vegas stay in vegas
Aws uk ug #8 not everything that happens in vegas stay in vegasPeter Mounce
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentationDrew Hannay
 
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...StormForge .io
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering TeamsLars Thorup
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015aspyker
 
Performance Test Automation With Gatling
Performance Test Automation  With GatlingPerformance Test Automation  With Gatling
Performance Test Automation With GatlingKnoldus Inc.
 
Release & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingRelease & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingDrew Hannay
 
3 Keys to Performance Testing at the Speed of Agile
3 Keys to Performance Testing at the Speed of Agile3 Keys to Performance Testing at the Speed of Agile
3 Keys to Performance Testing at the Speed of AgileNeotys
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingMatt Tesauro
 
Things You MUST Know Before Deploying OpenStack: Bruno Lago, Catalyst IT
Things You MUST Know Before Deploying OpenStack: Bruno Lago, Catalyst ITThings You MUST Know Before Deploying OpenStack: Bruno Lago, Catalyst IT
Things You MUST Know Before Deploying OpenStack: Bruno Lago, Catalyst ITOpenStack
 
Security in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersSecurity in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersDevOps.com
 
WSO2Con Asia 2014 - Agile DevOps in the Cloud
WSO2Con Asia 2014 - Agile DevOps in the CloudWSO2Con Asia 2014 - Agile DevOps in the Cloud
WSO2Con Asia 2014 - Agile DevOps in the CloudWSO2
 
Test automation - Building effective solutions
Test automation - Building effective solutionsTest automation - Building effective solutions
Test automation - Building effective solutionsArtem Nagornyi
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
The journey to Native Cloud Architecture & Microservices, tracing the footste...
The journey to Native Cloud Architecture & Microservices, tracing the footste...The journey to Native Cloud Architecture & Microservices, tracing the footste...
The journey to Native Cloud Architecture & Microservices, tracing the footste...Mek Srunyu Stittri
 
Deploying ML models in the enterprise
Deploying ML models in the enterpriseDeploying ML models in the enterprise
Deploying ML models in the enterprisedoppenhe
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Kris Buytaert
 

Ähnlich wie TestIstanbul 2015 (20)

Aws uk ug #8 not everything that happens in vegas stay in vegas
Aws uk ug #8   not everything that happens in vegas stay in vegasAws uk ug #8   not everything that happens in vegas stay in vegas
Aws uk ug #8 not everything that happens in vegas stay in vegas
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering Teams
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
Gatling
Gatling Gatling
Gatling
 
Performance Test Automation With Gatling
Performance Test Automation  With GatlingPerformance Test Automation  With Gatling
Performance Test Automation With Gatling
 
Release & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingRelease & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual Testing
 
3 Keys to Performance Testing at the Speed of Agile
3 Keys to Performance Testing at the Speed of Agile3 Keys to Performance Testing at the Speed of Agile
3 Keys to Performance Testing at the Speed of Agile
 
The Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security TestingThe Final Frontier, Automating Dynamic Security Testing
The Final Frontier, Automating Dynamic Security Testing
 
Things You MUST Know Before Deploying OpenStack: Bruno Lago, Catalyst IT
Things You MUST Know Before Deploying OpenStack: Bruno Lago, Catalyst ITThings You MUST Know Before Deploying OpenStack: Bruno Lago, Catalyst IT
Things You MUST Know Before Deploying OpenStack: Bruno Lago, Catalyst IT
 
Security in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersSecurity in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps Engineers
 
Agile devops in the cloud
Agile devops in the cloudAgile devops in the cloud
Agile devops in the cloud
 
WSO2Con Asia 2014 - Agile DevOps in the Cloud
WSO2Con Asia 2014 - Agile DevOps in the CloudWSO2Con Asia 2014 - Agile DevOps in the Cloud
WSO2Con Asia 2014 - Agile DevOps in the Cloud
 
Test automation - Building effective solutions
Test automation - Building effective solutionsTest automation - Building effective solutions
Test automation - Building effective solutions
 
Continuous integration (eng)
Continuous integration (eng)Continuous integration (eng)
Continuous integration (eng)
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
The journey to Native Cloud Architecture & Microservices, tracing the footste...
The journey to Native Cloud Architecture & Microservices, tracing the footste...The journey to Native Cloud Architecture & Microservices, tracing the footste...
The journey to Native Cloud Architecture & Microservices, tracing the footste...
 
Deploying ML models in the enterprise
Deploying ML models in the enterpriseDeploying ML models in the enterprise
Deploying ML models in the enterprise
 
Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.Devops, the future is here, it's just not evenly distributed yet.
Devops, the future is here, it's just not evenly distributed yet.
 

Kürzlich hochgeladen

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Kürzlich hochgeladen (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

TestIstanbul 2015

  • 1. Ensuring Performance in a Fast- Paced Environment Martin Spier Performance Engineering @ Netflix @spiermar mspier@netflix.com
  • 2. Martin Spier ● Performance Engineer @ Netflix ● Previously @ Expedia and Dell ● Performance ○ Architecture, Tuning and Profiling ○ Testing and Frameworks ○ Tool Development ● Blog @ http://overloaded.io ● Twitter @spiermar
  • 3. Agenda ● How Things Worked ○ Pass/Fail Testing, Manual ● How Netflix Works ○ Development Model, Freedom & Responsibility ● Rethinking Performance ○ Tools, Methodologies, Canary Analysis, Performance Test Framework, Public Cloud, Automated Analysis
  • 5. The Dawn of a New Era Manual Automated
  • 6.
  • 7. ● World's leading Internet television network ● ⅓ of all traffic heading into American homes at peak hours ● > 50 million members ● > 40 countries ● > 1 billion hours of TV shows and movies per month ● > 100s different client devices
  • 8. ● Culture deck* is TRUE ○ 11M+ views ● Minimal process ● Context over control ● Root access to everything ● No approvals required ● Only Senior Engineers Freedom and Responsibility * http://www.slideshare.net/reed2001/culture-1798664
  • 9. Independent Development Teams ● Highly aligned, loosely coupled ● Free to define release cycles ● Free to choose use any methodology ● But it’s an agile environment ● And there is a “paved road”
  • 10. Development Agility ● Continuous innovation cycle ● Shorter development cycles ● Continuous delivery ● Self-service deployments ● A/B Tests ● Failure cost close to zero ● Lower time to market ● Innovation > Risk
  • 11. Cloud ● Amazon’s AWS ● Multi-region Active/Active ● Ephemeral Instances ● Auto-Scaling ● Netflix OSS (https://github.com/Netflix)
  • 12. ● Not a part of any development team ● Not a shared service ● Through consultation improve and maintain the performance ● Provide self-service performance analysis utilities ● Disseminate performance best practices Performance Engineering
  • 15. ● 5-6x Intraday ● Auto-Scaling Groups (ASGs) ● Reactive Auto-Scaling ● Predictive Auto-Scaling (Scryer) Auto-Scaling
  • 16. Red/Black Pushes ● New builds are rolled out as new Auto-Scaling Groups (ASGs) ● Elastic Load Balancers (ELBs) control the traffic going to each ASG ● Fast and simple rollback if issues are found ● Canary Clusters are used to test builds before a full rollout
  • 17. Squeeze Tests ● Stress Test, with Production Load ● Steering Production Traffic ● Understand the Upper Limits of Capacity ● Adjust Auto-Scaling Policies ● Automated Squeeze Tests
  • 18. Simian Army ● Ensures cloud handles failures through regular testing ● The Monkeys ○ Chaos Monkey: Resiliency ○ Latency: Artificial Delays ○ Conformity: Best-practices ○ Janitor: Unused Instances ○ Doctor: Health checks ○ Security: Security Violations ○ Chaos Gorilla: AZ Failure ○ Chaos Kong: Region Failure
  • 19. Canary Release “Canary release is a technique to reduce the risk of introducing a new software version in production by slowly rolling out the change to a small subset of users before rolling it out to the entire infrastructure and making it available to everybody.”
  • 20. Automatic Canary Analysis (ACA) Exactly what the name implies. An automated way of analyzing a canary release.
  • 21. ACA: Use Case ● You are a service owner and have finished implementing a new feature into your application. ● You want to determine if the new build, v1.1, is performing analogous to the existing build. ● The new build is deployed automatically to a canary cluster ● A small percentage of production traffic is steered to the canary cluster ● After a short period of time, canary analysis is triggered
  • 22. Automated Canary Analysis ● For a given set of metrics, ACA will compare samples from control and canary; ● Determine if they are analogous; ● Identify any metrics that deviate from the baseline; ● And generate a score that indicates the overall similarity of the canary.
  • 23. Automated Canary Analysis ● The score will be associated with a Go/No-Go decision; ● And the new build will be rolled out (or not) to the rest of the production environment. ● No workload definitions ● No synthetic load ● No environment issues
  • 24. When is it appropriate? What about pre- production Performance Testing?
  • 25. Not always! Sometimes it doesn't make sense to run performance tests.
  • 26. Remember the short release cycles? With the short time span between production builds, pre-production tests don’t warn us much sooner. (And there’s ACA)
  • 27. When it brings value. Not just because is part of a process. So when?
  • 28. When? Use Cases ● New Services ● Initial Cluster Sizing ● Large Code Refactoring ● Architecture Changes ● Workload Changes ● Proof of Concept ● Instance Type Migration
  • 29. Use Cases, cont. ● Troubleshooting ● Tuning ● Teams that release less frequently ○ Intermediary Builds ● Base Components (Paved Road) ○ Amazon Cloud Images (AMIs) ○ Platform ○ Common Libraries
  • 30. Who? ● Push “tests” to development teams ● Development understands the product, they developed It ● Performance Engineering knows the tools and techniques (so we help!) ● Easier to scale the effort!
  • 31. How? Environment ● Free to create any environment configuration ● Integration stack ● Full production-like or scaled-down environment ● Hybrid model ○ Performance + integration stack ● Production testing
  • 32. How? Monitoring ● We developed our own tools ● Commercial tools did not work for us ● Open source ● Atlas and Vector
  • 33. How? Test Framework ● Built around JMeter
  • 34. How? Test Framework ● Runs on Amazon’s EC2 ● Leverages Jenkins for orchestration
  • 35. How? Analysis ● In-house developed web analysis tool and API ● Results persisted on Amazon’s S3 and RDS
  • 36. How? Analysis ● Automated analysis built-in (thresholds) ● Customized alerts ● Interface with monitoring tools
  • 37.
  • 38. Manual vs. Automated Analysis Learn and Understand Pass and Fail vs.
  • 39. Takeaways ● Canary analysis ● Testing only when it brings VALUE ● Leveraging cloud for tests ● Automated test analysis ● Pushing execution to development teams ● Open source tools
  • 41. References ● culture deck (http://www.slideshare. net/reed2001/culture-1798664) ● servo (https://github.com/Netflix/servo) ● hystrix (https://github.com/Netflix/Hystrix) ● scryer (http://techblog.netflix.com/2013/11/scryer- netflixs-predictive-auto-scaling.html)