SlideShare a Scribd company logo
Strategies In Continuous Delivery
Learn the “magic” behind the scenes
Aviran Mordo
Server Group Manager @ Wix
@aviranm
http://www.linkedin.com/in/aviran
21:34
About Wix
21:34
Wix in Numbers
• Over 35,000,000 users
– Adding over 1,000,000 new users each month
• Static storage is over 150TB of data
– Adding over 1TB of files every day
• 3 Data centers + 2 Clouds (Google AE, Amazon)
– Around 300 servers
• Over 40,000,000 Server API calls per day
• ~400 people work at wix
– Over 100 people in R&D
21:34
Is Doing Multiple
Deployments A Day Takes
Guts ?
21:34
21:34
From Jan’ 2013 – Jun’ 2013
• 1500
• 470
• 200
21:34
From Jan’ 2013 – Jun’2013
• 1500 Deployments
• 470 A/B Tests
• 200 Feature Toggles
Continuous Delivery at Wix
• Abandon “VERSION” paradigm – move feature
centric life
• Make small and frequent release as soon as
possible
• Automate everything – TDD/CI/CD
• Measure Everything
–A/B test every new feature
–Monitor real KPIs (business, not CPU)
21:34
Continuous Delivery at Wix
• Empower the developer
–The developer is responsible from product idea to 1M
active users
–Remove every obstacle in the developer’s path
–Big cultural change from waterfall – affects the whole
company
21:34
Test Driven Development
• No new code is pushed to Git without being fully tested
• Before fixing a bug first write a test to reproduce the bug
• Cover legacy (untested) systems with Integration tests
21:34
Test Driven Development
• What people think is the impact on development
–TDD slows down development
–With TDD we write more code (product + test code).
• Current Test Count (U-Tests + IT-Tests) – over
10,000
21:34
Test Driven Development
• Actual impact on development
–We develop products faster
–Removes fear of change
–Easier to enter some one else’s project
–Do we really need QA? (Yes, they code tests)
–Writing a feature is 10-30% slower, 45-90% less bugs
–50% faster to reach production.
–Considerably faster time to fix bugs
21:34
Guidelines for successful TDD
• Tests should run on project checkout to a random
computer.
• Tests that cannot be debugged on a developer
machine will never consistently run for any period
of time
• Tests should run fast
• Tests have to be readable – They are the project’s
specs
21:34
Feature Toggles
21:34
Feature Toggles
• Everyone develops on the Trunk
• Every piece of code can get to production at
anytime
21:34
Feature Toggle to the rescue
• Unused new code can go to production – no harm done
• Operational new code goes with a guard – use new or old code by
feature toggle
21:34
Usage example
Simple “if” statement in your code
21:34
Feature Toggle Strategies (gradual expose users)
• Company employees
• Specific users or group of users
• Percentage of traffic
• By GEO
• By Language
• By user-agent
• User Profile based
• By context (site id or some kind of hash on site id)
21:34
Feature Toggle Override
• By specific server
– Used to test system load
– New database flows/migration
– Refactoring that may affect performance and memory usage
• By Url parameter
– Enable internal testing
– Product acceptance
– Faking GEO
• By FT cookie value
– Testing
– When working with API on a single page application
21:34
Feature Toggles Management
21:34
A/B Tests
21:34
A/B Test
• Every new feature is A/B tested
• We open the new feature to a % of users
– Define KPIs to check if the new feature is
better or worse
– If it is better, we keep it
– If worse, we check why and improve
– If we find flaws, the impact is just for % of our
users (kind of Feature Toggle)
21:34
An interesting site effect on product
• How many times did you have the conversion
“what is better”?
– Put the menu on top / on the side
• Well, how about building both and A/B Testing?
21:34
Marking users with toss value in a cookie
• Anonymous user
– Toss is randomly determined
– Can not guarantee persistent experience if changing browser
• Registered User
– Toss is determined by the user ID
– Guarantee toss persistency across browsers
– Allows setting additional tossing criteria (for example new users only)
– Only use this for sections that a user has to be authenticated
21:34
• Do not mix anonymous and registered tests
• AB test parentage of users with optional filters
– New Users Only (Registered users only)
– By language
– By GEO
– By Browser
– user-agent
– OS
– Any other criteria you have on your users
21:34
A/B Test Features
• A/B Test Override
– Allows setting a value of a test for validation
– Helps support experience what users experiencing
• Override methods
– Via URL parameter
– Via cookie
• Start/Stop Test
• Pause tests
• Bots always get “A”21:34
Manage your tests
21:34
Refactoring
21:34
Refactoring
• Before refactoring make sure everything is covered with
tests
– Legacy code usually covered by IT tests
• Refactor from inside out
– Small iterations with tests
– Refactor small methods - make sure the tests don’t break
– Deploy often
• Re-write from the outside in
– Write from scratch
– Code duplication sometimes needed (temporary)
– Protected by Feature Toggle21:34
Code branch
21:34
New Code Old Code
FT
Opene
d
Yes No
DB Schema Changes Without
Downtime
• Adding columns
– Use another table link by primary key
– Use blob field for schema flexibility
• Removing fields
– Stop using. Do not do any DB schema
changes
21:34
New DB schema
• Plan a lazy migration path controlled by feature toggle
1. Write to old / Read from old
2. Write to both / Read from old
3. Write to both / Read from new, fallback to old
4. Write to new / Read from new, fallback to old
5. Eagerly migrate data in the background
6. Write to new / Read from new
21:34
Gradual Deployment
21:34
• Assume two components
• We shutdown one and install on it the
new version. It is not active yet
• Do self test
• Activate the new server it is passes self test
• Continue deploying the other servers,
a few at a time, checking each one with
self test
A 1.1 B 1.1
A 1.1
B 1.2
A 1.1A 1.1 B 1.1B 1.1
A 1.1A 1.1
B 1.1
B 1.2
A 1.1
B 1.2
A 1.1A 1.1
B 1.1
B 1.2
A 1.1 B 1.1A 1.1A 1.1 B 1.1B 1.2
Self Test / Post Deployment Test
After each server deployment run a self test before deploying the
next server.
• Checking server configuration and topology
– Make sure database is accessible (DB connection string)
– Is the schema the one I expect
– Access required local resources (data files, other config files, templates,
etc’)
– Access remote resources
– RPC / REST endpoints reachable and operational
• Server will refuse requests unless it passes the self test
• Allow a way to skip self test (and continue deployment)21:34
Tools - App-info
21:34
Backward and Forward compatible
• Assume two components
• We release a new version of one
• Now Rollback the other…
21:34
A 1.1
B 1.2
A 1.2
B 1.1A 1.1A 1.1
B 1.1
B 1.2
A 1.2A 1.1
B 1.1B 1.1
A 1.1 B 1.1A 1.1A 1.1 B 1.1B 1.1
A 1.0
A 1.2A 1.1 B 1.2B 1.1
B 1.2 A 1.2
A 1.2A 1.1 B 1.2B 1.1
B 1.0
Production Visibility
21:34
Prepare for a rainy day
How does it work – CD Practices
• Test driven development
• Small Development Iterations
• Backwards and Forwards compatible
• Gradual Deployment & Self-Test
• Feature Toggle
• A/B Testing
• Exception Classification
• Production visibility
21:34
Where are we today?
• We have re-written our flash editor product as an
HTML 5 editor
– In just 4 months
• Introduced Wix 3rd party applications (developers API)
– In just 6 weeks
• We are easily replacing significant parts of our
infrastructure
• And we are doing ~10 releases a day!
21:34
0
5
10
15
20
25
30
35
1/1/2013
1/4/2013
1/8/2013
1/11/2013
1/15/2013
1/18/2013
1/22/2013
1/27/2013
1/30/2013
2/3/2013
2/6/2013
2/10/2013
2/13/2013
2/18/2013
2/21/2013
2/25/2013
2/28/2013
3/4/2013
3/7/2013
3/12/2013
3/15/2013
3/19/2013
3/24/2013
4/3/2013
4/7/2013
4/10/2013
4/15/2013
4/19/2013
4/23/2013
4/28/2013
5/1/2013
5/6/2013
5/9/2013
5/13/2013
5/19/2013
5/22/2013
5/26/2013
5/29/2013
6/1/2013
6/4/2013
6/7/2013
6/11/2013
6/16/2013
(blank)
Total
Total
21:34
21:34
Aviran Mordo
@aviranm
http://www.linkedin.com/in/aviran
Read more: The Road To Continuous Delivery:
http://goo.gl/K6zEK
http://www.slideshare.net/aviranwix/strategies-in-continuous-delivery

