SlideShare uma empresa Scribd logo
1 de 25
Release Often Release Safely Sergejus 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? Innovative Often (bi-weekly) releases of new features Higher risk of bugs and downtimes Stable Higher uptime and better customer perception Seasonal releases of new features
We wanted both … … be innovative and agile while staying as much stable as possible
Stability in our terms 99.999% uptime for serving ads 2 datacenters + clouds 500 M requests / day
Let’s learn Kung Fuof releasing often and safely
Challenges we ha(d/ve) Detect issues in production as soon as possible Test new features in production while reducing impact for customers Roll-out new features in a controlled manner
Detect issues in production ASAP Monitoring Choose monitoring system carefully It took us about 1 year (Zabbix) First list all your possible monitoring use cases Prepare your software for monitoring Logging is a must have! Performance / SLA counters help to measure and understand software better Create a clear baseline to compare with after releases
Detect issues in production ASAP Automated functional tests Designed to detect end-user issues Differently than unit and integration tests UI / business logic Still not as many as we want (Selenium UI / C#) Ongoing process of unifying automated QA tests Run after each release and on periodic basis Very important if you have > 1 server Huge 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 production Even ideal staging environment is not equal to production environment Before starting rolling-out new feature it is important to check its Resource consumption CPU / RAM / HDD / IO / Network Performance impact on existing functionality Response times / SLA Stability Errors / memory leaks
Test new features in production Use Case #1: Safely rollout new feature that integrates into core data collection pipeline
Test new features in production Dark releases Works best with brand new features Release new feature to one or several servers New feature gets real load, but is not available for customers Have automated rollback package in case something goes wrong
Test new features in production Dark release notes from our release plan
Test new features in production Use Case #2: Safely migrate to the new SQL connection pooling mechanism
Test new features in production Feature flags and switchers Works both for brand new features and updates Feature can be switched on / off any time if (FeatureEnabled) then … if (UseNewLogic) then … else … Can effect existing customers Possible to test each server one by one by switching feature on / off
Test new features in production Use Case #3: Safely migrate to the brand-new intelligent targeting subsystem
Test new features in production Valves Very similar to switches Feature can get from 0% to 100% of real load Very handy to gradually roll-out new features on each server one by one So far helped us a lot though require extra development effort
Test new features in production Caveats we had so far Make sure you can turn features on / off without effecting connected users Create simple interface to display current status        of all switches and valves on each affected server Secure access to switches and valves
Controlling roll-out of new feature Switches and valves enable very smooth and controlled roll-out Partial roll-out to different datacenters / clouds Different datacenters / clouds have different version of feature released Redirect all traffic to the new or old version of feature
Controlling roll-out of new feature Future research: application level load balancing Load balancer can act as a switches / valve without actually programming load distribution logic Ability to automatically redirect users to the new version of application while preserving old one
Summary Monitoring system is very important, but your software should be prepared for this Automated functional tests are functional monitoring of your software Switches and valves are very powerful concept for testing in production and roll-outs, but require extra development and maintenance time Dark releases and partial roll-outs are the most cost effective safety mechanism
Thanks! Questions? Sergejus Barinovas (@sergejusb) http://sergejus.blogas.lt

Mais conteúdo relacionado

Mais procurados

Adopting Kubernetes with Puppet
Adopting Kubernetes with PuppetAdopting Kubernetes with Puppet
Adopting Kubernetes with PuppetPuppet
 
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 ShapewaysPuppet
 
Building Automated Infrastructures
Building Automated InfrastructuresBuilding Automated Infrastructures
Building Automated Infrastructureselliando dias
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Puppet
 
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.23Puppet
 
Migrating to Microservices
Migrating to MicroservicesMigrating to Microservices
Migrating to MicroservicesBizTalk360
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Puppet
 
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 AzureIbon 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.2017Puppet
 
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 failureDiUS
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Puppet
 
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
 

Mais procurados (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?
 

Semelhante a Release Often Release Safely

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 builtVincent Burckhardt
 
ANTIVIRUS
ANTIVIRUSANTIVIRUS
ANTIVIRUSfauscha
 
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 HolaszHolasz Kati
 
Effektives Consulting - Performance Engineering
Effektives Consulting - Performance EngineeringEffektives Consulting - Performance Engineering
Effektives Consulting - Performance Engineeringhitdhits
 
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 toolsDBmaestro - 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.pdfHeyEmbedMe
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build AutomationHeiswayi Nrird
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposalcfry
 
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
 
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.pdfRohitBhandari66
 
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 2014Brad Power
 
Leveraging Analytics for DevOps
Leveraging Analytics for DevOpsLeveraging Analytics for DevOps
Leveraging Analytics for DevOpsMichael Floyd
 
Devops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentDevops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentSandyJohn5
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automationopkey
 

Semelhante a 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
 
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
 
Devops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentDevops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous Development
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automation
 

Mais de 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 azureSergejus 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 viewSergejus Barinovas
 
Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012Flashback: QCon San Francisco 2012
Flashback: QCon San Francisco 2012Sergejus 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 necessarySergejus 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 PlatformSergejus Barinovas
 
Moving applications to the cloud
Moving applications to the cloudMoving applications to the cloud
Moving applications to the cloudSergejus Barinovas
 
Cloud Computing and Microsoft Azure Platform
Cloud Computing and Microsoft Azure PlatformCloud Computing and Microsoft Azure Platform
Cloud Computing and Microsoft Azure PlatformSergejus Barinovas
 

Mais de 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
 

Último

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Último (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Release Often Release Safely

  • 1. Release Often Release Safely Sergejus 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? Innovative Often (bi-weekly) releases of new features Higher risk of bugs and downtimes Stable Higher uptime and better customer perception Seasonal releases of new features
  • 6. We wanted both … … be innovative and agile while staying as much stable as possible
  • 7. Stability in our terms 99.999% uptime for serving ads 2 datacenters + clouds 500 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 possible Test new features in production while reducing impact for customers Roll-out new features in a controlled manner
  • 10. Detect issues in production ASAP Monitoring Choose monitoring system carefully It took us about 1 year (Zabbix) First list all your possible monitoring use cases Prepare your software for monitoring Logging is a must have! Performance / SLA counters help to measure and understand software better Create a clear baseline to compare with after releases
  • 11. Detect issues in production ASAP Automated functional tests Designed to detect end-user issues Differently than unit and integration tests UI / business logic Still not as many as we want (Selenium UI / C#) Ongoing process of unifying automated QA tests Run after each release and on periodic basis Very important if you have > 1 server Huge 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 production Even ideal staging environment is not equal to production environment Before starting rolling-out new feature it is important to check its Resource consumption CPU / RAM / HDD / IO / Network Performance impact on existing functionality Response times / SLA Stability Errors / memory leaks
  • 14. Test new features in production Use Case #1: Safely rollout new feature that integrates into core data collection pipeline
  • 15. Test new features in production Dark releases Works best with brand new features Release new feature to one or several servers New feature gets real load, but is not available for customers Have automated rollback package in case something goes wrong
  • 16. Test new features in production Dark release notes from our release plan
  • 17. Test new features in production Use Case #2: Safely migrate to the new SQL connection pooling mechanism
  • 18. Test new features in production Feature flags and switchers Works both for brand new features and updates Feature can be switched on / off any time if (FeatureEnabled) then … if (UseNewLogic) then … else … Can effect existing customers Possible to test each server one by one by switching feature on / off
  • 19. Test new features in production Use Case #3: Safely migrate to the brand-new intelligent targeting subsystem
  • 20. Test new features in production Valves Very similar to switches Feature can get from 0% to 100% of real load Very handy to gradually roll-out new features on each server one by one So far helped us a lot though require extra development effort
  • 21. Test new features in production Caveats we had so far Make sure you can turn features on / off without effecting connected users Create simple interface to display current status of all switches and valves on each affected server Secure access to switches and valves
  • 22. Controlling roll-out of new feature Switches and valves enable very smooth and controlled roll-out Partial roll-out to different datacenters / clouds Different datacenters / clouds have different version of feature released Redirect all traffic to the new or old version of feature
  • 23. Controlling roll-out of new feature Future research: application level load balancing Load balancer can act as a switches / valve without actually programming load distribution logic Ability to automatically redirect users to the new version of application while preserving old one
  • 24. Summary Monitoring system is very important, but your software should be prepared for this Automated functional tests are functional monitoring of your software Switches and valves are very powerful concept for testing in production and roll-outs, but require extra development and maintenance time Dark releases and partial roll-outs are the most cost effective safety mechanism
  • 25. Thanks! Questions? Sergejus Barinovas (@sergejusb) http://sergejus.blogas.lt