Reducing Error Rates, Saving Time, and Simplifying Operations
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 69 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 microservice architecture, which includes many intercommunicating processes generating a high amount of internal traffic between services (higher even than external traffic for user sites). Until recently, the team used a custom‑developed server for managing the traffic between services, 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. Instead, Wix 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.”
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 session persistence, health checks, extended status reports, and on‑the‑fly 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. They have a Layer 4 load balancer that 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.”
> Health Checks Significantly Reduce Downtime and Error Rates
With NGINX Plus health checks, Wix significantly reduced downtime in production. NGINX Plus actively monitors the health of servers within their local data center. If the local servers are not healthy, for example due to a high traffic load or DDoS attack, NGINX Plus automatically redirects requests to the defined backup servers in a different data center. With NGINX Plus, Wix is able to avoid downtime from failed local servers and assure that their site and their 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 it starts up, tending 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 the configuration in their load balancer to push out new services. With NGINX Plus, they were able to build a system that allows 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 be exposed for external users, and that is configured automatically in NGINX Plus and deployed via Chef.
Because Wix adds new services daily, by being able to automate the configuration of NGINX Plus, the System team slashed the amount of manual effort needed for 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.”
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 the use of NGINX Plus to provide high‑volume, self‑service SSL/TLS certificate capabilities for users.
Wix.com 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.