More Related Content

PPTX
Lessons Learned Monitoring Production
PPTX
Road to Continuous Delivery - Wix.com
PPTX
The Art of A/B Testing
PPTX
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
PPTX
Wix Dev-Centric Culture And Continuous Delivery
PPTX
Scaling r&d org while maintaining quality
PPTX
Best Practices for Database Deployments
PDF
Continuous testing in agile projects 2015
Lessons Learned Monitoring Production
Road to Continuous Delivery - Wix.com
The Art of A/B Testing
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
Wix Dev-Centric Culture And Continuous Delivery
Scaling r&d org while maintaining quality
Best Practices for Database Deployments
Continuous testing in agile projects 2015

What's hot (20)

PPTX
Scaling Wix engineering
PPTX
Database Deployment Pipeline - SQL In The City Workshop 2014
PDF
Simplify Salesforce Testing with AI-Driven Codeless Tools
PPTX
Continuous everything
PPTX
Agile Testing in Enterprise: Way to transform - SQA Days 2014
PPTX
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
PDF
TestCorner #22 - How DevOps helps QA daily works​
 
PDF
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
PPTX
Visual Studio LightSwitch (Beta 1) Overview
PDF
DevOps: Find Solutions, Not More Defects
PPTX
Test Automation Canvas
PDF
Continuous Integration, Deploy, Test From Beginning To End 2014
PPTX
Avoiding test hell
PDF
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
PDF
Running JMeter Tests In Appvance PerformanceCloud
PDF
Putting Quality First through Continuous Testing
PPTX
Accelerating Your Test Execution Pipeline
PPTX
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
PPTX
JavaOne - Performance Focused DevOps to Improve Cont Delivery
PDF
Hacker News Meetup April 2014
Scaling Wix engineering
Database Deployment Pipeline - SQL In The City Workshop 2014
Simplify Salesforce Testing with AI-Driven Codeless Tools
Continuous everything
Agile Testing in Enterprise: Way to transform - SQA Days 2014
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
TestCorner #22 - How DevOps helps QA daily works​
 
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
Visual Studio LightSwitch (Beta 1) Overview
DevOps: Find Solutions, Not More Defects
Test Automation Canvas
Continuous Integration, Deploy, Test From Beginning To End 2014
Avoiding test hell
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
Running JMeter Tests In Appvance PerformanceCloud
Putting Quality First through Continuous Testing
Accelerating Your Test Execution Pipeline
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
JavaOne - Performance Focused DevOps to Improve Cont Delivery
Hacker News Meetup April 2014
Ad

