SlideShare a Scribd company logo
1 of 33
Deployment Driven Development
How long would
it take to your
organization to
deploy a change
that involves just
one single line of
code?
import random
import time
import requests
class Speaker(object):
def __init__(self):
born = "Avilés - Asturias"
studies = "Applied Maths and Computability"
jobdescription = "Performance Jedi"
company = "Telefónica I+D"
team = "Product Engineering"
project = "AWAZZA"
talks = [VLC Testing, DevopsDays, WebPerfDays, Velocity]
def talk(self):
start_timer = time.time()
r = requests.get('http://www.slideshare.net/almudenavivanco')
r.raw.read()
latency = time.time() - start_timer
self.custom_timers['TEFCon 2015 - DDD'] = latency
if __name__ == '__main__':
speech = Speaker()
speech.talk()
print trans.custom_timers
Almudena Vivanco
(@MrsDaehin)
Scalability Probs
Performance
It's not just about adding more servers
Blue Green Deployment
Continuous … wait … what?
Fear is the path to the
dark side. Fear leads to
Inertia. Inertia Leads to
paralysis. Paralysis leads
to going out of Business.
Do not fear the Release!
Be ready for Failing!!
Release Frequently
It’s not my machines!
It’s your code
It’s not my code!
It’s your machines!
Building Resilient Environments
Deployment Driven Development
Real User Monitoring
How do you test performance?
Different apps have different profiles
Tests need to scale
Tests should be shareable
Tests should be straight forward.
THINK BIG
Dark Launching
Feature Toggling
http://martinfowler.com/bliki/FeatureToggle.html
A/B Testing
Canary Releasing
http://martinfowler.com/bliki/CanaryRelease.html
Do you still want to use Blue Green deployment?
Deployment Driven Development and Performance Testing TEFCON2015

More Related Content

Similar to Deployment Driven Development and Performance Testing TEFCON2015

Scala, Functional Programming and Team Productivity
Scala, Functional Programming and Team ProductivityScala, Functional Programming and Team Productivity
Scala, Functional Programming and Team Productivity7mind
 
Developer Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneDeveloper Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneSven Peters
 
DevOps and Continuous Delivery with Visual Studio 2015 and VSTS
DevOps and Continuous Delivery with Visual Studio 2015 and VSTSDevOps and Continuous Delivery with Visual Studio 2015 and VSTS
DevOps and Continuous Delivery with Visual Studio 2015 and VSTSSolidify
 
Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloudErnest Mueller
 
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD MeetupKeptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD MeetupJürgen Etzlstorfer
 
DevOps Practices @Pipedrive
DevOps Practices @PipedriveDevOps Practices @Pipedrive
DevOps Practices @PipedriveRenno Reinurm
 
[India Merge World Tour] Electric Cloud
[India Merge World Tour] Electric Cloud[India Merge World Tour] Electric Cloud
[India Merge World Tour] Electric CloudPerforce
 
Docker Containers in the Enterprise DevOps Journey
Docker Containers in the Enterprise DevOps JourneyDocker Containers in the Enterprise DevOps Journey
Docker Containers in the Enterprise DevOps JourneyTechWell
 
"Platform Engineering in practice — Why and How to start", Serg Hospodarets
"Platform Engineering in practice — Why and How to start", Serg Hospodarets "Platform Engineering in practice — Why and How to start", Serg Hospodarets
"Platform Engineering in practice — Why and How to start", Serg Hospodarets Fwdays
 
End-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.devEnd-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.devKonstantin Tarkus
 
Integration testing with spring @JAX Mainz
Integration testing with spring @JAX MainzIntegration testing with spring @JAX Mainz
Integration testing with spring @JAX MainzVictor Rentea
 
DevSecOps | DevOps Sec
DevSecOps | DevOps SecDevSecOps | DevOps Sec
DevSecOps | DevOps SecRubal Jain
 
Introducing TDD to your project
Introducing TDD to your projectIntroducing TDD to your project
Introducing TDD to your projectBastian Feder
 
Painless DevSecOps: Building Security Into Your DevOps Pipeline
Painless DevSecOps: Building Security Into Your DevOps PipelinePainless DevSecOps: Building Security Into Your DevOps Pipeline
Painless DevSecOps: Building Security Into Your DevOps PipelineTasktop
 
Integrating DevOps and ALM tools to speed delivery
Integrating DevOps and ALM tools to speed deliveryIntegrating DevOps and ALM tools to speed delivery
Integrating DevOps and ALM tools to speed deliveryTasktop
 
Dev ops 2016 dockerizing the it
Dev ops 2016 dockerizing the itDev ops 2016 dockerizing the it
Dev ops 2016 dockerizing the itDeveo
 
Improve Developer Experience with Developer Portal
Improve Developer Experience with Developer PortalImprove Developer Experience with Developer Portal
Improve Developer Experience with Developer PortalKumton Suttiraksiri
 
