Overview
Wix.com is a leading cloud‑based development platform for small businesses to operate online. With the support of Wix.com, millions of businesses, organizations, professionals, and individuals are empowered to take their businesses, brands, and workflows online.
Challenge
Wix provides a cloud‑based web development platform that enables users to build websites and apps quickly and easily, without any coding required. More than 110 million users in 190 countries have already taken advantage of the free service, and 45,000 new users sign up every day. Wix hosts the websites and apps for free, and reports that on an average day 15,000 new apps get installed.
Wix’s System team is largely responsible for serving up all those users’ sites with high performance and availability. Team members deploy and manage all production, staging, and development servers across three virtual and two physical data centers. The team also handles all the internal and external traffic management including CDNs and load balancing, as well as code deployment.
Wix uses an innovative microservices architecture, which includes many intercommunicating processes generating a high amount of internal “east‑west” traffic between services (higher even than external traffic for user sites). Until recently, the team used a custom‑developed server for managing the interservice traffic, but it was becoming more and more challenging to maintain. Staff needed specific expertise with networking and C programming, as well as an understanding of the internals of the custom code. Wix instead wanted a way to easily automate deployment of changes and to have better health checks. Rather than implement more custom code into the old solution, Wix looked into migrating to a more efficient one.
“We briefly considered a hardware solution, but hardware load balancers lacked flexible configuration APIs and were very expensive,” says Dimitri Krassovski, Head of the System Team at Wix. “Several of our team members had previous experience with NGINX and considered it to be a stable, mature product. That led us to NGINX Plus.”
Solution
NGINX Plus provides Wix with an intelligent traffic gateway that is built on ten years of battle‑hardened software, proven in the world’s largest websites. NGINX Plus supports a variety of load‑balancing methods to distribute traffic across groups of upstream servers. It also delivers health checks, session persistence, extended status reports, and dynamic reconfiguration of load‑balanced server groups.
For its first project, Wix used NGINX Plus as a remote procedure call (RPC) router for internal traffic between application servers. Migrating to NGINX Plus enabled Wix to automate the management of configuration files, as well as providing better health checks to increase resiliency and maintain high application performance. After moving internal traffic to NGINX Plus, Wix began migrating external traffic as well. Wix’s NGINX Plus deployment includes multiple instances in each data center, working in highly available (HA) pairs – including a pair for internal traffic and another pair for external traffic. A Layer 4 load balancer sits in front and distributes traffic between the NGINX Plus pairs.
“NGINX Plus had all the features we needed and it was much easier to migrate than to maintain our legacy system,” says Krassovski. “We also found the NGINX support team to be very professional and helpful. We can work directly with NGINX engineers who are extremely knowledgeable, which shortened deployment and helped us get off to a fast start.”
Results
Health Checks Significantly Reduce Downtime and Error Rates
With application health checks, Wix significantly reduced downtime in production. NGINX Plus actively monitors the health of servers within the local data center. If the local servers are not healthy, for example due to a high traffic load or a DDoS attack, NGINX Plus automatically redirects requests to a defined set of backup servers in a different data center. With NGINX Plus, Wix avoids downtime due to failed local servers and assures that its own site and customers’ sites stay up.
NGINX Plus’ slow‑start feature has also helped eliminate errors. Some of Wix’s backend servers, written in Java, can handle a limited amount of traffic right after startup, and tend to throw errors if traffic is too heavy. Wix has virtually eliminated the errors by protecting the server with NGINX Plus’ slow‑start feature: when a server is reintroduced into service in a load‑balanced group, NGINX Plus slowly ramps up the load directed to the server, allowing applications to ‘warm up’ (populate caches, run just‑in‑time compilations, establish database connections, and so on).
“The slow‑start feature is a favorite,” says Gregory Man, Manager on the System Team at Wix. “Slow‑start remedied the error spikes we experienced with re‑introducing a Java server to a server pool. With the slow‑start feature in NGINX Plus, we don’t get errors because of start.”
Saving Time With Automation
In the past, the Wix System team had to manually modify a load balancer’s configuration to push out new services. With NGINX Plus in place, they built a system for internal Wix developers to easily deploy new services themselves, and the configuration is totally automated.
In this system, the developers specify metadata about which domains and paths they want to expose for external users, and that gets configured automatically in NGINX Plus and deployed via Chef.
Wix adds many new services daily, so automating NGINX Plus configuration has slashed the amount of manual effort the System team has to expend on feature deployment.
“We have 150 services in production and more added daily, so NGINX Plus saves us quite a bit of time,” said Man. “By using configuration templates, we’re saving tens of hours per month and deploying new features faster. And now that it’s automated, we’re not a bottleneck. It’s great that NGINX Plus gives us the ability to extend automation into our deployment system.”
Next Steps
Wix is moving all user traffic to NGINX Plus. The benefits of better health checks and automation that Wix achieved in their internal infrastructure can now be extended to their user traffic as well. The company is also investigating NGINX Plus for high‑volume, self‑service SSL/TLS certificate capabilities for users.
About Wix
Wix is a leading cloud‑based web development platform with over 69 million registered users worldwide. Wix was founded on the belief that the Internet should be accessible to everyone to develop, create, and contribute. Through free and premium subscriptions, Wix empowers millions of businesses, organizations, professionals, and individuals to take their businesses, brands, and workflow online. The Wix Editor and highly curated App Market enable users to build and manage a fully integrated and dynamic digital presence. Headquartered in Tel Aviv, Wix has offices in San Francisco, New York, Vilnius, and Dnepropetrovsk. For more information, visit www.wix.com.