Viewers also liked (20)

PPTX
Scaling wix with microservices and multi cloud - 2015
PPTX
Scaling up to 30M users - The Wix Story
PPTX
Mircoservices, dev ops and Engineering best practices at Wix.com
PPTX
Entregas Contínuas com feature toggles
PDF
Who will test your tests?
PPTX
Pull requests and testers can be friends
PDF
Continuous Visual Integration - RailsConf 2016 - Mike Fotinakis - Percy.io
PDF
Overcoming the fear of deployments
PDF
Continuous Integration, Delivery and Deployment
PDF
Refactoring for Software Design Smells - Tech Talk
PPTX
Why we used Feature Branching
PPTX
Requirement and Test for Continuous Delivery - Customer in focus at Scania Co...
PDF
Trunk Based Development (CBSoft 2011)
PDF
Feature Toggle Examples
PDF
Feature Flags Are Flawed: Let's Make Them Better
PDF
Feature flags to speed up & de risk development
PPTX
Feature Flagging to Reduce Risk in Database Migrations
PPTX
Feature Toggles
PDF
Test Automation
PPTX
Feature Toggle XP Conference 2016 Kalpana Gulati
Scaling wix with microservices and multi cloud - 2015
Scaling up to 30M users - The Wix Story
Mircoservices, dev ops and Engineering best practices at Wix.com
Entregas Contínuas com feature toggles
Who will test your tests?
Pull requests and testers can be friends
Continuous Visual Integration - RailsConf 2016 - Mike Fotinakis - Percy.io
Overcoming the fear of deployments
Continuous Integration, Delivery and Deployment
Refactoring for Software Design Smells - Tech Talk
Why we used Feature Branching
Requirement and Test for Continuous Delivery - Customer in focus at Scania Co...
Trunk Based Development (CBSoft 2011)
Feature Toggle Examples
Feature Flags Are Flawed: Let's Make Them Better
Feature flags to speed up & de risk development
Feature Flagging to Reduce Risk in Database Migrations
Feature Toggles
Test Automation
Feature Toggle XP Conference 2016 Kalpana Gulati
Ad