Development in Dataverse SSHOC project
Development in Dataverse SSHOC projectDevelopment in Dataverse SSHOC project
Development in Dataverse SSHOC projectvty
 
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...Neo4j
 

Similar to Deployment Driven Development and Performance Testing TEFCON2015 (20)

Scala, Functional Programming and Team Productivity
Scala, Functional Programming and Team ProductivityScala, Functional Programming and Team Productivity
Scala, Functional Programming and Team Productivity
 
Developer Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneDeveloper Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t done
 
DevOps and Continuous Delivery with Visual Studio 2015 and VSTS
DevOps and Continuous Delivery with Visual Studio 2015 and VSTSDevOps and Continuous Delivery with Visual Studio 2015 and VSTS
DevOps and Continuous Delivery with Visual Studio 2015 and VSTS
 
Business model driven cloud adoption - what NI is doing in the cloud
Business model driven cloud adoption -  what  NI is doing in the cloudBusiness model driven cloud adoption -  what  NI is doing in the cloud
Business model driven cloud adoption - what NI is doing in the cloud
 
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD MeetupKeptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
Keptn: Unbreakable Continuous Delivery - Berlin CI/CD Meetup
 
DevOps Practices @Pipedrive
DevOps Practices @PipedriveDevOps Practices @Pipedrive
DevOps Practices @Pipedrive
 
[India Merge World Tour] Electric Cloud
[India Merge World Tour] Electric Cloud[India Merge World Tour] Electric Cloud
[India Merge World Tour] Electric Cloud
 
Docker Containers in the Enterprise DevOps Journey
Docker Containers in the Enterprise DevOps JourneyDocker Containers in the Enterprise DevOps Journey
Docker Containers in the Enterprise DevOps Journey
 
"Platform Engineering in practice — Why and How to start", Serg Hospodarets
"Platform Engineering in practice — Why and How to start", Serg Hospodarets "Platform Engineering in practice — Why and How to start", Serg Hospodarets
"Platform Engineering in practice — Why and How to start", Serg Hospodarets
 
End-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.devEnd-to-end test automation with Endtest.dev
End-to-end test automation with Endtest.dev
 
Integration testing with spring @JAX Mainz
Integration testing with spring @JAX MainzIntegration testing with spring @JAX Mainz
Integration testing with spring @JAX Mainz
 
DevSecOps | DevOps Sec
DevSecOps | DevOps SecDevSecOps | DevOps Sec
DevSecOps | DevOps Sec
 
Introducing TDD to your project
Introducing TDD to your projectIntroducing TDD to your project
Introducing TDD to your project
 
Painless DevSecOps: Building Security Into Your DevOps Pipeline
Painless DevSecOps: Building Security Into Your DevOps PipelinePainless DevSecOps: Building Security Into Your DevOps Pipeline
Painless DevSecOps: Building Security Into Your DevOps Pipeline
 
Integrating DevOps and ALM tools to speed delivery
Integrating DevOps and ALM tools to speed deliveryIntegrating DevOps and ALM tools to speed delivery
Integrating DevOps and ALM tools to speed delivery
 
Dev ops 2016 dockerizing the it
Dev ops 2016 dockerizing the itDev ops 2016 dockerizing the it
Dev ops 2016 dockerizing the it
 
Improve Developer Experience with Developer Portal
Improve Developer Experience with Developer PortalImprove Developer Experience with Developer Portal
Improve Developer Experience with Developer Portal
 
Ibm innovate ci for system z
Ibm innovate ci for system zIbm innovate ci for system z
Ibm innovate ci for system z
 
Development in Dataverse SSHOC project
Development in Dataverse SSHOC projectDevelopment in Dataverse SSHOC project
Development in Dataverse SSHOC project
 
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
 

More from Almudena Vivanco

Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance TestingAlmudena Vivanco
 
Integrating taurus and jmeter
Integrating taurus and jmeterIntegrating taurus and jmeter
Integrating taurus and jmeterAlmudena Vivanco
 
Fine line between performance and security
Fine line between performance and securityFine line between performance and security
Fine line between performance and securityAlmudena Vivanco
 
Dia02 t03-s04-vlctesting2017-seminario-almudena-vivanco
Dia02 t03-s04-vlctesting2017-seminario-almudena-vivancoDia02 t03-s04-vlctesting2017-seminario-almudena-vivanco
Dia02 t03-s04-vlctesting2017-seminario-almudena-vivancoAlmudena Vivanco
 
Web pagetest Meetup At Trovit
Web pagetest Meetup At TrovitWeb pagetest Meetup At Trovit
Web pagetest Meetup At TrovitAlmudena Vivanco
 
Workshop performance vl ctesting
Workshop performance vl ctestingWorkshop performance vl ctesting
Workshop performance vl ctestingAlmudena Vivanco
 
