SlideShare a Scribd company logo
Continuous Delivery @ Wix

       Yaniv Even-Haim
           VP R&D

  Agile Israel 2012
A story on Wix time machine
Wix Intro
Wix in numbers
•   22,000,000 registered users from 233 countries
•   ~1,000,000 new users every month
•   ~ 25,000 new websites every day
•   16,000,000 web sites
•   650,000 mobile sites

• Over 120Tbyte of users media files
• More than 1 Billion users media files

• 230+ servers in 3 data centers

• 270 employees
• 80 R&D people
Time machine event                  =
• Deployment capabilities : “no click” deployment
   – Dozens of services , 230+ servers over 3 Data Centers


• Backward and forward compatibility at the extreme
  field test case
   – Mixed versions of services / DB with no service downtime


• Empowerment
   – The power we give to individual


• Risk taken and failure embracement
CD is business concern
      Revenue per month
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…
201…



Traditional “Economies of scale” threaten by cloud technology
                  Be faster than small startups
       CD      “Economies of Agility “ = Velocity X Size
CD is culture & mindset
• Trust the developers
   – Empower developers to change production
   – Developer knows his system best


• Automation as a default choice
   – no more “is it worth to automate ? ”
   – Everything should be automated


• Welcome to the twilight zone
   – Product/Dev/QA boundaries are going down
   – Everyone need to care about everything
   – Less formality : Corridor - IN , Meeting Room - Out
Get out of thought land

      make sure you building the right it
            before build it right

• The Law of Failure
   – Most new “its” will fail even if they are flawlessly
     executed


• Invest less, in touch less , better ability to admit it fail
   – Data beats opinions - Let the market decide
Some Best Practices
• Everyone develops on the Trunk/Master
   – Release frequent – small pieces of functionality
   – It’s the developer responsibility not to break anything


• Code can get to production at anytime
   – TDD & integration test



• Use Feature Toggle
   – Unbaked new code can go to production – no harm done
   – New code goes with a guard – use new or old code
Some Best Practices
• Backwards and Forwards compatible
   – Each component has to function with latest, next or prior
     version of other components (including DBs)


• Gradual Deployment & Self Test
   – Deploy new version to one server and perform self test. If
     it passes, continue deployment to other servers


• A/B Testing
   – Open a new feature to a percent of your users. Is it better?
   – Deployment is an engineering decision
CD – prepare to invest…..
• Dev infrastructure - Refactor , Refactor, Refactor
• Testing infrastructure & know how
• Deployment infrastructure & tools

• Automation , Automation , Automation

• Monitoring (business and technical)
   –   hundreds of aspects
   –   thresholds use is a Must
   –   Monitor business KPIs
   –   Internal & external
   –   Endless Tuning & learning
Wix Developer Lifecycle
New Relic - Monitoring
Application dashboard
Application dashboard
• Self-Test – Can my application function?
Chix – Staging Deployment
Scaling challenges
• Deployment complexity
   – Development velocity  more services
   – Development velocity  Richer use cases -> more
     dependencies
• Development complexity
   – Very hard to work on master/trunk with 30+ dev on same
     code base
   – backward and forward comptability is not easy
• Wider set of technologies ,tools & languages
   – Higher level of infrastructure investments
   – Harder to have all around players
   – More communication/sync required
Scaling challenges – Cont.
• Complex Matrix Management
  -   People moving between teams frequently
  -   One can have several managers on different tasks
  -   Hard both to managers and employees
  -   Everyone should master the matrix management skills
• Product MVP practices
  – How to define a product that can be development in a day ?
  – And that can win in a/b test …


 It is not all or nothing game - it is continuous journey
Continuous Deployment - Case Study at WIX

More Related Content

Continuous Deployment - Case Study at WIX

  • 1. Continuous Delivery @ Wix Yaniv Even-Haim VP R&D Agile Israel 2012
  • 2. A story on Wix time machine
  • 4. Wix in numbers • 22,000,000 registered users from 233 countries • ~1,000,000 new users every month • ~ 25,000 new websites every day • 16,000,000 web sites • 650,000 mobile sites • Over 120Tbyte of users media files • More than 1 Billion users media files • 230+ servers in 3 data centers • 270 employees • 80 R&D people
  • 5. Time machine event = • Deployment capabilities : “no click” deployment – Dozens of services , 230+ servers over 3 Data Centers • Backward and forward compatibility at the extreme field test case – Mixed versions of services / DB with no service downtime • Empowerment – The power we give to individual • Risk taken and failure embracement
  • 6. CD is business concern Revenue per month 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… 201… Traditional “Economies of scale” threaten by cloud technology Be faster than small startups CD “Economies of Agility “ = Velocity X Size
  • 7. CD is culture & mindset • Trust the developers – Empower developers to change production – Developer knows his system best • Automation as a default choice – no more “is it worth to automate ? ” – Everything should be automated • Welcome to the twilight zone – Product/Dev/QA boundaries are going down – Everyone need to care about everything – Less formality : Corridor - IN , Meeting Room - Out
  • 8. Get out of thought land make sure you building the right it before build it right • The Law of Failure – Most new “its” will fail even if they are flawlessly executed • Invest less, in touch less , better ability to admit it fail – Data beats opinions - Let the market decide
  • 9. Some Best Practices • Everyone develops on the Trunk/Master – Release frequent – small pieces of functionality – It’s the developer responsibility not to break anything • Code can get to production at anytime – TDD & integration test • Use Feature Toggle – Unbaked new code can go to production – no harm done – New code goes with a guard – use new or old code
  • 10. Some Best Practices • Backwards and Forwards compatible – Each component has to function with latest, next or prior version of other components (including DBs) • Gradual Deployment & Self Test – Deploy new version to one server and perform self test. If it passes, continue deployment to other servers • A/B Testing – Open a new feature to a percent of your users. Is it better? – Deployment is an engineering decision
  • 11. CD – prepare to invest….. • Dev infrastructure - Refactor , Refactor, Refactor • Testing infrastructure & know how • Deployment infrastructure & tools • Automation , Automation , Automation • Monitoring (business and technical) – hundreds of aspects – thresholds use is a Must – Monitor business KPIs – Internal & external – Endless Tuning & learning
  • 13. New Relic - Monitoring
  • 15. Application dashboard • Self-Test – Can my application function?
  • 16. Chix – Staging Deployment
  • 17. Scaling challenges • Deployment complexity – Development velocity  more services – Development velocity  Richer use cases -> more dependencies • Development complexity – Very hard to work on master/trunk with 30+ dev on same code base – backward and forward comptability is not easy • Wider set of technologies ,tools & languages – Higher level of infrastructure investments – Harder to have all around players – More communication/sync required
  • 18. Scaling challenges – Cont. • Complex Matrix Management - People moving between teams frequently - One can have several managers on different tasks - Hard both to managers and employees - Everyone should master the matrix management skills • Product MVP practices – How to define a product that can be development in a day ? – And that can win in a/b test … It is not all or nothing game - it is continuous journey