Your SlideShare is downloading. ×

Continuous Deployment - Case Study at WIX


Published on

Continuous Deployment - Case Study at WIX …

Continuous Deployment - Case Study at WIX
By Yaniv Even-Haim
@ Agile Israel 2012

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Continuous Delivery @ Wix Yaniv Even-Haim VP R&D Agile Israel 2012
  • 2. A story on Wix time machine
  • 3. Wix Intro
  • 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 month201…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
  • 12. Wix Developer Lifecycle
  • 13. New Relic - Monitoring
  • 14. Application dashboard
  • 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