Webperfdays2014 movistar tv
Webperfdays2014 movistar tvWebperfdays2014 movistar tv
Webperfdays2014 movistar tvAlmudena Vivanco
 
Performance Best Practices
Performance Best PracticesPerformance Best Practices
Performance Best PracticesAlmudena Vivanco
 
Performance Continuous Integration
Performance Continuous IntegrationPerformance Continuous Integration
Performance Continuous IntegrationAlmudena Vivanco
 
cómo medir lo inmensurable: real user experience
cómo medir lo inmensurable: real user experiencecómo medir lo inmensurable: real user experience
cómo medir lo inmensurable: real user experienceAlmudena Vivanco
 
Oslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringOslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringAlmudena Vivanco
 

More from Almudena Vivanco (17)

Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
Integrating taurus and jmeter
Integrating taurus and jmeterIntegrating taurus and jmeter
Integrating taurus and jmeter
 
Fine line between performance and security
Fine line between performance and securityFine line between performance and security
Fine line between performance and security
 
Dia02 t03-s04-vlctesting2017-seminario-almudena-vivanco
Dia02 t03-s04-vlctesting2017-seminario-almudena-vivancoDia02 t03-s04-vlctesting2017-seminario-almudena-vivanco
Dia02 t03-s04-vlctesting2017-seminario-almudena-vivanco
 
WPT Midiendo la Felicidad
WPT Midiendo la FelicidadWPT Midiendo la Felicidad
WPT Midiendo la Felicidad
 
Web pagetest Meetup At Trovit
Web pagetest Meetup At TrovitWeb pagetest Meetup At Trovit
Web pagetest Meetup At Trovit
 
Workshop performance vl ctesting
Workshop performance vl ctestingWorkshop performance vl ctesting
Workshop performance vl ctesting
 
Webperfdays2014 movistar tv
Webperfdays2014 movistar tvWebperfdays2014 movistar tv
Webperfdays2014 movistar tv
 
Workshop for newcomers
Workshop for newcomersWorkshop for newcomers
Workshop for newcomers
 
Velocity2014 gvp
Velocity2014 gvpVelocity2014 gvp
Velocity2014 gvp
 
Devopsdays barcelona
Devopsdays barcelonaDevopsdays barcelona
Devopsdays barcelona
 
Performance Best Practices
Performance Best PracticesPerformance Best Practices
Performance Best Practices
 
Speed me up!
Speed me up!Speed me up!
Speed me up!
 
Performance Continuous Integration
Performance Continuous IntegrationPerformance Continuous Integration
Performance Continuous Integration
 
cómo medir lo inmensurable: real user experience
cómo medir lo inmensurable: real user experiencecómo medir lo inmensurable: real user experience
cómo medir lo inmensurable: real user experience
 
Oslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringOslo Schibsted Performance Gathering
Oslo Schibsted Performance Gathering
 
Performance
Performance Performance
Performance
 

Recently uploaded

Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 

Recently uploaded (20)

Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 

Deployment Driven Development and Performance Testing TEFCON2015

