Continuous Deployment - Case Study at WIX

2,254 views
2,095 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,254
On SlideShare
0
From Embeds
0
Number of Embeds
222
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Continuous Deployment - Case Study at WIX

  1. 1. Continuous Delivery @ Wix Yaniv Even-Haim VP R&D Agile Israel 2012
  2. 2. A story on Wix time machine
  3. 3. Wix Intro
  4. 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. 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. 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. 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. 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. 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. 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. 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. 12. Wix Developer Lifecycle
  13. 13. New Relic - Monitoring
  14. 14. Application dashboard
  15. 15. Application dashboard• Self-Test – Can my application function?
  16. 16. Chix – Staging Deployment
  17. 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. 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

×