scaling wix to over 70 m users
TRANSCRIPT
Scaling Wix to over 70M users
2006 2007 2008 2009 2010 2011 2012 2013 2014
Wix is founded
First funding
Open beta
1 M users
eCommerce
10 M users
IPO
50 M users
Mobile
App Market
Hive
Wix Worldwide
HTML 5
Initial Architecture
Plan for gradual rewrite
First Challenge - 2008• Server updates imposed downtime• Two concerns• Creating websites• Viewing websites
• Different service level needed
Public vs Editor
Public Public DB
Editor Editor DB
MySQL is better NoSQL
Hosting
Co-Location Managed Hosting Cloud
Lease hardware and maintenance
Overnightprovisioning
Reliable software and hardware
Instant lease hardware
Instant provisioning
unlimited resourcesReliable software
unreliable hardware
Own and maintain your
hardwareProvision -> buy
deliver and install
Reliable software and hardware
2006 2011 2012 2013 2014
Austin Amsterdam
Amazon,GoogleChicago
Tampa
Wix Media• 500 GByte of small files– Hit IO limitations
• Need scalable solution– Number of files– HTTP connections
• Image manipulations
Wix Media Platform
x36x36
x32
x36x36
x32
Austin
Chicago
get 37D815B5.jpg
First fallback
CDNIf not in CDN
Wix Media Platform
x36x36
x32
x36x36
x32
Google Cloud
Austin
Chicago
get 37D815B5.jpg
First fallback
Second fallback
CDNIf not in CDN
Wix Media Platform
Google Cloud
AustinTampa
get 37D815B5.jpg
CDN
If not in CDN
AmazonCloud
Development Velocity - 2010
• Large and entangled codebase• Hard feature rollout
• While at the same time, the iPad was released
• We needed to enable Wix to move fast
People are the key
2011 2012 2013 2014
CI / CD / TDDDevOps
ScalaWix Framework
Micro-Services
2010
TDD Redux
2015
Node.js
2016
React
Angular
Companies & Guilds
Wix Framework
Modern
Flash Support
TDD Support
DevOps Support
Why CI / CD / TDD / DevOps?
• Fear of change• Low quality• Slow product development• 3 months from dev to GA
I want change
I want stability
CI / CD / TDD / DevOps• Small and fast changes• Empower the developer• Automate!!!• Measure!!!
• = x x RiskNumber
of changes
Size of change
$$$ impact of
change
Prepare Release
Deploy
Monitor
Micro-Services• Over 100 micro-services at Wix• A Micro Service is– Independent deployment– Independent OS process– Independent database
• Size of a service – based on the team
Micro-Services• The good news:– Great risk mitigation– Enforces separation of concerns–Minimal blockers for deployment
• The bad news:–More network hops - Increases % of failures– Requires Back / Forward compatibility– Distributed operations / transactions
Scala• Moves Java developers out of their
comfort zone.• Forced them to grow• Question how things are done
• End result – great innovation
Companies & Guilds• Companies focus on products• Guilds focus on technology
How
What
Company leader
Guild master
Angular
React
Server
QA
Analysis
UXeComm
Editor
Hotels
Music
Shoutout
Contacts
Angular & React• Modern & Productive
• Angular– Applications – like my account
• React–Websites – Wix sites are React– React Templates for applications – Wix
editor
Node.js• Frontend server• Complement Scala– Not replace
• Let frontend devs take ownership of the full HTTP stack– HTML, Ajax, Sockets, etc.
Questions?