Similar to Strategies in continuous delivery (20)

PDF
SQL Server DevOps Jumpstart
PPTX
PPTX
Dev/Test scenarios in DevOps world
PDF
Architecture for the cloud deployment case study future
PPTX
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
PDF
Continuous Deployment of your Application @JUGtoberfest
PPT
Understand release engineering
PDF
Architecting for the cloud storage build test
PDF
The Evolution of Continuous Delivery at Scale @ Linkedin
PPTX
Evolutionary database design
PPTX
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
PDF
Continuous Deployment of your Application @SpringOne
PPTX
Continuous Integration for Salesforce1 Platform
PPTX
Introduction to GOCD - Amulya Sharma
PPTX
Extreme Makeover OnBase Edition
PPTX
In (database) automation we trust
PDF
Continuous Delivery: releasing Better and Faster at Dashlane
PPTX
Why retail companies can't afford database downtime
PPTX
Always On - Zero Downtime releases
PPTX
The Challenges & Pitfalls of Database Continuous Delivery
SQL Server DevOps Jumpstart
Dev/Test scenarios in DevOps world
Architecture for the cloud deployment case study future
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
Continuous Deployment of your Application @JUGtoberfest
Understand release engineering
Architecting for the cloud storage build test
The Evolution of Continuous Delivery at Scale @ Linkedin
Evolutionary database design
Webinar: "DBMaestro: Database Enforced Change Management (DECM) tool"
Continuous Deployment of your Application @SpringOne
Continuous Integration for Salesforce1 Platform
Introduction to GOCD - Amulya Sharma
Extreme Makeover OnBase Edition
In (database) automation we trust
Continuous Delivery: releasing Better and Faster at Dashlane
Why retail companies can't afford database downtime
Always On - Zero Downtime releases
The Challenges & Pitfalls of Database Continuous Delivery

More from Aviran Mordo (11)

PDF
Platform as a Runtime - PaaR QCON 2024 - Final
PPTX
Scaling Engineering by Hacking Conway’s Law - Geecon,2022
PDF
Arrested by the cap devoxx uk 2018
PPTX
Scaling wix.com to 100 million users
PPTX
Advanced A/B Testing - Jax London 2015
PPTX
Scaling wix with microservices architecture jax london-2015
PPTX
Scaling wix with microservices architecture devoxx London 2015
PPTX
Wix.com Back-end Engineering Guild Manifesto
PPTX
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
PPTX
Wix Architecture at Scale - QCon London 2014
PPTX
Introduction to HTTP protocol
Platform as a Runtime - PaaR QCON 2024 - Final
Scaling Engineering by Hacking Conway’s Law - Geecon,2022
Arrested by the cap devoxx uk 2018
Scaling wix.com to 100 million users
Advanced A/B Testing - Jax London 2015
Scaling wix with microservices architecture jax london-2015
Scaling wix with microservices architecture devoxx London 2015
Wix.com Back-end Engineering Guild Manifesto
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
Wix Architecture at Scale - QCon London 2014
Introduction to HTTP protocol

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPT
Teaching material agriculture food technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Cloud computing and distributed systems.
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Machine learning based COVID-19 study performance prediction
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
cuic standard and advanced reporting.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation theory and applications.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Teaching material agriculture food technology
Network Security Unit 5.pdf for BCA BBA.
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Cloud computing and distributed systems.
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Programs and apps: productivity, graphics, security and other tools
Machine learning based COVID-19 study performance prediction
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
The AUB Centre for AI in Media Proposal.docx
cuic standard and advanced reporting.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation theory and applications.pdf
Understanding_Digital_Forensics_Presentation.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding
Building Integrated photovoltaic BIPV_UPV.pdf

