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

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
Solidify
 

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

Webperfdays2014 movistar tv
Webperfdays2014 movistar tvWebperfdays2014 movistar tv
Webperfdays2014 movistar tv
Almudena Vivanco
 
Performance Best Practices
Performance Best PracticesPerformance Best Practices
Performance Best Practices
Almudena Vivanco
 
Performance Continuous Integration
Performance Continuous IntegrationPerformance Continuous Integration
Performance Continuous Integration
Almudena 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 experience
Almudena Vivanco
 
Oslo Schibsted Performance Gathering
Oslo Schibsted Performance GatheringOslo Schibsted Performance Gathering
Oslo Schibsted Performance Gathering
Almudena 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

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Recently uploaded (20)

Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 

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?