SlideShare a Scribd company logo
Release Often Release SafelySergejus Barinovas (@sergejusb)http://sergejus.blogas.lt
This is not a theoretical presentation
This presentation based on real life experience
Successful software workflow
Dilemma: Innovative or Stable?InnovativeOften (bi-weekly) releases of new featuresHigher risk of bugs and downtimesStableHigher uptime and better customer perceptionSeasonal releases of new features
We wanted both …… be innovative and agile while staying as much stable as possible
Stability in our terms99.999% uptime for serving ads2 datacenters + clouds500 M requests / day
Let’s learn Kung Fuof releasing often and safely
Challenges we ha(d/ve)Detect issues in production as soon as possibleTest new features in production while reducing impact for customersRoll-out new features in a controlled manner
Detect issues in production ASAPMonitoringChoose monitoring system carefullyIt took us about 1 year (Zabbix)First list all your possible monitoring use casesPrepare your software for monitoringLogging is a must have!Performance / SLA counters help to measure and understand software betterCreate a clear baseline to compare with after releases
Detect issues in production ASAPAutomated functional testsDesigned to detect end-user issuesDifferently than unit and integration testsUI / business logicStill not as many as we want (Selenium UI / C#)Ongoing process of unifying automated QA testsRun after each release and on periodic basisVery important if you have > 1 serverHuge time saver if tests are repetitive
Though unit tests help in finding bugs during coding, they are more vital when software evolves!Finding
Test new features in productionEven ideal staging environment is not equal to production environmentBefore starting rolling-out new feature it is important to check itsResource consumptionCPU / RAM / HDD / IO / NetworkPerformance impact on existing functionalityResponse times / SLAStabilityErrors / memory leaks
Test new features in productionUse Case #1:Safely rollout new feature that integrates into core data collection pipeline
Test new features in productionDark releasesWorks best with brand new featuresRelease new feature to one or several serversNew feature gets real load, but is not available for customersHave automated rollback package in case something goes wrong
Test new features in productionDark release notes from our release plan
Test new features in productionUse Case #2:Safely migrate to the new SQL connection pooling mechanism
Test new features in productionFeature flags and switchersWorks both for brand new features and updatesFeature can be switched on / off any timeif (FeatureEnabled) then …if (UseNewLogic) then … else …Can effect existing customersPossible to test each server one by one by switching feature on / off
Test new features in productionUse Case #3:Safely migrate to the brand-new intelligent targeting subsystem
Test new features in productionValvesVery similar to switchesFeature can get from 0% to 100% of real loadVery handy to gradually roll-out new features on each server one by oneSo far helped us a lot though require extra development effort
Test new features in productionCaveats we had so farMake sure you can turn features on / off without effecting connected usersCreate simple interface to display current status        of all switches and valves on each affected serverSecure access to switches and valves
Controlling roll-out of new featureSwitches and valves enable very smooth and controlled roll-outPartial roll-out to different datacenters / cloudsDifferent datacenters / clouds have different version of feature releasedRedirect all traffic to the new or old version of feature
Controlling roll-out of new featureFuture research: application level load balancingLoad balancer can act as a switches / valve without actually programming load distribution logicAbility to automatically redirect users to the new version of application while preserving old one
SummaryMonitoring system is very important, but your software should be prepared for thisAutomated functional tests are functional monitoring of your softwareSwitches and valves are very powerful concept for testing in production and roll-outs, but require extra development and maintenance timeDark releases and partial roll-outs are the most cost effective safety mechanism
Thanks! Questions?Sergejus Barinovas (@sergejusb)http://sergejus.blogas.lt

More Related Content

What's hot

Adopting Kubernetes with Puppet
Adopting Kubernetes with PuppetAdopting Kubernetes with Puppet
Adopting Kubernetes with Puppet
Puppet
 
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
Puppet
 
Network Automation at Shapeways
Network Automation at ShapewaysNetwork Automation at Shapeways
Network Automation at Shapeways
Puppet
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
Susantha Pathirana
 
Building Automated Infrastructures
Building Automated InfrastructuresBuilding Automated Infrastructures
Building Automated Infrastructures
elliando dias
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
Puppet
 
Intro to Puppet Enterprise for a Windows Environment - 08.23
Intro to Puppet Enterprise for a Windows Environment - 08.23Intro to Puppet Enterprise for a Windows Environment - 08.23
Intro to Puppet Enterprise for a Windows Environment - 08.23
Puppet
 
Migrating to Microservices
Migrating to MicroservicesMigrating to Microservices
Migrating to Microservices
BizTalk360
 
Cloud Needs Devops
Cloud Needs DevopsCloud Needs Devops
Cloud Needs Devops
Kris Buytaert
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
Puppet
 
Are Your Microservices Naked and Afraid?
Are Your Microservices Naked and Afraid?  Are Your Microservices Naked and Afraid?
Are Your Microservices Naked and Afraid?
VMware Tanzu
 
Dev ops: Continuous delivery and Windows Azure
Dev ops: Continuous delivery and Windows AzureDev ops: Continuous delivery and Windows Azure
Dev ops: Continuous delivery and Windows Azure
Ibon Landa
 
Intro to Puppet Enterprise 04.20.2017
Intro to Puppet Enterprise 04.20.2017Intro to Puppet Enterprise 04.20.2017
Intro to Puppet Enterprise 04.20.2017
Puppet
 
DevOps Security for Good
DevOps Security for GoodDevOps Security for Good
DevOps Security for Good
Francisco Donoso
 
Antifragility and testing for distributed systems failure
Antifragility and testing for distributed systems failureAntifragility and testing for distributed systems failure
Antifragility and testing for distributed systems failure
DiUS
 
Serverless
ServerlessServerless
Serverless
Maciej Dziergwa
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
Puppet
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
Xebia IT Architects
 
Automating Networking! Do I Have to Start at Ground Zero?
Automating Networking! Do I Have to Start at Ground Zero?Automating Networking! Do I Have to Start at Ground Zero?
Automating Networking! Do I Have to Start at Ground Zero?
Puppet
 

What's hot (19)

Adopting Kubernetes with Puppet
Adopting Kubernetes with PuppetAdopting Kubernetes with Puppet
Adopting Kubernetes with Puppet
 
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
PuppetConf 2016 Customer Keynote: Cloud, Containers & the Impact on IT - Jeff...
 
Network Automation at Shapeways
Network Automation at ShapewaysNetwork Automation at Shapeways
Network Automation at Shapeways
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
 
Building Automated Infrastructures
Building Automated InfrastructuresBuilding Automated Infrastructures
Building Automated Infrastructures
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
 
Intro to Puppet Enterprise for a Windows Environment - 08.23
Intro to Puppet Enterprise for a Windows Environment - 08.23Intro to Puppet Enterprise for a Windows Environment - 08.23
Intro to Puppet Enterprise for a Windows Environment - 08.23
 
Migrating to Microservices
Migrating to MicroservicesMigrating to Microservices
Migrating to Microservices
 
Cloud Needs Devops
Cloud Needs DevopsCloud Needs Devops
Cloud Needs Devops
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
 
Are Your Microservices Naked and Afraid?
Are Your Microservices Naked and Afraid?  Are Your Microservices Naked and Afraid?
Are Your Microservices Naked and Afraid?
 
Dev ops: Continuous delivery and Windows Azure
Dev ops: Continuous delivery and Windows AzureDev ops: Continuous delivery and Windows Azure
Dev ops: Continuous delivery and Windows Azure
 
Intro to Puppet Enterprise 04.20.2017
Intro to Puppet Enterprise 04.20.2017Intro to Puppet Enterprise 04.20.2017
Intro to Puppet Enterprise 04.20.2017
 
DevOps Security for Good
DevOps Security for GoodDevOps Security for Good
DevOps Security for Good
 
Antifragility and testing for distributed systems failure
Antifragility and testing for distributed systems failureAntifragility and testing for distributed systems failure
Antifragility and testing for distributed systems failure
 
Serverless
ServerlessServerless
Serverless
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
 
Automating Networking! Do I Have to Start at Ground Zero?
Automating Networking! Do I Have to Start at Ground Zero?Automating Networking! Do I Have to Start at Ground Zero?
Automating Networking! Do I Have to Start at Ground Zero?
 

Similar to Release Often Release Safely

devops certification
devops certificationdevops certification
devops certification
devlabsalliance11
 
devops certification
devops certificationdevops certification
devops certification
devopsuniversity1
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
Jérôme Kehrli
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is built
Vincent Burckhardt
 
Unit Testing vs End-To-End Testing_ Understanding Key Differences.pdf
Unit Testing vs End-To-End Testing_ Understanding Key Differences.pdfUnit Testing vs End-To-End Testing_ Understanding Key Differences.pdf
Unit Testing vs End-To-End Testing_ Understanding Key Differences.pdf
kalichargn70th171
 
ANTIVIRUS
ANTIVIRUSANTIVIRUS
ANTIVIRUS
fauscha
 
Faq
FaqFaq
Faq
Anu j
 
Testing types functional and nonfunctional - Kati Holasz
Testing types   functional and nonfunctional - Kati HolaszTesting types   functional and nonfunctional - Kati Holasz
Testing types functional and nonfunctional - Kati Holasz
Holasz Kati
 
Effektives Consulting - Performance Engineering
Effektives Consulting - Performance EngineeringEffektives Consulting - Performance Engineering
Effektives Consulting - Performance Engineering
hitdhits
 
Continuous delivery best practices and essential tools
Continuous delivery best practices and essential toolsContinuous delivery best practices and essential tools
Continuous delivery best practices and essential tools
DBmaestro - Database DevOps
 
Ship Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdfShip Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdf
HeyEmbedMe
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
Heiswayi Nrird
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
cfry
 
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S... Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
Skytap Cloud
 
Ansible
AnsibleAnsible
What is Regression Testing Definition, Tools, Examples.pdf
What is Regression Testing Definition, Tools, Examples.pdfWhat is Regression Testing Definition, Tools, Examples.pdf
What is Regression Testing Definition, Tools, Examples.pdf
RohitBhandari66
 
Andy singleton continuous delivery-fcb - nov 2014
Andy singleton   continuous delivery-fcb - nov 2014Andy singleton   continuous delivery-fcb - nov 2014
Andy singleton continuous delivery-fcb - nov 2014
Brad Power
 
DevOps.pptx
DevOps.pptxDevOps.pptx
DevOps.pptx
EswarVineet
 
Leveraging Analytics for DevOps
Leveraging Analytics for DevOpsLeveraging Analytics for DevOps
Leveraging Analytics for DevOps
Michael Floyd
 
6 Reasons Why Continuous Testing is Essential in Wearable Technology Developm...
6 Reasons Why Continuous Testing is Essential in Wearable Technology Developm...6 Reasons Why Continuous Testing is Essential in Wearable Technology Developm...
6 Reasons Why Continuous Testing is Essential in Wearable Technology Developm...
kalichargn70th171
 

Similar to Release Often Release Safely (20)

devops certification
devops certificationdevops certification
devops certification
 
devops certification
devops certificationdevops certification
devops certification
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
 
Agile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is builtAgile and continuous delivery – How IBM Watson Workspace is built
Agile and continuous delivery – How IBM Watson Workspace is built
 
Unit Testing vs End-To-End Testing_ Understanding Key Differences.pdf
Unit Testing vs End-To-End Testing_ Understanding Key Differences.pdfUnit Testing vs End-To-End Testing_ Understanding Key Differences.pdf
Unit Testing vs End-To-End Testing_ Understanding Key Differences.pdf
 
ANTIVIRUS
ANTIVIRUSANTIVIRUS
ANTIVIRUS
 
Faq
FaqFaq
Faq
 
Testing types functional and nonfunctional - Kati Holasz
Testing types   functional and nonfunctional - Kati HolaszTesting types   functional and nonfunctional - Kati Holasz
Testing types functional and nonfunctional - Kati Holasz
 
Effektives Consulting - Performance Engineering
Effektives Consulting - Performance EngineeringEffektives Consulting - Performance Engineering
Effektives Consulting - Performance Engineering
 
Continuous delivery best practices and essential tools
Continuous delivery best practices and essential toolsContinuous delivery best practices and essential tools
Continuous delivery best practices and essential tools
 
Ship Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdfShip Confidently with progressive delivery and experimentation.pdf
Ship Confidently with progressive delivery and experimentation.pdf
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
 
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S... Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 
Ansible
AnsibleAnsible
Ansible
 
What is Regression Testing Definition, Tools, Examples.pdf
What is Regression Testing Definition, Tools, Examples.pdfWhat is Regression Testing Definition, Tools, Examples.pdf
What is Regression Testing Definition, Tools, Examples.pdf
 
Andy singleton continuous delivery-fcb - nov 2014
Andy singleton   continuous delivery-fcb - nov 2014Andy singleton   continuous delivery-fcb - nov 2014
Andy singleton continuous delivery-fcb - nov 2014
 
DevOps.pptx
DevOps.pptxDevOps.pptx
DevOps.pptx
 
Leveraging Analytics for DevOps
Leveraging Analytics for DevOpsLeveraging Analytics for DevOps
Leveraging Analytics for DevOps
 
6 Reasons Why Continuous Testing is Essential in Wearable Technology Developm...
6 Reasons Why Continuous Testing is Essential in Wearable Technology Developm...6 Reasons Why Continuous Testing is Essential in Wearable Technology Developm...
6 Reasons Why Continuous Testing is Essential in Wearable Technology Developm...
 

More from Sergejus Barinovas

True story of re architecting website for scale on windows azure
True story of re architecting website for scale on windows azureTrue story of re architecting website for scale on windows azure
True story of re architecting website for scale on windows azure
Sergejus Barinovas
 
Windows Azure from practical point of view
Windows Azure from practical point of viewWindows Azure from practical point of view
Windows Azure from practical point of view
Sergejus Barinovas
 
Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012
Sergejus Barinovas
 
Intro to Big Data using Hadoop
Intro to Big Data using Hadoop Intro to Big Data using Hadoop
Intro to Big Data using Hadoop
Sergejus Barinovas
 
Optimizing ASP.NET application performance: tough but necessary
Optimizing ASP.NET application performance: tough but necessaryOptimizing ASP.NET application performance: tough but necessary
Optimizing ASP.NET application performance: tough but necessary
Sergejus Barinovas
 
Kaip Agile skatina gerųjų praktikų panaudojimą
Kaip Agile skatina gerųjų praktikų panaudojimąKaip Agile skatina gerųjų praktikų panaudojimą
Kaip Agile skatina gerųjų praktikų panaudojimą
Sergejus Barinovas
 
Introduction to Windows Azure Platform
Introduction to Windows Azure PlatformIntroduction to Windows Azure Platform
Introduction to Windows Azure Platform
Sergejus Barinovas
 
Web Scale with NoSQL
Web Scale with NoSQLWeb Scale with NoSQL
Web Scale with NoSQL
Sergejus Barinovas
 
Moving applications to the cloud
Moving applications to the cloudMoving applications to the cloud
Moving applications to the cloud
Sergejus Barinovas
 
NoSQL - what's that
NoSQL - what's thatNoSQL - what's that
NoSQL - what's that
Sergejus Barinovas
 
Demystifying HTML5
Demystifying HTML5Demystifying HTML5
Demystifying HTML5
Sergejus Barinovas
 
Architecting Windows Azure
Architecting Windows AzureArchitecting Windows Azure
Architecting Windows Azure
Sergejus Barinovas
 
Cloud Computing and Microsoft Azure Platform
Cloud Computing and Microsoft Azure PlatformCloud Computing and Microsoft Azure Platform
Cloud Computing and Microsoft Azure Platform
Sergejus Barinovas
 

More from Sergejus Barinovas (13)

True story of re architecting website for scale on windows azure
True story of re architecting website for scale on windows azureTrue story of re architecting website for scale on windows azure
True story of re architecting website for scale on windows azure
 
Windows Azure from practical point of view
Windows Azure from practical point of viewWindows Azure from practical point of view
Windows Azure from practical point of view
 
Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012
 
Intro to Big Data using Hadoop
Intro to Big Data using Hadoop Intro to Big Data using Hadoop
Intro to Big Data using Hadoop
 
Optimizing ASP.NET application performance: tough but necessary
Optimizing ASP.NET application performance: tough but necessaryOptimizing ASP.NET application performance: tough but necessary
Optimizing ASP.NET application performance: tough but necessary
 
Kaip Agile skatina gerųjų praktikų panaudojimą
Kaip Agile skatina gerųjų praktikų panaudojimąKaip Agile skatina gerųjų praktikų panaudojimą
Kaip Agile skatina gerųjų praktikų panaudojimą
 
Introduction to Windows Azure Platform
Introduction to Windows Azure PlatformIntroduction to Windows Azure Platform
Introduction to Windows Azure Platform
 
Web Scale with NoSQL
Web Scale with NoSQLWeb Scale with NoSQL
Web Scale with NoSQL
 
Moving applications to the cloud
Moving applications to the cloudMoving applications to the cloud
Moving applications to the cloud
 
NoSQL - what's that
NoSQL - what's thatNoSQL - what's that
NoSQL - what's that
 
Demystifying HTML5
Demystifying HTML5Demystifying HTML5
Demystifying HTML5
 
Architecting Windows Azure
Architecting Windows AzureArchitecting Windows Azure
Architecting Windows Azure
 
Cloud Computing and Microsoft Azure Platform
Cloud Computing and Microsoft Azure PlatformCloud Computing and Microsoft Azure Platform
Cloud Computing and Microsoft Azure Platform
 

Recently uploaded

7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 

Recently uploaded (20)

7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 

Release Often Release Safely

  • 1. Release Often Release SafelySergejus Barinovas (@sergejusb)http://sergejus.blogas.lt
  • 2. This is not a theoretical presentation
  • 3. This presentation based on real life experience
  • 5. Dilemma: Innovative or Stable?InnovativeOften (bi-weekly) releases of new featuresHigher risk of bugs and downtimesStableHigher uptime and better customer perceptionSeasonal releases of new features
  • 6. We wanted both …… be innovative and agile while staying as much stable as possible
  • 7. Stability in our terms99.999% uptime for serving ads2 datacenters + clouds500 M requests / day
  • 8. Let’s learn Kung Fuof releasing often and safely
  • 9. Challenges we ha(d/ve)Detect issues in production as soon as possibleTest new features in production while reducing impact for customersRoll-out new features in a controlled manner
  • 10. Detect issues in production ASAPMonitoringChoose monitoring system carefullyIt took us about 1 year (Zabbix)First list all your possible monitoring use casesPrepare your software for monitoringLogging is a must have!Performance / SLA counters help to measure and understand software betterCreate a clear baseline to compare with after releases
  • 11. Detect issues in production ASAPAutomated functional testsDesigned to detect end-user issuesDifferently than unit and integration testsUI / business logicStill not as many as we want (Selenium UI / C#)Ongoing process of unifying automated QA testsRun after each release and on periodic basisVery important if you have > 1 serverHuge time saver if tests are repetitive
  • 12. Though unit tests help in finding bugs during coding, they are more vital when software evolves!Finding
  • 13. Test new features in productionEven ideal staging environment is not equal to production environmentBefore starting rolling-out new feature it is important to check itsResource consumptionCPU / RAM / HDD / IO / NetworkPerformance impact on existing functionalityResponse times / SLAStabilityErrors / memory leaks
  • 14. Test new features in productionUse Case #1:Safely rollout new feature that integrates into core data collection pipeline
  • 15. Test new features in productionDark releasesWorks best with brand new featuresRelease new feature to one or several serversNew feature gets real load, but is not available for customersHave automated rollback package in case something goes wrong
  • 16. Test new features in productionDark release notes from our release plan
  • 17. Test new features in productionUse Case #2:Safely migrate to the new SQL connection pooling mechanism
  • 18. Test new features in productionFeature flags and switchersWorks both for brand new features and updatesFeature can be switched on / off any timeif (FeatureEnabled) then …if (UseNewLogic) then … else …Can effect existing customersPossible to test each server one by one by switching feature on / off
  • 19. Test new features in productionUse Case #3:Safely migrate to the brand-new intelligent targeting subsystem
  • 20. Test new features in productionValvesVery similar to switchesFeature can get from 0% to 100% of real loadVery handy to gradually roll-out new features on each server one by oneSo far helped us a lot though require extra development effort
  • 21. Test new features in productionCaveats we had so farMake sure you can turn features on / off without effecting connected usersCreate simple interface to display current status of all switches and valves on each affected serverSecure access to switches and valves
  • 22. Controlling roll-out of new featureSwitches and valves enable very smooth and controlled roll-outPartial roll-out to different datacenters / cloudsDifferent datacenters / clouds have different version of feature releasedRedirect all traffic to the new or old version of feature
  • 23. Controlling roll-out of new featureFuture research: application level load balancingLoad balancer can act as a switches / valve without actually programming load distribution logicAbility to automatically redirect users to the new version of application while preserving old one
  • 24. SummaryMonitoring system is very important, but your software should be prepared for thisAutomated functional tests are functional monitoring of your softwareSwitches and valves are very powerful concept for testing in production and roll-outs, but require extra development and maintenance timeDark releases and partial roll-outs are the most cost effective safety mechanism
  • 25. Thanks! Questions?Sergejus Barinovas (@sergejusb)http://sergejus.blogas.lt