Strategies in continuous delivery

  • 1. Strategies In Continuous Delivery Learn the “magic” behind the scenes Aviran Mordo Server Group Manager @ Wix @aviranm http://www.linkedin.com/in/aviran 21:34
  • 3. Wix in Numbers • Over 35,000,000 users – Adding over 1,000,000 new users each month • Static storage is over 150TB of data – Adding over 1TB of files every day • 3 Data centers + 2 Clouds (Google AE, Amazon) – Around 300 servers • Over 40,000,000 Server API calls per day • ~400 people work at wix – Over 100 people in R&D 21:34
  • 4. Is Doing Multiple Deployments A Day Takes Guts ? 21:34
  • 5. 21:34 From Jan’ 2013 – Jun’ 2013 • 1500 • 470 • 200
  • 6. 21:34 From Jan’ 2013 – Jun’2013 • 1500 Deployments • 470 A/B Tests • 200 Feature Toggles
  • 7. Continuous Delivery at Wix • Abandon “VERSION” paradigm – move feature centric life • Make small and frequent release as soon as possible • Automate everything – TDD/CI/CD • Measure Everything –A/B test every new feature –Monitor real KPIs (business, not CPU) 21:34
  • 8. Continuous Delivery at Wix • Empower the developer –The developer is responsible from product idea to 1M active users –Remove every obstacle in the developer’s path –Big cultural change from waterfall – affects the whole company 21:34
  • 9. Test Driven Development • No new code is pushed to Git without being fully tested • Before fixing a bug first write a test to reproduce the bug • Cover legacy (untested) systems with Integration tests 21:34
  • 10. Test Driven Development • What people think is the impact on development –TDD slows down development –With TDD we write more code (product + test code). • Current Test Count (U-Tests + IT-Tests) – over 10,000 21:34
  • 11. Test Driven Development • Actual impact on development –We develop products faster –Removes fear of change –Easier to enter some one else’s project –Do we really need QA? (Yes, they code tests) –Writing a feature is 10-30% slower, 45-90% less bugs –50% faster to reach production. –Considerably faster time to fix bugs 21:34
  • 12. Guidelines for successful TDD • Tests should run on project checkout to a random computer. • Tests that cannot be debugged on a developer machine will never consistently run for any period of time • Tests should run fast • Tests have to be readable – They are the project’s specs 21:34
  • 14. Feature Toggles • Everyone develops on the Trunk • Every piece of code can get to production at anytime 21:34
  • 15. Feature Toggle to the rescue • Unused new code can go to production – no harm done • Operational new code goes with a guard – use new or old code by feature toggle 21:34
  • 16. Usage example Simple “if” statement in your code 21:34
  • 17. Feature Toggle Strategies (gradual expose users) • Company employees • Specific users or group of users • Percentage of traffic • By GEO • By Language • By user-agent • User Profile based • By context (site id or some kind of hash on site id) 21:34
  • 18. Feature Toggle Override • By specific server – Used to test system load – New database flows/migration – Refactoring that may affect performance and memory usage • By Url parameter – Enable internal testing – Product acceptance – Faking GEO • By FT cookie value – Testing – When working with API on a single page application 21:34
  • 21. A/B Test • Every new feature is A/B tested • We open the new feature to a % of users – Define KPIs to check if the new feature is better or worse – If it is better, we keep it – If worse, we check why and improve – If we find flaws, the impact is just for % of our users (kind of Feature Toggle) 21:34
  • 22. An interesting site effect on product • How many times did you have the conversion “what is better”? – Put the menu on top / on the side • Well, how about building both and A/B Testing? 21:34
  • 23. Marking users with toss value in a cookie • Anonymous user – Toss is randomly determined – Can not guarantee persistent experience if changing browser • Registered User – Toss is determined by the user ID – Guarantee toss persistency across browsers – Allows setting additional tossing criteria (for example new users only) – Only use this for sections that a user has to be authenticated 21:34
  • 24. • Do not mix anonymous and registered tests • AB test parentage of users with optional filters – New Users Only (Registered users only) – By language – By GEO – By Browser – user-agent – OS – Any other criteria you have on your users 21:34
  • 25. A/B Test Features • A/B Test Override – Allows setting a value of a test for validation – Helps support experience what users experiencing • Override methods – Via URL parameter – Via cookie • Start/Stop Test • Pause tests • Bots always get “A”21:34
  • 28. Refactoring • Before refactoring make sure everything is covered with tests – Legacy code usually covered by IT tests • Refactor from inside out – Small iterations with tests – Refactor small methods - make sure the tests don’t break – Deploy often • Re-write from the outside in – Write from scratch – Code duplication sometimes needed (temporary) – Protected by Feature Toggle21:34
  • 29. Code branch 21:34 New Code Old Code FT Opene d Yes No
  • 30. DB Schema Changes Without Downtime • Adding columns – Use another table link by primary key – Use blob field for schema flexibility • Removing fields – Stop using. Do not do any DB schema changes 21:34
  • 31. New DB schema • Plan a lazy migration path controlled by feature toggle 1. Write to old / Read from old 2. Write to both / Read from old 3. Write to both / Read from new, fallback to old 4. Write to new / Read from new, fallback to old 5. Eagerly migrate data in the background 6. Write to new / Read from new 21:34
  • 32. Gradual Deployment 21:34 • Assume two components • We shutdown one and install on it the new version. It is not active yet • Do self test • Activate the new server it is passes self test • Continue deploying the other servers, a few at a time, checking each one with self test A 1.1 B 1.1 A 1.1 B 1.2 A 1.1A 1.1 B 1.1B 1.1 A 1.1A 1.1 B 1.1 B 1.2 A 1.1 B 1.2 A 1.1A 1.1 B 1.1 B 1.2 A 1.1 B 1.1A 1.1A 1.1 B 1.1B 1.2
  • 33. Self Test / Post Deployment Test After each server deployment run a self test before deploying the next server. • Checking server configuration and topology – Make sure database is accessible (DB connection string) – Is the schema the one I expect – Access required local resources (data files, other config files, templates, etc’) – Access remote resources – RPC / REST endpoints reachable and operational • Server will refuse requests unless it passes the self test • Allow a way to skip self test (and continue deployment)21:34
  • 35. Backward and Forward compatible • Assume two components • We release a new version of one • Now Rollback the other… 21:34 A 1.1 B 1.2 A 1.2 B 1.1A 1.1A 1.1 B 1.1 B 1.2 A 1.2A 1.1 B 1.1B 1.1 A 1.1 B 1.1A 1.1A 1.1 B 1.1B 1.1 A 1.0 A 1.2A 1.1 B 1.2B 1.1 B 1.2 A 1.2 A 1.2A 1.1 B 1.2B 1.1 B 1.0
  • 37. How does it work – CD Practices • Test driven development • Small Development Iterations • Backwards and Forwards compatible • Gradual Deployment & Self-Test • Feature Toggle • A/B Testing • Exception Classification • Production visibility 21:34
  • 38. Where are we today? • We have re-written our flash editor product as an HTML 5 editor – In just 4 months • Introduced Wix 3rd party applications (developers API) – In just 6 weeks • We are easily replacing significant parts of our infrastructure • And we are doing ~10 releases a day! 21:34 0 5 10 15 20 25 30 35 1/1/2013 1/4/2013 1/8/2013 1/11/2013 1/15/2013 1/18/2013 1/22/2013 1/27/2013 1/30/2013 2/3/2013 2/6/2013 2/10/2013 2/13/2013 2/18/2013 2/21/2013 2/25/2013 2/28/2013 3/4/2013 3/7/2013 3/12/2013 3/15/2013 3/19/2013 3/24/2013 4/3/2013 4/7/2013 4/10/2013 4/15/2013 4/19/2013 4/23/2013 4/28/2013 5/1/2013 5/6/2013 5/9/2013 5/13/2013 5/19/2013 5/22/2013 5/26/2013 5/29/2013 6/1/2013 6/4/2013 6/7/2013 6/11/2013 6/16/2013 (blank) Total Total
  • 39. 21:34
  • 40. 21:34 Aviran Mordo @aviranm http://www.linkedin.com/in/aviran Read more: The Road To Continuous Delivery: http://goo.gl/K6zEK http://www.slideshare.net/aviranwix/strategies-in-continuous-delivery

Editor's Notes

  • #2: Today I’m going to tell you some of the strategies we use that allow us to deploy 10 times a day
  • #8: Management role is to help developer do its work
  • #9: Management role is to help developer do its work
  • #14: One of the key components to successful CD
  • #19: Full load on a single serverOverride size limitation by setting a cookie on the client
  • #22: Link to purchase on the editor was causing drop in conversion because users went there too soon without intent
  • #23: Link to purchase on the editor was causing drop in conversion because users went there too soon without intent