Editor's Notes

  1. 15 years ago, seventeen people met to talk, ski, relax, and try to find common ground. What emerged was the Agile �Software Development� Manifesto. From that day on, our way of working has changed several times swinging between waterfall to agile back and forth trying to find a balance. Most of our teams are working now in Agile but many times it is only encapsulated to DEVS/QA or only to OPS. Finding it difficult to cover all the product life cycle with all the actors involved in agile methodology.
  2. We have been talking about continuous delivery for a while, we want our products to arrive fast to our customers and fullfill their needs. We have created deployment pipelines, automating the release, automating the infrastructure. But many times we are still fighting against our fear to release. We’ve found that the costs we incur–typically bugs or unpolished but functional features–are worthwhile in the name of getting feedback from our customers as quickly as possible about our product innovations. The sooner we have feedback from our customers, the sooner we know whether we guessed right about our product decisions and the sooner we can choose to either change course or double down on a winning idea.
  3. Integration of Performance Testing in Continuous delivery A continuous integration server to run and monitor our automated tests with every code commit cluster immune system to monitor and alert on statistically significant regressions, and automatically revert the commit if an error occurs) A source control commit check to stop new code being added to the codebase when something is broke Real-time monitoring and alerting to inform the team immediately when a bug makes in through our deployment process Root cause analysis (Five Whys) to drive incremental improvements in our deployment and product development processes ( HOSHIN ) Recognize this? single Line of change takes a week to deploy Slow feedback Code Freeze? what is that? Sleeples nights during deployments
  4. about me
  5. why Scrum teams usually require my skills? well usually when there is a question in the air… HOW MANY USERS can we handle? or how do the service scale? but these questions could be answered easily with some planification during development.
  6. We all know that performance is not just throwing money at more servers virtual or physical, but we are terrify by failing what are the problems we usually face during our last phase? To answer the question of how to scale the service we usually face the problems that we don’t have a server similar to production. we don’t know the behaviour of the users, we don’t have a system with the volume of production. we cannot have all services 3rd parties integrated and running at the same time.
  7. You must unlearn,what you have learned, you need to leave your confort zone, with no change there is no fail, but with no fail there is no way to improve.
  8. How many of us still deploy with a blue green? Pattern Deploy software to a non-production environment (call it blue) while production continues to run. Once it’s deployed and “warmed up”, switch production (green) to non-production and blue to green simultaneously. Anti-patterns Production is taken down while the new release is applied to production instance(s).
  9. So let me tell you a joke a really bad one but i bet some of us will feel represented by that. Borat the devop says!!!
  10. lets go back again we started talking about continuous deployment what benefits can we have? automate provisioning and deployment ensure devs, testers and ops collaborate throughout → devops incrementalism decoupling deployment and release Don’t be afraid of failing, inmune systems→ zero access policy ( phoenix or inmutable servers) Monitoring graphite, munin, nagios Anomaly Detection!!! Infraestructure as Code: Automate or Die! Ansible, Chef, Puppet… Containers: Docker, Joyent Triton
  11. don’t be afraid of failing we will fail! we are human but what can we do to minimize the impact of our failing? reducing release risk we need to build our Contingency plan to know how to react Significant Alarms Anomaly Build Environments mean time to restore service instead of mean time between failures
  12. Developers need to talk to ops about the impact of the code: What metrics will change and how? what are the risks? what are the signs that something is going wrong? what are the contingencies? Ops’ job is NOT to keep the site stable and fast Ops’ job is to enable the business (this is dev’s job too) The business requires change But change is the root cause of most outages! Discourage change in the interests of stability or Allow change to happen as often as it needs to
  13. Ops need to talk to devs what has changed? what features entered? how do we deploy the software where do you expect
  14. MTRS: mean time to restore service MTBF: mean time between failures Simian Army
  15. Don’t look at me after BDD TDD and the rest of xDD we can add one more acronyms to our salad. DDD is the tecnique that will help our collegues from Delivery to be sure about the products we create and develop. This tecniques will help to deploy ina more agile way
  16. real user monitoring because not always the users are what we expect and we need to give service to everyone of our target we need to be ready to find any anomaly detection and not only problems we need to check the server health Logs alarms significant and not raised all kind of alarms
  17. and how does this benefit our performance tests?
  18. why not testing a real environment real servers real traffic real users real workflow
  19. https://www.facebook.com/note.php?note_id=96390263919 "Dark Launching": During the two weeks prior to launch we began what we call a "dark launch" of all the functionality on the backend. Essentially a subset of user queries are routed to help us test, by making "silent" queries to the code that, on launch night, will have to absorb the traffic. Levers and the "Nuclear Option": We couldn't be sure of the exact level of traffic the launch would generate so we put together contingency plans to decrease the load on various parts of the site. This gave us overhead in core functionality at the expense of less essential services. Pattern Launch a new application or features when it affects the least amount of users. Anti-patterns Software is deployed regardless of number of active users.
  20. config file with the status of the feature disabled or enabled in this case there is just one front end that got the logic of the feature depending on its status RISK: huge chance of having a huge config file with obsolete features Diassociat deployment and feature activation Helps you to have a production ready code all the time Gives you the flexibility of trying out multiple features QA can test individual features or group of features Business can get fast feedback through feature previewing. we can do progressing activation of a feature → Canary Testing Measure impacts of a new version ( A/B testing) Diffeer feature activation on production Trunk Base Development Python - Waffle Golang - Flash Node.js - feature-flags C# Feature Switcher
  21. 2 or more versions of the same feature enabled most of the times without a segmentation of the users so we can try randomly which of the features is the best.
  22. An A/B test involves testing two versions of a web page — an A version (the control) and a B version (the variation) — with live traffic and measuring the effect each version has on your conversion rate. Start an A/B test by identifying a goal for your company then determine which pages on your site contribute to the successful completion of that goal.
  23. Pattern Release software to production for a small subset of users (e.g. , 10%) to get feedback prior to a complete rollout. Anti-patterns Software is released to all users at once.
  24. es to use a strategy with multiple canaries, the first one being visible only to their internal employees and having all theFeatureToggles turned on so they can detect problems with new features early. Canary releases can be used as a way to implement A/B testing due to similarities in the technical implementation. However, it is preferable to avoid conflating these two concerns: while canary releases are a good way to detect problems and regressions, A/B testing is a way to test a hypothesis using variant implementations. If you monitor business metrics to detect regressions with a canary [2], also using it for A/B testing could interfere with the results.
  25. How many of us still deploy with a blue green?